Это кажется такой простой проблемой, именно для этого и был разработан colormath
. Но вызов convert_color
возвращает тот же объект, который был передан. Согласно документации неудачное преобразование должно вызывать 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
, поэтому я не уверен, в чем может быть проблема.
>>> from colormath.color_objects import LabColor
>>> convert_color(srgb, LabColor)
LabColor(lab_l=87.73500278716472,lab_a=-86.1829494051608,lab_b=83.1795364492565)