To change particular colors in an image, generally you multiply the RGB by a transformation matrix. Image manipulation programs such as gimp & photoshop have a selective color change function that allows a user to convert pixels within a certain "distance" to the original color in some color space to a new color. Eg, changing #00f
blue into #ffd
pale yellow.
I'm trying to implement such a function in a <canvas>
. What color space and distance definition do these algorithms typically use, and then how do they compute the transformation matrix?