изменить непрозрачность/альфа/прозрачность в изображении png

У меня есть изображение png с прозрачностью, и я хотел бы изменить его непрозрачность, сохранив прозрачность пикселя, просто добавив процент или что-то в этом роде. Я пытался использовать putalpha, но это просто разрушает прозрачность изображения.

Я хочу что-то вроде свойства opacity в css.

Спасибо.

img{opacity:.2}
<img src="http://i.imgur.com/2zGGyYB.png"/>


person shadownrun    schedule 08.09.2016    source источник


Ответы (2)


нашел способ сделать это.

image=Image.open("star_blue.png")
opacity=0.5
bands=list(self.image.split())
if len(bands)==4:
    bands[3]=bands[3].point(lambda x:x*opacity)
    new_image=Image.merge(image.mode,bands)

нашел код здесь

спасибо ммгп

person shadownrun    schedule 09.09.2016

png изображение прозрачно, где все каналы равны нулю. 4-й канал - непрозрачность. так:

import matplotlib.pyplot as plt

im = plt.imread("http://i.imgur.com/2zGGyYB.png")
plt.imshow(im)
im[:,:,3]=np.where(im[:,:,2]>0,0.2,0)
plt.imshow(im)
person Naomi Fridman    schedule 29.06.2019