Python圖片裁剪實(shí)例代碼(如頭像裁剪)
今天就來說個(gè)常用的功能,圖片裁剪,可用于頭像裁剪啊之類的。用的還是我們之前用的哪個(gè)模塊pillow
1. 安裝pillow
用pip安裝
pip install pillow
2. 圖片裁剪
2.1 準(zhǔn)備一張圖片
2.2 我們使用的是Image中的crop(box)功能,它需要一個(gè)參數(shù)box,元組 類型,元組包括4個(gè)元素,如:
(距離圖片左邊界距離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)) ''' 裁剪:傳入一個(gè)元組作為參數(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")
運(yùn)行結(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")
運(yùn)行結(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")
運(yùn)行結(jié)果:
好了,到這里你完全可以做個(gè)頭像裁剪了的后端操作了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Python+opencv裁剪/截取圖片的幾種方式
- Python實(shí)現(xiàn)圖片裁剪的兩種方式(Pillow和OpenCV)
- python實(shí)現(xiàn)自動(dòng)網(wǎng)頁(yè)截圖并裁剪圖片
- python實(shí)現(xiàn)對(duì)圖片進(jìn)行旋轉(zhuǎn),放縮,裁剪的功能
- python通過opencv實(shí)現(xiàn)圖片裁剪原理解析
- Python圖片處理之圖片裁剪教程
- Python OpenCV實(shí)現(xiàn)裁剪并保存圖片
- python openvc 裁剪、剪切圖片 提取圖片的行和列
- 一文教會(huì)你用python裁剪圖片
相關(guān)文章
pandas.DataFrame的for循環(huán)迭代的實(shí)現(xiàn)
本文主要介紹了pandas.DataFrame的for循環(huán)迭代的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02在pycharm中使用pipenv創(chuàng)建虛擬環(huán)境和安裝django的詳細(xì)教程
這篇文章主要介紹了在pycharm中使用pipenv來創(chuàng)建虛擬環(huán)境和安裝django的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11pandas.loc 選取指定列進(jìn)行操作的實(shí)例
今天小編就為大家分享一篇pandas.loc 選取指定列進(jìn)行操作的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯
這篇文章主要為大家詳細(xì)介紹了python3調(diào)用百度翻譯API,實(shí)現(xiàn)實(shí)時(shí)翻譯,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Python中Celery異步任務(wù)隊(duì)列的具體使用
Celery是一個(gè)用于處理分布式任務(wù)和作業(yè)隊(duì)列的異步任務(wù)隊(duì)列庫(kù),本文主要介紹了Python中Celery異步任務(wù)隊(duì)列的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python學(xué)習(xí)入門細(xì)節(jié)知識(shí)點(diǎn)
我們整理了關(guān)于python入門學(xué)習(xí)的一些細(xì)節(jié)知識(shí)點(diǎn),對(duì)于學(xué)習(xí)python的初學(xué)者很有用,一起學(xué)習(xí)下。2018-03-03Django框架實(shí)現(xiàn)的分頁(yè)demo示例
這篇文章主要介紹了Django框架實(shí)現(xiàn)的分頁(yè)demo,結(jié)合實(shí)例形式分析了Django框架分頁(yè)的步驟、原理、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-05-05