Could the IM color commands take inputs that are mixed among percentage and non-percentage values? I ask because of two issues:
- Including a percentage sign anywhere in the color forces the parser to assume all values are percentages without informing the user. So the user thinks they are getting rgb(240,15,50%), but really they are getting rgb(240%,15%,50%).
- Most definitions of the HSL and HSV color spaces specifically require coordinate asymmetry. The original paper* identifies that "hue is a circular or modular quality, while all the other characteristics mentioned imply the existence of minimum and maximum values" (and hence might be interpreted as scales or percentages). They ultimately place the saturation and lightness components on a scale from 0 to 1 and hue as an angle, but note that the "scaling ... is somewhat arbitrary".
While IM implements an asymmetric numeric format (hue/360, sat/256, light/256), due to #1, entering any of the coordinates as a percentage will shift the entire format to a symmetrical one (hue/100%, sat/100%, light/100%). Thus a naive user following a traditional HSL specification might get unexpected colors, because it would be natural to enter S&L or S&V as percentages of their maximum value, but leave hue as a degree (or radian) value, since it does not have a clear "maximum".
The CSS3 specification (http://dev.w3.org/csswg/css-color/#the-hsl-notation) is particularly troublesome because it only accepts the format the format "hsl(<hue>,<percentage>,<percentage>)". I don't know for certain, but I suspect CSS is one of the primary ways people are exposed to HSL.
- Joblove, George H., and Donald Greenberg. "Color spaces for computer graphics." ACM siggraph computer graphics. Vol. 12. No. 3. ACM, 1978. (http://www.ann.jussieu.fr/frey/papers/s ... aphics.pdf)