Inc-Vizitor
Май 16, 2007 15:08:37
Кто знает, как сие реальизовать на питоне под symbian 9.1?
Стандартный модуль graphics имеет функцию blit() которой можно при желании рисовать картинки с прозрачным фоном, но беда в том, что она не поддерживает антиализинг и в маске для прозрачности четко указываются - прозрачный цвет и не прозрачный =(
regall
Дек. 17, 2009 02:10:00
Inc-Vizitor
антиализинг
Думаю имеется в виду сглаживание (англ.- “antialiasing”):
http://gnugos60.blogspot.com/2007/11/anti-aliasing-in-symbian.html
KaBaSya
Дек. 17, 2009 03:06:36
Корочь я так понял, тип хочет полупрозрачности картинки(чтоб просвечивалась)
import graphics
image = graphics.Image.open('image.png')
mask = graphics.Image.new(image.size, mode='L')
mask.load('mask.png')
Маска содержит 256 градаций серого, чем темнее серая точька в маске, тем прозрачьней точька картинки (ну и сказанул).
Теперb
#canvas.blit(image, mask=mask)
И все будет прозрачьна.
Если я не так понял эт вопрос, то уж простите меня.
regall
Дек. 17, 2009 11:13:47
KaBaSya
Корочь я так понял, тип хочет полупрозрачности картинки(чтоб просвечивалась)
Нет, прозрачность поддерживается самим методом
blit().
Имеется в виду сглаживание. Например, когда рисуеш круг, чтоб при зуме он не превратился в шестиугольник.
KaBaSya
Дек. 17, 2009 11:30:05
А хай сам зайдет и обьяснит, что ему нада.
круг blit(ом) не нарисуешь.
А если зум надо качественный то
Image.resize(new_size)
Долго, но картинка будет слажена.
arok
Дек. 18, 2009 13:48:46
насколько мне известно питон не поддерживает альфа канал, прозрачности можно добится лишь с использованием масок к изображениям.
KaBaSya
Дек. 18, 2009 13:57:37
Ну прально!
igor.kaist
Дек. 19, 2009 12:35:45
regall
Имеется в виду сглаживание. Например, когда рисуеш круг, чтоб при зуме он не превратился в шестиугольник.
Нет, при увеличении сглаживания к сожалению нет :( только при уменьшении антиалиасинг применяется (если делать методом resize)
KaBaSya
Дек. 19, 2009 16:00:25
Возможено ты не ошибаешься, но специально проверил. Нарисовал точку и увеличил.
img=new(10, 10)
img.point((3, 3), width=3)
canvas.blit(img) маленькая точка
canvas.blit(img.resize((50,50)) ) большая точька кое как слажена(так же как в галерее при зуме). Если б не сглаживало, то увелич. Моментално, а так долго тогда что оно делает.
igor.kaist
Дек. 21, 2009 11:00:01
KaBaSya, ничего не понял из вашего поста. Ваш родной язык точно русский?