From: anthony Date: Wed, 9 May 2012 07:27:02 +0000 (+0000) Subject: Fix Kaiser Resize filter X-Git-Tag: 7.0.1-0~5627 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d3589dae02afa0c96ee852c9b189e6873e1ee181;p=imagemagick Fix Kaiser Resize filter --- diff --git a/MagickCore/resize.c b/MagickCore/resize.c index d6beccbef..4e19accd7 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -953,7 +953,8 @@ MagickPrivate ResizeFilter *AcquireResizeFilter(const Image *image, */ /* User Gaussian Sigma Override - no support change */ - if (resize_filter->filter == Gaussian) { + if ((resize_filter->filter == Gaussian) || + (resize_filter->window == Gaussian) ) { value=0.5; /* guassian sigma default, half pixel */ artifact=GetImageArtifact(image,"filter:sigma"); if (artifact != (const char *) NULL) @@ -961,15 +962,15 @@ MagickPrivate ResizeFilter *AcquireResizeFilter(const Image *image, /* Define coefficents for Gaussian */ resize_filter->coefficient[0]=value; /* note sigma too */ resize_filter->coefficient[1]=1.0/(2.0*value*value); /* sigma scaling */ - resize_filter->coefficient[2]=(MagickRealType) - (1.0/(Magick2PI*value*value)); + resize_filter->coefficient[2]=(MagickRealType) (1.0/(Magick2PI*value*value)); /* normalization - not actually needed or used! */ if ( value > 0.5 ) resize_filter->support *= value/0.5; /* increase support */ } /* User Kaiser Alpha Override - no support change */ - if (resize_filter->filter == Kaiser) { + if ((resize_filter->filter == Kaiser) || + (resize_filter->window == Kaiser) ) { value=6.5; /* default alpha value for Kaiser bessel windowing function */ artifact=GetImageArtifact(image,"filter:alpha"); if (artifact != (const char *) NULL) @@ -1030,8 +1031,8 @@ MagickPrivate ResizeFilter *AcquireResizeFilter(const Image *image, */ B=0.0; C=0.0; - if ((filters[filter_type].function == CubicBC) || - (filters[window_type].function == CubicBC)) + if ((resize_filter->filter == CubicBC) || + (resize_filter->window == CubicBC) ) { B=filters[filter_type].B; C=filters[filter_type].C; @@ -1108,17 +1109,17 @@ MagickPrivate ResizeFilter *AcquireResizeFilter(const Image *image, (void) FormatLocaleFile(stdout,"# filter = %s\n", CommandOptionToMnemonic(MagickFilterOptions,filter_type)); (void) FormatLocaleFile(stdout,"# window = %s\n", - CommandOptionToMnemonic(MagickFilterOptions, window_type)); + CommandOptionToMnemonic(MagickFilterOptions,window_type)); (void) FormatLocaleFile(stdout,"# support = %.*g\n", GetMagickPrecision(),(double) resize_filter->support); (void) FormatLocaleFile(stdout,"# win-support = %.*g\n", GetMagickPrecision(),(double) resize_filter->window_support); (void) FormatLocaleFile(stdout,"# scale_blur = %.*g\n", GetMagickPrecision(), (double)resize_filter->blur); - if ( filter_type == GaussianFilter ) + if ( filter_type == GaussianFilter || window_type == GaussianFilter ) (void) FormatLocaleFile(stdout,"# gaussian_sigma = %.*g\n", GetMagickPrecision(), (double)resize_filter->coefficient[0]); - if ( filter_type == KaiserFilter ) + if ( filter_type == KaiserFilter || window_type == KaiserFilter ) (void) FormatLocaleFile(stdout,"# kaiser_alpha = %.*g\n", GetMagickPrecision(), (double)resize_filter->coefficient[0]); (void) FormatLocaleFile(stdout,"# practical_support = %.*g\n",