Hi.
After checking the i18n files i now know that "nachbelichten" is supposed to
be burn.
However, the appropriate function in app/coposite-generic.c does not seem to
behave as expected.
afaik the burn function should do nothing if the the upper (the burning) color
is white.
also a black pixel of the lower layer should remain black - whatever the upper
layer is colored.
However, this function:
while (length--)
{
for (b = 0; b < alpha; b++)
{
tmp = (255 - src1[b]) << 8;
tmp /= src2[b] + 1;
dest[b] = (guchar) CLAMP(255 - tmp, 0, 255);
}
if (has_alpha1 && has_alpha2)
dest[alpha] = MIN(src1[alpha], src2[alpha]);
else if (has_alpha2)
dest[alpha] = src2[alpha];
src1 += bytes1;
src2 += bytes2;
dest += bytes2;
}
cannot provide this.
(e.g. upper (src1) is white (255) -> tmp = 0 << 8 = 0; => 0 / ? + 1 = 0;
CLAMP(255 - 0, 0, 255) = 255 = white - so white will flatten anything instead
of leaving it as it is.
as a consequence, black won't remain, as soon as one of the components r,g,b =
255.
i tried to weight the effect (255-0)/255*burn + (1-(255-0)/255)*original...
but the result wasn't like what i expected.
so - does anyone know which step i missed, or where i can get more information
about the theory behind?
Thanks,
Thomas
--
Think, think different. But essentially: Think!
_______________________________________________
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer