1. 程式人生 > >Python圖片裁剪實例代碼(如頭像裁剪)

Python圖片裁剪實例代碼(如頭像裁剪)

cin follow comm 都是 {} pill 左旋轉 light 頭像裁剪

轉載地址:https://www.jb51.net/article/116789.htm

1. 安裝pillow

用pip安裝

?
1 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-裁剪:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # -*-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) allenwoo@~/renren/code$ python test.py
圖片寬度和高度分別是(500, 500)

技術分享圖片

技術分享圖片

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # 把圖片平均分成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-旋轉圖片:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 旋轉圖片 # 左旋轉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圖片裁剪實例代碼(如頭像裁剪)