码迷,mamicode.com
首页 > 其他好文 > 详细

【项目1】彩色图片去色

时间:2018-07-04 10:29:31      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:项目   cocos2d   cos   save   参考   scale   import   多图   size   

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】彩色图片去色

标签:项目   cocos2d   cos   save   参考   scale   import   多图   size   

原文地址:https://www.cnblogs.com/bladeofstalin/p/9261550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!