灰色的rgb值_一行代码实现图片的灰色效果

71ad59abd856e215f6136abc575aca9a.png

今天是清明节,警笛长鸣,万众默哀。送别英雄,生活继续。

大部分的app配图,今天都是灰色。这种图片的转换在python里非常容易实现。一行代码搞定。

下面是DE8UG上次说个故事:再见VB。你好,精彩纷呈的编程世界!用的彩色图:

793f2506bbe93bf054552ded35295b91.png

我们用这一行代码运行一下:

Image.open('green-mix.jpg').convert("L").save('gray.jpg')

就直接变成了灰色。

代码解释

这句代码用到了pillow这个图片处理库,所以运行前,需要pip install pillow,刚才说是一行代码,其实有点夸张,用之前是需要导入的:

from PIL import Image

如果严格要求,真的一行搞定,其实也很简单:

from PIL import Image;Image.open('green-mix.jpg').convert("L").save('gray.jpg')

只需要用个分号把两句代码连为一行即可。

可能你已经发现了,上面的文件名是写好的字符串,我们还可以把代码修改的更灵活一下,比如运行一个gray.py的代码,直接传给这个代码一个图片名称,然后自动生成一个灰度图,比如我直接给原图片追加‘-gray’后缀。

那么,我们可以这样:新建一个gray.py文件,写入如下代码,然后保存:

import sys;from PIL import Image;Image.open(sys.argv[1]).convert("L").save(sys.argv[1]+'-gray.jpg')

然后打开控制台,进入图片目录,直接运行:

python gray.py green-mix.jpg

注意:green-mix.jpg是我这个目录里的文件名,你用的时候换为自己的

运行成功,当前目录出现两个文件:

green-mix.jpg 和 green-mix.jpg-gray.jpg, 当然,我这里没有处理文件名后缀,你可以自己用字符串处理。

图片转换原理

这里最关键的图片转换代码为:convert("L"),含义是将彩色的图片转为灰色图。用到了ITU-R 601-2 Luma转换:

L = R * 299/1000 + G * 587/1000 + B * 114/1000

这里的代码内部是把图片上每一个像素的颜色值RGB,都用公式进行了计算,映射到了灰色区域。也就出现了我们看见的灰色图效果。

72b2e2441894cbf7de44036a58fb4dd1.png

相关阅读:

  • Python权威学习资料-官方文档-DE8UG解读-01-甜点

  • Python权威学习资料-官方文档-DE8UG解读-02-解释器

  • Python权威学习资料-官方文档-DE8UG解读-03-Python 的非正式介绍

  • Python权威学习资料-官方文档-DE8UG解读-04a-流程关键词

  • Python权威学习资料-官方文档-DE8UG解读-04b-函数

  • Python权威学习资料-官方文档-DE8UG解读-05-数据结构与循环

  • Python权威学习资料-官方文档-DE8UG解读-06-模块与调用

  • Python权威学习资料-官方文档-DE8UG解读-07-输入输出文件和字符串

  • Python权威学习资料-官方文档-DE8UG解读-08-错误和异常

  • Python权威学习资料-官方文档-DE8UG解读-09-类与对象

想查看更多?

请点击原文⬇️


	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值