Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

What I need:

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

My problem:

Banding occurs.

Example: http://i.stack.imgur.com/bmwle.png

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.

share|improve this question

2 Answers 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)

share|improve this answer
    
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. –  Dominor Novus Oct 29 '12 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. –  0x2bad 0xdeadbeef Oct 29 '12 at 22:46

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.

share|improve this answer
    
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. –  Dominor Novus Oct 29 '12 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. –  plainclothes Oct 29 '12 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 –  Dominor Novus Oct 29 '12 at 17:36
    
I've added 1% noise. It's far from perfect but it's the best compromise I have at this stage. –  Dominor Novus Oct 29 '12 at 22:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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