使用PIL(Python-Imaging)反转图像的颜色方法


Posted in Python onJanuary 24, 2019

利用PIL将图片转换为黑色与白色反转的图片,下面笔者小白介绍如何实现。

解决方案一:

from PIL import Image
import PIL.ImageOps  
#读入图片
image = Image.open('your_image.png')
#反转
inverted_image = PIL.ImageOps.invert(image)
#保存图片
inverted_image.save('new_name.png')

注意:“ImageOps模块包含多个'ready-made'图像处理操作,该模块有些实验性,大多数操作符只适用于L和RGB图像。”

解决方案二:

如果图像是RGBA透明的,参考如下代码。

from PIL import Image
import PIL.ImageOps  

image = Image.open('your_image.png')
if image.mode == 'RGBA':
  r,g,b,a = image.split()
  rgb_image = Image.merge('RGB', (r,g,b))

  inverted_image = PIL.ImageOps.invert(rgb_image)

  r2,g2,b2 = inverted_image.split()

  final_transparent_image = Image.merge('RGBA', (r2,g2,b2,a))

  final_transparent_image.save('new_file.png')

else:
  inverted_image = PIL.ImageOps.invert(image)
  inverted_image.save('new_name.png')

解决方案三:

注:对于使用”1″模式的图像(即,1位像素,黑白色,以每个字节为单位存储的see docs),您需要在调用PIL.ImageOps.invert之前将其转换为”L”模式。

im = im.convert('L')
im = ImageOps.invert(im)
im = im.convert('1')

以上这篇使用PIL(Python-Imaging)反转图像的颜色方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python常见数制转换实例分析
May 09 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
python中redis的安装和使用
Dec 04 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Python2与Python3的区别实例总结
Apr 17 Python
简单的Python调度器Schedule详解
Aug 30 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
PyCharm下载和安装详细步骤
Dec 17 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
Python参数传递及收集机制原理解析
Jun 05 Python
Python通过队列来实现进程间通信的示例
Oct 14 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 #Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 #Python
Python对象与引用的介绍
Jan 24 #Python
selenium+python自动化测试之多窗口切换
Jan 23 #Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 #Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 #Python
selenium+python自动化测试之页面元素定位
Jan 23 #Python
You might like
PHP生成便于打印的网页
2006/10/09 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Django视图类型总结
2021/02/17 Python
枚举与#define宏的区别
2014/04/30 面试题
sealed修饰符是干什么的
2012/10/23 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
一年级小学生评语
2014/04/22 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
三好学生事迹材料
2014/12/24 职场文书
工作表现证明
2015/06/15 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
Flask response响应的具体使用
2021/07/15 Python