Форум сайта python.su
:) ну так ты не задумывался, что можно конвертировать на промежутке , чисто теоретически :)
Офлайн
Ну чтож, объявляю этот топик, топиком ненависти к PIL =)
Офлайн
sypper-pitВ PIL'e вообще все хреново, и не только с PNG, у меня пробелмы возникли с GIF-анимацией, так как PIL скотина GIF87 делает (который не поддерживает анимацию), пришлось дописывать свой модулец для поддержки анимированных гифов: познавательно, конечно, но, как бы медленно….
а может это происходит только с PNG
lorienЕсть инструмент и он призван решать свои задачи, просто нужно использовать PIL там, где не нужно ничего сложного/критичного по скорости (типа простенькую капчу сваять), …. Конечно если писать графический редактор =) =) =) …, то тут можно его и возненавидеть =).
Ну чтож, объявляю этот топик, топиком ненависти к PIL smile
lorien+1, там, честно говоря, сплощь и рядом в коде ахтунг =)
а там какой-то ахтунг
lorienАга, куда посылать-то ? Последний релиз 3 года назад был =)
Тока это, конечно, неправильно. А правильно было бы послать автору патчи, которые фиксят баги
Офлайн
regallСейчас есть бета новой версии 1.1.7, правда ничего кординально нового там нет.
Ага, куда посылать-то ? Последний релиз 3 года назад был
Отредактировано (Ноя. 14, 2009 15:53:49)
Офлайн
альтернативы:
freeimage: http://sourceforge.net/projects/freeimagepy/
imagemagick: http://www.imagemagick.org/script/api.php#python
gegl: http://gegl.org/pygegl/ (?)
ваши варианты? =)
Офлайн
gegl думаю довольно перспективная штука, хотят питонячий биндинг не смотрел
Офлайн
собственно говоря, проблема ради которой создавался топик, решилась следующим образом:
1. ставим патчик к PIL
http://git.kitsu.ru/patched/pil.git?a=commitdiff;h=b8f1c572430b06b5d4294fb2bf29327275120554
2. и делаем вот так:
from PIL import Image
im = Image.open("sega.png")
im = im.convert("RGBa")
cur_width, cur_height = im.size
new_width, new_height = (200, 200)
if not new_width == 0 and not new_height == 0:
ratio = min(float(new_width)/cur_width,
float(new_height)/cur_height)
else:
if new_width == 0:
ratio = float(new_height)/cur_height
else:
ratio = float(new_width)/cur_width
new_dimensions = (int(round(cur_width*ratio)),
int(round(cur_height*ratio)))
new_im = im.resize(new_dimensions, Image.ANTIALIAS)
new_im = new_im.convert("RGBA")
new_im.save('rez.png')
Отредактировано (Ноя. 27, 2009 16:51:58)
Офлайн