程序用DELPHI实现,使用了for Delphi 的GDI+接口函数,GDI+部分的代码可能与网上的不同,但差别不大。
代码如下:
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;