Python圖片裁剪實例代碼(如頭像裁剪)
今天就來說個常用的功能,圖片裁剪,可用于頭像裁剪啊之類的。用的還是我們之前用的哪個模塊pillow
1. 安裝pillow
用pip安裝
pip install pillow
2. 圖片裁剪
2.1 準(zhǔn)備一張圖片

2.2 我們使用的是Image中的crop(box)功能,它需要一個參數(shù)box,元組 類型,元組包括4個元素,如:
(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離+裁剪框?qū)挾葂+w,距離圖片上邊界距離+裁剪框高度y+h)
如圖:(x, y, x+w, y+h), x,y是裁剪框左上角的坐標(biāo), x+w,y+h是右下角的坐標(biāo)

2.3 上代碼1-裁剪:
# -*-coding:utf-8-*-
from PIL import Image
im = Image.open("renren.jpeg")
# 圖片的寬度和高度
img_size = im.size
print("圖片寬度和高度分別是{}".format(img_size))
'''
裁剪:傳入一個元組作為參數(shù)
元組里的元素分別是:(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離+裁剪框?qū)挾葂+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")
運行結(jié)果:
(venv) allenwoo@~/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")
運行結(jié)果:




2.5 上代碼3-旋轉(zhuǎn)圖片:
# 旋轉(zhuǎn)圖片
# 左旋轉(zhuǎn)45度
im = im.rotate(45)
im.save("./rotate-l45.jpeg")
# 右旋轉(zhuǎn)30度
im = im.rotate(-30)
im.save("./rotate-r30.jpeg")
# 右旋轉(zhuǎn)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")
運行結(jié)果:



好了,到這里你完全可以做個頭像裁剪了的后端操作了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pandas.DataFrame的for循環(huán)迭代的實現(xiàn)
本文主要介紹了pandas.DataFrame的for循環(huán)迭代的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
在pycharm中使用pipenv創(chuàng)建虛擬環(huán)境和安裝django的詳細教程
這篇文章主要介紹了在pycharm中使用pipenv來創(chuàng)建虛擬環(huán)境和安裝django的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
python3調(diào)用百度翻譯API實現(xiàn)實時翻譯
這篇文章主要為大家詳細介紹了python3調(diào)用百度翻譯API,實現(xiàn)實時翻譯,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08

