From: Eric McConville Date: Mon, 15 Apr 2019 11:56:27 +0000 (-0500) Subject: Added MagickLevelizeImage to MagickWand (#1545) X-Git-Tag: 7.0.8-41~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d3b348e5c31e95a12a46eff2f54833d44cbe881c;p=imagemagick Added MagickLevelizeImage to MagickWand (#1545) --- diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index f6cf1e272..a8b9db28a 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -6497,6 +6497,55 @@ WandExport MagickBooleanType MagickLevelImage(MagickWand *wand, % % % % % % +% M a g i c k L e v e l i z e I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickLevelizeImage() applies the reversed MagickLevelImage(). It compresses +% the full range of color values, so that they lie between the given black and +% white points. Gamma is applied before the values are mapped. It can be +% used to de-contrast a greyscale image to the exact levels specified. +% +% The format of the MagickLevelizeImage method is: +% +% MagickBooleanType MagickLevelizeImage(MagickWand *wand, +% const double black_point, const double white_point,const double gamma) +% +% A description of each parameter follows: +% +% o wand: the magick wand. +% +% o black_point: The level to map zero (black) to. +% +% o white_point: The level to map QuantumRange (white) to. +% +% o gamma: adjust gamma by this factor before mapping values. +% +*/ +WandExport MagickBooleanType MagickLevelizeImage(MagickWand *wand, + const double black_point,const double gamma,const double white_point) +{ + MagickBooleanType + status; + + assert(wand != (MagickWand *) NULL); + assert(wand->signature == MagickWandSignature); + if (wand->debug != MagickFalse) + (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); + if (wand->images == (Image *) NULL) + ThrowWandException(WandError,"ContainsNoImages",wand->name); + status=LevelizeImage(wand->images,black_point,white_point,gamma, + wand->exception); + return(status); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % % M a g i c k L i n e a r S t r e t c h I m a g e % % % % % diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h index d6db943e3..e10d5efcf 100644 --- a/MagickWand/magick-image.h +++ b/MagickWand/magick-image.h @@ -187,6 +187,7 @@ extern WandExport MagickBooleanType const MagickBooleanType), MagickLabelImage(MagickWand *,const char *), MagickLevelImage(MagickWand *,const double,const double,const double), + MagickLevelizeImage(MagickWand *,const double,const double,const double), MagickLinearStretchImage(MagickWand *,const double,const double), MagickLiquidRescaleImage(MagickWand *,const size_t,const size_t,const double, const double),