为什么pythoncolormath不能将sRGB转换为adobergb?

2024-10-02 14:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

这似乎是一个如此简单的问题,正是colormath设计的目的。但是调用convert_color似乎返回了传入的相同对象。根据the documentation,失败的转换应该引发UndefinedConversionError,而不是返回一个对象。在

>>> from colormath.color_objects import sRGBColor, AdobeRGBColor
>>> from colormath.color_conversions import convert_color
>>> srgb = sRGBColor(0.0, 1.0, 0.0)
>>> srgb
sRGBColor(rgb_r=0.0,rgb_g=1.0,rgb_b=0.0)
>>> argb = convert_color(srgb, AdobeRGBColor)
>>> argb
sRGBColor(rgb_r=0.0,rgb_g=1.0,rgb_b=0.0)
>>> argb is srgb
True

转换为Lab确实有效,所以我不确定问题是什么。在

^{pr2}$

Tags: the对象fromimport目的convertdocumentationrgb
1条回答
网友
1楼 · 发布于 2024-10-02 14:28:21

使用您的示例,convert_color定义中的conversion变量的内容是一个空列表,这意味着没有要执行的转换,因此定义没有失败,并返回{},它是用原始的sRGB颜色初始化的。我不太清楚为什么会这样。在

或者,我是另一个Python Colour ScienceAPI的维护者,它可能比colormath更复杂,因为不抽象转换:

import colour

colour.RGB_to_RGB(
  (0, 1, 0), 
  colour.models.sRGB_COLOURSPACE, 
  colour.models.ADOBE_RGB_1998_COLOURSPACE)


# array([ 0.28488056,  1.        ,  0.04116936])

相关问题 更多 >