T Image.Picture.LoadFromFile( ‘File.jpg’); 但我得到JPEG错误#53!这个错误的原因是什么? 这通常是从Internet下载Jpeg图像并且下载不是100%完成时.即使使用TImage也可能发生这种情况. 不幸的是
但我得到JPEG错误#53!这个错误的原因是什么?
这通常是从Internet下载Jpeg图像并且下载不是100%完成时.即使使用TImage也可能发生这种情况.不幸的是,Jpeg没有校验和检查.
唯一的想法是你可以做的就是抛出这个错误来捕获它并显示更多响应消息,如“图像已损坏.”.
由于这会引发错误:
procedure JpegError(cinfo: j_common_ptr); {$IFDEF LINUX} cdecl; export; {$ENDIF} begin raise EJPEG.CreateFmt(sJPEGError,[cinfo^.err^.msg_code]); end;
哪里
sJPEGError = 'JPEG error #%d';
您可以尝试捕获EJPEG错误并检查消息中的#53.
由于EJPEG继承自EInvalidGraphic,您可以简单地捕获它
catch on E: EInvalidGraphic do begin ShowMessage('Image file is corrupted.') end; end;