TGPBitmap转为TBitmap

TGPBitmap转为TBitmap

use   gdipapi,gdipobj,gdiputil

procedure TForm1.ToBitmap(fnames:string);
VAR Graphics   : TGPGraphics;
    Image, Thumbnail: TGPImage;
    TGPbmp:TGPBitmap;
    bmp:TBitmap;
    hb:HBitmap;
begin
   //打开源图片文件,可以是JPEG、BMP、GIF、TIFF、PNG
   Image:=TGPImage.Create(fnames);
    //创建一个120*120的TGPBitmap,作为绘制缩略图的容器
   TGPbmp:=TGPBitmap.Create(120,120,PixelFormat32bppRGB);
   //取得源图片的缩略图
   Thumbnail := image.GetThumbnailImage(120, 120,   nil,   nil);
   //绘制缩略图到TGBbmp;
   Graphics :=TGPGraphics.Create(TGPbmp);
   Graphics.DrawImage(Thumbnail,   0, 0,Thumbnail.GetWidth,Thumbnail.GetHeight);
   //创建TBitmap位图
   bmp:=Tbitmap.Create ;
   bmp.width:=120;
   bmp.height:=120;
    //开始转换,hb用于过渡。
   TGBbmp.GetHBITMAP(0,hB);
   bmp.handle:=hb;
   
   {你自己的代码,将bmp用在合适的地方}
   {例如 imagelist1.add(bmp,nil);}
   
    //使用完了,释放.
   Image.free;
   Thumbnail.free;
   Graphics.free;
   TGPbmp.free;
   bmp.free;

end;


联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678