Проблема с отображением некоторых файлов JPG в Delphi

Я попытался открыть некоторые файлы JPEG в Delphi с компонентом TImage. я также добавил блок Jpeg. я могу открыть большинство файлов jpg, и нет проблем.

но когда я пытаюсь открыть некоторые JPGs, программа просто выдает исключение.

Я также попытался загрузить эти изображения в режиме дизайна, но есть некоторые проблемы. в режиме проектирования исключением является:

нарушение доступа по адресу 402672A1 в модуле ' vcljpeg70.АПЛ. Написать адрес 08E84000

Почему я не могу открыть этот JPGs? они не испорчены. я проверил их в некоторых инструментах, таких как savantools EXIF viewer.

вот URL одного из этих изображений: http://xs842.xs.to/xs842/09340/backpic435.jpg

спасибо

PS: Моя версия Delphi-7. Borland Delphi 7

6 ответов


причина может быть эта проблема из-за типа файла. Delphi имеет проблемы с отображением изображений JPEG, которые были закодированы с помощью CMYK, а не кодировки RGB по умолчанию. CMYK-это формат, который обычно используется для печати, попробуйте и всегда кодируйте изображения в формате RGB, чтобы избежать этой проблемы с Delphi.

патч для Delphi jpeg.dcu

тю.


интересные. Ни Internet Explorer, ни Google Chrome отобразит изображение JPEG, с которым вы связаны. Я не понимаю 404 Не Найдена ошибки, я просто получаю заполнитель изображения, указывающий, что изображение не может быть открыто/отображено правильно.

FireFox тут показать изображение.

вы уверены, что нет ничего подозрительного или, по крайней мере, немного необычного в файлах JPG вовлечены?

обновление: файл успешно открывается вопрос PaintShop Pro (старая версия 6.0 установка) - если я тогда просто повторно сохранить как стандартную кодировку JPEG,IE и Chrome оба отображают недавно сохраненное изображение, как я и ожидал. Там определенно будет что-то немного "нечетное" о кодировке исходного JPEG, что некоторые приложения JPEG могут обрабатывать, но не все, включая некоторых "основных игроков", а не только Дельфи. :)


Проверьте бесплатную библиотеку изображений для альтернативной поддержки JPEG в Delphi, если у родного есть проблемы. Free Image-это lib с открытым исходным кодом, который позволяет работать с JPEG/PNG/... из Delphi / BCB / и других. Очень хорошая библиотека ИМХО.

http://freeimage.sourceforge.net/


Я просмотрел файл с шестнадцатеричным редактором и нашел 3 заголовка JFIF. После извлечения каждой части, я нашел 2 миниатюры и изображения. Ничего особенного, потому что встроенные эскизы, похоже, являются частью стандарта EXIF2.

миниатюры сами загружаются в Delphi, и преобразование файла в что-то читаемое можно сделать почти с каждой частью программного обеспечения, которое я пробовал.

в любом случае, эта страница даст вам очень подробную информацию о изображение и какие заголовки находятся внутри (просто вставьте url вашего изображения в текстовое поле):

http://www.monster-submit.com/resources/jpeganalyzer/


Я получаю ту же ошибку. Это похоже на ошибку в JPEG lib Delphi. Вы должны сообщить об этом QC.


SimDesign это NativeJpg может открыть этот файл. Это библиотека JPEG, написанная полностью на Delphi, и автор был хорош в добавлении поддержки новых расширений и цветовых пространств, когда мы столкнулись с ними. В дополнение к tgraphic потомку для поддержки TImage он предоставляет множество интерфейсов нижнего уровня для управления jpeg, хотя я их не использовал.