4

Я получил набор фотографий от фотографа и должен подтвердить, что JPEG не были сохранены как прогрессивные JPEG. У меня есть Adobe Bridge и Photoshop - как это проверить?

1 ответ1

2

Несколько простых методов:

  1. ImageMagick - В командной строке запустите:
    identify -verbose mystery.jpg | grep Interlace
    Выход будет либо «Чересстрочная развертка:JPEG», либо «Чересстрочная развертка: нет».
  2. Photoshop - Открыть файл. Выберите File -> Save for Web & Devices .
    Если это прогрессивный JPEG, флажок Progressive будет выбран.
  3. Любой браузер - базовые jpegs будут загружаться сверху вниз, а прогрессивные jpegs будут делать что-то еще. Если файл загружается слишком быстро, вам может потребоваться добавить регулирование пропускной способности. Я использую ipfw на моем Mac.

Источник

Программные методы

Проверьте Обнаружение Прогрессивного JPEG. Автор публикует ссылки на ряд разработанных сценариев:

Для идентификации файлов можно использовать пару идентифицирующих байтов. JPEG с прогрессивным DCT может быть идентифицирован байтами «0xFF, 0xC2». Кроме того, прогрессивные изображения JPEG обычно содержат несколько сканирований, поэтому вы можете найти пару совпадений «Начало сканирования» (байты: «0xFF, 0xDA»). Автор использовал простую команду Bash для получения точных результатов:

>grep -c -P “xffxc2″ progressive1.jpg
>1

>grep -c -P “xffxc2″ progressive2.jpg
>1

>grep -c -P “xffxc2″ baseline1.jpg
>0

>grep -c -P “xffxc2″ baseline2.jpg
>0

>grep -c -P “xffxDA” progressive1.jpg
>6

>grep -c -P “xffxDA” progressive2.jpg
>12

Ссылка также содержит ряд других полезных инструментов.

Обновить

Сюжет утолщается (спасибо пользователю PussInBoots за предупреждение о необходимости копать глубже). Был задан вопрос, как определить, был ли JPEG сохранен как прогрессивный.

  • "Сохранено как", по-видимому, имеет гибкий смысл. Я экспериментировал и обнаружил, что в некоторых случаях сохранение как прогрессивное означало только то, что параметр метаданных (чересстрочная развертка) был изменен, но файл фактически не был изменен, чтобы содержать прогрессивные сканы. Таким образом, файл содержит одно изображение, и программное обеспечение рендеринга должно обрабатывать его как прогрессивное изображение.

    То, как эти "фальшивые" прогрессивные файлы проявляются в тестах, описанных выше:

    • InageMagick: параметр Interlace читается как "JPEG", а не "None".

    • Photoshop: единственная версия Photoshop, которую я имел в наличии, это древняя (версия 7.0). В диалоговом окне "Сохранить для Web" флажок « Progressive был предварительно отмечен для этих файлов, но не для стандартных JPEG-файлов.

    • Браузер: моя система и интернет-соединение слишком быстрые, чтобы это было полезным тестом. В нормальных условиях все достаточно близко к мгновенному, чтобы не иметь возможности надежно дифференцировать любую разницу.

    • Идентификация байтов: это более надежный индикатор. "Фальшивые" прогрессивные JPEG-файлы не имели ни одного идентифицирующего шаблона байтов.

  • Таким образом, на оригинальный вопрос, если какой-либо из тестов, приведенных выше, показывает, что файл не является прогрессивным JPEG, вы можете положиться на тот факт, что это не так. Однако вышеприведенные "простые методы" не позволяют надежно отличить настоящие прогрессивные JPEG от "липовых", поэтому вы не можете полагаться на них, чтобы узнать, действительно ли JPEG является прогрессивным. Фактически, PussInBoots сообщает в комментарии, что Photoshop CS6, по-видимому, имеет выбор по умолчанию как "прогрессивный", поэтому его первоначальная настройка ничего не говорит о существующем файле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .