Python3中Pillow(PIL)介绍

2023-11-06

      PIL全称为Python Imaging Library,是Python中的免费开源图像处理库。PIL的最新版本为1.1.7,于2009年9月发布,支持Python的最高版本到2.7。原始的PIL开发于2011年停止。随后,一个名为Pillow的后续项目fork了PIL的repository并增加了对Python 3.x的支持。它已被采用作为Linux发行版中原始PIL的替代品

      Pillow代码在 https://github.com/python-pillow/Pillow ,最新发布版本为8.4.0,于2021年10月15号发布,它的license为HPND。Pillow和PIL不能共存于同一个环境中,在安装Pillow前,需要先卸载PIL。它支持Windows、Linux、macOS平台,可通过pip或conda安装,可使用以下命令通过conda安装指定的版本(注:安装conda后,pillow会被默认安装,只是版本可能会有些低或不是你需要的版本):

conda install pillow=8.4

      以下为测试代码:

from PIL import Image, ImageFilter

img = Image.open("../../test_data/lena.png") # 加载图像
width, height = img.size # 获得图像宽、高
print("src image size: %dx%d" % (width, height))

img2 = img.resize((128, 64))
print("dst image size: %dx%d" % (img2.size[0], img2.size[1]))
img2.save("../../test_data/resize.jpg", "jpeg") # 将缩放后的图像保存成jpeg格式

img3 = img.filter(ImageFilter.BLUR) # 图像模糊
img3.save("../../test_data/blur.png", "png") # 将模糊后的图像保存成png格式

gray = img.convert("L") # 图像转换: 转为灰度图
gray.save("../../test_data/gray.bmp", "bmp") # 将灰度图保存成bmp格式

quantize = gray.quantize(colors=16, kmeans=5) # 图像量化
quantize.save("../../test_data/quantize.png", "png")

crop = img.crop((64, 64, 248, 248)) # 图像剪切
crop.save("../../test_data/crop.png", "png")

pixel = img.getpixel((128, 64)) # 获取像素值
print("pixel value:", pixel)

rotate = img.rotate(90) # 图像旋转
rotate.save("../../test_data/rotate.png", "png")
rotate.show() # 显示图像
print("color mode:", rotate.mode) # get color mode: RGB
print("image format:", img.format) # get image format: PNG

print("test finish")

      GitHubhttps://github.com/fengbingchun/Python_Test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3中Pillow(PIL)介绍 的相关文章

随机推荐

  • ThreadPoolTaskScheduler 简单的记录

    initializeBean方法 protected Object initializeBean final String beanName final Object bean Nullable RootBeanDefinition mbd
  • 关于OkGo中由于响应码不同返回的错误提示无法获取解决方案

    使用okgo过程中发现原有的callBack无法再onError方法中返回错误信息内容 所以可以通过自定义callBack 方法来获取响应的内容 eg package com lide mygit public class MainActi
  • java怎么校验字符串为正数或者两位小数

    可以使用正则表达式来校验字符串是否为正数或两位小数 下面是一个例子 public static boolean isPositiveNumberOrTwoDecimalPlaces String str String pattern 0 9
  • 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败“常见问题的解决方案

    问题 服务器突然显示连接失败 通过端口 1433 连接到主机 localhost 的 TCP IP 连接失败 错误 Connection refused connect 请验证连接属性 并检查 SQL Server 的实例正在主机上运行 且
  • Kubernetes 基本概念

    Kubernetes 是什么 Kubernetes 是一个可移植 可扩展的开源平台 用于管理容器化的工作负载和服务 可促进声明式配 置和自动化 是谷歌保密了十几年的秘密武器Borg的开源版本 谷歌一直通过Borg系统管理着数量庞大 的应用程
  • 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明

    刷题库 刷题库 刷题库 重要的事情说三遍 要刷有多种语言的实现的题库 一种语言看不懂可以换另一种语言 而且可以结合起来去重 类似下面这种的题库 华为OD机试备考攻略 以及题库目录分值说明 考点说明 blog csdn net banxia
  • copy of an AVPacket structure

    a copy of an AVPacket structure 参考 https stackoverflow com questions 12929330 create a copy of an avpacket structure ok
  • 回调函数的作用详解

    回调函数的作用 原文地址 回调函数的作用 加菲的日志 网易博客 一直不太理解回调函数的作用 下面是找到的一些关于回调函数的作用的解答 1 回调函数是一个很有用 也很重要的概念 当发生某种事件时 系统或其他函数将会自动调用你定义的一段函数 2
  • STM32的DMA输出DAC的正弦波与三角波 幅度与周期可调可调(原创篇);

    废话不多说 因为激光振镜驱动需要正弦波与三角波 为了省事 直接通过STM32F407实现DAC的DMA输出 省CPU资源 经过调试 在0 NkHZ之内都可以实现 目前采样点为500个 上数据吧 其中三角波自动生成500个数据 在初始化的时候
  • 自己的Anaconda管理多个虚拟环境,这样就可以在不同的环境下安装互不干扰的库

    项目场景 Anaconda可以安装多个虚拟解释器 每个解释器可以安装自己独有的库 从而每个解释器之间起到互不干扰的作用 这点Anaconda就非常强大了 查看Anaconda的解释环境 在电脑开始中选择Anaconda Prompt set
  • 搭建一个vue3+ts项目(超祥/必看)

    一 创建vite项目 1 在一个文件夹下通过cmd打开 输入命令 npm create vite latest 2 接着选择ts 3 创建好之后 结构目录如下 二 启动vite项目 1 安装依赖 启动项目前需要先 npm i 从上图可以发现
  • C++智能指针知识总结

    智能指针 智能指针是为了避免内存泄漏的技术 智能指针采用了RAII特性 利用对象生命周期来控制程序资源 在对象构造时获取资源 接着控制对资源的访问使之在对象的生命周期内始终保持有效 最后在对象析构的时候释放资源 借此 我们实际上把管理一份资
  • Python 四五事

    介绍 Python 相关工具 工作流程和测试框架 最后更新 2014 1 19 引言 接续着之前的文章 虽然隔得比较久 本文继续介绍以 Windows 平台为背景的 Python 开发相关的工具 希望能对你有所帮助 另外很多东西本文都是延续
  • html+css+javascript知识点总结

    一 html css 基础 1 1 Html 和 CSS 的关系 学习 web 前端开发基础技术需要掌握 HTML CSS JavaScript 语言 下面我们就来了解下这三门技术都是用来实现什么的 1 HTML 是网页内容的载体 内容就是
  • 14.12 修改职工信息

    14 12 修改职工信息 1 按照编号修改职工信息 先声明 修改职工 void mod Emp 再实现 就是把查到的职工删除 再在那个位置输入一个新职工 所以跟添加职工的代码很多地方一样 修改职工 void WorkerManager mo
  • Koordinator 异构资源/任务调度实践

    前言 Koordinator 是阿里云基于过去我们建设的统一调度系统中积累的技术和实践经验 对外开源了新一代的调度系统 Koordinator 支持 Kubernetes 上多种工作负载的混部调度 它的目标是提高工作负载的运行时效率和可靠性
  • 从入门到放弃系列--如何成为全栈工程师04

    之前的3节课 我告诉了你基础的html div css布局 你应该已经了解网页是怎么制作的 在开从第5节课开始 我会用一个完整的实例 带你制作快速制作一个企业网站 这节课 我要把让你明白 当你在浏览器里输入一个网址 网页是怎么出现的 以及
  • 数据分析与数据挖掘的区别

    数据分析 数据分析是用适当的统计方法对收集的数据进行分析 概括 总结 对数据进行恰当的描述 提取有用的信息 数据挖掘 数据挖掘是从海量的数据中通过算法发现隐藏在数据中的规律和知识的过程 区别 1 数据分析数据量可大可小 数据挖掘需要从海量数
  • 重磅:门头沟赔偿推迟5个月,没有无缘无故的大涨!

    Mt Gox善后受托人向东京地方法院提出寻求延长善后计划提交期限的动议 2019年10月25日 东京地方法院发布一项命令 允许延长期限到2020年3月31日提交善后计划 编译 白夜 编辑 秦晋 碳链价值最新获悉 Mt Gox发布声明表示 由
  • Python3中Pillow(PIL)介绍

    PIL全称为Python Imaging Library 是Python中的免费开源图像处理库 PIL的最新版本为1 1 7 于2009年9月发布 支持Python的最高版本到2 7 原始的PIL开发于2011年停止 随后 一个名为Pill