专栏首页ChasaysPython常用库-Pillow图像处理
原创

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"

效果如下:

2019-02-13_165343.png

除了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)
thunbnails.png

剪切、粘贴

剪切使用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文档手册,对于新手也是非常友好的。

更多阅读

  1. Pillow 官方文档

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python常用库-Pillow图像处理

    在Pyhton图像库「Python Imaging Library」支持大量的图片格式,是图像处理和批处理的最佳选择,可以用这个来创建缩略图、文件格式之间的转换...

    叉叉敌
  • 微信小程序-蓝牙打印机demo

    对于蓝牙有写入数据的话,需要时低功耗的蓝牙。向低功耗蓝牙设备特征值中写入二进制数据。注意:必须设备的特征值支持 write 才可以成功调用。

    叉叉敌
  • 如何修改windows CIFS/SMB共享的最大访问连接

    最近一台 Windows 2008 的服务器访问的时候,提示人数不能再多了,访问失败。

    叉叉敌
  • Python常用库-Pillow图像处理

    在Pyhton图像库「Python Imaging Library」支持大量的图片格式,是图像处理和批处理的最佳选择,可以用这个来创建缩略图、文件格式之间的转换...

    叉叉敌
  • 用python简单处理图片(3):添加水

    py3study
  • JQuery 获取元素到浏览器可视窗口边缘的距离

    https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js

    授客
  • 让事件飞——Linux eventfd 原理

    目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。在Linux系统中,eventfd是一个用来通知...

    溪歪歪
  • 让事件飞 ——Linux eventfd 原理与实践

    目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。在Linux系统中,eventfd是一个用来通知...

    李海彬
  • 一键式完全删除CDH 6.3.1

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    用户1148526
  • Nginx入门指南

    NGINX 是一款来自俄罗斯的HTTP 和反向代理(reverse proxy)服务器、邮件服务器,以及通用的 TCP/UDP 代理服务器,以其高性能被业界广泛...

    用户1263954

扫码关注云+社区

领取腾讯云代金券