]> granicus.if.org Git - imagemagick/commitdiff
Fixed setting quality.
authordirk <dirk@git.imagemagick.org>
Sun, 3 Nov 2013 13:21:16 +0000 (13:21 +0000)
committerdirk <dirk@git.imagemagick.org>
Sun, 3 Nov 2013 13:21:16 +0000 (13:21 +0000)
coders/jpeg.c

index 748f0f2fe7d5d9b20fc4814693d3da18b6986b83..d62a0d59e4d1888e12498ccdc818169c5acab021 100644 (file)
@@ -2251,6 +2251,7 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
       "Interlace: nonprogressive");
 #endif
+  quality=92;
   option=GetImageOption(image_info,"jpeg:extent");
   if (option != (const char *) NULL)
     {
@@ -2282,20 +2283,19 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
           maximum=101;
           for (minimum=2; minimum < maximum; )
           {
-            jpeg_image->quality=minimum+(maximum-minimum+1)/2;
+            jpeg_info->quality=minimum+(maximum-minimum+1)/2;
             status=WriteJPEGImage(jpeg_info,jpeg_image,exception);
             if (GetBlobSize(jpeg_image) <= extent)
-              minimum=jpeg_image->quality+1;
+              minimum=jpeg_info->quality+1;
             else
-              maximum=jpeg_image->quality-1;
+              maximum=jpeg_info->quality-1;
           }
           (void) RelinquishUniqueFileResource(jpeg_image->filename);
-          image->quality=minimum-1;
+          quality=minimum-1;
           jpeg_image=DestroyImage(jpeg_image);
         }
       jpeg_info=DestroyImageInfo(jpeg_info);
     }
-  quality=92;
   if ((image_info->compression != LosslessJPEGCompression) &&
       (image->quality <= 100))
     {