图片马赛克效果
这篇文章会介绍使用 Python 的 Pillow 第三方函数库,实作可以将图片打上马赛克的效果。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
安装 Pillow
输入下列指令安装 Pillow,根据个人环境使用 pip 或 pip3,如果使用 Colab 或 Anaconda Jupyter,已经内建 Pillow 函数库。
!pip install Pillow
运用缩放尺寸,实现马赛克效果
透过 Pillow Image 里的 size 方法读取图片长宽,再透过 resize 方法,根据 level 将图片缩小到指定尺寸,再使用 resample = Image.NEAREST 参数将图片放大,就能得到一张马赛克图片的效果。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image
img = Image.open('oxxostudio.jpg') # 開啟圖片
w,h = img.size # 讀取圖片長寬
level = 50 # 設定縮小程度
img2 = img.resize((int(w/level),int(h/level))) # 縮小圖片
img2 = img2.resize((w,h), resample = Image.NEAREST) # 放大圖片為原始大小
img2.save('test.jpg') # 存檔
选取特定范围马赛克
参考“裁切与旋转图片”文章,裁切马赛克图片中的特定区域,再将这个区域贴到原本图片中同样的位置,就能实现特定区域马赛克的效果。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image
img = Image.open('oxxostudio.jpg')
w,h = img.size
level = 20
img2 = img.resize((int(w/level),int(h/level)))
img2 = img2.resize((w,h), resample = Image.NEAREST)
x1, y1 = 60, 60 # 定義選取區域的左上角座標
x2, y2 = 250, 250 # 定義選取區域的右上角座標
area = img2.crop((x1,y1,x2,y2)) # 裁切區域
img.paste(area,(x1, y1)) # 在原本的圖片裡貼上馬賽克區域
img.save('test.jpg')
微信扫码关注
抖音扫码关注