PIL 1.1.6 сохраняет Photoshop CMYK цвет изображения неправильно - PullRequest
2 голосов
/ 19 апреля 2010

У меня изображение . Я хочу изменить размер, используя PIL, но он выходит вот так .

Даже без изменения размера все равно портит цвет .

Минимальный код:

from PIL import Image
import os
import urllib
import webbrowser

orig_url = 'http://mercedesclub.org.uk/images/stackoverflow-question/least-popular-colours-_-500-x-500.jpg'
temp_fn, _ = urllib.urlretrieve(orig_url)

im = Image.open(temp_fn)

fn = os.tempnam() + '.jpg'
im.save(fn)
webbrowser.open(fn)

Я пробовал Image.open(temp_fn).convert(format) с форматами 'RGB', 'CMYK' и 'L', но все равно получаю странно окрашенные или серые результаты.

Когда я загружаю образ с моего жесткого диска, я вижу:

>>>im.info  
{'adobe': 100, 
'progression': 1, 
'exif': 'Exif\x00\x00MM\x00*...\x7f\xff\xd9', 
'adobe_transform': 100}

>>>im.format  
'JPEG'  

>>>im.mode  
'CMYK'  

>>> im._getexif()
{40961: 65535, 40962: 500, 40963: 500, 296: 2, 34665: 164, 274: 1, 305: 'Adobe Photoshop CS Macintosh', 306: '2010:02:26 12:46:54', 282: (300, 1), 283: (300, 1)}

Спасибо и дайте мне знать, если вам нужны дополнительные данные.

Ответы [ 4 ]

4 голосов
/ 19 апреля 2010

По ссылке interjay проблема была исправлена ​​путем обновления до PIL 1.1.7 . Это включает в себя обновление , позволяющее форматам CMYK, созданным Photoshop, работать правильно. Но не вините ПИЛ, как говорит Фредрик Лунд :

«CMYK в JPEG - один большой беспорядок, главным образом потому, что Adobe ошиблась в Photoshop много лет назад».

Кстати, вы можете узнать, какая у вас версия PIL, выполнив:

>>> Image.VERSION  
'1.1.7'  

Обновление : чтобы полученное изображение отображалось в IE, необходимо добавить .convert('RGB'), чтобы вы выводили в стандартном формате jpeg RGB, а не CMYK.

2 голосов
/ 19 апреля 2010

PIL, похоже, испытывает проблемы с загрузкой некоторых файлов JPEG в формате CMYK. Если вы можете преобразовать изображение в более широко поддерживаемый цветовой формат (используя другой инструмент), это поможет.

Здесь выложен патч PIL здесь , но я не пробовал.

1 голос
/ 19 апреля 2010

У меня были такие проблемы, когда исходное изображение было сохранено в режиме CMYK. Мне пришлось сохранить изображение в RGB перед обработкой PIL.

0 голосов
/ 27 июля 2011

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

См. Здесь, чтобы настроить это: http://www.flickr.com/photos/kaichanvong/5979227438/in/photostream

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

Сначала не замечал этого на Lion - но стало заметно на iPad / других машинах. Очень странно.

Если у вас включена опция несоответствия / отсутствия профиля, вы можете указать Photoshop добавить версию по умолчанию. Я понимаю, что для пакетирования это не окончательное решение ... но оно должно помочь вам лучше понять проблему.

Преобразование в RGB в этом случае не вариант, так как цвета не копируются должным образом - например. радиоактивный халк как зелёный

...