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()

 

posted on 2019-01-02 13:35  野犬  阅读(2492)  评论(0编辑  收藏  举报