]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 28 Mar 2011 14:01:28 +0000 (14:01 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 28 Mar 2011 14:01:28 +0000 (14:01 +0000)
Makefile.in
config/Makefile.am
config/configure.xml
configure
magick/pixel.c
magick/version.h

index a837db3194984ef33c80542e488c2767ba736d39..dff61e19c7a2f34b8e604f1ca7080bf904600380 100644 (file)
@@ -2742,6 +2742,11 @@ M4_EXTRA_DIST = \
 # (share/ImageMagick-version)
 configsharedir = $(SHARE_CONFIGURE_PATH)
 configshare_DATA = \
+       config/configure.xml \
+       config/delegates.xml \
+       config/english.xml \
+       config/francais.xml \
+       config/locale.xml \
        config/coder.xml \
        config/colors.xml \
        config/log.xml \
@@ -2752,14 +2757,9 @@ configshare_DATA = \
 
 
 # Where architecture-dependent configuration files get installed
-# (lib/ImageMagick-version)
+# (share/ImageMagick-version)
 configlibdir = $(CONFIGURE_PATH)
 configlib_DATA = \
-       config/configure.xml \
-       config/delegates.xml \
-       config/english.xml \
-       config/francais.xml \
-       config/locale.xml \
        config/policy.xml \
        config/type.xml \
        config/type-dejavu.xml \
index 25c01cdf1119643aab27aedad41ae727f21d28a6..413a0443db628d945aa9200b58e750c97e8ff68e 100644 (file)
 # (share/ImageMagick-version)
 configsharedir = $(SHARE_CONFIGURE_PATH)
 configshare_DATA = \
+       config/configure.xml \
+       config/delegates.xml \
+       config/english.xml \
+       config/francais.xml \
+       config/locale.xml \
        config/coder.xml \
        config/colors.xml \
        config/log.xml \
@@ -27,14 +32,9 @@ configshare_DATA = \
        config/thresholds.xml
 
 # Where architecture-dependent configuration files get installed
-# (lib/ImageMagick-version)
+# (share/ImageMagick-version)
 configlibdir =  $(CONFIGURE_PATH)
 configlib_DATA = \
-       config/configure.xml \
-       config/delegates.xml \
-       config/english.xml \
-       config/francais.xml \
-       config/locale.xml \
        config/policy.xml \
        config/type.xml \
        config/type-dejavu.xml \
index cf1788f066d380061070552ab98cc52ba4c63459..f13745fd7eee79b9d20d289a789bd5cccbe68f3b 100644 (file)
@@ -10,7 +10,7 @@
   <configure name="VERSION" value="6.6.9"/>
   <configure name="LIB_VERSION" value="0x669"/>
   <configure name="LIB_VERSION_NUMBER" value="6,6,9,0"/>
-  <configure name="SVN_REVISION" value="4053" />
+  <configure name="SVN_REVISION" value="4055" />
   <configure name="RELEASE_DATE" value="2011-03-28"/>
   <configure name="CONFIGURE" value="./configure "/>
   <configure name="PREFIX" value="/usr/local"/>
index bdafbcc687c0c2a91afb5bdacd502615fadce4aa..7d2320da85eb38987db6e0d47a59c7193471608c 100755 (executable)
--- a/configure
+++ b/configure
@@ -3451,7 +3451,7 @@ MAGICK_LIBRARY_CURRENT_MIN=`expr $MAGICK_LIBRARY_CURRENT - $MAGICK_LIBRARY_AGE`
 
 MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE
 
-MAGICK_SVN_REVISION=4053
+MAGICK_SVN_REVISION=4055
 
 
 
index 8c4a51429d54b0b167dba09c338866369f996f69..9d1441d0be843399a422fdbb3e1b7403782e46fe 100644 (file)
@@ -3414,11 +3414,34 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image,
 %
 */
 
-static inline double MagickMax(const MagickRealType x,const MagickRealType y)
+static inline void AlphaBlendMagickPixelPacket(const Image *image,
+  const PixelPacket *color,const IndexPacket *index,MagickPixelPacket *pixel,
+  MagickRealType *alpha)
 {
-  if (x > y)
-    return(x);
-  return(y);
+  if (image->matte == MagickFalse)
+    {
+      *alpha=1.0;
+      pixel->red=(MagickRealType) color->red;
+      pixel->green=(MagickRealType) color->green;
+      pixel->blue=(MagickRealType) color->blue;
+      pixel->opacity=(MagickRealType) color->opacity;
+      pixel->index=0;
+      if (((image->colorspace == CMYKColorspace) ||
+           (image->storage_class == PseudoClass)) &&
+          (index != (const IndexPacket *) NULL))
+        pixel->index=(MagickRealType) *index;
+      return;
+    }
+  *alpha=QuantumScale*GetAlphaPixelComponent(color);
+  pixel->red=(MagickRealType) (*alpha*color->red);
+  pixel->green=(MagickRealType) (*alpha*color->green);
+  pixel->blue=(MagickRealType) (*alpha*color->blue);
+  pixel->opacity=(MagickRealType) (*alpha*color->opacity);
+  pixel->index=0;
+  if (((image->colorspace == CMYKColorspace) ||
+       (image->storage_class == PseudoClass)) &&
+      (index != (const IndexPacket *) NULL))
+    pixel->index=(MagickRealType) (*alpha*(*index));
 }
 
 static void BicubicInterpolate(const MagickPixelPacket *pixels,const double dx,
@@ -3462,6 +3485,13 @@ static void BicubicInterpolate(const MagickPixelPacket *pixels,const double dx,
     }
 }
 
+static inline double MagickMax(const MagickRealType x,const MagickRealType y)
+{
+  if (x > y)
+    return(x);
+  return(y);
+}
+
 static inline MagickRealType CubicWeightingFunction(const MagickRealType x)
 {
   MagickRealType
@@ -3532,28 +3562,36 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           break;
         }
       indexes=GetCacheViewVirtualIndexQueue(image_view);
+      AlphaBlendMagickPixelPacket(image,p+0,indexes+0,pixels+0,alpha+0);
+      AlphaBlendMagickPixelPacket(image,p+1,indexes+1,pixels+1,alpha+1);
+      AlphaBlendMagickPixelPacket(image,p+2,indexes+2,pixels+2,alpha+2);
+      AlphaBlendMagickPixelPacket(image,p+3,indexes+3,pixels+3,alpha+3);
+      AlphaBlendMagickPixelPacket(image,p+4,indexes+4,pixels+4,alpha+4);
+      AlphaBlendMagickPixelPacket(image,p+5,indexes+5,pixels+5,alpha+5);
+      AlphaBlendMagickPixelPacket(image,p+6,indexes+6,pixels+6,alpha+6);
+      AlphaBlendMagickPixelPacket(image,p+7,indexes+7,pixels+7,alpha+7);
+      AlphaBlendMagickPixelPacket(image,p+8,indexes+8,pixels+8,alpha+8);
+      AlphaBlendMagickPixelPacket(image,p+9,indexes+9,pixels+9,alpha+9);
+      AlphaBlendMagickPixelPacket(image,p+10,indexes+10,pixels+10,alpha+10);
+      AlphaBlendMagickPixelPacket(image,p+11,indexes+11,pixels+11,alpha+11);
+      AlphaBlendMagickPixelPacket(image,p+12,indexes+12,pixels+12,alpha+12);
+      AlphaBlendMagickPixelPacket(image,p+13,indexes+13,pixels+13,alpha+13);
+      AlphaBlendMagickPixelPacket(image,p+14,indexes+14,pixels+14,alpha+14);
+      AlphaBlendMagickPixelPacket(image,p+15,indexes+15,pixels+15,alpha+15);
+      pixel->red=0.0;
+      pixel->green=0.0;
+      pixel->blue=0.0;
+      pixel->opacity=0.0;
+      pixel->index=0.0;
       for (i=0; i < 16L; i++)
       {
-        SetMagickPixelPacket(image,p,indexes+i,pixels+i);
-        alpha[i]=1.0;
-        if (image->matte != MagickFalse)
-          {
-            alpha[i]=QuantumScale*((MagickRealType) GetAlphaPixelComponent(p));
-            pixels[i].red*=alpha[i];
-            pixels[i].green*=alpha[i];
-            pixels[i].blue*=alpha[i];
-            if (image->colorspace == CMYKColorspace)
-              pixels[i].index*=alpha[i];
-          }
-        gamma=alpha[i];
-        gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma);
+        gamma=1.0/(fabs((double) alpha[i]) <= MagickEpsilon ? 1.0 : alpha[i]);
         pixel->red+=gamma*0.0625*pixels[i].red;
         pixel->green+=gamma*0.0625*pixels[i].green;
         pixel->blue+=gamma*0.0625*pixels[i].blue;
         pixel->opacity+=0.0625*pixels[i].opacity;
         if (image->colorspace == CMYKColorspace)
           pixel->index+=gamma*0.0625*pixels[i].index;
-        p++;
       }
       break;
     }
@@ -3577,25 +3615,26 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           break;
         }
       indexes=GetCacheViewVirtualIndexQueue(image_view);
-      for (i=0; i < 16L; i++)
-      {
-        SetMagickPixelPacket(image,p,indexes+i,pixels+i);
-        alpha[i]=1.0;
-        if (image->matte != MagickFalse)
-          {
-            alpha[i]=QuantumScale*((MagickRealType) GetAlphaPixelComponent(p));
-            pixels[i].red*=alpha[i];
-            pixels[i].green*=alpha[i];
-            pixels[i].blue*=alpha[i];
-            if (image->colorspace == CMYKColorspace)
-              pixels[i].index*=alpha[i];
-          }
-        p++;
-      }
+      AlphaBlendMagickPixelPacket(image,p+0,indexes+0,pixels+0,alpha+0);
+      AlphaBlendMagickPixelPacket(image,p+1,indexes+1,pixels+1,alpha+1);
+      AlphaBlendMagickPixelPacket(image,p+2,indexes+2,pixels+2,alpha+2);
+      AlphaBlendMagickPixelPacket(image,p+3,indexes+3,pixels+3,alpha+3);
+      AlphaBlendMagickPixelPacket(image,p+4,indexes+4,pixels+4,alpha+4);
+      AlphaBlendMagickPixelPacket(image,p+5,indexes+5,pixels+5,alpha+5);
+      AlphaBlendMagickPixelPacket(image,p+6,indexes+6,pixels+6,alpha+6);
+      AlphaBlendMagickPixelPacket(image,p+7,indexes+7,pixels+7,alpha+7);
+      AlphaBlendMagickPixelPacket(image,p+8,indexes+8,pixels+8,alpha+8);
+      AlphaBlendMagickPixelPacket(image,p+9,indexes+9,pixels+9,alpha+9);
+      AlphaBlendMagickPixelPacket(image,p+10,indexes+10,pixels+10,alpha+10);
+      AlphaBlendMagickPixelPacket(image,p+11,indexes+11,pixels+11,alpha+11);
+      AlphaBlendMagickPixelPacket(image,p+12,indexes+12,pixels+12,alpha+12);
+      AlphaBlendMagickPixelPacket(image,p+13,indexes+13,pixels+13,alpha+13);
+      AlphaBlendMagickPixelPacket(image,p+14,indexes+14,pixels+14,alpha+14);
+      AlphaBlendMagickPixelPacket(image,p+15,indexes+15,pixels+15,alpha+15);
       delta.x=x-floor(x);
+      delta.y=y-floor(y);
       for (i=0; i < 4L; i++)
         BicubicInterpolate(pixels+4*i,delta.x,u+i);
-      delta.y=y-floor(y);
       BicubicInterpolate(u,delta.y,pixel);
       break;
     }
@@ -3621,31 +3660,17 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           break;
         }
       indexes=GetCacheViewVirtualIndexQueue(image_view);
-      SetMagickPixelPacket(image,p+0,indexes+0,pixels+0);
-      SetMagickPixelPacket(image,p+1,indexes+1,pixels+1);
-      SetMagickPixelPacket(image,p+2,indexes+2,pixels+2);
-      SetMagickPixelPacket(image,p+3,indexes+3,pixels+3);
-      if (image->matte != MagickFalse)
-        for (i=0; i < 4L; i++)
-        {
-          alpha[i]=QuantumScale*GetAlphaPixelComponent(p+i);
-          pixels[i].red*=alpha[i];
-          pixels[i].green*=alpha[i];
-          pixels[i].blue*=alpha[i];
-          if (image->colorspace == CMYKColorspace)
-            pixels[i].index*=alpha[i];
-        }
-      gamma=1.0;
+      AlphaBlendMagickPixelPacket(image,p+0,indexes+0,pixels+0,alpha+0);
+      AlphaBlendMagickPixelPacket(image,p+1,indexes+1,pixels+1,alpha+1);
+      AlphaBlendMagickPixelPacket(image,p+2,indexes+2,pixels+2,alpha+2);
+      AlphaBlendMagickPixelPacket(image,p+3,indexes+3,pixels+3,alpha+3);
       delta.x=x-floor(x);
       delta.y=y-floor(y);
       epsilon.x=1.0-delta.x;
       epsilon.y=1.0-delta.y;
-      if (image->matte != MagickFalse)
-        {
-          gamma=((epsilon.y*(epsilon.x*alpha[0]+delta.x*alpha[1])+delta.y*
-            (epsilon.x*alpha[2]+delta.x*alpha[3])));
-          gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma);
-        }
+      gamma=((epsilon.y*(epsilon.x*alpha[0]+delta.x*alpha[1])+delta.y*
+        (epsilon.x*alpha[2]+delta.x*alpha[3])));
+      gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma);
       pixel->red=gamma*(epsilon.y*(epsilon.x*pixels[0].red+delta.x*
         pixels[1].red)+delta.y*(epsilon.x*pixels[2].red+delta.x*pixels[3].red));
       pixel->green=gamma*(epsilon.y*(epsilon.x*pixels[0].green+delta.x*
@@ -3720,8 +3745,8 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
         pixels[4];
 
       MagickRealType
-        alpha[4] = { 1.0, 1.0, 1.0, 1.0 },
-        gamma = 1.0;
+        alpha[4],
+        gamma;
 
       PointInfo
         delta,
@@ -3735,20 +3760,10 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           break;
         }
       indexes=GetCacheViewVirtualIndexQueue(image_view);
-      SetMagickPixelPacket(image,p+0,indexes+0,pixels+0);
-      SetMagickPixelPacket(image,p+1,indexes+1,pixels+1);
-      SetMagickPixelPacket(image,p+2,indexes+2,pixels+2);
-      SetMagickPixelPacket(image,p+3,indexes+3,pixels+3);
-      if (image->matte != MagickFalse)
-        for (i=0; i < 4L; i++)
-        {
-          alpha[i]=QuantumScale*GetAlphaPixelComponent(p+i);
-          pixels[i].red*=alpha[i];
-          pixels[i].green*=alpha[i];
-          pixels[i].blue*=alpha[i];
-          if (image->colorspace == CMYKColorspace)
-            pixels[i].index*=alpha[i];
-        }
+      AlphaBlendMagickPixelPacket(image,p+0,indexes+0,pixels+0,alpha+0);
+      AlphaBlendMagickPixelPacket(image,p+1,indexes+1,pixels+1,alpha+1);
+      AlphaBlendMagickPixelPacket(image,p+2,indexes+2,pixels+2,alpha+2);
+      AlphaBlendMagickPixelPacket(image,p+3,indexes+3,pixels+3,alpha+3);
       delta.x=x-floor(x);
       delta.y=y-floor(y);
       luminance.x=MagickPixelLuminance(pixels+0)-MagickPixelLuminance(pixels+3);
@@ -3886,29 +3901,37 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           break;
         }
       indexes=GetCacheViewVirtualIndexQueue(image_view);
-      n=0;
+      AlphaBlendMagickPixelPacket(image,p+0,indexes+0,pixels+0,alpha+0);
+      AlphaBlendMagickPixelPacket(image,p+1,indexes+1,pixels+1,alpha+1);
+      AlphaBlendMagickPixelPacket(image,p+2,indexes+2,pixels+2,alpha+2);
+      AlphaBlendMagickPixelPacket(image,p+3,indexes+3,pixels+3,alpha+3);
+      AlphaBlendMagickPixelPacket(image,p+4,indexes+4,pixels+4,alpha+4);
+      AlphaBlendMagickPixelPacket(image,p+5,indexes+5,pixels+5,alpha+5);
+      AlphaBlendMagickPixelPacket(image,p+6,indexes+6,pixels+6,alpha+6);
+      AlphaBlendMagickPixelPacket(image,p+7,indexes+7,pixels+7,alpha+7);
+      AlphaBlendMagickPixelPacket(image,p+8,indexes+8,pixels+8,alpha+8);
+      AlphaBlendMagickPixelPacket(image,p+9,indexes+9,pixels+9,alpha+9);
+      AlphaBlendMagickPixelPacket(image,p+10,indexes+10,pixels+10,alpha+10);
+      AlphaBlendMagickPixelPacket(image,p+11,indexes+11,pixels+11,alpha+11);
+      AlphaBlendMagickPixelPacket(image,p+12,indexes+12,pixels+12,alpha+12);
+      AlphaBlendMagickPixelPacket(image,p+13,indexes+13,pixels+13,alpha+13);
+      AlphaBlendMagickPixelPacket(image,p+14,indexes+14,pixels+14,alpha+14);
+      AlphaBlendMagickPixelPacket(image,p+15,indexes+15,pixels+15,alpha+15);
+      pixel->red=0.0;
+      pixel->green=0.0;
+      pixel->blue=0.0;
+      pixel->opacity=0.0;
+      pixel->index=0.0;
       delta.x=x-floor(x);
       delta.y=y-floor(y);
+      n=0;
       for (i=(-1); i < 3L; i++)
       {
         dy=CubicWeightingFunction((MagickRealType) i-delta.y);
         for (j=(-1); j < 3L; j++)
         {
-          SetMagickPixelPacket(image,p,indexes+n,pixels+n);
-          alpha[n]=1.0;
-          if (image->matte != MagickFalse)
-            {
-              alpha[n]=QuantumScale*((MagickRealType)
-                GetAlphaPixelComponent(p));
-              pixels[n].red*=alpha[n];
-              pixels[n].green*=alpha[n];
-              pixels[n].blue*=alpha[n];
-              if (image->colorspace == CMYKColorspace)
-                pixels[n].index*=alpha[n];
-            }
           dx=CubicWeightingFunction(delta.x-(MagickRealType) j);
-          gamma=alpha[n];
-          gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma);
+          gamma=1.0/(fabs((double) alpha[n]) <= MagickEpsilon ? 1.0 : alpha[n]);
           pixel->red+=gamma*dx*dy*pixels[n].red;
           pixel->green+=gamma*dx*dy*pixels[n].green;
           pixel->blue+=gamma*dx*dy*pixels[n].blue;
@@ -3916,7 +3939,6 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket(const Image *image,
           if (image->colorspace == CMYKColorspace)
             pixel->index+=gamma*dx*dy*pixels[n].index;
           n++;
-          p++;
         }
       }
       break;
index 9498714096194357d2b3ba789271450d80eeb52f..7bcc093929d237546737fc1663366de062f7ac69 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision  "4053"
+#define MagickSVNRevision  "4055"
 #define MagickLibVersion  0x669
 #define MagickLibVersionText  "6.6.9"
 #define MagickLibVersionNumber  4,0,1