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%的人还看了以下文章

  • python 递归函数使用示例,求两个整数的最大公约数(欧几里得算法)

    用于计算两个整数的最大公约数的递归算法称为欧几里得算法,其计算原理依赖于定理: 两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 公式为:gcd(a,b)=gcd(b, a mod b) 递归函数使用示例, def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) prin…

    2020年1月31日
    9.3K0
  • java中类、接口、方法、变量命名时的大小写问题

    类或者接口 一个单词:首字母大写 举例:Student,Demo 多个单词:每个单词首字母大写 举例:HelloWorld,StudentName 方法或者变量 一个单词:首字母小写 举例:name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames() 常量 全部大写 一个单词:大写 举例:PI …

    2020年11月15日
    3.8K0
  • 第一章Java Web应用开发技术概述

    1、了解Java Web应用开发技术相关知识
    2、掌握jsp工作原理
    3、掌握开发环境搭建、开发工具的使用。
    4、掌握Java Web开发的基本步骤
    5、学会设计一个简单的网页程序并运行。

    2018年2月1日
    4.1K0
  • MVC详解:模型(Model)-视图(View)-控制器(Controller)

    MVC(模型-视图-控制结构)是软件开发中常用的一种架构模式。它强制性的将输入、处理和输出分开。使应用程序被分成三个核心部件:模型 (Model)、视图(View)和控制(Controller)。它们各自处理自己的任务,有效地分离存储数据和展示数据功能模块以降低它们之间的耦合度。 MVC体系结构: 模型层主要负责保存和访问业务数据,执行业务逻辑和操作。这一层…

    2020年2月23日
    6.5K0
  • Python开发环境搭建

    今天学习在计算机上配置Python开发环境。 虽然使用Python自带的Vim编辑器+命令行的方式比较酷,然而一个优秀的IDE确实能让开发速度提升不少。 Python开发环境一在Eclipse中搭建Python开发环境 基本软件需求:1. Eclipse(https://www.eclipse.org/downloads/)2. Python解释器(www.…

    2019年3月15日
    13.6K1
  • 别再浪费时间了!分享一个学习Python的正确指南!

    Python是一门新手友好、功能强大、高效灵活的编程语言。 然而很多同学在学习过程中,并没有找到正确的方式,这样不仅浪费了大量的时间与精力,也对学习的兴趣有一定打击。 125网页设计整理了一些初学者学习的几大误区分享给大家,帮助同学们更好地学习Python。 急于求成 很多对学习Python有兴趣的同学们,可能在刚开始学习时没有找准学习方式。大家只是一味地买…

    2022年8月13日
    2.4K0

发表回复

登录后才能评论