700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何将TImage里的图片另存为BMP JPG PNG格式的文件

如何将TImage里的图片另存为BMP JPG PNG格式的文件

时间:2021-10-06 16:22:31

相关推荐

如何将TImage里的图片另存为BMP JPG PNG格式的文件

之前我写了如何从数据库里读取图像数据并用Image控件显示,现在讲讲如何另存为图像文件。

procedure TForm_ShowPic.N1Click(Sender: TObject);

var

vPng:TPNGObject;

vJpg:TJPEGImage;

vBmp:TBitmap;

vTmp:string;

FType:Integer;

vStream:TStream;

begin

with SaveDialog1 do

begin

if not Execute then Exit;

FType:=-1;

vTmp:=ExtractFileExt(FileName); //分析用户保存的图像类型

if vTmp='.png' then

FType:=0

else

if vTmp='.jpg' then

FType:=1

else

if vTmp='.bmp' then

FType:=2;

vTmp:=FileName; //这是文件路径

end;

try

if FType=-1 then //默认是bmp

FType:=2;

vStream:=TMemoryStream.Create; //创建流

ImageShow.Picture.Graphic.SaveToStream(vStream); 将Image里的图像读到流里

if vStream.Size=0 then //判断有没有图像

begin

FreeAndNil(vStream);

ShowMessage('没有图像!');

Exit;

end;

vStream.Position:=0; //移动到流的开头,不要少了这步

if FType=0 then //保存成Png 文件

begin

vPng:=TPNGObject.Create;

vPng.LoadFromStream(vStream);

vPng.SaveToFile(vTmp);

FreeAndNil(vPng);

end;

if FType=1 then //保存成jpg文件

begin

vJpg:=TJPEGImage.Create;

vBmp:=TBitmap.Create; //先创建一个bmp

vBmp.Assign(ImageShow.Picture.Graphic); //把Image里的图像读到bmp里

vJpg.Assign(vBmp); //在这里将bmp的图像转成jpg

vJpg.SaveToFile(vTmp);

FreeAndNil(vBmp);

FreeAndNil(vJpg);

end;

if FType=2 then //保存成bmp文件

begin

ImageShow.Picture.Graphic.SaveToFile(vTmp); //bmp的最简单,直接另存为就好

end;

FreeAndNil(vStream);

except

on E:Exception do

begin

MessageDlg('图像保存失败!原因是:'+#13+E.Message,mtWarning,[mbOK],0);

Exit;

end;

end;

end;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。