Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2010 04:20:43

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с PIL

Здравствуйте, скажите, никто не сталкивался с проблемой отображения цветов?
Проблема в том, что вот такой простой Django-код (при работе на хостинге jino.ru):

def AddThumbnail(image_path):
width = 240
format = image_path[-4:].upper()
thumb_path = image_path[:-4]
if (format == 'JPEG'):
format = '.JPEG'
thumb_path = image_path[:-5]
thumb_path +='_thumb'+format
graphic_formats = ['.JPG','.JPEG','.PNG','.BMP',]
if (format in graphic_formats):
thumb = Image.open(image_path,'r')
#thumb = thumb.convert('RGBA')
#thumb = thumb.resize((width, round(height)), Image.ANTIALIAS)
#thumb.thumbnail((320, 240), Image.ANTIALIAS)
thumb.save(thumb_path)
приводит к таким последствиям: http://www.objectiv.org.ru/content/works?category=desing&page=1
т.е. сбою цветов (кликните на картинке и увидете, какой она должна быть)

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



Офлайн

#2 Авг. 28, 2010 04:53:59

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Проблема с PIL

Кажется, .thumbnail может преобразовать картинку в палитровый формат (смотрите .mode)
Если проблема в этом - сделайте перед записью .convert('RGBA')



Офлайн

#3 Авг. 28, 2010 05:49:59

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с PIL

def AddThumbnail(image_path):
width = 240.0
format = image_path[-4:].upper()
thumb_path = image_path[:-4]
if (format == 'JPEG'):
format = '.JPEG'
thumb_path = image_path[:-5]
thumb_path +='_thumb'+format
graphic_formats = ['.JPG','.JPEG','.PNG','.BMP',]
if (format in graphic_formats):
thumb = Image.open(image_path)
height = float(thumb.size[1])*(width/float(thumb.size[0]))
thumb = thumb.resize((width, round(height)), Image.ANTIALIAS)
if thumb.mode not in ('L', 'RGB'):
thumb = thumb.convert('RGB')
thumb.save(thumb_path)
Вот код, который мне нужен (в смысле, я ошибся в начале - мне нужен ресайз а не тумб). Как видите, я делаю конверт в RGB (с RGBA аналогичная ситуация) - результат тот же.
Посмотрел в фотошопе - картинка в CMYK
Нарыл в инете - http://stackoverflow.com/questions/2667214/pil-1-1-6-saves-photoshop-cmyk-image-colour-wrong
Видимо все же проблема в их ПИЛе.
Написал в саппорт, но там уже не одна заявка висит … =(



Офлайн

#4 Авг. 28, 2010 14:20:57

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с PIL

в саппорте ответили, что обновят PIL. Видимо проблема в версии 1.1.5



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version