From: cristy Date: Fri, 9 Dec 2011 09:14:23 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~6565 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eb6e658d9b61d04e746d48ce68dc3dacbc169b29;p=imagemagick --- diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 64d0a5a0d..adebdcaef 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -4209,8 +4209,8 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold, % The format of the ShadowImage method is: % % Image *ShadowImage(const Image *image,const double opacity, -% const double sigma,const ssize_t x_offset,const ssize_t y_offset, -% ExceptionInfo *exception) +% const double sigma,const double bias,const ssize_t x_offset, +% const ssize_t y_offset,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -4220,6 +4220,8 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold, % % o sigma: the standard deviation of the Gaussian, in pixels. % +% o bias: the bias. +% % o x_offset: the shadow x-offset. % % o y_offset: the shadow y-offset. @@ -4228,8 +4230,8 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold, % */ MagickExport Image *ShadowImage(const Image *image,const double opacity, - const double sigma,const ssize_t x_offset,const ssize_t y_offset, - ExceptionInfo *exception) + const double sigma,const double bias,const ssize_t x_offset, + const ssize_t y_offset,ExceptionInfo *exception) { #define ShadowImageTag "Shadow/Image" @@ -4272,7 +4274,7 @@ MagickExport Image *ShadowImage(const Image *image,const double opacity, */ (void) SetImageBackgroundColor(border_image,exception); channel_mask=SetPixelChannelMask(border_image,AlphaChannel); - shadow_image=BlurImage(border_image,0.0,sigma,image->bias,exception); + shadow_image=BlurImage(border_image,0.0,sigma,bias,exception); (void) SetPixelChannelMapMask(border_image,channel_mask); border_image=DestroyImage(border_image); if (shadow_image == (Image *) NULL) @@ -5315,7 +5317,7 @@ MagickExport Image *TintImage(const Image *image,const char *blend, % The format of the VignetteImage method is: % % Image *VignetteImage(const Image *image,const double radius, -% const double sigma,const ssize_t x,const ssize_t y, +% const double sigma,const double bias,const ssize_t x,const ssize_t y, % ExceptionInfo *exception) % % A description of each parameter follows: @@ -5326,13 +5328,16 @@ MagickExport Image *TintImage(const Image *image,const char *blend, % % o sigma: the standard deviation of the Gaussian, in pixels. % +% o bias: the bias. +% % o x, y: Define the x and y ellipse offset. % % o exception: return any errors or warnings in this structure. % */ MagickExport Image *VignetteImage(const Image *image,const double radius, - const double sigma,const ssize_t x,const ssize_t y,ExceptionInfo *exception) + const double sigma,const double bias,const ssize_t x,const ssize_t y, + ExceptionInfo *exception) { char ellipse[MaxTextExtent]; @@ -5382,7 +5387,7 @@ MagickExport Image *VignetteImage(const Image *image,const double radius, draw_info->primitive=AcquireString(ellipse); (void) DrawImage(oval_image,draw_info,exception); draw_info=DestroyDrawInfo(draw_info); - blur_image=BlurImage(oval_image,radius,sigma,image->bias,exception); + blur_image=BlurImage(oval_image,radius,sigma,bias,exception); oval_image=DestroyImage(oval_image); if (blur_image == (Image *) NULL) { diff --git a/MagickCore/fx.h b/MagickCore/fx.h index c96aa7cbe..d3c93f1c5 100644 --- a/MagickCore/fx.h +++ b/MagickCore/fx.h @@ -50,8 +50,8 @@ extern MagickExport Image *PolaroidImage(const Image *,const DrawInfo *,const double, const PixelInterpolateMethod,ExceptionInfo *), *SepiaToneImage(const Image *,const double,ExceptionInfo *), - *ShadowImage(const Image *,const double,const double,const ssize_t, - const ssize_t,ExceptionInfo *), + *ShadowImage(const Image *,const double,const double,const double, + const ssize_t,const ssize_t,ExceptionInfo *), *SketchImage(const Image *,const double,const double,const double, const double,ExceptionInfo *), *SteganoImage(const Image *,const Image *,ExceptionInfo *), @@ -61,8 +61,8 @@ extern MagickExport Image *SwirlImage(const Image *,double,const PixelInterpolateMethod, ExceptionInfo *), *TintImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *), - *VignetteImage(const Image *,const double,const double,const ssize_t, - const ssize_t,ExceptionInfo *), + *VignetteImage(const Image *,const double,const double,const double, + const ssize_t,const ssize_t,ExceptionInfo *), *WaveImage(const Image *,const double,const double, const PixelInterpolateMethod,ExceptionInfo *); diff --git a/MagickCore/montage.c b/MagickCore/montage.c index 368595e0f..dc3a3f6f2 100644 --- a/MagickCore/montage.c +++ b/MagickCore/montage.c @@ -820,7 +820,7 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info, */ (void) QueryColorCompliance("#00000000",AllCompliance, &image->background_color,exception); - shadow_image=ShadowImage(image,80.0,2.0,5,5,exception); + shadow_image=ShadowImage(image,80.0,2.0,0.0,5,5,exception); if (shadow_image != (Image *) NULL) { (void) CompositeImage(shadow_image,OverCompositeOp,image,0,0, diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index cd35b00c7..3d5630686 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -10203,7 +10203,8 @@ WandExport MagickBooleanType MagickShadeImage(MagickWand *wand, % The format of the MagickShadowImage method is: % % MagickBooleanType MagickShadowImage(MagickWand *wand, -% const double alpha,const double sigma,const ssize_t x,const ssize_t y) +% const double alpha,const double sigma,const double bias, +% const ssize_t x,const ssize_t y) % % A description of each parameter follows: % @@ -10213,13 +10214,16 @@ WandExport MagickBooleanType MagickShadeImage(MagickWand *wand, % % o sigma: the standard deviation of the Gaussian, in pixels. % +% o bias: the bias. +% % o x: the shadow x-offset. % % o y: the shadow y-offset. % */ WandExport MagickBooleanType MagickShadowImage(MagickWand *wand, - const double alpha,const double sigma,const ssize_t x,const ssize_t y) + const double alpha,const double sigma,const double bias,const ssize_t x, + const ssize_t y) { Image *shadow_image; @@ -10230,7 +10234,7 @@ WandExport MagickBooleanType MagickShadowImage(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - shadow_image=ShadowImage(wand->images,alpha,sigma,x,y,wand->exception); + shadow_image=ShadowImage(wand->images,alpha,sigma,bias,x,y,wand->exception); if (shadow_image == (Image *) NULL) return(MagickFalse); ReplaceImageInList(&wand->images,shadow_image); @@ -11717,22 +11721,25 @@ WandExport MagickBooleanType MagickUnsharpMaskImage(MagickWand *wand, % The format of the MagickVignetteImage method is: % % MagickBooleanType MagickVignetteImage(MagickWand *wand, -% const double black_point,const double white_point,const ssize_t x, -% const ssize_t y) +% const double radius,const double sigma,const double bias, +% const ssize_t x,const ssize_t y) % % A description of each parameter follows: % % o wand: the magick wand. % -% o black_point: the black point. +% o radius: the radius. % -% o white_point: the white point. +% o sigma: the sigma. +% +% o bias: the bias. % % o x, y: Define the x and y ellipse offset. % */ WandExport MagickBooleanType MagickVignetteImage(MagickWand *wand, - const double black_point,const double white_point,const ssize_t x,const ssize_t y) + const double radius,const double sigma,const double bias,const ssize_t x, + const ssize_t y) { Image *vignette_image; @@ -11743,7 +11750,7 @@ WandExport MagickBooleanType MagickVignetteImage(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - vignette_image=VignetteImage(wand->images,black_point,white_point,x,y, + vignette_image=VignetteImage(wand->images,radius,sigma,bias,x,y, wand->exception); if (vignette_image == (Image *) NULL) return(MagickFalse); diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h index 3a4b5eff2..5f12b6f69 100644 --- a/MagickWand/magick-image.h +++ b/MagickWand/magick-image.h @@ -274,8 +274,8 @@ extern WandExport MagickBooleanType MagickSetImageWhitePoint(MagickWand *,const double,const double), MagickShadeImage(MagickWand *,const MagickBooleanType,const double, const double), - MagickShadowImage(MagickWand *,const double,const double,const ssize_t, - const ssize_t), + MagickShadowImage(MagickWand *,const double,const double,const double, + const ssize_t,const ssize_t), MagickSharpenImage(MagickWand *,const double,const double,const double), MagickShaveImage(MagickWand *,const size_t,const size_t), MagickShearImage(MagickWand *,const PixelWand *,const double,const double), @@ -304,8 +304,8 @@ extern WandExport MagickBooleanType MagickUniqueImageColors(MagickWand *), MagickUnsharpMaskImage(MagickWand *,const double,const double,const double, const double), - MagickVignetteImage(MagickWand *,const double,const double,const ssize_t, - const ssize_t), + MagickVignetteImage(MagickWand *,const double,const double,const double, + const ssize_t,const ssize_t), MagickWaveImage(MagickWand *,const double,const double, const PixelInterpolateMethod), MagickWhiteThresholdImage(MagickWand *,const PixelWand *), diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 121bb49b8..67694cad3 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -2706,8 +2706,9 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, if ((flags & PsiValue) == 0) geometry_info.psi=4.0; mogrify_image=ShadowImage(*image,geometry_info.rho, - geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) - ceil(geometry_info.psi-0.5),exception); + geometry_info.sigma,(*image)->bias,(ssize_t) + ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi-0.5), + exception); break; } if (LocaleCompare("sharpen",option+1) == 0) @@ -3110,8 +3111,9 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, if ((flags & PsiValue) == 0) geometry_info.psi=0.1*(*image)->rows; mogrify_image=VignetteImage(*image,geometry_info.rho, - geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) - ceil(geometry_info.psi-0.5),exception); + geometry_info.sigma,(*image)->bias,(ssize_t) + ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi-0.5), + exception); break; } if (LocaleCompare("virtual-pixel",option+1) == 0) diff --git a/MagickWand/operation.c b/MagickWand/operation.c index 8984b2016..9b22742ff 100644 --- a/MagickWand/operation.c +++ b/MagickWand/operation.c @@ -3291,8 +3291,9 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, if ((flags & PsiValue) == 0) geometry_info.psi=4.0; new_image=ShadowImage(*image,geometry_info.rho, - geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) - ceil(geometry_info.psi-0.5),exception); + geometry_info.sigma,(*image)->bias,(ssize_t) + ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi-0.5), + exception); break; } if (LocaleCompare("sharpen",option) == 0) @@ -3563,8 +3564,9 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, if ((flags & PsiValue) == 0) geometry_info.psi=0.1*(*image)->rows; new_image=VignetteImage(*image,geometry_info.rho, - geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) - ceil(geometry_info.psi-0.5),exception); + geometry_info.sigma,(*image)->bias,(ssize_t) + ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi-0.5), + exception); break; } if (LocaleCompare("virtual-pixel",option) == 0) diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index 2dc94d6a1..2295ab08b 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -436,7 +436,7 @@ static struct {"background", StringReference}, {"gravity", MagickGravityOptions} } }, { "Posterize", { {"levels", IntegerReference}, {"dither", MagickBooleanOptions} } }, - { "Shadow", { {"geometry", StringReference}, {"opacity", RealReference}, + { "Shadow", { {"geometry", StringReference}, {"alpha", RealReference}, {"sigma", RealReference}, {"x", IntegerReference}, {"y", IntegerReference} } }, { "Identify", { {"file", FileReference}, {"features", StringReference}, @@ -9830,9 +9830,9 @@ Mogrify(ref,...) geometry_info.xi=argument_list[3].integer_reference; if (attribute_flag[4] != 0) geometry_info.psi=argument_list[4].integer_reference; - image=ShadowImage(image,geometry_info.rho,geometry_info.sigma, - (ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi- - 0.5),exception); + image=ShadowImage(image,geometry_info.rho,geometry_info.sigma,0.0, + (ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) + ceil(geometry_info.psi-0.5),exception); break; } case 90: /* Identify */ @@ -9945,9 +9945,9 @@ Mogrify(ref,...) if (attribute_flag[5] != 0) (void) QueryColorCompliance(argument_list[5].string_reference, AllCompliance,&image->background_color,exception); - image=VignetteImage(image,geometry_info.rho,geometry_info.sigma, - (ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi- - 0.5),exception); + image=VignetteImage(image,geometry_info.rho,geometry_info.sigma,0.0, + (ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) + ceil(geometry_info.psi-0.5),exception); break; } case 95: /* ContrastStretch */ diff --git a/coders/msl.c b/coders/msl.c index 3e5f8fe23..7aafa3eda 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -6366,8 +6366,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, } } shadow_image=ShadowImage(msl_info->image[n],geometry_info.rho, - geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t) - ceil(geometry_info.psi-0.5),msl_info->exception); + geometry_info.sigma,0.0,(ssize_t) ceil(geometry_info.xi-0.5), + (ssize_t) ceil(geometry_info.psi-0.5),msl_info->exception); if (shadow_image == (Image *) NULL) break; msl_info->image[n]=DestroyImage(msl_info->image[n]);