如何实现ImageList中的所有Images输出到同一个bmp文件中,就象Delphi的ImageList Editor一样。(200分)

  • 主题发起人 主题发起人 sohusoft
  • 开始时间 开始时间
S

sohusoft

Unregistered / Unconfirmed
GUEST, unregistred user!
在用Delphi进行设计时,ImageList Editor是Delphi做的另外的程序
,与imagelist本身无关,我不知如何实现其Export功能,
就是将所有图标保存到同一个BMP文件中。
 
var tb:Tbitmap;
Begin
tb:=Tbitmap.Create;
tb.handle:=ImageList.GetImageBitmap;
tb.Handletype:=bmDIb;
此时 TB 里就是了
 
procedure TForm1.Button1Click(Sender: TObject);
var
Temp, Bmp: TBitmap;
i: Integer;
begin
if SavePictureDialog1.Execute then begin
Bmp := TBitmap.Create;
Temp := TBitmap.Create;
try
with Bmp do begin
Width := ImageList1.Width * ImageList1.Count;
Height := ImageList1.Height;
PixelFormat := pf24Bit;
end;
with Temp do begin
Width := ImageList1.Width;
Height := ImageList1.Height;
PixelFormat := pf24Bit;
with Canvas.Brush do begin
Color := clWhite;
Style := bsSolid;
end;
end;
for i := 0 to ImageList1.Count - 1 do begin
Temp.Canvas.FillRect(Rect(0, 0, Temp.Width, Temp.Height));
ImageList1.GetBitmap(i, Temp);
Bmp.Canvas.Draw(i * ImageList1.Width, 0, Temp);
end;
Bmp.SaveToFile(SavePictureDialog1.FileName);
finally
Bmp.Free;
Temp.Free;
end;
end;
end;
 
多人接受答案了。
 
后退
顶部