PIL(Python Image Library)是python的第三方圖像處理庫,但是由於其強大的功能與眾多的使用人數,幾乎已經被認為是python官方圖像處理庫了。其官方主頁為:PIL。 PIL歷史悠久,原來是只支持python2.x的版本的,后來出現了移植到python3的庫pillow,pillow號稱是
friendly fork for PIL
,其功能和PIL差不多,但是支持python3。
PIL可以做很多和圖像處理相關的事情:
1、圖像歸檔(Image Archives)。PIL非常適合於圖像歸檔以及圖像的批處理任務。你可以使用PIL創建縮略圖,轉換圖像格式,打印圖像等等。
2、圖像展示(Image Display)。PIL較新的版本支持包括Tk PhotoImage,BitmapImage還有Windows DIB等接口。PIL支持眾多的GUI框架接口,可以用於圖像展示。
3、圖像處理(Image Processing)。PIL包括了基礎的圖像處理函數,包括對點的處理,使用眾多的卷積核(convolution kernels)做過濾(filter),還有顏色空間的轉換。PIL庫同樣支持圖像的大小轉換,圖像旋轉,以及任意的仿射變換。PIL還有一些直方圖的方法,允許你展示圖像的一些統計特性。這個可以用來實現圖像的自動對比度增強,還有全局的統計分析等。
一、縮略圖
代碼如下:
from PIL import Image i=Image.open('C:\\Users\\admin\\Desktop\\12.jpg') i.thumbnail(128,128) i.save("xingkong","JPEG")
效果:
二、gif提取
代碼如下:
from PIL import Image i=Image.open('C:\\Users\\admin\\Desktop\\14.gif') try: i.save('picframe{:02d}.png'.format(i.tell())) while True: i.seek(i.tell()+1) i.save('picframe{:02d}.png'.format(i.tell())) except: print("處理結束")
效果:
三、美白:
代碼如下:
from PIL import Image import numpy as np import cv2 def WhiteBeauty(image,whi): import cv2 image =cv2.imread('C:\\Users\\admin\\Desktop\\16.jfif') white = np.uint8(np.clip((whi * image + 10), 0, 255)) cv2.imshow('bai',white) cv2.waitKey(0) cv2.destroyAllWindows() image =cv2.imread('C:\\Users\\admin\\Desktop\\16.jfif') whi=1.2 WhiteBeauty(image,whi)
效果:
四、生成gif:
代碼如下:
import PIL.Image as Image def get_gif(pics_dir,n,t=300): imgs = [] for i in range(n): pic_name = '{}/{}.jpg'.format(pics_dir,i) temp = Image.open(pic_name) imgs.append(temp) save_name = '{}.gif'.format(pics_dir) imgs[0].save(save_name, save_all=True, append_images=imgs, duration=t) return save_name if __name__ == '__main__': pics_dir = 'C:\\Users\\admin\\Desktop\\kongfu' save_name = get_gif(pics_dir,7,300) print('制作完成。所屬文件:{}'.format(save_name))
效果: