Советы по Delphi

         

Способ преобразования изображения размером 32x32


Попробуйте:
varIcon : TIcon;Bitmap : TBitmap;beginIcon := 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;
Решение 2

Способ преобразования изображения размером 32x32 в иконку.

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.
[000005]


Содержание раздела