From: cristy Date: Wed, 1 Dec 2010 19:31:14 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~8431 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fbd7009cae4402cc9f2e10c5b297a28e99ce5b2c;p=imagemagick --- diff --git a/ChangeLog b/ChangeLog index c0b30ec89..3a06d74d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-12-01 6.6.6-1 Cristy + * Affine multiplication reversed when translating (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17570). + 2010-11-26 6.6.6-2 Glenn Randers-Pehrson * Revised the "c7x7b" and "c7x7w" ordered-dither maps to be complementary to each other. diff --git a/magick/draw.c b/magick/draw.c index 4093d05e6..c849141f4 100644 --- a/magick/draw.c +++ b/magick/draw.c @@ -2761,14 +2761,14 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info) if ((affine.sx != 1.0) || (affine.rx != 0.0) || (affine.ry != 0.0) || (affine.sy != 1.0) || (affine.tx != 0.0) || (affine.ty != 0.0)) { - graphic_context[n]->affine.sx=affine.sx*current.sx+affine.ry*current.rx; - graphic_context[n]->affine.rx=affine.rx*current.sx+affine.sy*current.rx; - graphic_context[n]->affine.ry=affine.sx*current.ry+affine.ry*current.sy; - graphic_context[n]->affine.sy=affine.rx*current.ry+affine.sy*current.sy; - graphic_context[n]->affine.tx=affine.sx*current.tx+affine.ry*current.ty+ - affine.tx; - graphic_context[n]->affine.ty=affine.rx*current.tx+affine.sy*current.ty+ - affine.ty; + graphic_context[n]->affine.sx=current.sx*affine.sx+current.ry*affine.rx; + graphic_context[n]->affine.rx=current.rx*affine.sx+current.sy*affine.rx; + graphic_context[n]->affine.ry=current.sx*affine.ry+current.ry*affine.sy; + graphic_context[n]->affine.sy=current.rx*affine.ry+current.sy*affine.sy; + graphic_context[n]->affine.tx=current.sx*affine.tx+current.ry*affine.ty+ + current.tx; + graphic_context[n]->affine.ty=current.rx*affine.tx+current.sy*affine.ty+ + current.ty; } if (primitive_type == UndefinedPrimitive) { @@ -5153,8 +5153,8 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start, } delta=2.0/MagickMax(stop.x,stop.y); step=(MagickRealType) (MagickPI/8.0); - if ((delta >= 0.0) && (delta < (MagickRealType) (MagickPI/8.0))) - step=(MagickRealType) (MagickPI/(4*(MagickPI/delta/2+0.5))); + if ((delta >= 0.0) && (delta < (MagickPI/8.0))) + step=MagickPI/(4*(MagickPI/delta/2+0.5)); angle.x=DegreesToRadians(degrees.x); y=degrees.y; while (y < degrees.x)