LDraw.org Discussion Forums
ColourSum - Printable Version

+- LDraw.org Discussion Forums (https://forums.ldraw.org)
+-- Forum: LDraw Programs (https://forums.ldraw.org/forum-7.html)
+--- Forum: Parts Author Tools (https://forums.ldraw.org/forum-24.html)
+--- Thread: ColourSum (/thread-15284.html)

ColourSum - Max Martin Richter - 2015-01-25

I'm proud to present ColourSum - a tool for calculate the sum of two hex RGB colours with integrated comparison to LDraw standard colours.
Just remove the .ldr extension ;-)


Re: ColourSum - Philippe Hurbain - 2015-01-26

Great! And as a by-product, it also gives the closest LDraw color of any RGB value (just enter it in both colors 1 and 2).
What distance do you use? RGB one? Might be interesting to convert RGB color to HSL (see discussion here http://stackoverflow.com/questions/1678457/best-algorithm-for-matching-colours/1678498#1678498).

What about showing color samples for both initial values?

Re: ColourSum - Max Martin Richter - 2015-01-26

Yes, I'll try to add an option to pick a colour on the screen and find the nearest LDraw-Colour of it...
Actually the program calculates all distances sqrt((r_1-r_2)^2+(g_1-g_2)^2+(b_1-b-2)^2) between the new calculated colour and the LDraw Colours, looks for the minimum of this distances and compare this minimum with the distance array to find the corresponding colour.
I can try to implement an HSL in/output as well.
Yes, the colour samples for the input values are on my todo list. But then I have to move the 'error check' (6 values, 0-f) must be done while the textbox changes its value or while leaving it. I'll think about. :-)


PS.: Please note, that my programming skills are a bit limited, so that I have to read several pages to get to the right path. :-)
PPS.: I think I'll remove the sqrt. So I can calculate with integers and don't need to convert to double. The result should be the same.

Re: ColourSum - Philippe Hurbain - 2015-01-26

A few interesting links sent by a friend: http://www.easyrgb.com/index.php?X=MATH including a converter http://www.easyrgb.com/index.php?X=CALC
And http://en.wikipedia.org/wiki/Color_difference
Good luck Wink

Re: ColourSum - Mario Pascucci - 2015-01-26

Just to add some complexity Big Grin

Take a look to the source of my quick&dirty mosaic app, BrickMosaic.
In file "BrickColors.java" there are some references to XYZ and CIE-Lab colorspaces and CIE1994 method to measure "visual distance" between two color.

I tried some algorithm and colorspaces, but CIE-Lab + CIE1994 giving best results.

In source (file BrickColors.java):
- conversion from RGB to CIE-Lab is in function "RGB2Lab"
- color distance CIE1994 is computed in function "colorDiff_DE1994"
- I used a Java library function to convert a color from RGB to XYZ colorspace, but in source there is a commented function (RGB2XYZ) that do the same.