Удалить свойство "качество" из JPG - Фотопедия
4 голосов
/ 05 августа 2018

Я заметил, что на некоторых фотографиях отсутствует информация о качестве в их метаданных с помощью команды идентификации ImageMagick

identify -verbose image.jpg

Как можно удалить эту информацию?

Это один пример

enter image description here

Ответы [ 3 ]

34 голосов
/ 05 августа 2018

Короче говоря: нет смысла заботиться об этом значении, и его наличие не увеличивает размер вашего файла.

identify -verbose filename(s)

отображает качество, только если изображение использует стандарт матрица квантования . Вы можете использовать нестандартную матрицу (- определить jpeg: q-table = ...) , чтобы это значение исчезло.

Качество все равно будет отображаться, когда (лучше) команда

identify -format 'the quality of %f is %Q' filename(s)
Используется

(лучше для отображения качества, т. Е. Оно ищет только это значение, а не выполняет детальный анализ изображения, что делает его намного быстрее, чем "identifive-verbose" )

Дело в том, что вы не можете действительно удалить значение качества, точно так же, как вы не можете «удалить» ширину или высоту изображения. Это неотъемлемый атрибут изображения JPEG и вычисляется ImageMagick из таблиц квантования JPEG, содержащихся в файле.

Однако он не имеет никакого стандартизированного значения. Значение, отображаемое в ImageMagick, соответствует настройке качества libjpeg в Independent JPEG Group (также используемой в GIMP и многих других), другие программные пакеты могут иметь свои собственные несовместимые показатели качества. В таком нестандартном случае ImageMagick может только оценить качество, посмотрев, какая таблица стандартного качества похожа на фактическую. Использование "- debug All" отобразит (среди прочего) следующее:

Quality: 85 (exact)

или

Quality: 85 (approximate)

По какой-то причине "- verbose" отображает значение только тогда, когда оно является точным, тогда как "- формат% Q" всегда отображает качество, даже если оно просто приблизительно.

12 голосов
/ 05 августа 2018

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

См. этот ответ суперпользователя .

Edit: Upvotes для ответа @szulat, гораздо более подробный, чем мой.

1 голос
/ 05 августа 2018

Как указано szulat и StarGeek , "качество" не является свойством, которое можно удалить из изображения JPEG.

Если ваша цель - удалить метаданные, вы можете использовать любую из следующих команд:

exiftool -All= image.jpg
jpegoptim -s image.jpg

Некоторые сайты обмена изображениями автоматически удаляют метаданные.

...