(1)方法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)方法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; |