<!doctype html>Python - Pillow庫的使用
Python - Pillow庫的使用
PIL(Python Imaging Library)是python圖像處理庫,Pillow是一個對PIL友好的分支.
Image類
PIL中最重要的是Image類,可以通過幾種方法實例化:從文件中加載圖像,處理其他圖像得到,或者直接創建一個圖像.
1.從文件中加載圖像
使用open()函數加載圖像.
from PIL import Image
im = Image.open("imgs/1.jpg")
print(im.format,im.size,im.mode) #JPEG (768, 1024) RGB
.format屬性標識了圖像的來源,如果圖像不是從文件讀取則返回None
.size返回一個元組(width,height),單位為px
.mode定義了圖像bands的數量和名稱,以及像素類型和深度,常見的值有"L"(luminance,灰度圖),"RGB"(真彩色圖像),"CMYK"(出版圖像).
使用.crop()對圖像進行剪切
box = (50,100,718,924)
region = im.crop(box)
print(region)
region.show()
使用.rotate(x)對圖像進行旋轉(x:圖片逆時針旋轉的角度)
region=region.rotate(90) #圖像旋轉,畫布不旋轉
region.show()
使用.transpose()對圖片進行旋轉
可傳入的參數有:
Image.FLIP_LEFT_RIGHT #圖片左右翻轉
Image.FLIP_TOP_BOTTOM #圖片上下翻轉
# region = region.transpose(Image.FLIP_TOP_BOTTOM)
# region = region.transpose(Image.FLIP_LEFT_RIGHT)
# region = region.transpose(Image.ROTATE_90)
# region = region.transpose(Image.ROTATE_180)
region = region.transpose(Image.ROTATE_270)
region.show()
#以上方式畫布均跟隨旋轉
使用.paste()對圖片進行黏貼合並
粘貼矩形選區時必須保持尺寸一致
region = region.transpose(Image.FLIP_LEFT_RIGHT)
im.paste(region,box)
im.show()
.resize((width,height))對圖像進行大小變換
im = im.resize((400,600))
im.show()
.convert("mode")顏色變換
# im = im.convert("L")
im = im.convert("CMYK")
im.show()
.save()保存圖片
region.save("imgs/4.jpg")
2.圖片轉字符串
原理:
用一個字符表示一種顏色,將彩色圖(RGB)轉換為灰度圖,用著名的心理學公式
Grey = R*0.299 + G*0.587 + B*0.144
灰度值:指黑白圖像中點的顏色深度,范圍0~255,255為白,0為黑.
.......
ImageGrab.grab() 實現抓屏
from PIL import ImageGrab
import time
time.sleep(5)
image1 = ImageGrab.grab() #可傳入一個元組表示抓取屏幕的坐標
print(image1.size,image1.mode)
image1.save("imgs/6.jpg")
image1.show()
使用.filter()對圖片進行濾鏡處理
# image1 = image1.filter(ImageFilter.CONTOUR)
# image1 = image1.filter(ImageFilter.BLUR)
# image1 = image1.filter(ImageFilter.EDGE_ENHANCE)
image1 = image1.filter(ImageFilter.EDGE_ENHANCE_MORE)
image1.save("imgs/6.jpg")
image1.show()