今天就來說個常用的功能,圖片裁剪,可用于頭像裁剪啊之類的。用的還是我們之前用的哪個模塊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 Imageim = Image.open("renren.jpeg")# 圖片的寬度和高度img_size = im.sizeprint("圖片寬度和高度分別是{}".format(img_size))'''裁剪:傳入一個元組作為參數元組里的元素分別是:(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離+裁剪框寬度x+w,距離圖片上邊界距離+裁剪框高度y+h)'''# 截取圖片中一塊寬和高都是250的x = 100y = 100w = 250h = 250region = im.crop((x, y, x+w, y+h))region.save("./crop_test1.jpeg")# 截取圖片中一塊寬是250和高都是300的x = 100y = 100w = 250h = 300region = im.crop((x, y, x+w, y+h))region.save("./crop_test2.jpeg")運行結果:
(venv) allenwoo@~/renren/code$ python test.py
圖片寬度和高度分別是(500, 500)


2.4 上代碼2-平均切割成4塊:
# 把圖片平均分成4塊# 第1塊w = img_size[0]/2.0h = img_size[1]/2.0x = 0y = 0region = im.crop((x, y, x+w, y+h))region.save("./crop_average-1.jpeg")# 第2塊x = wy = hregion = im.crop((x, y, x+w, y+h))region.save("./crop_average-2.jpeg")# 第3塊x = 0y = hregion = im.crop((x, y, x+w, y+h))region.save("./crop_average-3.jpeg")# 第4塊x = wy = 0region = 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 = 50y = 50w = 150h = 150region = im.crop((x, y, x+w, y+h))region.save("./rotate-r30-crop.jpeg")運行結果:



好了,到這里你完全可以做個頭像裁剪了的后端操作了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答