如何从colorgram返回的Color对象列表中提取RGB数值?
如何从colorgram获取的Color对象列表中提取RGB数值列表?
我用colorgram库获取了一个包含RGB颜色代码的列表,列表元素类型为colorgram.colorgram.Color,示例列表如下:
[<colorgram.py Color: Rgb(r=80, g=97, b=85), 42.86094708532268%> <colorgram.py Color: Rgb(r=34, g=48, b=37), 20.90975231208169%> <colorgram.py Color: Rgb(r=29, g=26, b=18), 12.300570275661888%>]
我希望提取出如下格式的RGB数值列表:
[[80, 97, 85], [34, 48, 37], [29, 26, 18]]
该列表长度不固定,请问如何实现提取?
解决方案
colorgram的Color对象自带rgb属性,这个属性是包含r、g、b三个数值的对象,你可以直接访问这三个属性提取数值,再用列表推导式快速生成目标列表,不管原列表长度多少都适用。
代码实现
import colorgram # 假设你已获取color_list,示例:从图片提取10种颜色 color_list = colorgram.extract("your_image.jpg", 10) # 提取RGB数值列表 rgb_list = [[color.rgb.r, color.rgb.g, color.rgb.b] for color in color_list] print(rgb_list)
代码说明
color.rgb:获取每个Color对象对应的RGB实例color.rgb.r/color.rgb.g/color.rgb.b:分别提取红、绿、蓝通道的数值- 列表推导式会自动遍历原列表的所有Color对象,生成对应的子列表,无需手动处理长度问题
内容的提问来源于stack exchange,提问作者whgus613
相关产品推荐
相关产品推荐

