Форум сайта python.su
Приветсвтую,
Нужно наложить на изображение новый слой белого изображения и сделать новый слой полупрозрачным. Как такое можно сделать?
Делаю следующим образом, но никакого эффекта оно мне не дает:
def _blink(image):
blink = Image.new('RGBA', (image.size[0], image.size[1]))
blink.paste((255, 255, 255, 180), (0, 0, image.size[0], image.size[1]), image)
blink.paste(image, (0, 0, image.size[0], image.size[1]), image)
return blink
Офлайн
Все просто:
img=Image.open('test.jpg')
r,g,b=img.split()
a=Image.new('L',img.size,0xcc)
out=Image.merge('RGBA',(r,g,b,a))
out.save('test.png')
Офлайн
igor.kaist, что-то у меня не так работает как хотелось бы. Может быть я просто не правильно выразился.
Есть код:
def _blink(image):
# Мое изображение RGBA, при не указании параметра a выдает ошибку
r, g, b, a = image.split()
blink = Image.new('L', (image.size[0], image.size[1]), 0xcc)
image = Image.merge('RGBA',(r, g, b, blink))
return image
Отредактировано (Март 11, 2010 20:41:17)
Офлайн
pyOutу alpha канала нет цвета….
Т.е. мне нужно наложить на верхнюю половину изображения белый слой и сделать ему прозразчность 0.5
Отредактировано (Март 11, 2010 22:29:50)
Офлайн
igor.kaist, не понял. Можешь привести примерчик?
Офлайн
pyOutНаоборот, приведи примерчик того что тебе нужно :) покажи картинки “до” и “после”, а я тебе напишу как это сделать…
Можешь привести примерчик?
Отредактировано (Март 13, 2010 11:44:51)
Офлайн
igor.kaist, ok :)
Примерно нужно сделать следующее:
Исходное изображение:
http://img194.imageshack.us/i/beforef.png/
Результирующее изображение:
http://img638.imageshack.us/i/afterc.png/
Офлайн
Все, понял :)
import Image
img=Image.open('test.jpg')
# создаем белый слой, высотой в половину оригинала
white_layer=Image.new('RGB',(img.size[0],img.size[1]/2),'white')
# создаем маску прозрачности, тоже высотой в половину оригинала
mask=Image.new('L',(img.size[0],img.size[1]/2),0x7f)
# вставляем белый слой, используя маску прозрачности
img.paste(white_layer,(0,0),mask=mask)
# profit....
img.save('test.png')
Отредактировано (Март 13, 2010 18:52:12)
Офлайн
igor.kaist, спасибо то что нужно и отдельное спасибо за хендбук. Скажи пожалуйста, а если изображение является прозрачным т.е. без фона код сильно измениться чтобы добавить полупрозрачность на изображение без фона?
Офлайн
pyOutНу смотри пост #2, там код как раз это делает.
код сильно измениться чтобы добавить полупрозрачность на изображение без фона?
Офлайн