请指教关于 SavePictureDialog 控件把image1里的图片保存成 .bmp .jpg 格式的问题~

xuyanjiao1800 2007-12-27 03:23:02
下面是我写的简单保存图片代码 不知道如何修改才能变成可以根据 image1 里面的图片的格式是 bmp还是jpg而 保存的时候自动
添加.bmp 或者.jpg后缀! 是根据原图的格式决定的 请高手指教谢谢!!


procedure TForm1.Save1Click(Sender: TObject);
begin
if SavePictureDialog1.Execute then
begin
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
end;
...全文
205 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyanjiao1800 2007-12-28
  • 打赏
  • 举报
回复
我在自己初学阶段 读代码能力有限 不好意思。。。

我再看看 谢谢
wangxuelid 2007-12-28
  • 打赏
  • 举报
回复
下面是我写的简单保存图片代码 不知道如何修改才能变成可以根据 image1 里面的图片的格式是 bmp还是jpg而 保存的时候自动
添加.bmp 或者.jpg后缀! 是根据原图的格式决定的 请高手指教谢谢!!
procedure TForm1.Save1Click(Sender: TObject);
begin
if SavePictureDialog1.Execute then
begin
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
end;
----
没有细看,,,不知道这个两个有什么区别吗?不就不理解了,BMP,JPG任何只要在后缀那里修改为.BMP或.JPG就可以相互转化了,,,
xuyanjiao1800 2007-12-28
  • 打赏
  • 举报
回复
WANGXUELLD 你写的不明白 好像跟我问得不一回事~
wangxuelid 2007-12-27
  • 打赏
  • 举报
回复
procedure TCP.BitBtn1Click(Sender: TObject);
var //2007-11-29晚,处理下载图片并打印的效果
Mstream: TMemorystream;
jpgfile: TjpegImage;
pp: pChar;
ss: String;
ii:DWORD;
aa: string;
ll : string;
Begin
GetMem(pp,255); //处理获得用户登陆电脑名称
ii:= 255;
GetUserName(pp,ii);
ss := StrPas(pp);
FreeMem(pp);
ll:= 'C:\Documents and Settings\'+ss+ '\Local Settings\Temp\';
if (Edit1.Text <> '' ) or (edit1.Text <> '000001') then //2007-11-29晚加,处理打印图片和下载图片问题 ,
Begin
With ADOQuery1 do //处理图片
Begin
Close;
SQl.Clear ;
SQl.Text :=' Select (n.image_) as image_, isnull(n.zkuan_,'''')as zkuan , (m.ytu_) as ytu_,(m.zkuan_) as zkuan_ '
+' from klbom m left join filetupian n on m.zkuan_=n.zkuan_ and m.ytu_=n.ytu_ '
+' where m.id_='''+Trim(Edit1.Text)+''' ' ;
Open;
End;
try
While not ADOQuery1.Eof do
Begin //在这里需要判断是否查询到图片的字段,所以特殊添加下面的判断
if Adoquery1.FieldByName('zkuan').AsString <> '' then
Begin
Mstream:=TMemorystream.Create ;
jpgfile:=TjpegImage.Create ;
TBlobField(ADOQuery1.FieldByName('image_')).SaveToStream(Mstream);
Mstream.Position :=0;
jpgfile.LoadFromStream(Mstream);
aa:='C:\Documents and Settings\'+ss+ '\Local Settings\Temp\'+ADOQuery1.fieldbyname('zkuan_').AsString+ADOQuery1.fieldbyname('ytu_').AsString+'.jpg';
jpgfile.SaveToFile(aa);
End;
Adoquery1.Next;
End;

except
Showmessage('数据处理有问题,请联系信息部');
End;
stherix 2007-12-27
  • 打赏
  • 举报
回复
Picture.LoadFromFile()
你打开jpg试试

jpg都要靠assign操作来赋给picture.Graphic

Picture是不能SaveToFile 保存为真正的jpg格式的
需要用TJPEGImage做中间转换
xuyanjiao1800 2007-12-27
  • 打赏
  • 举报
回复
SavePictureDialog1后面规定格式....只限.Bmp格式


这是什么意思????
frankie_24 2007-12-27
  • 打赏
  • 举报
回复
SavePictureDialog1后面规定格式....只限.Bmp格式
xuyanjiao1800 2007-12-27
  • 打赏
  • 举报
回复
那么请问 stherix 如何改我的代码变为 支持 jpg的呢??

我开始已经 uses JPEG 了~~


这里也谢谢 budded 对于我来说可能还是难了点 呵呵 谢谢
budded 2007-12-27
  • 打赏
  • 举报
回复
谁说TPicture不支持jpg?在工程里的文件引用下JPEG单元就可以了
budded 2007-12-27
  • 打赏
  • 举报
回复
JPEG File Header:http://www.fastgraph.com/help/jpeg_header_format.html
BMP Header:http://www.fastgraph.com/help/bmp_header_format.html
用文件流读几个字节就能判断了
stherix 2007-12-27
  • 打赏
  • 举报
回复
只能自己做判断
而且 TPicture不支持jpg的
stherix 2007-12-27
  • 打赏
  • 举报
回复
只能自己做判断
而且 TPicture不支持jpg的

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧