Python圖片裁剪例項程式碼(如頭像裁剪)

Python圖片裁剪例項程式碼(如頭像裁剪)
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

今天就來說個常用的功能,圖片裁剪,可用於頭像裁剪啊之類的。用的還是我們之前用的哪個模組pillow

1. 安裝pillow

用pip安裝


pip install pillow

2. 圖片裁剪

2.1 準備一張圖片

2.2 我們使用的是Image中的crop(box)功能,它需要一個引數box,元組 型別,元組包括4個元素,如:
(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離 裁剪框寬度x w,距離圖片上邊界距離 裁剪框高度y h)

如圖:(x, y, x w, y h), x,y是裁剪框左上角的座標, x w,y h是右下角的座標

2.3 上程式碼1-裁剪:


# -*-coding:utf-8-*-
from PIL import Image
im = Image.open("renren.jpeg")
# 圖片的寬度和高度
img_size = im.size
print("圖片寬度和高度分別是{}".format(img_size))
'''
裁剪:傳入一個元組作為引數
元組裡的元素分別是:(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離 裁剪框寬度x w,距離圖片上邊界距離 裁剪框高度y h)
'''
# 擷取圖片中一塊寬和高都是250的
x = 100
y = 100
w = 250
h = 250
region = im.crop((x, y, x w, y h))
region.save("./crop_test1.jpeg")
# 擷取圖片中一塊寬是250和高都是300的
x = 100
y = 100
w = 250
h = 300
region = im.crop((x, y, x w, y h))
region.save("./crop_test2.jpeg")

執行結果:

(venv) [email protected]~/renren/code$ python test.py
圖片寬度和高度分別是(500, 500)

2.4 上程式碼2-平均切割成4塊:


# 把圖片平均分成4塊
# 第1塊
w = img_size[0]/2.0
h = img_size[1]/2.0
x = 0
y = 0
region = im.crop((x, y, x w, y h))
region.save("./crop_average-1.jpeg")
# 第2塊
x = w
y = h
region = im.crop((x, y, x w, y h))
region.save("./crop_average-2.jpeg")
# 第3塊
x = 0
y = h
region = im.crop((x, y, x w, y h))
region.save("./crop_average-3.jpeg")
# 第4塊
x = w
y = 0
region = im.crop((x, y, x w, y h))
region.save("./crop_average-4.jpeg")

執行結果:

2.5 上程式碼3-旋轉圖片:


# 旋轉圖片
# 左旋轉45度
im = im.rotate(45)
im.save("./rotate-l45.jpeg")
# 右旋轉30度
im = im.rotate(-30)
im.save("./rotate-r30.jpeg")
# 右旋轉45度, 並裁剪一塊
im = im.rotate(-30)
x = 50
y = 50
w = 150
h = 150
region = im.crop((x, y, x w, y h))
region.save("./rotate-r30-crop.jpeg")

執行結果:

好了,到這裡你完全可以做個頭像裁剪了的後端操作了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援指令碼之家。

您可能感興趣的文章:

python使用Image處理圖片常用技巧分析python實現識別相似圖片小結Python實現拼接多張圖片的方法Python Opencv識別兩張相似圖片Python比較兩個圖片相似度的方法python通過pil將圖片轉換成黑白效果的方法python下載圖片實現方法(超簡單)Python實現使用卷積提取圖片輪廓功能示例

相關文章

程式語言 最新文章