說在最前
在使用pillow制作海報的過程中,最經常用的場景:
準備
- 環境
- linux/windows
- python 3.6.*
- 依賴
- Pillow(使用前請先使用 pip install Pillow 安裝依賴)
講解
本文講解第3個,畫一個圓形的用戶頭像,實際上為前面一篇的應用,我們直接通過代碼講解
# 導入需要的包
from PIL import Image, ImageDraw
import os
# 背景尺寸
bg_size = (750, 1334)
# 生成一張尺寸為 750x1334 背景色為白色的圖片
bg = Image.new('RGB', bg_size, color=(255,255,0))
# 頭像尺寸
avatar_size = (200, 200)
# 頭像路徑
avatar_path = os.path.join('.', 'imgs', 'avatar.jpeg')
# 加載頭像文件到 avatar
avatar = Image.open(avatar_path)
# 把頭像的尺寸設置成我們需要的大小
avatar = avatar.resize(avatar_size)
# 新建一個蒙板圖, 注意必須是 RGBA 模式
mask = Image.new('RGBA', avatar_size, color=(0,0,0,0))
# 畫一個圓
mask_draw = ImageDraw.Draw(mask)
mask_draw.ellipse((0,0, avatar_size[0], avatar_size[1]), fill=(0,0,0,255))
# 計算頭像位置
x, y = int((bg_size[0]-avatar_size[0])/2), int((bg_size[1]-avatar_size[1])/2)
# box 為頭像在 bg 中的位置
# box(x1, y1, x2, y2)
# x1,y1 為頭像左上角的位置
# x2,y2 為頭像右下角的位置
box = (x, y, (x + avatar_size[0]), (y + avatar_size[1]))
# 以下使用到paste(img, box=None, mask=None)方法
# img 為要粘貼的圖片對你
# box 為圖片 頭像在 bg 中的位置
# mask 為蒙板,原理同 ps, 只顯示 mask 中 Alpha 通道值大于等于1的部分
bg.paste(avatar, box, mask)
# 要保存圖片的路徑
img_path = os.path.join('.', 'output', 'round_avatar.jpg')
# 保存圖片
bg.save(img_path)
print('保存成功 at {}'.format(img_path))
# GUI環境可以使用下面方式直接預覽
# bg.show()
運行效果
round_avatar.jpg
說明
圖片來自網絡,如有侵權,請與作者聯系
轉載請注明出處,謝謝