Jpeg error #52(200分)

  • 主题发起人 主题发起人 jammi
  • 开始时间 开始时间
J

jammi

Unregistered / Unconfirmed
GUEST, unregistred user!
var
tms: TMemoryStream;
FBmp :TBitmap;
FJpg :TJpegImage;
fname:string;
begin
tms:=TMemoryStream.Create;
tms.LoadFromFile(ExtractFilePath(Application.ExeName)+'photo/'+trim(Dm.QRy.FieldByName('fwznum').Asstring)+'.jpg');
tms.Position:=0;
FJpg :=TJpegImage.Create;
fname:='c:/1.jpg';
FJpg.LoadFromFile(fname);
***在执行到这句话时出错:Jpeg error #52
FBmp :=TBitmap.Create;
FBmp.Assign(FJpg);
Image1.Picture.Bitmap.Assign(FBmp);
FBmp.Free;
FJpg.Free;
tms.free;

uses Jpeg 已加
 
我试了一下,一点问题没有
 
重启delphi或干脆reboot windows
 
delphi5的关于Jpg好像是有些bug,头几次可以,
然后不能重复操作.
我记得好像需要改一些源码.
 
我直接在delphi的编辑环境下,往Image1中load一Jpg图片同样出现提示:Jpeg error #52
 
是不是图片太大了,有200多k?
 
图片不大,语句看上去也没有错。我以前也遇到过JPEG错误,但那是在从一个流中读取图片
时,流的指针流向的是流的尾部,无数据可读才出的错,跟你的问题不相关。
难道你就没有成功打开过JPEG图片吗?
(我曾经在哪里见过JPEG错误码对应的意思的,但忘了。)
 
10k左右的jpg文件可以打开,100多k的就不行
 
你那一段中的tms是干什么的?好像没用呢.你照我下面的例子试试,我读900多K的JPG文件都
没问题.如果还有问题,再贴上来.另外,设断点一行一行的看,不要看到程序运行出错后停到
哪儿就认为是哪儿.一般那都是在出错代码的后面了.
procedure TForm1.Button1Click(Sender: TObject);
var
tms: TMemoryStream;
FBmp :TBitmap;
FJpg :TJpegImage;
fname:string;
begin
if not OpDlg.Execute then exit;//这是一个OpenPictureDialog
tms:=TMemoryStream.Create;
// tms.LoadFromFile(ExtractFilePath(Application.ExeName)+'photo/'+trim(Dm.QRy.FieldByName('fwznum').Asstring)+'.jpg');
// tms.Position:=0;
FJpg :=TJpegImage.Create;
// fname:='c:/1.jpg';
fname:=OpDlg.FileName;
FJpg.LoadFromFile(fname);
//***¦b?¦æ¨ì?¥y??¥X?:Jpeg error #52
FBmp :=TBitmap.Create;
FBmp.Assign(FJpg);
Image1.Picture.Bitmap.Assign(FBmp);
FBmp.Free;
FJpg.Free;
// tms.free;
end;
 
to:zhankang
修改后错误依旧。
我直接在delphi的编辑环境下,往Image1中load一Jpg图片同样出现提示:Jpeg error #52
10k左右的文件不会!


 
你的图片是扫描议扫描的吧?要更改扫描仪驱动可以。
 
用数码相机拍摄的。
 
是图片格式的问题。已解决!谢谢各位!
 
后退
顶部