天天看點

Python 技術篇-用PIL庫修改圖檔透明度執行個體示範,改變png圖檔色道為RGBA、RGB

PIL 庫可以設定圖檔透明度。

pip install pillow

安裝了 pillow 庫後就可以使用 PIL 庫了。

我們都知道,圖檔是由無數個點組成的,300x300 像素,就是 9 萬個點。

每個點都有對應的顔色,PIL 圖可以擷取和設定每個像素點的顔色。

顔色有兩種 RGBA 和 RGB,(r, g, b, a) 前者有 4 個值,後者有 3 個值,每個都是 0 到 255,RGBA 的 a 就代表透明度。

getpixel((x, y))

是擷取對應像素點的顔色。

putpixel((x, y), color)

是設定對應像素點的顔色。

from PIL import Image

img = Image.open("安娜的櫥窗.jpg")
img = img.convert('RGBA') # 修改顔色通道為RGBA
x, y = img.size # 獲得長和寬

# 設定每個像素點顔色的透明度
for i in range(x):
    for k in range(y):
        color = img.getpixel((i, k))
        color = color[:-1] + (100, )
        img.putpixel((i, k), color)

img.save("安娜的櫥窗_switch.PNG") # 要儲存為.PNG格式的圖檔才可以      

注:.PNG 格式的圖檔才支援透明度設定哦!

重點講一下這段代碼:

color = color[:-1] + (100, )

因為擷取到的 color 是 (r, g, b, 255) 這是一個元組,[:-1] 是切片,代表擷取前 3 個元素,就是 (r, g, b),然後再加個 (100, )這是包含一個數元組的寫法。加起來就是 (r, g, b, 100) 達到修改透明度的效果。

運作後的效果圖如下:

Python 技術篇-用PIL庫修改圖檔透明度執行個體示範,改變png圖檔色道為RGBA、RGB

喜歡的點個贊❤吧!