From 4c2db55f00742682076724fdad2e24822426be6d Mon Sep 17 00:00:00 2001 From: Dirk Lemstra Date: Mon, 22 Oct 2018 22:53:40 +0200 Subject: [PATCH] Replaced the old density values with the new value. --- coders/svg.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/coders/svg.c b/coders/svg.c index 92723d159..c4d25b3e0 100644 --- a/coders/svg.c +++ b/coders/svg.c @@ -101,6 +101,11 @@ #endif #endif +/* + Define declarations. +*/ +#define SVGDensity 90.0 + /* Typedef declarations. */ @@ -332,17 +337,17 @@ static double GetUserSpaceCoordinateValue(const SVGInfo *svg_info,int type, } GetNextToken(p,&p,MagickPathExtent,token); if (LocaleNCompare(token,"cm",2) == 0) - return(72.0*svg_info->scale[0]/2.54*value); + return(SVGDensity*svg_info->scale[0]/2.54*value); if (LocaleNCompare(token,"em",2) == 0) return(svg_info->pointsize*value); if (LocaleNCompare(token,"ex",2) == 0) return(svg_info->pointsize*value/2.0); if (LocaleNCompare(token,"in",2) == 0) - return(72.0*svg_info->scale[0]*value); + return(SVGDensity*svg_info->scale[0]*value); if (LocaleNCompare(token,"mm",2) == 0) - return(72.0*svg_info->scale[0]/25.4*value); + return(SVGDensity*svg_info->scale[0]/25.4*value); if (LocaleNCompare(token,"pc",2) == 0) - return(72.0*svg_info->scale[0]/6.0*value); + return(SVGDensity*svg_info->scale[0]/6.0*value); if (LocaleNCompare(token,"pt",2) == 0) return(svg_info->scale[0]*value); if (LocaleNCompare(token,"px",2) == 0) @@ -3088,7 +3093,7 @@ static void SVGExternalSubset(void *context,const xmlChar *name, Static declarations. */ static char - SVGDensityGeometry[] = "90.0x90.0"; + SVGDensityGeometry[] = MagickStringify(SVGDensity) "x" MagickStringify(SVGDensity); static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception) { @@ -3328,8 +3333,10 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception) (ssize_t *) NULL,&image->columns,&image->rows); if ((image->columns != 0) || (image->rows != 0)) { - image->resolution.x=72.0*image->columns/dimension_info.width; - image->resolution.y=72.0*image->rows/dimension_info.height; + image->resolution.x=SVGDensity*image->columns/ + dimension_info.width; + image->resolution.y=SVGDensity*image->rows/ + dimension_info.height; if (fabs(image->resolution.x) < MagickEpsilon) image->resolution.x=image->resolution.y; else @@ -3343,8 +3350,8 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (apply_density != MagickFalse) { - image->columns=image->resolution.x*dimension_info.width/72.0; - image->rows=image->resolution.y*dimension_info.height/72.0; + image->columns=image->resolution.x*dimension_info.width/SVGDensity; + image->rows=image->resolution.y*dimension_info.height/SVGDensity; } else { @@ -3411,8 +3418,8 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception) cairo_paint(cairo_image); cairo_set_operator(cairo_image,CAIRO_OPERATOR_OVER); if (apply_density != MagickFalse) - cairo_scale(cairo_image,image->resolution.x/72.0, - image->resolution.y/72.0); + cairo_scale(cairo_image,image->resolution.x/SVGDensity, + image->resolution.y/SVGDensity); rsvg_handle_render_cairo(svg_handle,cairo_image); cairo_destroy(cairo_image); cairo_surface_destroy(cairo_surface); -- 2.40.0