Left one has some strange round shades and is not smooth like a yellow one

enter image description here


1 Answer 1


The discrete nature of your computer system comes quite consistently as a surprise to users. There are only so many colors in the palette of a standard display printer etc. Could there be more? Sure but that would mean the need to change how most of the systems work, deploying new monitors and printers costs money after all.

So 256 intensities is barely adequate for human vision. This will become readily apparent when you have a limited palette change because the individual areas of color become so large that your eyes edge detection kicks in (see mach bands on Wikipedia). Your eye is really good at this so its not so easy to fool in all cases.

Ok so if your palette is this limited then you have essentially 3 options:

  1. Make the colors a bit dirty. This can sometimes elimnate the problem, by introducing more steps to otherwise too perfect colors. Especially on monitors. So adjust the channels up and down by +- 0-2 per channel. Some combinations just have more discrete steps.

  2. Dither the gradient result. So you can compute the gradient at a higher color precision and then sample it down so that intermediary colors are represented with a alternating color values, either vith a pattern or a stochastic noise. Just like print make intermediate colors.

    This is not an option for illustrator. Not only because illustrator can only work at 8 bits per channel, but any vector file exported out fo illustrator would have the same limitation. What use would it be to fix this inside illustrator if your downsteram user would still have this problem?*

  3. You can fool the visual system by adding noise to the image. This does much the same as dithering but with a much much less elegant result.

    THis neccesitates your gradient being a pixel image. So you just lost the main benefit of vector image systems.

But yeah no good options im afraid.

* Well they could offfer it as an option for screen only outputs, or reasterized outputs.

Not the answer you're looking for? Browse other questions tagged or ask your own question.