PIL庫的概述:
PIL庫可以完成圖像歸檔和圖像處理兩方面功能需求:
圖像歸檔:對圖像進行批處理、生成圖像預覽、圖像格式轉換等;
圖像處理:圖像基本處理、像素處理、顏色處理等。
PIL庫Image類:
from PIL import Image m = Image.open("D:\\picture.jpg") #讀取照片文件
生成縮略圖:
im.thumbnail((128, 128)) #(128,128)是縮略圖的尺寸。 im.save("birdnestTN","JPEG") im.show() # 顯示縮略圖 (縮略圖不能直接雙擊打開,而可以使用PIL.image的open讀取,然后使用show()方法進行顯示)
旋轉和縮放:
im.rotate(45) #Image.rotate(angle) 按angle角度旋轉圖像 im.resize(128) #Image.resize(size) 按size大小調整圖像 im.show()
圖像顏色交換
r, g, b = im.split() #提取RGB圖像的每個顏色通道 om = Image.merge("RGB", (b, g, r)) #將各獨立通道再合成一幅新的圖像 om.save('pictureBGR.jpg')
圖像的過濾和增強
圖像輪廓獲取:
from PIL import Image from PIL import ImageFilter im = Image.open("picture.jpg") om = im.filter(ImageFilter.CONTOUR) om.save('pictureContour.jpg')
調整色彩度、亮度、對比度、銳化
浮雕化
from PIL import Image from PIL import ImageFilter im = Image.open("picture.jpg") om = im.filter(ImageFilter.EMBOSS) om.save('picture1.jpg')
提取動圖每一幀
from PIL import Image im = Image.open('動圖.gif') # 讀入一個GIF文件 try: im.save('picframe{:02d}.png'.format(im.tell())) while True: im.seek(im.tell()+1) im.save('picframe{:02d}.png'.format(im.tell())) except: print("處理結束")
中文字符畫
from PIL import Image ascii_char = list('中國真是個偉大的國家') def get_char(r, b, g, alpha=256): if alpha == 0: return ' ' gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = 256 / len(ascii_char) return ascii_char[int(gray//unit)] def main(): im = Image.open('pic.PNG') WIDTH, HEIGHT = 100, 60 im = im.resize((WIDTH, HEIGHT)) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j, i))) txt += '\n' fo = open("pic_char.txt","w") fo.write(txt) fo.close() main()