Я использовал Google Takeout для загрузки всех своих фотографий из Google Фото и понял, что Google сжимает эти изображения в 2-3 раза, чтобы предоставить мне бесплатное хранилище. Это здорово, но многие мои изображения хранятся в исходном размере. jpg
К сожалению, с расширением сохраняются как «сжатые Google», так и изображения «исходного качества» . Мне интересно, как понять, что есть что? Добавляет ли Google теги метаданных, чтобы определить, были ли они повторно сжаты?
Google добавляет некоторые теги к изображениям, которые он повторно сжимает , включая изображения, сохраненные как «Высокое качество», разрешение которых может быть уменьшено до 16 Мп или меньше. Изображения, сохраненные с качеством «Исходное», не изменяются. В настоящее время добавлены или изменены следующие теги:
Следующая команда может отображать изображения, которые были изменены Google:
exiftool -if '($XMPToolkit =~ /^XMP\ Core\ [\.\d]+$/) \
and ($ImageUniqueID)' -s2 -q -FilePath -ext jpg .
Некоторые предостережения
Команда может включать изображения, не измененные Google. Другие программы могут использовать те же или похожие строки XMPToolkit, что и Google, особенно если они используют ту же библиотеку записи изображений, что и Google. Например, GIMP использует «XMP Core 4.4.0-Exiv2». Photoshop использует «Adobe XMP Core 5.3-c011 66.145661, 06.02.2012-14:56:27» (как отмечает StarGeek ).
Команда может пропустить изображения, измененные Google. Это зависит от того, как Google изменил свою обработку изображений за эти годы. Например, неизвестно (мне), когда Google начал использовать ImageUniqueID
тег. Поэтому для некоторых изображений он может не быть установлен.
Есть и другие теги, которые могут быть изменены Google, но их нельзя проверить, потому что они есть на многих изображениях в формате JPEG, в том числе прямо с моей камеры (FujiFilm X-T20):
Другие варианты
Вы также можете догадаться , были ли изменены изображения, сравнив размеры файлов или используя такие инструменты, как jpegjudge
.
Если вы знаете типичный размер jpeg с вашей камеры, вы сможете определить, к каким изображениям было добавлено дополнительное сжатие, просто по размеру их файла.
СтарГик
XMPToolKit
тег имел значениеXMP Core 5.5.0
. Вы можете перечислить только эти изображения с помощью этой команды:exiftool -if "$XMPToolkit eq 'XMP Core 5.5.0'" -filename -ext jpg .
(Обратные двойные/одинарные кавычки, если на Linux/Mac)СтарГик
$XMPToolkit=~/^XMP Core/
чтобы игнорировать номера версий.ксиота
СтарГик
Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27
в этой области. Это можно использовать для фильтрации файлов, которые определенно не были повторно сжаты.СтарГик
JPEGDigest
такжеYCbCrSubSampling
будет изменено повторным сжатием. Это не гарантирует, что файл был повторно сжат, но может использоваться для фильтрации файлов, которые не были повторно сжаты.СтарГик
YCbCr4:2:0 (2 2)
иUnknown
не начинались таким образом? Вполне возможно, моя тестовая выборка состояла только из трех изображений, которые были в статье HuffingtonPost.ксиота
exiftool
выходе, Google также добавляетImageUniqueID
СтарГик