詳解Python圖像處理庫(kù)Pillow常用使用方法
PIL(Python Image Library)是python的第三方圖像處理庫(kù),但是由于其強(qiáng)大的功能與眾多的使用人數(shù),幾乎已經(jīng)被認(rèn)為是python官方圖像處理庫(kù)了。
其官方主頁(yè)為:PIL。 PIL歷史悠久,原來是只支持python2.x的版本的,后來出現(xiàn)了移植到python3的庫(kù)pillow,pillow號(hào)稱是friendly fork for PIL,其功能和PIL差不多,但是支持python3。
PIL(Python Imaging Library)是Python一個(gè)強(qiáng)大方便的圖像處理庫(kù),只支持到Python2.7。
Pillow是PIL的一個(gè)派生分支,在Python3標(biāo)準(zhǔn)庫(kù)中用Pillow代替PIL。
Pillow官網(wǎng):https://pillow.readthedocs.io/en/latest/handbook/index.html
下面是使用例子,用法可見代碼注釋。
from PIL import Image,ImageFilter,ImageGrab,ImageDraw,ImageFont
# 創(chuàng)建圖片:寬800*高600,紅色
imNew = Image.new('RGB',(800,600),(255,0,0))
# 顯示圖片
#imNew.show()
# 抓取屏幕
imGrab = ImageGrab.grab()
imGrab.save('grab.jpg', 'jpeg')
# 打開圖片
im = Image.open('1.jpg')
# 復(fù)制圖片
im1 = im.copy()
im2 = im.copy()
im3 = im.copy()
im4 = im.copy()
im5 = im.copy()
im6 = im.copy()
im7 = im.copy()
# 獲得圖片寬高:
w, h = im.size
print('圖片寬高:{} * {}'.format(w, h))
# 縮略圖(圖片不會(huì)被拉伸,只能縮?。?
im.thumbnail((w//2, h//2))
im.save('1_thumbnail.jpg', 'jpeg')
# 縮放(圖片可能會(huì)被拉伸,可縮小也可放大)
im1 = im1.resize((w//2, h//2))
im1.save('1_resize.jpg', 'jpeg')
# 模糊圖片
im2 = im2.filter(ImageFilter.BLUR)
im2.save('1_blur.jpg', 'jpeg')
# 旋轉(zhuǎn)圖片,逆時(shí)鐘旋轉(zhuǎn)45度
im3 = im3.rotate(45)
im3.save('1_rotate.jpg', 'jpeg')
# 圖片轉(zhuǎn)換:左右轉(zhuǎn)換 FLIP_LEFT_RIGHT,上下轉(zhuǎn)換 FLIP_TOP_BOTTOM
im4 = im4.transpose(Image.FLIP_LEFT_RIGHT)
im4.save('1_transpose.jpg', 'jpeg')
# 圖片裁剪
box = (200,200,400,400) #左上角(0,0),4元組表示坐標(biāo)位置:左、上、右、下
im5 = im5.crop(box)
im5.save('1_crop.jpg', 'jpeg')
# 圖片上添加文字
draw = ImageDraw.Draw(im6)
#truetype設(shè)置字體、文字大小
#stxingka.ttf華文行楷 simkai.ttf 楷體 simli.ttf 隸書
font = ImageFont.truetype("C:\\WINDOWS\\Fonts\\stxingka.ttf", 20)
draw.text((100,100), ('hello word \n你好,世界'), fill='#0000ff', font=font)
im6.save('1_drawText.jpg', 'jpeg')
# 圖片上添加圖片(粘貼圖片)
imTmp = Image.new('RGB',(30,30),'blue')
im7.paste(imTmp, (50,50)) #第2個(gè)參數(shù)為坐標(biāo)
im7.save('1_paste.jpg','jpeg')
# 圖片橫向拼接:拼接上面im6、im7(兩張圖片大小一樣)
im6Width, im6Height = im6.size
imHorizontal = Image.new('RGB', (im6Width * 2, im6Height))
imHorizontal.paste(im6, (0,0))
imHorizontal.paste(im7, (im6Width,0))
imHorizontal.save('1_horizontal.jpg', 'jpeg')
# 圖片豎向拼接:拼接上面im6、im7
imVertical = Image.new('RGB', (im6Width, im6Height*2))
imVertical.paste(im6, (0,0))
imVertical.paste(im7, (0,im6Height))
imVertical.save('1_vertical.jpg', 'jpeg')
總結(jié)
以上所述是小編給大家介紹的Python圖像處理庫(kù)Pillow常用使用方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python+openCV對(duì)視頻進(jìn)行截取的實(shí)現(xiàn)
這篇文章主要介紹了python+openCV對(duì)視頻進(jìn)行截取的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
python連接手機(jī)自動(dòng)搜集螞蟻森林能量的實(shí)現(xiàn)代碼
這篇文章主要介紹了python連接手機(jī)自動(dòng)搜集螞蟻森林能量的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法,涉及Python針對(duì)日期與時(shí)間戳的相關(guān)轉(zhuǎn)換、運(yùn)算等操作技巧,需要的朋友可以參考下2019-04-04
Python復(fù)數(shù)屬性和方法運(yùn)算操作示例
這篇文章主要介紹了Python復(fù)數(shù)屬性和方法運(yùn)算操作,結(jié)合實(shí)例形式分析了Python復(fù)數(shù)運(yùn)算相關(guān)操作技巧,代碼注釋備有詳盡說明,需要的朋友可以參考下2017-07-07
Python實(shí)現(xiàn)列表轉(zhuǎn)Excel表格的第一列
這篇文章主要為大家詳細(xì)介紹了如何將Python中的列表轉(zhuǎn)換為Excel表格的第一列,并通過案例和代碼展示具體的操作步驟,希望可以幫助大家快速掌握這一技能2024-04-04
python文件操作相關(guān)知識(shí)點(diǎn)總結(jié)整理
這篇文章主要介紹了python文件操作相關(guān)知識(shí)點(diǎn),整理匯總了Python文件操作所涉及的常見函數(shù)與方法,并給出了實(shí)例代碼予以總結(jié)歸納,需要的朋友可以參考下2016-02-02
Python列表list常用內(nèi)建函數(shù)實(shí)例小結(jié)
這篇文章主要介紹了Python列表list常用內(nèi)建函數(shù),結(jié)合實(shí)例形式總結(jié)分析了Python列表list常見內(nèi)建函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
python3利用venv配置虛擬環(huán)境及過程中的小問題小結(jié)
這篇文章主要介紹了python3利用venv配置虛擬環(huán)境及過程中的小問題小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08

