2010-12-07 269 views
9

我一直在使用PIL裁剪圖片,現在我也想做出一定的矩形區域透明,說Python PIL:如何使區域在PNG中透明?

from PIL import Image 
im = Image.open("sample.png") 
transparent_area = (50,80,100,200) 
... 

我會很感激一些代碼,我一直沒能找到它,謝謝提前了很多!

乾杯,

霍夫

回答

20
import Image 
import ImageDraw 
im = Image.open("image.png") 
transparent_area = (50,80,100,200) 

mask=Image.new('L', im.size, color=255) 
draw=ImageDraw.Draw(mask) 
draw.rectangle(transparent_area, fill=0) 
im.putalpha(mask) 
im.save('/tmp/output.png') 

我學會了如何做到這一點here

+1

Upvoted you,因爲代碼幾乎完全符合我寫的內容。 – kindall 2010-12-07 20:13:11

2

沒有源代碼,但是這是應該工作的一般方法:創建用於在「L」(灰度)模式作爲一個單獨的圖像對象的圖像的α信道。用白色(完全不透明)填充Alpha通道,並在Alpha通道圖像上繪製黑色矩形(完全透明)。將要應用透明度的圖像轉換爲RGBA,並使用圖像對象putalpha()方法將您創建的Alpha通道複製到圖像的Alpha通道。另存爲PNG。

相關問題