从图像中提取颜色的python模块。得到任何图片的调色板!
colorgram.p的Python项目详细描述
colorgram.py是一个python库,允许您从图像中提取颜色。与其他库相比,颜色图算法的结果更为强烈。
py是由github用户@darosh编写的javascript库colorgram.js的一个端口。目标是对原始库的结果有100%的准确性(这是一个已经达到的目标)。我决定移植它,因为我更喜欢Colorgram算法得到的结果,而不是其他库的结果-请看下一节。
结果
从时间上看,512x512图像的提取大约需要0.66s(另一个流行的颜色提取库Color Thief大约需要1.05s)。
如何使用
使用colorgram.py很简单。主要只有一个函数需要使用-colorgram.extract。
示例
importcolorgram# Extract 6 colors from an image.colors=colorgram.extract('sweet_pic.jpg',6)# colorgram.extract returns Color objects, which let you access# RGB, HSL, and what proportion of the image was that color.first_color=colors[0]rgb=first_color.rgb# e.g. (255, 151, 210)hsl=first_color.hsl# e.g. (230, 255, 203)proportion=first_color.proportion# e.g. 0.34# RGB and HSL are named tuples, so values can be accessed as properties.# These all work just as well:red=rgb[0]red=rgb.rsaturation=hsl[1]saturation=hsl.s
colorgram.extract(image, number_of_colors)
从图像中提取颜色。image可以是文件的路径、类似文件的对象或枕头Image对象。函数将返回number_of_colorsColor对象的列表。
colorgram.Color
从图像中提取的颜色。它的属性是:
- Color.rgb-表示为0到255之间rgb的namedtuple的颜色,例如(r=255, g=151, b=210)。
- Color.hsl-表示为从0到255的hsl的namedtuple的颜色,例如(h=230, s=255, l=203)。
- Color.proportion-提取颜色中图像从0到1的比例,例如0.34。
按hsl分类
原始库允许您对hsl得到的颜色进行排序。但实际上,颜色仅按色调排序(从colorgram.js 0.1.5开始),而忽略饱和度和亮度。要在colorgram.py中获得相应的结果,只需执行以下操作:
colors.sort(key=lambdac:c.hsl.h)# or...sorted(colors,key=lambdac:c.hsl.h)
联系人
如果您在colorgram.py中发现了一个bug,或者您希望添加一个功能,请在github上open an issue。
如果你有关于图书馆的问题,或者你只是想谈谈,好吧,任何事情,那都没有问题。您可以通过以下任何方式联系我:
为了快速得到答案,twitter是你最好的选择。
享受吧!