ICO ---> BMP |
Previous Top Next |
Code: |
Var Icon : TIcon; Bitmap : TBitmap; begin Icon := TIcon.Create; Bitmap := TBitmap.Create; Icon.LoadFromFile('c:\picture.ico'); Bitmap.Width := Icon.Width; Bitmap.Height := Icon.Height; Bitmap.Canvas.Draw(0, 0, Icon); Bitmap.SaveToFile('c:\picture.bmp'); Icon.Free; Bitmap.Free; end; |
©Drkb::04275
Взято с сайта http://blackman.wp-club.net/
Code: |
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; |
©Drkb::04276
Чтобы преобразовать Icon в Bitmap используйте TImageList. для обратного преобразования замените метод AddIcon на Add, и метод GetBitmap на GetIcon.
Code: |
function Icon2Bitmap(Icon: TIcon): TBitmap; begin with TImageList.Create (nil) do begin AddIcon (Icon); Result := TBitmap.Create; GetBitmap (0, Result); Free; end; end; |
©Drkb::04277
Взято с http://delphiworld.narod.ru
Способ преобразования изображения размером 32x32 в иконку.
Code: |
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm) Button1: TButton; Image1: TImage; Image2: TImage; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(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(Application.ExeName) + 'myfile.bmp'); end;
procedure TForm1.FormCreate(Sender: TObject); begin
image1.picture.icon.loadfromfile('c:\myicon.ico'); end;
end. |
©Drkb::04278
DelphiWorld 6.0