Вставка цветового профиля i cc в изображение с помощью Pillow ImageCMS - PullRequest
0 голосов
/ 06 марта 2020

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

from PIL import Image, ImageCms

# Read image
img = Image.open(IMG_PATH)

# Read profile
profile = ImageCms.getOpenProfile(PROFILE_PATH)

# Save image with profile
img.save(OUT_IMG_PATH, icc_profile=profile)

Я получаю следующую ошибку

Traceback (most recent call last):
  File "/home/----/Documents/code_projects/hfss-misc/icc_profiles/insert_icc_profile_into_image.py", line 17, in <module>
    img.save(OUT_IMG_PATH, icc_profile=srgb_profile)
  File "/home/----/.virtualenvs/color-correction/lib/python3.6/site-packages/PIL/Image.py", line 2102, in save
    save_handler(self, fp, filename)
  File "/home/----/.virtualenvs/color-correction/lib/python3.6/site-packages/PIL/JpegImagePlugin.py", line 706, in _save
    markers.append(icc_profile[:MAX_DATA_BYTES_IN_MARKER])
TypeError: 'PIL._imagingcms.CmsProfile' object is not subscriptable

Я подумал, что может быть проблема с моим профилем I CC, поэтому я попытался использовать профиль, сгенерированный Pillow.

from PIL import Image, ImageCms

# Read image
img = Image.open(IMG_PATH)

# Creating sRGB profile
profile = ImageCms.createProfile("sRGB")

# Save image with profile
img.save(OUT_IMG_PATH, icc_profile=profile)

Однако я все еще получаю ту же ошибку.

Кто-нибудь знает причину этого ошибка?

Моя системная среда выглядит следующим образом:

  • Ubuntu 18.04
  • Python 3.6
  • Подушка == 7.0.0
...