Определите цветовое пространство любого изображения, если icc_profile пуст (PIL) - PullRequest
0 голосов
/ 01 июня 2018

У меня огромное количество изображений, и у многих из них пустой icc_profile, когда я читаю его с помощью PIL.Я проверяю профиль icc следующим образом:

from PIL import Image
img = Image.open('image.jpg')
icc = img.info.get('icc_profile', '')

Есть ли способ определить цветовое пространство изображения (предпочтительно с использованием PIL), даже если icc_profile пуст?

1 Ответ

0 голосов
/ 02 июня 2018

Помимо поиска информации о цветовом пространстве в ICC-профиле , вы также можете просматривать теги метаданных EXIF.В частности, тег EXIF ​​ColorSpace (0xA001) указывает sRGB, когда он равен 1. Другие значения не являются стандартными, согласно этого документа , но могут указывать другие цветовые пространства.Другим полезным тегом EXIF ​​может быть InteropIndex (0x0001).

Вы можете проверить эти теги следующим образом:

from PIL import Image
img = Image.open('image.jpg')

def exif_color_space(img):
    exif = img._getexif() or {}
    if exif.get(0xA001) == 1 or exif.get(0x0001) == 'R98':
        print ('This image uses sRGB color space')
    elif exif.get(0xA001) == 2 or exif.get(0x0001) == 'R03':
        print ('This image uses Adobe RGB color space')
    elif exif.get(0xA001) is None and exif.get(0x0001) is None:
        print ('Empty EXIF tags ColorSpace and InteropIndex')
    else:
        print ('This image uses UNKNOWN color space (%s, %s)' % 
               (exif.get(0xA001), exif.get(0x0001)))

Также, если ваши файлы приходят из папка DCIM (например,в цифровых камерах или смартфонах) цветовое пространство Adobe RGB может указываться именем, начинающимся с символа подчеркивания (например, _DSC) или имеющим расширение, отличное от JPG (например, JPE).

ЕслиЦветовое пространство вашего изображения до сих пор неизвестно, самым безопасным считается только sRGB.Если позже пользователь узнает, что изображение выглядит слишком тусклым или тусклым, он может просто просмотреть изображение в других цветовых пространствах, и это, вероятно, сделает изображение более насыщенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...