介绍
介绍
福哥今天要详情的跟大家讲讲图像处理库pillow的使用技巧,pillow是一个非常强大的图像处理库,基本可以满足日常使用当中的所有图片加工的需求。
学会pillow库的使用技巧,就可以对我们的照片进行自动化的加工处理了。
格式转换
可以使用convert方法转换图片模式
参数说明
1 (1-bit pixels, black and white, stored with one pixel per byte)
L (8-bit pixels, black and white)
P (8-bit pixels, mapped to any other mode using a colour palette)
RGB (3x8-bit pixels, true colour)
RGBA (4x8-bit pixels, true colour with transparency mask)
CMYK (4x8-bit pixels, colour separation)
YCbCr (3x8-bit pixels, colour video format)
I (32-bit signed integer pixels)
F (32-bit floating point pixels)
示例
下面给出一个示例,将图片打开后,转换成黑白色的图片,并保存起来
from PIL import Image im = Image.open("demo.jpg") im = im.convert("1") im.save("demo_bw.jpg")
原图
转换后
滤镜
可以使用filter方法对图片使用滤镜进行处理
参数
高斯模糊 ImageFilter.GaussianBlur
普通模糊 ImageFilter.BLUR
边缘增强 ImageFilter.EDGE_ENHANCE
找到边缘 ImageFilter.FIND_EDGES
浮雕 ImageFilter.EMBOSS
轮廓 ImageFilter.CONTOUR
锐化 ImageFilter.SHARPEN
平滑 ImageFilter.SMOOTH
细节 ImageFilter.DETAIL
示例
下面给出一个例子,打开一张图片,对图片镜像模糊处理,并保存起来
from PIL import Image from PIL import ImageFilter im = Image.open("demo.jpg") im = im.filter(ImageFilter.BLUR) im.save("demo_blur.jpg")
原图
加工后
对比度
调整图片对比度可以使用ImageEnhance库
示例
下面给出一个例子
from PIL import Image from PIL import ImageEnhance im = Image.open("demo.jpg") # 调整亮度 mod = ImageEnhance.Brightness(im) im = mod.enhance(1.2) # 调整色彩 mod = ImageEnhance.Color(im) im = mod.enhance(1.2) # 调整对比度 mod = ImageEnhance.Contrast(im) im = mod.enhance(1.2) # 调整锐度 mod = ImageEnhance.Sharpness(im) im = mod.enhance(1.2) im.save("demo_mod.jpg")
原图
加工后
旋转
可以使用rotate进行任意角度的旋转,也可以使用transpose进行特殊角度的旋转
transpose参数
水平方向对调 Image.FLIP_LEFT_RIGHT
垂直方向对调 Image.FLIP_TOP_BOTTOM
旋转90度 Image.ROTATE_90
旋转180度 Image.ROTATE_180
旋转270度 Image.ROTATE_270
示例
from PIL import Image im = Image.open("demo.jpg") im = im.rotate(15) im.save("demo_rotate.jpg") im = Image.open("demo.jpg") im = im.transpose(Image.FLIP_LEFT_RIGHT) im.save("demo_flip.jpg")
原图
加工后
类型转换
使用pillow转换图片类型就是直接存成响应的扩展名的图片即可
示例
转成png类型
from PIL import Image im = Image.open("demo.jpg") im = im.convert("RGB") im.save("demo.png")
缩放
可以使用resize方法简单的对图片的尺寸继续缩放
示例
将图片缩小至300*230尺寸
from PIL import Image im = Image.open("demo.jpg") im = im.resize((300, 230)) im.save("demo_resize.jpg")
图层
我们可以把图片想成一张图纸,可以使用裁剪技巧将图纸的一部分复印到另一张图纸上,也可以将多张图纸压合成一张图纸,这种图纸可以称之为——图层,和PS软件类型的处理
裁剪
使用crop方法从一张图片上裁剪下拉一部分图像放到一个图层里,这个图层可以单独进行加工处理
粘贴
使用paste方法将一个图像放到另外一个图像里面,合并这两个图层到一起
示例
从图片中间裁剪出来一小块图像,经过黑白处理后,再粘贴回去,合并成一张新图片
from PIL import Image im = Image.open("demo.jpg") rect = (500, 250, 800, 550) part = im.crop(rect) part = part.convert("1") im.paste(part, rect) im.save("demo_mod.jpg")
原图
加工后
屏幕截图
使用ImageGrab实现屏幕截图的功能
示例
截取全屏画面,存到一个文件里
from PIL import ImageGrab im = ImageGrab.grab() im.save("demo_fullscreen.jpg")
截取屏幕左上角的500*500的区域画面
from PIL import ImageGrab im = ImageGrab.grab((0, 0, 500, 500)) im.save("demo_part.jpg")
总结
pillow功能很多,而且方法很友好,可以用来对自己的照片进行批量加工处理使用。
今天福哥就给大家介绍到这里了~~