Как найти качество JPG?


16

Когда я сохраняю файл JPG с помощью GIMP, я могу настроить качество, в котором я его сохраняю, от 0 до 100 (я использую 89). Кажется, что я использовал приложение, чтобы увидеть, что это число было в сохраненном файле, но если я это сделал, я не могу на всю жизнь понять, что это было. Любые предложения относительно того, что использовать?


2
Просто чтобы убедиться, что это известно: настройки качества различных приложений несопоставимы, в общем: faqs.org/faqs/jpeg-faq/part1/section-5.html . И GIMP, и ImageMagick должны использовать шкалу качества IJG.
— Михаэль Шумахер,

Ответы:


22

После сохранения вы не можете больше узнать качество.

(Установка качества при сохранении просто сообщает программе, сколько потерь вы считаете приемлемыми, но однажды сохраненные: то, что потеряно, потеряно. Вам нужно было бы, чтобы человек сказал, если что-то выглядит хорошо.)

Хммм, наверное я ошибся. Я до сих пор думаю , что выше верно, но ImageMagick «s identifyдоказывает меня неправильно?

определить -бесный myimage.jpg

Изображение: myimage.jpg
  Формат: JPEG (формат JFIF Объединенной группы экспертов по фотографии)
  Класс: DirectClass
  Геометрия: 358х240 + 0 + 0
  Разрешение: 300x300
  [...]
  Сжатие: JPEG
  Качество: 90
  Ориентация: Не определено
  [...]

Я не знаю, как изображение в моем тесте было сохранено, но в нем нет данных EXIF. Может ли качество сохраняться в изображении?


Не можете ли вы поэкспериментировать с преобразованием в разные качества? Мне трудно в это поверить, если ImageMagick не сохранит некоторые личные данные в jpg (поэтому это может не работать с другими пакетами).
— Harrymc

Интересный. Я буду ждать, чтобы увидеть, как это получится.
— Натаниэль

1
+1 Да, имиджмагик работает. Я могу несколько раз изменить качество JPEG и использовать идентификатор, чтобы увидеть изменения. Это работает, если я использую конвертирование (еще одно изображение), или другой инструмент, такой как MS Photo Editor.
— DaveParillo

1
ImageMagick делает что-то другое. Он дает оценку, а не читает то, что сделал ваш оригинальный софт. Ваш оригинальный, зачеркнутый ответ действительно более правильный. Смотрите ответ @ sleske.
— Mattdm

26

Чтобы добавить к ответу Арджана:

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

Исходный код ImageMagick (поболеть за бесплатное программное обеспечение :-)) содержит строки :

/*
  Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
  if (jpeg_info.quant_tbl_ptrs[i] != NULL)
    for (j=0; j < DCTSIZE2; j++)
      sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];

( coders/jpeg.cстрока 843 и далее в моей последней версии исходного кода ImageMagick).

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

Определите коэффициент качества JPEG с помощью Visual C # .NET (мертвая ссылка на январь 2018 года; копия на archive.org с 2015 года )

Так что да, на identifyсамом деле можно определить настройку качества JPEG только из одного сжатого файла (хотя результат не всегда может быть абсолютно точным).


1
Вау. Очень мило с вашей стороны проверить исходный код. Здорово.
— Натаниэль

@ Натаниэль, можешь ли ты выбрать этот ответ как принятый вместо моего? Благодарность! (Я не могу удалить свой, пока он принят.)
— Арджан

Он ищет таблицу квантования JPEG, которая лучше всего объясняет, как выглядит сжатый поток битов.
— jbarlow

5

Как сказал Арджан, это identify -verbose myimage.jpgбудет сделано. Поскольку imagemagick - это инструмент CLI, он может быть полезен для сценариев. Подход identify -verbose myimage.jpg | grep ...очень медленный. Я рекомендую использовать IM, как это

identify -format '%Q' myimage.jpg

Это намного быстрее.


2

JPEGsnoop - хорошая альтернатива ImageMagick identify. Загрузка довольно мала и доступна в портативном формате.

После обработки JPG, вы найдете «Приблизительный коэффициент качества» под маркером DQT.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.