]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 9 Jun 2011 00:31:43 +0000 (00:31 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 9 Jun 2011 00:31:43 +0000 (00:31 +0000)
ChangeLog
coders/svg.c
magick/annotate.c
magick/composite-private.h

index 1108c824d8d6df075f2ce032247e1a8399662c8e..fb08368d173511dc69ea2ce28f9fae00fd7a54f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-08  6.7.0-6 Cristy  <quetzlzacatenango@image...>
+  * New version 6.7.0-6.
+
+2011-06-08  6.7.0-6 Cristy  <quetzlzacatenango@image...>
+  * Fix transient error for composite over operator.
+
 2011-06-07  6.7.0-5 Cristy  <quetzlzacatenango@image...>
   * New version 6.7.0-5.
 
index 51d1c784675f8581b196cea7408c3c561418a12d..22959b8c475849d3af57b41f81b727194d950b6c 100644 (file)
@@ -2044,9 +2044,8 @@ static void SVGStartElement(void *context,const xmlChar *name,
                   affine.ty;
               }
               (void) FormatLocaleFile(svg_info->file,
-                "affine %g %g %g %g %g %g\n",transform.sx,
-                transform.rx,transform.ry,transform.sy,transform.tx,
-                transform.ty);
+                "affine %g %g %g %g 0.0 0.0\n",transform.sx,transform.rx,
+                transform.ry,transform.sy);
               for (j=0; tokens[j] != (char *) NULL; j++)
                 tokens[j]=DestroyString(tokens[j]);
               tokens=(char **) RelinquishMagickMemory(tokens);
@@ -2404,8 +2403,7 @@ static void SVGEndElement(void *context,const xmlChar *name)
 
               text=EscapeString(svg_info->text,'\'');
               (void) FormatLocaleFile(svg_info->file,"text %g,%g '%s'\n",
-                svg_info->bounds.x-svg_info->center.x,svg_info->bounds.y-
-                svg_info->center.y,text);
+                svg_info->bounds.x,svg_info->bounds.y,text);
               text=DestroyString(text);
               *svg_info->text='\0';
             }
index 328db51953bbc27756264a1ff25577cc07623826..8933e44e494720b9046f764403de0d3f7c099936 100644 (file)
@@ -1356,12 +1356,12 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
           PixelPacket
             fill_color;
 
-          register ssize_t
-            x;
-
           register PixelPacket
             *restrict q;
 
+          register ssize_t
+            x;
+
           register unsigned char
             *p;
 
index 9f2eaebc41ed7d76927a25c9712526f24838e634..6a4e09a427ed597ad8e3d631404efd0d60b4d6ab 100644 (file)
@@ -52,6 +52,12 @@ static inline void MagickCompositeOver(const PixelPacket *p,
   /*
     Compose pixel p over pixel q with the given opacities.
   */
+  if (alpha == TransparentOpacity)
+    {
+      if (composite != q)
+        *composite=(*q);
+      return;
+    }
   gamma=1.0-QuantumScale*QuantumScale*alpha*beta;
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   composite->opacity=(Quantum) (QuantumRange*(1.0-gamma)+0.5);
@@ -90,6 +96,11 @@ static inline void MagickPixelCompositeOver(const MagickPixelPacket *p,
   /*
     Compose pixel p over pixel q with the given opacities.
   */
+  if (alpha == OpaqueOpacity)
+    {
+      *composite=(*p);
+      return;
+    }
   gamma=1.0-QuantumScale*QuantumScale*alpha*beta;
   composite->opacity=(MagickRealType) QuantumRange*(1.0-gamma);
   gamma=1.0/(fabs(gamma) <= MagickEpsilon ? 1.0 : gamma);