使用Python生成不規則形狀的圖形
藉助 Python 以及強大的 ofollow,noindex" target="_blank">Pillow ,我們可以生成各種邊緣不規則的圖形。
比如我們有一個原圖:
想從它上面挖出一塊不規則形狀的圖來。這個不規則形狀可以有很多種,比如下面這樣:
Line"/>
用 Python 程式碼,很容易就能實現這樣的效果。
首先,我們要製作一張 蒙板 圖,如下:
接著編寫程式碼:
from PIL import Image x, y = 160, 60 bg = Image.open('bg.jpg') # 背景圖 mask = Image.open('mask.png') # 蒙板 mask_size = mask.size crop = bg.crop((x, y, x + mask_size[0], y + mask_size[1]))
上面的程式碼將根據蒙板圖的大小,從背景圖上擷取一塊圖,如下:
接著就到了最關鍵的一步:
m2 = Image.new('RGBA', mask.size) m2.paste(crop, mask=mask)
注意 .paste()
方法的 mask
引數。上面兩行表示建立一個新的空白透明圖片,然後將剛才擷取到的 crop 圖片貼進來,貼的時候使用指定的蒙板圖片。
這個過程如下所示:
到此,就實現了不規則圖形的生成。
進一步,我們可以再給這個不規則圖形新增特效,比如陰影、描邊等。雖然 PIL 也可以做到,但最簡單的方式似乎仍然是使用蒙板對圖片進行疊加。
比如:
m3 = Image.new('RGBA', mask.size) m3.paste(m2, mask=m2) shadow = Image.open('shadow.png') m3.paste(shadow, mask=shadow)
效果如下:
對應地,我們還可以給原圖新增一個圖片被挖走後的凹痕效果,方法是先製作一張對應的內陰影效果圖:
然後與原背景圖疊加: