改变png图像中的不透明度/ alpha /透明度

时间:2016-09-08 15:01:30

标签: python pillow

我有一个透明的png图像,我想改变其不透明度,保持像素的透明度只需添加一个百分比或其他东西。 我尝试使用putalpha,但它只会破坏图像中的透明度。

我想要的是像css中的opacity属性。

谢谢。



img{opacity:.2}

<img src="http://i.imgur.com/2zGGyYB.png"/>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

找到了办法。

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)

找到代码here

感谢mmgp

答案 1 :(得分:0)

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)