Delphi - ошибка JPEG #53
TImage.Picture.LoadFromFile('File.jpg');
но я получил ошибку JPEG # 53! в чем причина этой ошибки?
5 ответов
Обычно это происходит, когда образ 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;
Это происходит с одним jpeg-изображением или со всеми jpeg-файлами, которые вы пытаетесь?
Ошибка JPEG #53 возникает ошибка из-за нехватки памяти.
Если файл поврежден, эта ошибка может возникнуть.
Таким образом, открытие этого изображения в рисовании или фотошопе и повторное сохранение его в формате JPEG может решить проблему.
У меня также была ошибка #53. Оказалось, что ошибка произошла только после того, как я ошибочно сохранил растровое изображение с расширением *.jpg. Очевидное решение состояло в том, чтобы превратить это растровое изображение в формат JPEG и затем сохранить его:-).
Пожалуйста, попробуйте следовать, чтобы решить "Ошибка JPEG #53", если это происходит в этом заявлении TImage.Picture.LoadFromFile('File.jpg')
TImage.Picture.Bitmap.LoadFromFile('File.jpg');
Обратите внимание, что файл File.jpg должен существовать в указанном месте.