]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 18 May 2013 01:13:56 +0000 (01:13 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 18 May 2013 01:13:56 +0000 (01:13 +0000)
coders/jpeg.c

index c74eaaad1cbea9e894b348f2f4a987e2cefb73f5..ad69796ede670ef0b49181f4830caddbf3e0f6e5 100644 (file)
@@ -2024,6 +2024,7 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
     error_manager;
 
   int
+    colorspace,
     quality;
 
   JSAMPLE
@@ -2333,17 +2334,27 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
         }
     }
 #endif
-  sampling_factor=(const char *) NULL;
-  value=GetImageOption(image_info,"jpeg:sampling-factor");
+  colorspace=jpeg_info.in_color_space;
+  value=GetImageOption(image_info,"jpeg:colorspace");
   if (value == (char *) NULL)
-    value=GetImageProperty(image,"jpeg:sampling-factor",exception);
+    value=GetImageProperty(image,"jpeg:colorspace",exception);
   if (value != (char *) NULL)
+    colorspace=StringToInteger(value);
+  sampling_factor=(const char *) NULL;
+  if (colorspace == jpeg_info.in_color_space)
     {
-      sampling_factor=value;
-      if (image->debug != MagickFalse)
-        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-          "  Input sampling-factors=%s",sampling_factor);
+      value=GetImageOption(image_info,"jpeg:sampling-factor");
+      if (value == (char *) NULL)
+        value=GetImageProperty(image,"jpeg:sampling-factor",exception);
+      if (value != (char *) NULL)
+        {
+          sampling_factor=value;
+          if (image->debug != MagickFalse)
+            (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+              "  Input sampling-factors=%s",sampling_factor);
+        }
     }
+  value=GetImageOption(image_info,"jpeg:sampling-factor");
   if (image_info->sampling_factor != (char *) NULL)
     sampling_factor=image_info->sampling_factor;
   if (sampling_factor == (const char *) NULL)
@@ -2392,12 +2403,6 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
         jpeg_info.comp_info[i].v_samp_factor=1;
       }
     }
-  if (jpeg_info.input_components == 1)
-    for (i=0; i < MAX_COMPONENTS; i++)
-    {
-      jpeg_info.comp_info[i].h_samp_factor=1;
-      jpeg_info.comp_info[i].v_samp_factor=1;
-    }
   option=GetImageOption(image_info,"jpeg:q-table");
   if (option != (const char *) NULL)
     {