Nice. Everybody who programs something that involves calculations with colours in any way should learn some colour science. It's not hard in any way but lot's of stuff are missed in most applications.<p>One of the most missed feature is the lack of using a linear colourspace when it is necessary, like scaling (especially scaling down) images [1] or calculating physical models (like the Phong model [2]) that implicitly imply a linear colourspace. Iceweasel 35 still doesn't use a linear colourspace for scaling, there is a simple example image showing that [3] (try to zoom out). Last time I checked their SVG engine's Phong model implementation (yes, SVG supports bump maps with custom lighting settings) was broken too. It was a long time ago, I submitted a bug report for it but somehow it was marked as a duplicate for a "fixed" bug so I do not think that it got fixed since then.<p>[1] <a href="http://www.4p8.com/eric.brasseur/gamma.html" rel="nofollow">http://www.4p8.com/eric.brasseur/gamma.html</a><p>[2] <a href="http://en.m.wikipedia.org/wiki/Phong_reflection_model" rel="nofollow">http://en.m.wikipedia.org/wiki/Phong_reflection_model</a><p>[3] <a href="http://www.4p8.com/eric.brasseur/gamma-1.0-or-2.2.png" rel="nofollow">http://www.4p8.com/eric.brasseur/gamma-1.0-or-2.2.png</a><p>edit: formatting<p>edit:
Found the reference renderings of the feDiffuseLighting filter [4]. In my Iceweasel 35 the SVG images are much darker than the prerendered png.<p>[4] <a href="http://www.w3.org/Graphics/SVG/Test/20110816/harness/htmlObjectApproved/filters-diffuse-01-f.html" rel="nofollow">http://www.w3.org/Graphics/SVG/Test/20110816/harness/htmlObj...</a>
I've used the ColorPy (<a href="http://markkness.net/colorpy/ColorPy.html" rel="nofollow">http://markkness.net/colorpy/ColorPy.html</a>) a bit before and had some good luck with it. Anyone know who colorpipe compares?
Also, check out <a href="http://colour-science.org/" rel="nofollow">http://colour-science.org/</a><p>It has python implementations of a ton of colorspaces and transforms. Also some cool support for spectral data.