Pillow-优秀的Python图像处理库安装及入门教程

Pillow-优秀的Python图像处理库安装及入门教程

Pillow库是Python 图像处理库(Python image library)的一个派生分支,提供了广泛的文件格式(BMP,PNG,JPEG等)支持,提供基本的图像处理能力,如:

图像存储、图像显示、改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。

比起OpenCV库的图像处理,功能有限,但函数使用非常方便,大多数开发者都会把OpenCV库和Pillow库结合使用。

Pillow库的下载

https://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站   下载 Pillow-8.0.1-cp39-cp39-win_amd64.whl(根据你的Python 环境)

Pillow库的安装

pip install Pillow-8.0.1-cp39-cp39-win_amd64.whl

Pillow-优秀的Python图像处理库安装及入门教程

Pillow库的使用

from PIL import Image
PIL_Image=Image.open("./2019.png")
print(PIL_Image.format,PIL_Image.size,PIL_Image.mode)
PIL_Image.show()
PIL_Image.save('./2020.png')

功能:打开图片、输出图像信息,显示图像,保存图像

注意:

Pillow中的Image.save()方法,使用默认参数保存jpg图片,发现图片被压缩的很严重,导致原来很大的大小变成几十K。

这是因为在保存为jpg的过程中,内部使用压缩算法对图片进行的压缩处理。

但是有些时候往往需要图片的大小不能变化太大或不能太小。所以在使用此方式时可以加入参数:

imObj.save(img_name, quality=95)

quality参数: 保存图像的质量,值的范围从1(最差)到95(最佳)。 默认值为75,使用中应尽量避免高于95的值; 100会禁用部分JPEG压缩算法,并导致大文件图像质量几乎没有任何增益。

使用此参数后,图片大小会增加。如果图片的大小还不能满足你的需求,是否还有其他方式去增加图片大小呢?

save方法还有一个可以配合quality使用的参数,能够大大增加图片大小:

imObj.save(new_name, quality=95, subsampling=0)

subsampling参数:子采样,通过实现色度信息的分辨率低于亮度信息来对图像进行编码的实践。

(参考:https://en.wikipedia.org/wiki/Chroma_subsampling)

可能的子采样值是0,1和2,对应于4:4:4,4:2:2和4:1:1(或4:2:0?)。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/9031.html

(0)
江山如画的头像江山如画管理团队
精!山东省高等学校在线开放课程建设实施方案,附指导性建设要求,认定指导标准
上一篇 2020年12月7日 下午2:45
下一篇 2020年12月8日 上午10:48

99%的人还看了以下文章

  • 快收藏!破解WiFi密码的Python程序源码泄露了

    通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。 泄露的Python程序源码: import pywifi from pywifi import const import time import datetime # 测试连接,返回链接结果 http://www.125jz.com/ 分享 def wifiConnect(pwd):…

    2023年1月29日
    8.7K0
  • jsp日期控件lhgcalendar下载

    资源类别:编程开发软件大小:377KB推荐等级:★★★★★资源语言:简体中文授权方式:免费版软件属性:国产软件应用平台:Win9X,Win2000,WinXP,Win2003,Vista,Unix,Linux lhgcalendar简介 非常好用的JSP日历控件,功能强大。可以实现: 1. 在控件下面或右面弹出日历组件(默认是在下面弹出) 2. 通过按钮或图…

    2019年10月8日
    3.7K0
  • 填坑!安装opencv-python库后,没有CV2文件夹,找不到haarcascade分类器文件

    python内import cv2正常运行,但是根据以下方法在e:\python\python39\lib\site-packages下找不到CV2文件夹,也找不到data\haarcascades相关分类器文件。 OpenCV-python haarcascade各种分类器文件位置 使用 pip list 查看是否安装opencv-python E:\py…

    2020年12月8日
    14.3K0
  • pycharm 中 plt.imshow(img)图片不显示的解决方法(附案例)

    #%matplotlib inline # 使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。inline表示将图表嵌入到Notebook中。 # Python提供了许多魔法命令,使得在IPython环境中的操作更加得心应手。魔法命令…

    2023年1月13日
    6.1K0
  • 如何设计单元测试用例,单元测试快速入门教程四

    测试人员在实际工作中根据不同覆盖要求设计面向代码的单元测试用例,运行测试用例后至少应实现如下覆盖需求: 对程序模块的所有独立的执行路径至少覆盖一次; 对所有的逻辑判定,真假两种情况至少覆盖一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。 至少应设计覆盖如下需求的基于功能的单元测试用例: 测试程序单元的功能是否实现; 测试程序单元性能…

    2018年4月18日
    4.9K0
  • 第六章 Servlet技术(重点章节)

    学习目标:
    掌握Servlet的概念、特点及生命周期
    掌握Servlet与JSP的区别
    理解Servlet在Web项目中的作用
    掌握Servlet常用对象及其方法

    2018年2月22日
    7.4K0

发表回复

登录后才能评论