3

What I need:

A 3000px by 1340px PNG that vertically graduates from 100% opacity black to 0% opacity black.

My problem:

Banding occurs.

Example:

enter image description here

What I've tried:

Virtually every solution to be found online. I've tried adding noise, blurs, installing actions that are supposed to work but don't, changing the the color and dither settings, converting from 16 bit to 8 bit and NONE of these solutions work for me.

Note: I'm already aware of this question: Is it really impossible to have gradient without banding?

My question:

Would anyone be kind enough to confirm that they can actually create what I've described and tell me how to achieve it?

Even a link to a non-Photoshop solution will work e.g. an online gradient generator, Illustrator, Fireworks.

1
  • I can't seem to be able to recreate your issue in Illustrator. This is what I got When I did it in Illustrator.
    – Welz
    May 17, 2017 at 12:34

2 Answers 2

2

On theoretic level you will never be able to achieve perfectly smooth gradients. This is because the numeric color levels must use float numbers to calculate the gradient. As you need to convert floats to integer value (no decimal) there are introduced rounding errors which cause banding.

The technique to overcome rounding error has always been to introduce noise. Noise is what is the basis for dithering where you put noise in the lower value section where the rounding error present itself, to break up the uniformity of the rounding error in that area and therefor make it look more smooth.

There are different implementations of these techniques, some good, some not so good. I remember from the old days on the Amiga we used the algorithm developed by Floyd-Steinberg. It worked pretty well back then, and still do.

Even if you do get a "good looking" gradient inside your computer, there are other factors that will determine the final result such as the quality of your graphics card as well as your monitor. Modern days cards and monitors are in the same digital domain and can only work with integer values (ie. why 10-bits, 12-bits cards and screens where introduced so the rounding error is moved to an even lower value in the range these bit-resolutions represents) and suffer from rounding errors too (I'm not referring to the actual physical pixel itself as it is analogue, but the hardware and software drivers behind it).

There is not much you can do about that besides from introducing more noise in the graphics to even out transitions. If a commercial context you would need to use high quality card and monitor to be on the safe side (ie. from segments such as card supplier as f.ex. Matrox or monitor manufacturer Eizo works in).

(That being said, you can eliminate one step in the chain by hooking up a good old fashion CRT monitor that uses analogue signal to see if your monitor is limiting the representation or if your gfx card is - if you have an analogue output on your card that is. This not an accurate test of course, but gives you a pointer)

2
  • Thanks for the wealth of information. Knowing the universal limitations of gradients has now equipped me with a better sense of when to throw the towel in on the issue. I've opted for a noise solution but it produces an undesired grainy effect. It's the best I can achieve before the bands become too obvious. I honestly had no idea that gradients were so problematic. Oct 29, 2012 at 22:39
  • It's kind of a paradox that what we try to achieve with digital (perfect and noiseless) sometimes has to be addressed with properties of the analog world such as noise.
    – user7179
    Oct 29, 2012 at 22:46
0

Gradient dithering will help break up banding where the gradient covers too large a spectrum for the available dynamic range. Photoshop can do this for you.

4
  • Gradient dithering is checked. The banding still occurs significantly. All I'm trying to achieve is a black to transparent gradient on a 3000px by 1340px PSD. If you have a minute to try for yourself, you'll see the problem. Oct 29, 2012 at 16:47
  • That's a lot of pixels to cover. I think the barrier you're hitting is the dynamic range of most monitors. Unless you can compromise on the length of the gradient, there may not be a reliable solution. Oct 29, 2012 at 17:24
  • Even at 300px X 300px, banding occurs. Here's an example of black to invisible: img203.imageshack.us/img203/9770/90687836.png ...and here's an example of the same on a dark background: img221.imageshack.us/img221/543/42940124.png Oct 29, 2012 at 17:36
  • I've added 1% noise. It's far from perfect but it's the best compromise I have at this stage. Oct 29, 2012 at 22:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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