项目1彩色图片去色

Posted bladeofstalin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目1彩色图片去色相关的知识,希望对你有一定的参考价值。

from PIL import Image
# 像安装 cocos2d 一样安装 PIL 库, 方法如下
# pip3 install pillow
# 这是 python 用于处理图像文件的库


"""
下面介绍一下计算机存储图像的原理

w 是图像宽
h 是图像高
一个图像由 w * h 个像素点组成
每个像素点由 rgba 4 个部分组成
r 红色
g 绿色
b 蓝色
a 透明度

现在的图像 rgba 分别是一个字节表示,一个字节的数值范围是 0 - 255
也就是一个像素点 4 字节,可以表示的颜色范围是 256 的 4 次方

但是很多图像是没有 a 的,所以就只有 3 字节表示一个像素



作业要求:
参考下面的链接和本文件的代码
https://baike.baidu.com/item/%E5%8E%BB%E8%89%B2

实现 grayscale 函数,让生成的 gua.png 是黑白的
"""


log = print


def grayscale(image, position, gray, a):
    #将position位置的像素RGB替换为gray,A不变
    image.putpixel(position, (gray, gray, gray, a))


def main():
    # 打开图像文件
    img = Image.open("gua_sample.png")
    # 注意由于不是每个图像都有 a 所以这里强制转换成 RGBA 格式
    img = img.convert(RGBA)
    size = img.size

    # 读取座标 (i, j) 处的像素点的像素值

    for i in range(size[0]):
        for j in range(size[1]):
            position = (i, j)
            r, g, b, a = img.getpixel(position)
            log(get pixel, r, g, b, a)
            gray = (r * 30 + g * 59 + b * 11) / 100
            gray = int(gray)
            log(gray, gray)
            grayscale(img, position, gray, a)

    # 保存图像文件
    img.save(gua.png)


if __name__ == __main__:
    main()

 

以上是关于项目1彩色图片去色的主要内容,如果未能解决你的问题,请参考以下文章

android 图片处理工具类,Bitmap转换String ,Drawable, byte[],保存,优化等。

前端例程:网页去色(以灰度形式显示)

1.CD冷却效果

十个html5代码片段,超实用,一定要收藏

根据图片的url地址下载图片到本地保存代码片段

片段中的Android选择器意图到图片照片