我uses了jpeg单元,但是在image中显示jpg图像时却出现错误JPEG error #41,请问如何解决? (50分)

  • 主题发起人 主题发起人 DF7C3
  • 开始时间 开始时间
D

DF7C3

Unregistered / Unconfirmed
GUEST, unregistred user!
我uses了jpeg单元,
但是在image中显示jpg图像时却出现错误JPEG error #41,请问如何解决?

如果JpegImage是从一个文件中load的话(loadfromstream),图像就可以正常显示,
而从数据库字段中读到流里,JpegImage再从这个流里load,就不行,
会出现错误JPEG error #41。

//显示图片字段的过程
procedure XXX;
var
p: TMemoryStream;
JpegImage: TJpegImage;
begin
p := TMemoryStream.Create;
JpegImage := TJpegImage.Create;
try
//Query1zhaopian是一个TBlobField类,对应sql server7的image字段
Query1zhaopian.SaveToStream(p);
JpegImage.LoadFromStream(p);
Image1.Picture.Assign(JpegImage);
finally
JpegImage.Free;
p.Free;
end;
end;
 
procedure Tfrm_sfxm.btnaddClick(Sender: TObject);
var
jpg:tjpegimage;
extname,fname:string;
begin

popmnu_wj.Popup(mouse.CursorPos.x+10,mouse.CursorPos.y+10)

tblxmxgwj.Insert;
if OpenPictureDialog1.Execute then
begin
fname:=OpenPictureDialog1.FileName;
extname:=uppercase(extractfileext(fname));
if extname='.BMP' then DBImage1.Picture.LoadFromFile(fname);
if (extname='.JPG') or (extname='.JPEG') then
begin
jpg:=Tjpegimage.Create;
try
jpg.LoadFromfile(fname);
DBImage1.Picture.Graphic.Assign(jpg);
finally
jpg.Free;
end;
end;
end;

end;
 
把 p 的指针 seek 到起始位置
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
599
import
I
I
回复
0
查看
972
import
I
I
回复
0
查看
790
import
I
后退
顶部