gtaylor / python-colormath

A python module that abstracts common color math operations. For example, converting from CIE L*a*b to XYZ, or from RGB to CMYK
python-colormath.readthedocs.org
BSD 3-Clause "New" or "Revised" License
456 stars 83 forks source link

conversion between different RGB spaces doesn't work #63

Open jan-warchol opened 8 years ago

jan-warchol commented 8 years ago

When I try to convert from one RGB space to another RGB space, I receive the result in the original space, not in the target space I specified:

from colormath.color_objects import sRGBColor, AdobeRGBColor
from colormath.color_conversions import convert_color

convert_color(sRGBColor(.5, .5, .5), AdobeRGBColor)
# result: sRGBColor(rgb_r=0.5,rgb_g=0.5,rgb_b=0.5)

If I go through a non-RGB space it works:

convert_color(convert_color(sRGBColor(.5, .5, .5), LabColor), AdobeRGBColor)
# result: AdobeRGBColor(rgb_r=0.49622736126049893,rgb_g=0.49622594102136347,rgb_b=0.49622822419096463)
gtaylor commented 8 years ago

That's pretty weird. I honestly probably won't get around to checking this out anytime soon, but I'd certainly accept a PR with a fix. Bonus points for a matching test case.

jan-warchol commented 8 years ago

I looked at the code before submitting this issue, but from what I see the logic is non-trivial (using some transformation graphs) and I didn't see anything obvious. I will look at this again if I find enough time.