X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=coders%2Fjpeg.c;h=d28d4583874daeac25de165241f37092b2e29227;hb=787d43596c4afbd97079e154225c49e47da6b161;hp=51a64e948db2a05a7ed0f013672fde627255f1b8;hpb=a0511736dba65a9fa6a5eed2d90caea727b12390;p=imagemagick diff --git a/coders/jpeg.c b/coders/jpeg.c index 51a64e948..d28d45838 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -811,7 +811,7 @@ static void JPEGSetImageSamplingFactor(struct jpeg_decompress_struct *jpeg_info, jpeg_info->comp_info[2].v_samp_factor, jpeg_info->comp_info[3].h_samp_factor, jpeg_info->comp_info[3].v_samp_factor); - break; + break; } case JCS_GRAYSCALE: { @@ -1052,6 +1052,36 @@ static Image *ReadJPEGImage(const ImageInfo *image_info, if (IsMagickTrue(option) != MagickFalse) jpeg_info.do_block_smoothing=MagickTrue; } + option=GetImageOption(image_info,"jpeg:dct-method"); + if (option != (const char *) NULL) + switch (*option) + { + case 'D': + case 'd': + { + if (LocaleCompare(option,"default") == 0) + jpeg_info.dct_method=JDCT_DEFAULT; + break; + } + case 'F': + case 'f': + { + if (LocaleCompare(option,"fastest") == 0) + jpeg_info.dct_method=JDCT_FASTEST; + if (LocaleCompare(option,"float") == 0) + jpeg_info.dct_method=JDCT_FLOAT; + break; + } + case 'I': + case 'i': + { + if (LocaleCompare(option,"ifast") == 0) + jpeg_info.dct_method=JDCT_IFAST; + if (LocaleCompare(option,"islow") == 0) + jpeg_info.dct_method=JDCT_ISLOW; + break; + } + } option=GetImageOption(image_info,"jpeg:fancy-upsampling"); if (option != (const char *) NULL) {