From: cristy Date: Wed, 12 Mar 2014 17:57:14 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2592 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a95040a1b2f0be0dc3bd616dae5b57b230cbae8;p=imagemagick --- diff --git a/coders/jpeg.c b/coders/jpeg.c index 0c588bb03..e4adf212d 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -2272,6 +2272,46 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info, "Interlace: nonprogressive"); #endif quality=92; + if ((image_info->compression != LosslessJPEGCompression) && + (image->quality <= 100)) + { + if (image->quality != UndefinedCompressionQuality) + quality=(int) image->quality; + if (image->debug != MagickFalse) + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Quality: %.20g", + (double) image->quality); + } + else + { +#if !defined(C_LOSSLESS_SUPPORTED) + quality=100; + if (image->debug != MagickFalse) + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Quality: 100"); +#else + if (image->quality < 100) + (void) ThrowMagickException(exception,GetMagickModule(),CoderWarning, + "LosslessToLossyJPEGConversion",image->filename); + else + { + int + point_transform, + predictor; + + predictor=image->quality/100; /* range 1-7 */ + point_transform=image->quality % 20; /* range 0-15 */ + jpeg_simple_lossless(&jpeg_info,predictor,point_transform); + if (image->debug != MagickFalse) + { + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "Compression: lossless"); + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "Predictor: %d",predictor); + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "Point Transform: %d",point_transform); + } + } +#endif + } option=GetImageOption(image_info,"jpeg:extent"); if (option != (const char *) NULL) { @@ -2317,46 +2357,6 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info, } jpeg_info=DestroyImageInfo(jpeg_info); } - if ((image_info->compression != LosslessJPEGCompression) && - (image->quality <= 100)) - { - if (image->quality != UndefinedCompressionQuality) - quality=(int) image->quality; - if (image->debug != MagickFalse) - (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Quality: %.20g", - (double) image->quality); - } - else - { -#if !defined(C_LOSSLESS_SUPPORTED) - quality=100; - if (image->debug != MagickFalse) - (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Quality: 100"); -#else - if (image->quality < 100) - (void) ThrowMagickException(exception,GetMagickModule(),CoderWarning, - "LosslessToLossyJPEGConversion",image->filename); - else - { - int - point_transform, - predictor; - - predictor=image->quality/100; /* range 1-7 */ - point_transform=image->quality % 20; /* range 0-15 */ - jpeg_simple_lossless(&jpeg_info,predictor,point_transform); - if (image->debug != MagickFalse) - { - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Compression: lossless"); - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Predictor: %d",predictor); - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Point Transform: %d",point_transform); - } - } -#endif - } jpeg_set_quality(&jpeg_info,quality,MagickTrue); #if (JPEG_LIB_VERSION >= 70) option=GetImageOption(image_info,"quality");