ImageResizer и последствия удаления информации EXIF ​​изображения

Наше веб-приложение получает файлы изображений из десятков различных сторонних источников. Бизнес-правила требуют, чтобы мы сохраняли исходные изображения как полученные, без каких-либо манипуляций с изображениями. Мы обрабатываем изменение размера, нанесение водяных знаков, вращение и т. Д., Когда изображение запрашивается через выделенный веб-сервер для изображений с помощью ImageResizer. autorotate = true и copymetadata = true являются значениями по умолчанию на сервере изображений.

Один из сторонних источников подвергает сомнению поворот изображения. Когда они первоначально получают изображение, они обрабатывают данные ориентации EXIF ​​изображения, поворачивая изображение. Однако они сохраняют предварительно повернутую версию данных об ориентации EXIF. Поэтому, когда изображение приходит к нам, оно поворачивается, но флаг ориентации EXIF ​​все еще остается на изображении. Когда изображение запрашивается с нашего сервера изображений, обрабатывается флаг ориентации (через autorotate=true), результирующее запрашиваемое изображение снова поворачивается (отображается неправильно), а данные ориентации EXIF ​​удаляются. Это приводит к несчастным пользователям.

Убедить третье лицо изменить способ обработки данных EXIF ​​не вариант.

Решением, которое мы планируем использовать для этих конкретных изображений, является установка autorotate = false по запросу. Однако информация об ориентации EXIF ​​все еще будет там. Поскольку я не вижу опции ImageResizer для удаления только данных об ориентации EXIF ​​(кроме попадания в пространство имен System.Drawing, которое мы бы не хотели делать), мы рассматриваем установку copymetadata=false для этих конкретных изображений.

Каковы недостатки веб-сервера, предоставляющего изображения без метаданных? В частности, в отношении цветового пространства / профилей? Эти изображения в конечном итоге копируются и используются на других сайтах.

1 ответ

Решение

ImageResizer не копирует какие-либо метаданные или данные ориентации EXIF, если вы не сообщите об этом. настройка &autorotate=false на этих разбитых изображениях будет работать нормально.

Даже если вы используете CopyMetadata, это, в частности, исключает копирование данных об ориентации и других растровых чисел. Вы видели сценарий, где изображение запрашивается с &autorotate=false позже появился еще повернутый в зрителя?

CopyMetadata в первую очередь полезна для копирования данных об авторских правах и GPS. Он не обрабатывает метаданные XML или XMP и не копирует цветовые пространства - ImageResizer всегда выводит изображения sRGB, по умолчанию в Интернете - информация о цветовом пространстве не требуется.

Другие вопросы по тегам