全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1359
推到 Plurk!
推到 Facebook!

請教高手如何把.bmp改成.ico感恩 謝謝

尚未結案
shangju
一般會員


發表:30
回覆:14
積分:8
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-02 16:53:06 IP:220.134.xxx.xxx 未訂閱
請教高手如何把 .bmp file change to .ico file .bmp改成.ico感恩 謝謝
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-02 17:02:43 IP:202.39.xxx.xxx 未訂閱
http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&th=3f8f849638920ac0&rnum=1
function BitmapToIcon(Bitmap: TBitmap): TIcon;
var
  IconSizeX, IconSizeY : integer;
  IconInfo: TIconInfo;
  IconBitmap, MaskBitmap: TBitmap;
  x, y: Integer;
  TransparentColor: TColor;
begin
  IconSizeX := GetSystemMetrics(SM_CXICON);
  IconSizeY := GetSystemMetrics(SM_CYICON);
  IconBitmap:= TBitmap.Create;
  IconBitmap.Width:= IconSizeX;
  IconBitmap.Height:= IconSizeY;
  IconBitmap.Canvas.StretchDraw(Rect(0, 0, IconSizeX, IconSizeY), Bitmap);
  IconBitmap.TransparentColor:= Bitmap.TransparentColor;
  TransparentColor:= IconBitmap.TransparentColor and $FFFFFF;
  MaskBitmap:= TBitmap.Create;
  MaskBitmap.Assign(IconBitmap);
  for y:= 0 to IconSizeY - 1 do
    for x:= 0 to IconSizeX - 1 do
      if IconBitmap.Canvas.Pixels[x, y] = TransparentColor then
        IconBitmap.Canvas.Pixels[x, y]:= clBlack;
  IconInfo.fIcon:= True;
  IconInfo.hbmMask:= MaskBitmap.MaskHandle;
  IconInfo.hbmColor:= IconBitmap.Handle;
  Result:= TIcon.Create;
  Result.Handle:= CreateIconIndirect(IconInfo);
  MaskBitmap.Free;
  IconBitmap.Free;
end;
shangju
一般會員


發表:30
回覆:14
積分:8
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-03 10:56:12 IP:61.220.xxx.xxx 未訂閱
icon:=bitmaptoicon(bm); Image2.Canvas.Draw(0,0,icon); Image2.Picture.SaveToFile('test'); 如上 試過後在image2可成功畫出 但存檔後 再用delphi image editor 叫出 卻失敗 invalid file format ? why? 請高手告知 感恩
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-03 12:42:41 IP:202.39.xxx.xxx 未訂閱
用法如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  ico: TIcon;
begin
  ico := BitmapToIcon(Image1.Picture.Bitmap);
  ico.SaveToFile('c:\xx.ico');
end;
shangju
一般會員


發表:30
回覆:14
積分:8
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-03 13:35:02 IP:220.134.xxx.xxx 未訂閱
謝謝 hager 成功了 感恩
系統時間:2024-07-04 0:27:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!