Pillow库的使用
<!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()