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圖片》)