1. 程式人生 > >Python PIL.Image之修改圖片背景為透明

Python PIL.Image之修改圖片背景為透明

------------------------------------------------語法基礎------------------------------------------------

import PIL.Image as Image                      相關模組

img=Image.open('round.png')                  使用Image開啟圖片,返回一個物件

img=img.convert('RGBA')                        圖片轉換為四通道。第四個通道就是我們要修改的透明度。返回新的物件

L,H=img.size                                            圖片尺寸

color_0 = img.getpixel((0,0))                    返回圖片某個座標點顏色。

img.putpixel((x,y),(0,0,0,0))                      修改此座標點的顏色,沒有返回值,直接修改img

------------------------------------------------操作方法------------------------------------------------

1.只需要按特定規則把圖片畫素的第四個通道改為0即可。也可以是0-255之間的其他值,設定半透明。

2.也可以把前三個通道改為其他顏色,隨你喜歡。

3.規則請隨意制定。能改成什麼樣,取決於自己的腦洞。

4.下面的程式碼把所有與(0,0)點座標相同顏色的點改為透明。

------------------------------------------------程式碼實現------------------------------------------------

import PIL.Image as Image


# 以第一個畫素為準,相同色改為透明
def transparent_back(img):
    img = img.convert('RGBA')
    L, H = img.size
    color_0 = img.getpixel((0,0))
    for h in range(H):
        for l in range(L):
            dot = (l,h)
            color_1 = img.getpixel(dot)
            if color_1 == color_0:
                color_1 = color_1[:-1] + (0,)
                img.putpixel(dot,color_1)
    return img

if __name__ == '__main__':
    img=Image.open('round.png')
    img=transparent_back(img)
    img.save('round2.png')
------------------------------------------------效果展示------------------------------------------------

------------------------------------------------結語------------------------------------------------

putpixel方法對腦洞大的人來說是一個特別好的玩具,按照自己制定的規則生成影象。然後把影象生成GIF圖,我們最終可以做把腦洞變成會動的畫面。(關於合成GIF,參見我的同類博文《Python  PIL.Image之製作GIF圖片》)