// 程序实现procedure IconToBMPDemo;
var
Icon: TIcon;
Bmp: TBitmap;
begin
Icon := TIcon.Create;
Icon.LoadFromFile('chemical.ico');
Bmp := TBitmap.Create;
Bmp.Width := Icon.Width;
Bmp.Height := Icon.Height;
Bmp.Canvas.Draw(0, 0, Icon);
Bmp.SaveToFile('chemical.bmp');
Bmp.Free;
Icon.Free;
end;
var
Icon: TIcon;
Bmp: TBitmap;
begin
Icon := TIcon.Create;
Icon.LoadFromFile('chemical.ico');
Bmp := TBitmap.Create;
Bmp.Width := Icon.Width;
Bmp.Height := Icon.Height;
Bmp.Canvas.Draw(0, 0, Icon);
Bmp.SaveToFile('chemical.bmp');
Bmp.Free;
Icon.Free;
end;
不过torble(阿裕) 的方法比较简明一些。
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)方法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;