Определенное изображение jpeg не отображается в Nautilus и не может быть загружено.

Определенное изображение jpeg не отображается в Nautilus и не может быть загружено.

У меня есть группа изображений .jpg из одного источника, которые, похоже, ведут себя нормально: я могу открывать/редактировать их с помощью eog/Kolourpaint/GIMP, их миниатюры корректно загружаются в Nautilus и т. д.

Однако когда я пытаюсь загрузить эти изображения (например, через веб-браузер на Tumblr), одно (и только одно) из них не отображается в браузере загрузки файлов Nautilus, и Tumblr возвращает ошибку, когда я пытаюсь загрузить этот файл.

Какие проблемы могут привести к тому, что в остальном корректное изображение JPEG не будет отображаться в браузере загрузки файлов Nautilus?

решение1

Это не ответ на ваш вопрос напрямую, но рецепт борьбы со «слегка поврежденными» изображениями — конвертировать лоскут...

$ convert broken.jp cbroken.png
$ convert cbroken.png good.jpg

Я обнаружил, что инструменты для обработки изображений имеют разные уровни толерантности к соблюдению спецификации. Convert, по моему опыту, и толерантен, и послушен.

решение2

По предложению sthysel я преобразовал свой поврежденный jpeg в png, что выявило проблему, а также предоставило мне рабочий png, который можно было загрузить вместо jpeg.

$ convert bad.jpg okay.png
convert: Premature end of JPEG file `bad.jpg' @ warning/jpeg.c/EmitMessage/228.
convert: Corrupt JPEG data: premature end of data segment `bad.jpg' @ warning/jpeg.c/EmitMessage/228.

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

000d330: 8cbd e32f f164 95a4 4827 54e0 1264 8807  .../.d..H'T..d..                  
000d340: 8436 479f cd1e afa4 d9e3 0a              .6G........

Поэтому я дополнил файл необходимыми байтами, что также помогло исправить jpeg.

000d330: 8cbd e32f f164 95a4 4827 54e0 1264 8807  .../.d..H'T..d..
000d340: 8436 479f cd1e afa4 d9e3 3fff d90a       .6G.......?...

решение3

В прошлом у меня возникали проблемы с совместимостью по двум причинам:

  • Превью сохранены в формате JPEG — отключите сохранение превью (если поддерживается программным обеспечением)
  • Изображения CMYK, сохраненные в формате JPEG, преобразуются в RGB перед сохранением или экспортируются в формате RGB.

Связанный контент