提取图片中的 RGB 颜色,通过 Luminosity 算法计算灰度值,按计算好后的灰度值进行排序并展示。
# -*- coding:utf-8 -*- from PIL import Image from functools import cmp_to_key pic_path = "./pic/a001.png" img = Image.open(pic_path) img = img.convert('RGB') # 修改颜色通道为RGB x, y = img.size # 获得长和宽 d = {} # 提取图片中的颜色 for i in range(x): for k in range(y): color = img.getpixel((i, k)) # Luminosity算法计算灰度值 color_weight = color[0]*0.299 + color[1]*0.587 + color[2]*0.114 d[color_weight] = color # 定义一个图片用于存储颜色 color_img = Image.new('RGB', (len(d), 200), 'black') x1 = -1 for k in sorted(d): x1 = x1 + 1; for y1 in range(0,200): color_img.putpixel((x1, y1), d[k]) color_img.show()
示例一:
猎豹的皮肤。
效果图如下:
示例二:
chrome 浏览器图标。
效果图如下:
喜欢的点个赞❤吧!