From: anthony Date: Mon, 6 Dec 2010 06:10:48 +0000 (+0000) Subject: Bug fix in threshold.c Introduced IM v6.6.5-6 for unknown reason X-Git-Tag: 7.0.1-0~8417 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bffd2678270d356f1be828e7c85c1aecdd0b8155;p=imagemagick Bug fix in threshold.c Introduced IM v6.6.5-6 for unknown reason no action found in changelog --- diff --git a/ChangeLog b/ChangeLog index 063a574e2..11ff846e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-12-06 6.6.6-4 Anthony Thyssen + * Ordered Dithered handling of Alpha channel was incorrect - fixing + Bug was introduced v6.6.5-6 + 2010-12-03 6.6.6-3 Glenn Randers-Pehrson * Fixed two more cases where the PNG encoder lost transparency (reference http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17516). diff --git a/magick/threshold.c b/magick/threshold.c index 2062b87b7..e4ca606e4 100644 --- a/magick/threshold.c +++ b/magick/threshold.c @@ -1536,31 +1536,31 @@ printf("DEBUG levels r=%u g=%u b=%u a=%u i=%u\n", Opacity is inverted so 'off' represents transparent. */ if (levels.red) { - t = (ssize_t) (QuantumScale*q->red*(levels.red*d+1.0)); + t = (ssize_t) (QuantumScale*q->red*(levels.red*d+1)); l = t/d; t = t-l*d; q->red=RoundToQuantum((MagickRealType) ((l+(t >= threshold))* (MagickRealType) QuantumRange/levels.red)); } if (levels.green) { - t = (ssize_t) (QuantumScale*q->green*(levels.green*d+1.0)); + t = (ssize_t) (QuantumScale*q->green*(levels.green*d+1)); l = t/d; t = t-l*d; q->green=RoundToQuantum((MagickRealType) ((l+(t >= threshold))* (MagickRealType) QuantumRange/levels.green)); } if (levels.blue) { - t = (ssize_t) (QuantumScale*q->blue*(levels.blue*d+1.0)); + t = (ssize_t) (QuantumScale*q->blue*(levels.blue*d+1)); l = t/d; t = t-l*d; q->blue=RoundToQuantum((MagickRealType) ((l+(t >= threshold))* (MagickRealType) QuantumRange/levels.blue)); } if (levels.opacity) { - t = (ssize_t) ((1.0-QuantumScale*q->opacity)*(levels.opacity*d+.01)); + t = (ssize_t) ((1.0-QuantumScale*q->opacity)*(levels.opacity*d+1)); l = t/d; t = t-l*d; q->opacity=RoundToQuantum((MagickRealType) ((1.0-l-(t >= threshold))* (MagickRealType) QuantumRange/levels.opacity)); } if (levels.index) { - t = (ssize_t) (QuantumScale*indexes[x]*(levels.index*d+1.0)); + t = (ssize_t) (QuantumScale*indexes[x]*(levels.index*d+1)); l = t/d; t = t-l*d; indexes[x]=(IndexPacket) RoundToQuantum((MagickRealType) ((l+ (t>=threshold))*(MagickRealType) QuantumRange/levels.index));