From 8815806717c3b3e2b4f8700b4cc18b751bd3c23f Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 9 Jun 2011 00:31:43 +0000 Subject: [PATCH] --- ChangeLog | 6 ++++++ coders/svg.c | 8 +++----- magick/annotate.c | 6 +++--- magick/composite-private.h | 11 +++++++++++ 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1108c824d..fb08368d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-06-08 6.7.0-6 Cristy + * New version 6.7.0-6. + +2011-06-08 6.7.0-6 Cristy + * Fix transient error for composite over operator. + 2011-06-07 6.7.0-5 Cristy * New version 6.7.0-5. diff --git a/coders/svg.c b/coders/svg.c index 51d1c7846..22959b8c4 100644 --- a/coders/svg.c +++ b/coders/svg.c @@ -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'; } diff --git a/magick/annotate.c b/magick/annotate.c index 328db5195..8933e44e4 100644 --- a/magick/annotate.c +++ b/magick/annotate.c @@ -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; diff --git a/magick/composite-private.h b/magick/composite-private.h index 9f2eaebc4..6a4e09a42 100644 --- a/magick/composite-private.h +++ b/magick/composite-private.h @@ -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); -- 2.40.0