Найти - Пользователи
Полная версия: PIL и геометрическая трансформация изображения
Начало » Центр помощи » PIL и геометрическая трансформация изображения
1 2
reclosedev
Дело в том, что putalpha полностью заменяет альфа-канал в картинке. Чтобы сохранить исходный, нужно рисовать на нем, т.е. вместо:
mask=Image.new('L', im.size, color=255)
берем исходный альфа канал, для RGBA это 3й:
mask = im.split()[3]
Тут еще неплохо было бы добавить проверку на присутствие альфа-канала в изображении.

P.S.
В коде увидел getattr(Image, ‘BICUBIC’), это необязательно, можно просто Image.BICUBIC.
Ska1n
хоспди, всего-то… рукалицо… пасиб большое, уже сутки голову ломаю, как извратиться, а надо было всего ничего…. кстати, а почему при открытие png (сохранялся в фотошопе, как 24), с имеющимся альфа-каналом (картинка прозрачная), pil видит ее, как NonType и приходиться руками конвертировать в RGBA?
Ska1n
Подскажите, а в PIL вообще существует antialiasing для трансформирования? Скажем, когда линия в 3 пикселя изменяется по диагонали, возможно ли получившуюся лесенку из пикселей сгладить до нормальной глазу полоски?
reclosedev
Стандартных средств вроде нет.

google:python pil antialiasing
Ska1n
обгуглился весь, везде в примерах только с применением ресайза, но не трансформа
reclosedev
Ska1n
обгуглился весь, везде в примерах только с применением ресайза, но не трансформа
Это да, я и говорю, стандартных вроде нет. Но в гугле много обходных решений: тот же ресайз, aggdraw, и вообще своя реализация рисования линии
http://stackoverflow.com/questions/3122049/drawing-an-anti-aliased-line-with-thepython-imaging-library
Ska1n
reclosedev
Ska1n
обгуглился весь, везде в примерах только с применением ресайза, но не трансформа
Это да, я и говорю, стандартных вроде нет. Но в гугле много обходных решений: тот же ресайз, aggdraw, и вообще своя реализация рисования линии
http://stackoverflow.com/questions/3122049/drawing-an-anti-aliased-line-with-thepython-imaging-library
пока обошелся ресайзом, надеюсь в дальнейшем не побеспокоит эта проблема)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB