// 程序实现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;

解决方案 »

  1.   

    还是直接用ACDSEE 转换最方便
      

  2.   

    先用程序读出来,再写到bmp文件里
      

  3.   

    用i-view不错,我一直用,只有1M多可支持许多格式不知是怎么做的
      

  4.   

    我也有个很笨的方法,是用Imagelist,首先将图标添加进去,然后用Draw画到Image上,然后保存就行了,这个方法变一下还可以将多个图标合并!
    不过torble(阿裕) 的方法比较简明一些。
      

  5.   

    同意 GWFXP(影)和 yuanjujing(※挪威森林※),这样也不麻烦的.
      

  6.   

    知道了icon,bitmap文件的格式,就可以写出很小的程序了,用tp就可以写了.
      

  7.   

    有一个软件叫icon to any能实现昵的目的,到网上搜索一下
      

  8.   

    不嫌烦的话,俺给你贴一段,不是俺写的,俺不保证一定行:(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;
      

  9.   

    同意楼上的,其实控件Image支持多种图片格式,只要把ICO格式的图片用程序读入,再把Image的图片导出就可以了。好像不是很难。