ICO в BMP

Материал из DRKB


var
  Icon   : TIcon;
  Bitmap : TBitmap;
begin
  Icon   := TIcon.Create;
  Bitmap := TBitmap.Create;
  try
    Icon.LoadFromFile('c:\picture.ico');
    Bitmap.Width := Icon.Width;
    Bitmap.Height := Icon.Height;
    Bitmap.Canvas.Draw(0, 0, Icon);
    Bitmap.SaveToFile('c:\picture.bmp');
  finally
    Icon.Free;
    Bitmap.Free;
  end;
end;


Source: http://blackman.wp-club.net/
ID: 04275



procedure TIconShow.FileListBox1Click(Sender: TObject);
var
  MyIcon: TIcon;
  MyBitMap: TBitmap;
begin
  MyIcon := TIcon.Create;
  MyBitMap := TBitmap.Create;
  try
    { получаем имя файла и связанную с ним иконку}
    strFileName := FileListBox1.Items[FileListBox1.ItemIndex];
    StrPCopy(cStrFileName, strFileName);
    MyIcon.Handle := ExtractIcon(hInstance, cStrFileName, 0);

    { рисуем иконку на bitmap в speedbutton }
    SpeedButton1.Glyph := MyBitMap;
    SpeedButton1.Glyph.Width := MyIcon.Width;
    SpeedButton1.Glyph.Height := MyIcon.Height;
    SpeedButton1.Glyph.Canvas.Draw(0, 0, MyIcon);

    SpeedButton1.Hint := strFileName;
  finally
    MyIcon.Free;
    MyBitMap.Free;
  end;
end;


ID: 04276



Чтобы преобразовать Icon в Bitmap используйте TImageList. для обратного преобразования замените метод AddIcon на Add, и метод GetBitmap на GetIcon.

function Icon2Bitmap(Icon: TIcon): TBitmap;
begin
  with TImageList.Create(nil) do
  begin
    AddIcon(Icon);
    Result := TBitmap.Create;
    GetBitmap(0, Result);
    Free;
  end;
end;


Source: http://delphiworld.narod.ru
ID: 04277


См. также[править | править код]