詳解Python影象處理庫Pillow常用使用方法
阿新 • • 發佈:2020-01-09
PIL(Python Image Library)是python的第三方影象處理庫,但是由於其強大的功能與眾多的使用人數,幾乎已經被認為是python官方影象處理庫了。
其官方主頁為:PIL。 PIL歷史悠久,原來是隻支援python2.x的版本的,後來出現了移植到python3的庫pillow,pillow號稱是friendly fork for PIL,其功能和PIL差不多,但是支援python3。
PIL(Python Imaging Library)是Python一個強大方便的影象處理庫,只支援到Python2.7。
Pillow是PIL的一個派生分支,在Python3標準庫中用Pillow代替PIL。
Pillow官網:https://pillow.readthedocs.io/en/latest/handbook/index.html
下面是使用例子,用法可見程式碼註釋。
from PIL import Image,ImageFilter,ImageGrab,ImageDraw,ImageFont # 建立圖片:寬800*高600,紅色 imNew = Image.new('RGB',(800,600),(255,0)) # 顯示圖片 #imNew.show() # 抓取螢幕 imGrab = ImageGrab.grab() imGrab.save('grab.jpg','jpeg') # 開啟圖片 im = Image.open('1.jpg') # 複製圖片 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)) # 縮圖(圖片不會被拉伸,只能縮小) im.thumbnail((w//2,h//2)) im.save('1_thumbnail.jpg','jpeg') # 縮放(圖片可能會被拉伸,可縮小也可放大) im1 = im1.resize((w//2,h//2)) im1.save('1_resize.jpg','jpeg') # 模糊圖片 im2 = im2.filter(ImageFilter.BLUR) im2.save('1_blur.jpg','jpeg') # 旋轉圖片,逆時鐘旋轉45度 im3 = im3.rotate(45) im3.save('1_rotate.jpg','jpeg') # 圖片轉換:左右轉換 FLIP_LEFT_RIGHT,上下轉換 FLIP_TOP_BOTTOM im4 = im4.transpose(Image.FLIP_LEFT_RIGHT) im4.save('1_transpose.jpg','jpeg') # 圖片裁剪 box = (200,200,400,400) #左上角(0,0),4元組表示座標位置:左、上、右、下 im5 = im5.crop(box) im5.save('1_crop.jpg','jpeg') # 圖片上新增文字 draw = ImageDraw.Draw(im6) #truetype設定字型、文字大小 #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個引數為座標 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',im6Height*2)) imVertical.paste(im6,0)) imVertical.paste(im7,im6Height)) imVertical.save('1_vertical.jpg','jpeg')
總結
以上所述是小編給大家介紹的Python影象處理庫Pillow常用使用方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!