Python编程图形库之Pillow使用方法讲解

作者:liumiaocn 时间:2022-04-07 06:10:57 

PIL vs Pillow

PIL: Python Imaging Library,是python的图像处理库。由于PIL不兼容setuptools,再加上更新缓慢等因素,Alex Clark等一些社区好心人还是希望能够继续支持PIL,所以fork了PIL,这就是Pillow的缘起。

Pillow的目标

推动和促进PIL的发展是Pillow的目标,主要通过如下的方式来进行

  • 结合Travis CI和AppVeyor进行持续集成测试

  • 活用github进行开发

  • 结合Python Package Index进行例行发布

其实可以看出,所做的改善就是在CI和CD,改善用户感知,定期/快速地与使用者进行沟通和交流,是pillow获得好感的一个重要因素。

安装

安装可以通过pip,只需要执行pip install pillow即可


liumiaocn:~ liumiao$ pip install pillow
Collecting pillow
Downloading https://files.pythonhosted.org/packages/df/aa/a25f211a4686f363d8ca5a1752c43a8f42459e70af13e20713d3e636f0af/Pillow-5.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.6MB)
 100% |████████████████████████████████| 3.6MB 157kB/s
Installing collected packages: pillow
Successfully installed pillow-5.1.0
liumiaocn:~ liumiao$

安装确认


liumiaocn:~ liumiao$ pip show pillow
Name: Pillow
Version: 5.1.0
Summary: Python Imaging Library (Fork)
Home-page: https://python-pillow.org
Author: Alex Clark (Fork Author)
Author-email: aclark@aclark.net
License: Standard PIL License
Location: /usr/local/lib/python2.7/site-packages
Requires:
Required-by:
liumiaocn:~ liumiao$

使用

图形库有很多实用的功能,这里列举几个进行简单演示。

ImageGrab.grab()

使用这个方法可以实现抓屏:


liumiaocn:tmp liumiao$ cat grab.python
#!/usr/local/bin/python
from PIL import ImageGrab
#get current screen copy
image = ImageGrab.grab()
#display image size
print("Current screen shot size :",image.size)
#display image mode
print("Screen shot picture mode :", image.mode)
#save picture to /tmp/screen-grab-1.bmp
image.save('/tmp/screen-grab-1.bmp')
#show picture
image.show()
liumiaocn:tmp liumiao$

因为代码中使用了image.show()进行了显示,执行之后可以直接看到显示,同时也能确认到/tmp下所生成的文件


liumiaocn:tmp liumiao$ python grab.python
('Current screen shot size :', (2880, 1800))
('Screen shot picture mode :', 'RGBA')
liumiaocn:tmp liumiao$ ls -l /tmp/screen-grab-1.bmp
-rw-r--r-- 1 liumiao wheel 20736054 Jun 23 05:41 /tmp/screen-grab-1.bmp
liumiaocn:tmp liumiao$

Python编程图形库之Pillow使用方法讲解

滤镜

PIL中的ImageFilter支持近十种滤镜, 比如对刚刚抓取的图片使用CONTOUR滤镜


liumiaocn:tmp liumiao$ cat filter-contour.py
#!/usr/local/bin/python
from PIL import ImageFilter, Image
src_image = Image.open('/tmp/screen-grab-1.bmp')
print("begin to filter the pic")
dst_image = src_image.filter(ImageFilter.CONTOUR)
print("picture through filter")
dst_image.show()
liumiaocn:tmp liumiao$

执行之后可以得到如下图片

Python编程图形库之Pillow使用方法讲解

旋转

使用rotate即可对图片进行旋转操作:


liumiaocn:tmp liumiao$ cat rotate.py
#!/usr/local/bin/python
from PIL import Image
src_image = Image.open('/tmp/screen-grab-1.bmp')
print("begin to rotate the pic")
dst_image = src_image.rotate(90)
print("picture after rotating")
dst_image.show()
liumiaocn:tmp liumiao$

执行之后,即可确认

Python编程图形库之Pillow使用方法讲解

Pillow功能非常之多,而且使用也很方便,比如resize对尺寸进行调节,还可以添加文字等等常见的图形处理操作,这里就不再一一介绍,具体的需要可以参看如下链接进行了解:https://pypi.org/project/Pillow/

来源:https://blog.csdn.net/liumiaocn/article/details/80780342

标签:python,pillow,图形库
0
投稿

猜你喜欢

  • mysql 日期和时间函数

    2024-01-12 18:56:13
  • PyPy 如何让Python代码运行得和C一样快

    2022-07-16 20:17:58
  • Python数据类型转换实现方法

    2022-06-04 22:58:39
  • python实现求两个字符串的最长公共子串方法

    2021-08-02 21:14:08
  • Go语言ORM包中使用worm构造查询条件的实例详解

    2024-05-21 10:18:19
  • Go语言集成开发环境之VS Code安装使用

    2023-08-29 13:06:38
  • SQL解决未能删除约束问题drop constraint

    2024-01-24 20:08:09
  • sqlserver利用存储过程去除重复行的sql语句

    2024-01-20 06:28:54
  • 通过 Django Pagination 实现简单分页功能

    2021-03-15 15:53:03
  • 浅析python打包工具distutils、setuptools

    2021-03-30 14:45:14
  • GoLang并发编程中条件变量sync.Cond的使用

    2024-04-25 15:28:40
  • PHP 正则表达式常用函数使用小结

    2024-05-03 15:35:15
  • Python编程pytorch深度卷积神经网络AlexNet详解

    2022-02-18 10:28:40
  • python3.0 字典key排序

    2022-06-03 15:07:50
  • Django初步使用Celery处理耗时任务和定时任务问题

    2023-10-15 07:41:59
  • asp如何显示一个等待或欢迎信息?

    2010-06-08 09:39:00
  • MySQL组提交group commit详解

    2024-01-21 05:33:09
  • python通过http上传文件思路详解

    2022-02-08 12:48:30
  • Python使用matplotlib 模块scatter方法画散点图示例

    2023-05-19 12:01:49
  • python网页请求urllib2模块简单封装代码

    2021-07-31 02:03:55
  • asp之家 网络编程 m.aspxhome.com