在Delphi中,TImage控件支持的图形格式比较少,只有jpg、bmp、ico、emf、wmf等几种。要想使用其他格式的图形,就需要使用pngimage、GraphEx等第三方图形控件才行。
在Lazarus中,这个问题就简单多了。我们打开一个SavePictureDialog控件(它支持的图形格式和TImage是一样的),可以看到它支持:
*.bmp;*.xpm;*.png;*.pbm;*.pgm;*.ppm;*.ico;*.icns;*.cur;*.jpg;*.jpeg;*.jpe;*.jfif
等图形格式,基本常用的都有了,比Delphi中多出很多。进行图形格式转换时也非常简单,只需要先指定文件的后缀名,在用Image.Picture.SaveToFile进行保存,就完成了格式的转换,是不是简单多了。
例如,我在Lazarus demo of MandelBrot Browse这个程序中,保存图形文件的代码是:
if SavePictureDialog1.Execute then
begin
case SavePictureDialog1.FilterIndex of
1: SavePictureDialog1.FileName := ChangeFileExt(SavePictureDialog1.FileName, '.bmp');
2: SavePictureDialog1.FileName := ChangeFileExt(SavePictureDialog1.FileName, '.xpm');
3: SavePictureDialog1.FileName := ChangeFileExt(SavePictureDialog1.FileName, '.png');
4: SavePictureDialog1.FileName := ChangeFileExt(SavePictureDialog1.FileName, '.jpg');
end;
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
这样就完成了bmp、xpm、png、jpg格式的保存。
文章评论(0条评论)
登录后参与讨论