Python常用库-Pillow图像处理
在Pyhton图像库「Python Imaging Library」支持大量的图片格式,是图像处理和批处理的最佳选择,可以用这个来创建缩略图、文件格式之间的转换、打印图片、大小转换、颜色转换、还有对图片加滤镜「模糊、磨皮」等操作。功能非常简单,但是API调用非常简单。
安装
安装的仍然使用pip安装,非常简单快捷。对于国内用户来说,不能访问python官网的时候,可以替换python源为阿里源或者其他国内源;其二对于其他的内网用户来说,可以在安装的时候加上代理地址。
$ pip install Pillow # python2
$ pip3 install Pillow # python3 如果没有添加pip3软连接,用python3的pip一样的
$ pip install Pillow --proxy=10.10.10.10:80 # 代理
验证是否安装成功,没有报错就是安装成功了。
>>> import PIL
>>> dir(PIL)
['PILLOW_VERSION', 'VERSION', '__builtins__', '__cached__', '__doc__.......
访问文件
用「open」方法打开指定文件即可,可以看到文件的一些详细参数,比如大小、高度、长度、格式、模式等。
from PIL import Image
try:
im= Image.open("1.png")
print(im.format, im.size, im.mode)
except Exception as e:
print(e)
# output: PNG (736, 458) RGB
加载图像
获取到Image实例之后,可以用这个类的方法来处理和操作图像。这个是把图片保存位临时文件,然后用系统默认的图片查看工具来显示图片的,方便调试和测试。也可以用save()方法来保存文件。
>>> im.show()
>>> im.save("test.png") #
读写图像
对图像的几何变换、颜色变换、图像增强、以及剪切等操作。
图像过滤器
图像增强处理里面有个,包含了一个过滤器ImageFilter模块,可以模糊图片等操作,下面是一个模糊操作的Demo。
# Import the modules
from PIL import Image, ImageFilter
try:
# Load an image from the hard drive
original = Image.open("1.png")
# Blur the image
blurred = original.filter(ImageFilter.BLUR)
# Display both images
original.show()
blurred.show()
# save the new image
blurred.save("blurred.png")
except:
print "Unable to load image"
效果如下:
除了BLUR,还有其他的参数。
BLUR
CONTOUR
DETAIL
EDGE_ENHANCE
EDGE_ENHANCE_MORE
EMBOSS
FIND_EDGES
SMOOTH
SMOOTH_MORE
SHARPEN
创建缩略图
也是同样使用实例的thumbnail方法即可,非常简单。
from PIL import Image
size = (128, 128)
thumbnail= "thumbnail.jpeg"
try:
im = Image.open("1.png")
except Exception as e:
print(e)
im.thumbnail(size)
im.save(thumbnail)
剪切、粘贴
剪切使用crop方法即可,指定 2 个坐标,需要说明的是左上角是(0 ,0);
box = (10, 10, 200, 200) # 对应: 左 上 右 下
region = im.crop(box) # 剪切
region = region.transpose(Image.ROTATE_180)
im.paste(region, box) # 粘贴
小结
python 图像处理「PIL」对图像处理非常容易,加上完善的API文档手册,对于新手也是非常友好的。
更多阅读
作者:叉叉敌
博客:https://chasays.github.io/
微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。