]> granicus.if.org Git - imagemagick/commitdiff
Replaced the old density values with the new value.
authorDirk Lemstra <dirk@lemstra.org>
Mon, 22 Oct 2018 20:53:40 +0000 (22:53 +0200)
committerDirk Lemstra <dirk@lemstra.org>
Mon, 22 Oct 2018 20:53:40 +0000 (22:53 +0200)
coders/svg.c

index 92723d159cecfa388d5a3f2a237c0f113851a519..c4d25b3e072ca323fce76b32419e28c1fcfa037c 100644 (file)
 #endif
 #endif
 \f
+/*
+  Define declarations.
+*/
+#define SVGDensity 90.0
+\f
 /*
   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);