Pillow(PIL)入门教程(非常详细)以及python实现jpg,png、ico、bmp格式互转大全

news2024/11/24 9:31:32

概述

Pillow库的特点:

python3安装pillow:

​Pillow是什么

Pillow创建Image对象:

jpg,png:

jpg与png格式互转代码:


概述

Pillow 库(有时也称 PIL 库) 是 Python 图像处理的基础库,它是一个免费开源的第三方库,由一群 Python 社区志愿者使用 Python 语言开发而成(主要贡献者:Alex Clark)。

Pillow 提供了非常强大的图像处理功能,它能够很轻松地完成一些图像处理任务。与 Python 的其他图像处理库相比(OpenCV、Scikit-image 等),Pillow 库简单易用,非常适合初学者学习。

Pillow 库提供了非常丰富的功能,主要有以下几点:

  • Pillow 库能够很轻松的读取和保存各种格式的图片;
  • Pillow 库提供了简洁易用的 API 接口,可以让您轻松地完成许多图像处理任务;
  • Pillow 库能够配合 GUI(图形用户界面) 软件包 Tkinter 一起使用;
  • Pillow 库中的 Image 对象能够与 NumPy ndarray 数组实现相互转换。

丰富功能的实现得益于 Pillow 提供了众多的模块。在 Pillow 库中有二十多个模块,比如 Image 图像处理模块、ImageFont 添加文本模块、ImageColor 颜色处理模块、ImageDraw 绘图模块等等,每个模块各自实现了不同的功能,同时模块之间又可以互相配合。

Pillow库的特点:

Pillow 库作为图像处理的常用库,主要有以下三大特点:

1) 支持广泛的文件格式

Pillow 支持广泛的图像格式如下:

图像文件格式 — Pillow (PIL Fork) 7.0.0 文档https://www.osgeo.cn/pillow/_build/html/handbook/image-file-formats.html同时,它也支持图像格式之间的相互转换。总之, Pillow 几乎能够处理任何格式的图像。

2) 提供了丰富的功能

Pillow 提供了丰富的图像处理功能,可概括为两个方面:

  • 图像归档
  • 图像处理

图像归档,包括创建缩略图、生成预览图像、图像批量处理等;而图像处理,则包括调整图像大小、裁剪图像、像素点处理、添加滤镜、图像颜色处理等。

3) 配合GUI工具使用

Pillow 库可以配合 Python GUI(图形用户界面)工具 Tkinter 一起使用。

除上述特点之外,Pillow 库还能实现一些较为复杂的图像处理操作,比如给图像添加水印、合成 GIF 动态效果图等等。

PIL(Python Imaging Library)是Python一个强大方便的图像处理库,只支持到Python2.7。
Pillow是PIL的一个派生分支,在Python3中用Pillow代替PIL。

图像文件格式 — Pillow (PIL Fork) 7.0.0 文档https://www.osgeo.cn/pillow/_build/html/handbook/image-file-formats.html

python3安装pillow:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

Pillow是什么

PIL( Python Imaging Library)是 Python 的第三方图像处理库,由于其功能丰富,API 简洁易用,因此深受好评。

自 2011 年以来,由于 PIL 库更新缓慢,目前仅支持 Python 2.7 版本,这明显无法满足 Python3 版本的使用需求。于是一群 Python 社区的志愿者(主要贡献者:Alex Clark 和 Contributors)在 PIL 库的基础上开发了一个支持 Python3 版本的图像处理库,它就是 Pillow。

Pillow 不仅是 PIL 库的“复制版”,而且它又在 PIL 库的基础上增加了许多新的特性。Pillow 发展至今,已经成为了比 PIL 更具活力的图像处理库。

Pillow 的初衷只是想作为 PIL 库的分支和补充,如今它已是“青出于蓝而胜于蓝”。

除了 PIL 和 Pillow 库之外,Python 还提供了一些其他图像处理库:

  • Scikit-image:一款基于 scipy 科学计算的图像处理软件包,以数组的形式对图像进行处理;
  • OpenCV:其实是一个 C++ 图像处理库,不过它提供了 Python 语言的接口。

Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。与 Pillow 相比,OpenCV 和 Scikit-image 的功能更为丰富,所以使用起来也更为复杂,主要应用于机器视觉、图像分析等领域,比如众所周知的“人脸识别”应用。

 

Pillow创建Image对象:

from PIL import Image


def read_images():
    jpg_image = Image.open("美女.jpg")
    # jpg_image.show()
    print("image的size=>>>", jpg_image.size)
    print("image的width,height", jpg_image.width, jpg_image.height)
    print("image的format=>>>", jpg_image.format)
    print("image的格式详情=>>>", jpg_image.format_description)
    print("image的模式=>>>", jpg_image.mode)
    jpg_image.show()


if __name__ == '__main__':
    read_images()

jpg,png:

目录

PNG和JPG都是常见的图像文件格式,它们之间的主要区别如下:

压缩方式:JPG使用有损压缩,而PNG使用无损压缩。JPG可以压缩图像文件的大小,但会降低图像的质量,尤其是在高度压缩的情况下。PNG压缩图像文件时不会丢失任何信息,因此图像质量不会受到损失。

色彩深度:JPG支持24位真彩色和灰度色,而PNG支持24位真彩色、32位真彩色和灰度色。因此,PNG可以处理更高级别的色彩深度,使其更适合处理复杂的图像。

透明度:PNG支持透明度通道,这意味着可以将图像的某些部分设置为透明,而JPG不支持透明度通道。

文件大小:JPG文件大小通常比PNG文件小,因为它使用有损压缩。但是,在某些情况下,PNG文件大小可能比JPG文件更小,例如,PNG对于具有相同颜色的像素可以进行更好的压缩。

综上所述,如果需要处理高级别的色彩深度和透明度通道,则PNG是更好的选择。如果需要处理文件大小较小的图像,则JPG可能更适合。

jpg与png格式互转代码:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计划学习网络安全,需要学习哪些知识,应该怎么学习?

虽然现在的网络安全大都是指渗透测试,但是并不代表只有渗透测试这一个方向,除此之外还有二进制逆向这个方向。以下会对这两个方向分别对您进行详解。 渗透测试方向 1、学习编程语言 (1)网站如何搭建的?HTML、CSS、J…

SpingBoot+LayUI 实现酒店管理系统编写

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

晚上12点接到面试邀约电话,待业一个月的我却拒绝了....

前言 一位测试朋友最近一直在找工作,前两天刚拒绝了一个面试。那天晚上12点多,他接到一个HR的面试电话,让他第二天早上10点去公司面试。朋友和HR聊了两句,了解到这位HR经常加班,于是果断拒绝了这个面试。 我还为他可惜…

AHB-to-APB Bridge——06testbench、env、base_test、scb

框架: testbench: HCLK_PCLK_RATIO:随机定义hclk pclk比率;各个接口clk、rst连接;生成满足相应比率的pclk;与DUT的连接;将vif set到agt中去;agt在set到底层 关于rest_if&#xff…

如何保证三个线程按顺序执行?不会我教你

👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金、infoQ、51CTO等 🎉简介:CSDN|阿里云|华为云|51CTO等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12…

仪表板展示 | DataEase看世界:数据呈现世界油价变化

背景介绍 最近几个月,全球能源市场一直处于动荡不安的状态,与石油相关的新闻也非常频繁。2023年2月10日,面对西方多轮限价举措,俄罗斯副总理亚历山大诺瓦克宣布,俄罗斯将在3月把每日原油产量下调50万桶。目前&#xf…

FOFA-攻防挑战

记录一下中途短暂的辉煌时刻 辉煌一刻谁都有,别拿一刻当永久 在昨天初尝战果之后,今天又习惯性的打开 https://vulfocus.cn/ 发现今天还有挑战赛,按捺不住躁动的心,又开始了学习。今天主要拿下的是这四个镜像,同时我也会对我了解…

前端SKU一站式解决方案 - Geek-SKU

因为业务需要且市场上的UI框架与插件市场内没有简易的用法并且不够全面萌生便了自己写一个SKU组件的想法,于是Geek-SKU便应运而生。 现在的SKU组件已支持vue、uniapp,支持带图SKU、主题色设置、自动选择低价SKU、自动展示价格区间等,让您更便…

浏览器自动填充但是数据为空的问题

问题背景 公司项目中登录页为了方便,需要允许浏览器自动填充账号密码。这个在很多项目都很常见,但是测试中出现了这样一个问题:视觉上已经自动填充账号密码, 但是当点击密码的小眼睛或者点击登录时,会清空掉填充的数据…

火爆全网,性能测试-全链路压测实战总结,从需求到实战...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 流程导图 梳理阶段…

SpringBoot+Vue 的家政服务管理平台+数据库(附源码)

文章目录 1. 背景2.主要技术3. 可行性分析4.系统设计5系统的详细设计与实现5.1前台模块设计5.2后台功能模块 源码下载地址 1. 背景 本系统主要是设计出家政服务管理平台,基于B/S构架,后台数据库采用了Mysql,可以使数据的查询和存储变得更加有…

Linux函数库管理

文章目录 Linux函数库管理动态与静态函数库静态函数库动态函数库 ldconfig与 /etc/ld.so.confldconfig使用案例 程序的动态函数库解析:lddldd使用案例 校验软件的正确性常见的校验软件有哪些?使用案例 Linux函数库管理 在 Linux 操作系统中,…

【算法竞赛进阶指南】141.周期 题解 KMP 最小循环节

题目描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 5 5 5 个前缀,分别是 a,ab,aba,abaa,abaab。 我们希望知道一个 N N N 位字符串 S S S 的前缀是否具有循环节。 换言之…

7.Ansible Modules介绍

什么是Ansible Modules? Ansible模块根据其功能分为不同的组,每个模块提供了一些功能,可以直接使用。 模块官方文档: https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html 系统模块是要在系统级别执行的操作,例如修改系统上的用户…

Springboot +spring security,认证方式---Form表单认证的实现(三)

一.简介 这篇文章来学习下security的认证方式其中的Form表单认证 二.Spring Security的认证方式 2.1什么是认证 认证: 就是用来判断系统中是否存在某用户,并判断该用户的身份是否合法的过程,解决的其实是用户登录的问题。认证的存在,是为…

Spring Boot 如何实现异步消息处理

Spring Boot异步消息处理 在现代应用程序中,异步消息处理是一项至关重要的任务。它可以提高应用程序的性能、可伸缩性和可靠性,同时也可以提供更好的用户体验。Spring Boot提供了多种方式来实现异步消息处理,包括使用Spring AMQP、Spring Ka…

【斯歌X捷普】优秀体验官活动:全民开发的样板企业是这样炼成的

3月22日,上海斯歌与捷普共同举办了一场别出心裁的活动——“产品优秀体验官”颁奖典礼,以表彰对业务流程开发做出突出贡献的捷普员工。值得注意的是,获奖的14名流程开发人员中,有7人并非是专业的IT人员,而是来自业务岗…

搜索引擎变天了!谷歌宣布开放「生成式搜索平台」!AI 大模型颠覆搜索体验

作者 | 小戏、兔子酱 搜索引擎,可能真的要变天了! Google 终于要迎来它 25 年来最大的改变,谷歌宣布了开始内测开放【生成式搜索平台(Search Generative Experience,SGE)】,并逐步舍弃那些甚至是…

Linux中与中断相关的内核数据结构

【摘要】本文树妖详细讲解了Linux中与中断相关的内核数据结构及其内部联系。 八、中断相关的数据结构 8.1 irq_desc 用于表示IRQ描述符的结构定义如下:\linux-2.6.32.63\include\linux\irq.h struct irq_desc {unsigned int irq; //中断号unsigned int …

ipad可以使用其他品牌的手写笔吗?2023年电容笔推荐

现在,人们的生活越来越智能化,有些人已经用平板电脑取代了传统的笔记本。我发现用ipad不管是用来画画还是做笔记非常方便,但是苹果Pencil对于大多数人来说都是昂贵的。据我所知,如果仅仅是为了记录,而不是为了画画的话…