当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·怎么往数据库里存取图片    »显示摘要«
    摘要: 如提 或者把路径存入数据库,根据路径读取图片? ......
    摘要: <script language="javascript"> <!-- today = new date() document.write("现在时间是:" + today.gethours() + ":" + today.getminutes()); document.write("<br>......


关于图形特效(50分相赠)

偶想做一个百叶窗样子的图形特效Login界面,但是不知道怎样将图形文件转换为数组形式,并且如何才能实现呢??  
      请给出具体关键部分的源码,谢谢  
   
       
   
 

NO.1   作者: gloom

 
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
                  //中心扩散--区域实现  
                  Form1->Refresh();  
                  for   (int   i=0;i<Bitmap->Width/2+3;i++)  
                  {  
                                  MyRgn=CreateRectRgn(Bitmap->Width/2-i,Bitmap->Height/2-i*Bitmap->Height/Bitmap->Width,Bitmap->Width/2+i,Bitmap->Height/2+i*Bitmap->Height/Bitmap->Width);  
                                  SelectObject(Canvas->Handle,MyRgn);  
                                  Canvas->Draw(8,8,Bitmap);  
                                  DeleteObject(MyRgn);  
                  }  
                  //复制位图实现  
                  /*int   i,left,top,width,height;  
                  Refresh();  
                  width=Bitmap->Width;  
                  height=Bitmap->Height;  
                  //Graphics::TBitmap*   pBitmap=new   Graphics::TBitmap;  
                  Image1->Visible=false;  
                  for   (i   =   0;   i   <=   width/2+1;   i+=1)  
                  {  
                                  //通过图像的坐标选定图像的一部分  
                                  left   =   width/2   -   i;   //从中心向四周扩散  
                                  top   =   height/2   -   i*height/width;  
                                  //width   =   i;  
                                  //height   =   i*height/width;  
                                  Canvas->CopyRect(Rect(left+8,top+8,left+2*i+8,top+2*i*height/width+8),Bitmap->Canvas,Rect(left,top,left+2*i,top+2*i*height/width));//从TImage中复制部分位图  
                  }   */  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::Button2Click(TObject   *Sender)  
  {  
                  //百叶窗效果  
                  int   inum,icount,i,j;  
                  inum   =16;   //这是百叶窗的叶数  
                  icount   =   Bitmap->Height   /inum;//每叶的高度  
                  Refresh();  
                  for   (i   =   0;   i   <   icount+1;   i+=1)  
                  {  
                                  for   (j   =   0;   j   <=   inum;   j++)  
                                  {  
                                                  Canvas->CopyRect(Rect(8,icount*j+8     ,   Bitmap->Width+8,icount*j   +   i+8),Bitmap->Canvas,   Rect(0,   icount*j   ,Bitmap->Width,   icount*j   +   i));  
                                                  for   (int   blank=0;blank<100000;blank++);  
                                  }  
                  }  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button3Click(TObject   *Sender)  
  {  
                  //圆形效果特效  
                  Form1->Refresh();  
                  int   j=sqrt(Bitmap->Width*Bitmap->Width+Bitmap->Height*Bitmap->Height)/2+2;  
                  for   (int   i=1;i<j;i++)  
                  {  
                                  MyRgn=CreateEllipticRgn(Bitmap->Width/2-i+8,Bitmap->Height/2-i+8,Bitmap->Width/2+i+8,Bitmap->Height/2+i+8);  
                                  SelectObject(Canvas->Handle,MyRgn);  
                                  Canvas->Draw(8,8,Bitmap);  
                                  DeleteObject(MyRgn);  
                  }  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button4Click(TObject   *Sender)  
  {  
                  //图像从中间往上下分出  
                  int   HeightHalf=(Bitmap->Height+1)/2;  
                  TRect   Dest1,Dest2,Source1,Source2;  
                  Refresh(   );  
                  for(int   i=0;i<=HeightHalf;i++)  
                  {  
                                  Dest1=Rect(8,HeightHalf-i+8,Bitmap->Width+8,HeightHalf+8);  
                                  Source1=Rect(0,0,Bitmap->Width,i);  
                                  Dest2=Rect(8,HeightHalf+8,Bitmap->Width+8,HeightHalf+i+8);  
                                  Source2=Rect(0,Bitmap->Height-i,Bitmap->Width,Bitmap->Height);  
                                  Canvas->CopyRect(Dest1,Bitmap->Canvas,Source1);  
                                  Canvas->CopyRect(Dest2,Bitmap->Canvas,Source2);  
                                  for(int   j=0;j<100000;j++);  
                  }  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button5Click(TObject   *Sender)  
  {  
                  //图像从上下向中间分并  
                  int   HeightHalf=(Bitmap->Height+1)/2;  
                  TRect   Dest1,Dest2,Source1,Source2;  
                  Refresh(   );  
                  for(int   i=1;i<=HeightHalf+1;i++)  
                  {  
                                  Dest1=Rect(8,i+8,Bitmap->Width+8,8);  
                                  Source1=Rect(0,HeightHalf,Bitmap->Width,HeightHalf-i);  
                                  Dest2=Rect(8,Bitmap->Height-i+8,Bitmap->Width+8,Bitmap->Height+8);  
                                  Source2=Rect(0,HeightHalf,Bitmap->Width,HeightHalf+i);  
                                  Canvas->CopyRect(Dest1,Bitmap->Canvas,Source1);  
                                  Canvas->CopyRect(Dest2,Bitmap->Canvas,Source2);  
                                  for(int   j=0;j<100000;j++);  
                                  //Bitblt  
                  }  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::Button6Click(TObject   *Sender)  
  {  
                  //收缩  
                  Form1->Refresh();  
                  HRGN   BmpRgn=CreateRectRgn(8,8,8+Bitmap->Width,8+Bitmap->Height);  
                  for   (int   i=Bitmap->Width/2+1;i>0;i--)  
                  {  
                                  MyRgn=CreateRectRgn(Bitmap->Width/2-i,Bitmap->Height/2-i*Bitmap->Height/Bitmap->Width,Bitmap->Width/2+i,Bitmap->Height/2+i*Bitmap->Height/Bitmap->Width);  
                                  CombineRgn(MyRgn,BmpRgn,MyRgn,RGN_XOR);  
                                  SelectObject(Canvas->Handle,MyRgn);  
                                  Canvas->Draw(8,8,Bitmap);  
                                  DeleteObject(MyRgn);  
                  }  
  }


    摘要: 高分求购rapid sql 7.2.0正式版或注册码 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE