Как я могу удалить теги из JPEG, не удаляя цветовой профиль?

Некоторое время я использовал exiftool , чтобы удалить ненужные метаданные из файлов jpg (и добавить информацию об авторских правах) перед их загрузкой:

exiftool -all= image.jpg

Однако сегодня я заметил, что это может повредить изображение, когда мое программное обеспечение для редактирования встраивает в метаданные дополнительную информацию о цвете (см., например, эту статью ).

Искаженное и оригинальное изображение.

Слева — поврежденное изображение, а справа — исходное изображение прямо из необработанного проявителя.

Теперь мой вопрос: какие метатеги безопасно удалять, а какие необходимо сохранить? Например, на основе тегов ICC изображения (т.е. -icc_profile:all) не следует удалять, если они существуют? (Возможный дубликат этого вопроса .)

Ответы (2)

exiftool -all= -TagsFromFile @ -ColorSpaceTags DIRorFILES

Эта команда удалит почти все метаданные, но сохранит теги ExifIFD:ColorSpace, ExifIFD:Gamma, InteropIFD:InteropIndex и ICC_Profile. ColorSpaceTags — это ярлык ExifTool для «стандартных тегов, несущих информацию о цветовом пространстве» (добавлен в версии 9.51).

Есть некоторые предостережения. -All=не удалит блок Adobe APP14 в формате jpeg, так как это может повлиять на цвета изображения. В этом блоке не хранится личная информация, поэтому обычно нет необходимости его удалять. Он также не удалит теги Exif в TIFF, поскольку сами данные изображения содержатся в блоке Exif. -CommonIFD0=можно добавить к команде, чтобы очистить наиболее распространенные теги Exif в этих изображениях. Полный список тегов, содержащихся в ярлыке CommonIFD0, см. в разделе Теги ярлыков ExifTool .

Также обратите внимание, что вы не хотите запускать -All=файл типа RAW, такой как NEF или CR2, так как это сломает файл и сделает невозможным его воспроизведение. Это связано с тем, что некоторые данные EXIF ​​и MakerNotes необходимы для правильного отображения изображения. См. FAQ №8 и FAQ №20 exifool .

Может потребоваться дополнительный проход -Orientation, чтобы сохранить любую информацию о вращении.
Это правильный ответ, однако exiftool по-прежнему выдает «Предупреждение: ICC_Profile удален». Вероятно, это связано с тем, что эта команда в основном удаляет все метаданные, а затем возвращает информацию о цветовом пространстве. Это можно подтвердить, запустив, exiftool -ColorSpaceTags photo.jpgчтобы убедиться, что информация о цветовом пространстве все еще присутствует.
@AndrewMarshall Я специально удаляю тег ориентации, чтобы автоповорот не испортил мои изображения. Мой редактор изображений не меняет тег, когда я поворачиваю изображение во время редактирования, поэтому, когда я загружаю его на сайт, который также выполняет вращение, оно поворачивается дважды.

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

  • Позже вы можете просмотреть метаданные некоторых из ваших красивых изображений, чтобы увидеть их экспозицию, информацию GPS и т. д.
  • Как сказал Пол, изображения с профилем sRGB будут корректно отображаться на 99,9% на любом устройстве или веб-браузере, в то время как изображения с другим профилем могут отображаться непредсказуемо для других людей.
  • Ваши изображения могут быть оптимизированы для лучшего и быстрого просмотра при экспорте.
  • Вы можете выполнять множество других постобработок с вашими изображениями во время экспорта, например, повышать резкость, наносить водяные знаки и т. д.

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

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