From: Robert L K. <rl...@al...> - 2000-05-20 01:37:51
|
Date: Fri, 19 May 2000 20:54:56 +0200 From: Thomas Tonino <tt...@bi...> Further remark: the old ordered dither now seems useless because of its autocorrelation. Depending on density in the grey wedge, C, M or Y hads the greates tendency to disappear under K, leading to a rainbow-effect grey wedge. How's the new matrix coming along. If we're going to use any kind of ordered dither, we have to solve the autocorrelation problem. Remember that we have to solve it for variable dot size/color, too. I reinstated the old kdarkness generation: I think that that's the wrong approach. I'm trying to remember exactly why I got rid of it, but it behaved very strangely. Maybe we need that to be configurable. Instead of (ok - lb) squared I use this as direct black value, so we start producing appreciable amounts of black early on. If you want to do that, you should be using ! bk = (ok - lb) * d->density / (ub - lb); rather than ! bk = (ok - lb) * 65535 / (ub - lb); Otherwise you'll go massively overboard on the black, and it will vary depending upon which resolution you use. *** 1600,1608 **** if (bk > 0) { ! c -= (d->k_clevel * bk) >> 6; ! m -= (d->k_mlevel * bk) >> 6; ! y -= (d->k_ylevel * bk) >> 6; if (c < 0) c = 0; if (m < 0) --- 1608,1617 ---- if (bk > 0) { ! bk = bk * bk / 65536; ! c -= (d->k_clevel * bk) /128; ! m -= (d->k_mlevel * bk) /128; ! y -= (d->k_ylevel * bk) /128; if (c < 0) c = 0; if (m < 0) *************** OK, you have two problems here: first of all bk needs to be unsigned for this to work, and secondly you've changed the divisor from 64 to 128. -- Robert Krawitz <rl...@al...> http://www.tiac.net/users/rlk/ Tall Clubs International -- http://www.tall.org/ or 1-888-IM-TALL-2 Member of the League for Programming Freedom -- mail lp...@uu... Project lead for The Gimp Print -- http://gimp-print.sourceforge.net "Linux doesn't dictate how I work, I dictate how Linux works." --Eric Crampton |