Delphi 把一个ICO转换为BMP


本文整理自网络,侵删。

 
// 方法1
var
  Icon  : TIcon;
  Bitmap : TBitmap;
begin
   Icon  := TIcon.Create;
   Bitmap := TBitmap.Create;
   Icon.LoadFromFile('c:\picture.ico'); //Load an ICO
from File
   Bitmap.Width := Icon.Width;
   Bitmap.Height := Icon.Height;
   Bitmap.Canvas.Draw(0, 0, Icon );
   Bitmap.SaveToFile('c:\picture.bmp'); //Convert ICO to
BMP!
   Icon.Free;
   Bitmap.Free;
end;

// 方法2
procedure TForm1.ConvertClick(Sender: TObject);
var
  winDC, srcdc, destdc : HDC;
  oldBitmap : HBitmap;
  iinfo : TICONINFO;
begin
 GetIconInfo(Image1.Picture.Icon.Handle, iinfo);
 WinDC := getDC(handle);
 srcDC := CreateCompatibleDC(WinDC);
 destDC := CreateCompatibleDC(WinDC);
 oldBitmap := SelectObject(destDC, iinfo.hbmColor);
 oldBitmap := SelectObject(srcDC, iinfo.hbmMask);
 BitBlt(destdc, 0, 0,
Image1.picture.icon.width,Image1.picture.icon.height,srcdc,
0, 0, SRCPAINT);
 Image2.picture.bitmap.handle := SelectObject(destDC,
oldBitmap);
 DeleteDC(destDC);
 DeleteDC(srcDC);
 DeleteDC(WinDC);
 image2.Picture.Bitmap.savetofile(ExtractFilePath(Applicat
ion.ExeName)+ 'myfile.bmp');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 image1.picture.icon.loadfromfile('c:\myicon.ico');
end;

相关阅读 >>

Delphi unigui中如何监听session的开始与结束

Delphi xe8中的firemonkey应用程序将文本复制到剪贴板

Delphi access 数据库压缩

Delphi selectdirectory 选择文件夹

Delphi 如何将bitmap位图与base64字符串相互转换

Delphi获取jpg图片的高度、宽度

Delphi 内存管理[2-3]

Delphi向imagelist中加入png类型的资源图片

Delphi xe6 for android 让手机震动

Delphi 阿拉伯数字转中文汉字数字

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...