This commit is contained in:
cristy
2011-08-24 01:42:24 +00:00
parent 6487730e70
commit 33bd515b10
11 changed files with 112 additions and 96 deletions
+10 -4
View File
@@ -1351,9 +1351,12 @@ void Magick::Image::modulate ( const double brightness_,
FormatLocaleString( modulate, MaxTextExtent, "%3.6f,%3.6f,%3.6f",
brightness_, saturation_, hue_);
ExceptionInfo exceptionInfo;
GetExceptionInfo( &exceptionInfo );
modifyImage();
ModulateImage( image(), modulate );
throwImageException();
ModulateImage( image(), modulate, &exceptionInfo );
throwException( exceptionInfo );
(void) DestroyExceptionInfo( &exceptionInfo );
}
// Motion blur image with specified blur factor
@@ -1948,9 +1951,12 @@ void Magick::Image::shear ( const double xShearAngle_,
// Contrast image
void Magick::Image::sigmoidalContrast ( const size_t sharpen_, const double contrast, const double midpoint )
{
ExceptionInfo exceptionInfo;
GetExceptionInfo( &exceptionInfo );
modifyImage();
(void) SigmoidalContrastImage( image(), (MagickBooleanType) sharpen_, contrast, midpoint );
throwImageException();
(void) SigmoidalContrastImage( image(), (MagickBooleanType) sharpen_, contrast, midpoint, &exceptionInfo );
throwException( exceptionInfo );
(void) DestroyExceptionInfo( &exceptionInfo );
}
// Solarize image (similar to effect seen when exposing a photographic
+4 -4
View File
@@ -7690,7 +7690,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
(void) CopyMagickString(modulate_factors,"100.0/100.0/",MaxTextExtent);
(void) ConcatenateMagickString(modulate_factors,hue_percent,
MaxTextExtent);
(void) ModulateImage(*image,modulate_factors);
(void) ModulateImage(*image,modulate_factors,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -7718,7 +7718,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
(void) CopyMagickString(modulate_factors,"100.0/",MaxTextExtent);
(void) ConcatenateMagickString(modulate_factors,saturation_percent,
MaxTextExtent);
(void) ModulateImage(*image,modulate_factors);
(void) ModulateImage(*image,modulate_factors,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -7745,7 +7745,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
XCheckRefreshWindows(display,windows);
(void) CopyMagickString(modulate_factors,brightness_percent,
MaxTextExtent);
(void) ModulateImage(*image,modulate_factors);
(void) ModulateImage(*image,modulate_factors,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -7876,7 +7876,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
if ((flags & PercentValue) != 0)
geometry_info.sigma=1.0*QuantumRange*geometry_info.sigma/100.0;
(void) SigmoidalContrastImage(*image,MagickTrue,geometry_info.rho,
geometry_info.sigma);
geometry_info.sigma,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
+3 -3
View File
@@ -2431,7 +2431,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
break;
(void) FormatLocaleString(factor,MaxTextExtent,"100,100,%g",
2.0*percentage);
(void) ModulateImage(preview_image,factor);
(void) ModulateImage(preview_image,factor,exception);
(void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
break;
}
@@ -2442,7 +2442,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
break;
(void) FormatLocaleString(factor,MaxTextExtent,"100,%g",
2.0*percentage);
(void) ModulateImage(preview_image,factor);
(void) ModulateImage(preview_image,factor,exception);
(void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
break;
}
@@ -2452,7 +2452,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
if (preview_image == (Image *) NULL)
break;
(void) FormatLocaleString(factor,MaxTextExtent,"%g",2.0*percentage);
(void) ModulateImage(preview_image,factor);
(void) ModulateImage(preview_image,factor,exception);
(void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
break;
}
+48 -50
View File
@@ -2227,7 +2227,7 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point,
% %
% %
% %
% L e v e l i z e I m a g e C h a n n e l %
% L e v e l i z e I m a g e %
% %
% %
% %
@@ -2533,7 +2533,8 @@ MagickExport MagickBooleanType LevelImageColors(Image *image,
% The format of the LinearStretchImage method is:
%
% MagickBooleanType LinearStretchImage(Image *image,
% const double black_point,const double white_point)
% const double black_point,const double white_point,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2543,14 +2544,16 @@ MagickExport MagickBooleanType LevelImageColors(Image *image,
%
% o white_point: the white point.
%
% o exception: return any errors or warnings in this structure.
%
*/
MagickExport MagickBooleanType LinearStretchImage(Image *image,
const double black_point,const double white_point)
const double black_point,const double white_point,ExceptionInfo *exception)
{
#define LinearStretchImageTag "LinearStretch/Image"
ExceptionInfo
*exception;
CacheView
*image_view;
MagickBooleanType
status;
@@ -2578,7 +2581,7 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
Form histogram.
*/
(void) ResetMagickMemory(histogram,0,(MaxMap+1)*sizeof(*histogram));
exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (ssize_t) image->rows; y++)
{
register const Quantum
@@ -2587,15 +2590,16 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
register ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
for (x=(ssize_t) image->columns-1; x >= 0; x--)
for (x=0; x < (ssize_t) image->columns; x++)
{
histogram[ScaleQuantumToMap(GetPixelIntensity(image,p))]++;
p+=GetPixelChannels(image);
}
}
image_view=DestroyCacheView(image_view);
/*
Find the histogram boundaries by locating the black and white point levels.
*/
@@ -2637,14 +2641,16 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
%
% The format of the ModulateImage method is:
%
% MagickBooleanType ModulateImage(Image *image,const char *modulate)
% MagickBooleanType ModulateImage(Image *image,const char *modulate,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
% o modulate: Define the percent change in brightness, saturation, and
% hue.
% o modulate: Define the percent change in brightness, saturation, and hue.
%
% o exception: return any errors or warnings in this structure.
%
*/
@@ -2724,7 +2730,8 @@ static void ModulateHWB(const double percent_hue,const double percent_whiteness,
ConvertHWBToRGB(hue,whiteness,blackness,red,green,blue);
}
MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
ExceptionInfo *exception)
{
#define ModulateImageTag "Modulate/Image"
@@ -2742,9 +2749,6 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
percent_hue,
percent_saturation;
ExceptionInfo
*exception;
GeometryInfo
geometry_info;
@@ -2825,7 +2829,6 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
*/
status=MagickTrue;
progress=0;
exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(progress,status)
@@ -3168,7 +3171,8 @@ MagickExport MagickBooleanType NormalizeImage(Image *image,
% The format of the SigmoidalContrastImage method is:
%
% MagickBooleanType SigmoidalContrastImage(Image *image,
% const MagickBooleanType sharpen,const char *levels)
% const MagickBooleanType sharpen,const char *levels,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3181,18 +3185,18 @@ MagickExport MagickBooleanType NormalizeImage(Image *image,
%
% o beta: midpoint of the function as a color value 0 to QuantumRange.
%
% o exception: return any errors or warnings in this structure.
%
*/
MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
const MagickBooleanType sharpen,const double contrast,const double midpoint)
const MagickBooleanType sharpen,const double contrast,const double midpoint,
ExceptionInfo *exception)
{
#define SigmoidalContrastImageTag "SigmoidalContrast/Image"
CacheView
*image_view;
ExceptionInfo
*exception;
MagickBooleanType
status;
@@ -3230,21 +3234,20 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
{
sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType)
(MaxMap*((1.0/(1.0+exp(contrast*(midpoint/(double) QuantumRange-
(double) i/MaxMap))))-(1.0/(1.0+exp(contrast*(midpoint/
(double) QuantumRange)))))/((1.0/(1.0+exp(contrast*(midpoint/
(double) QuantumRange-1.0))))-(1.0/(1.0+exp(contrast*(midpoint/
(double) QuantumRange)))))+0.5));
(double) i/MaxMap))))-(1.0/(1.0+exp(contrast*(midpoint/(double)
QuantumRange)))))/((1.0/(1.0+exp(contrast*(midpoint/(double)
QuantumRange-1.0))))-(1.0/(1.0+exp(contrast*(midpoint/(double)
QuantumRange)))))+0.5));
continue;
}
sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType)
(MaxMap*(QuantumScale*midpoint-log((1.0-(1.0/(1.0+exp(midpoint/
(double) QuantumRange*contrast))+((double) i/MaxMap)*((1.0/
(1.0+exp(contrast*(midpoint/(double) QuantumRange-1.0))))-(1.0/
(1.0+exp(midpoint/(double) QuantumRange*contrast))))))/
(1.0/(1.0+exp(midpoint/(double) QuantumRange*contrast))+
((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(midpoint/
(double) QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/
(double) QuantumRange*contrast))))))/contrast)));
(MaxMap*(QuantumScale*midpoint-log((1.0-(1.0/(1.0+exp(midpoint/(double)
QuantumRange*contrast))+((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(
midpoint/(double) QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/(double)
QuantumRange*contrast))))))/(1.0/(1.0+exp(midpoint/(double) QuantumRange*
contrast))+((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(midpoint/(double)
QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/(double) QuantumRange*
contrast))))))/contrast)));
}
if (image->storage_class == PseudoClass)
{
@@ -3275,7 +3278,6 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
*/
status=MagickTrue;
progress=0;
exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(progress,status)
@@ -3298,22 +3300,18 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
SetPixelRed(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
GetPixelRed(image,q))]),q);
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
SetPixelGreen(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
GetPixelGreen(image,q))]),q);
if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
SetPixelBlue(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
GetPixelBlue(image,q))]),q);
if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
(image->colorspace == CMYKColorspace))
SetPixelBlack(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
GetPixelBlack(image,q))]),q);
if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
SetPixelAlpha(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
GetPixelAlpha(image,q))]),q);
register ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelTrait
traits;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
if ((traits & UpdatePixelTrait) != 0)
q[i]=ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(q[i])]);
}
q+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+3 -3
View File
@@ -37,12 +37,12 @@ extern MagickExport MagickBooleanType
LevelizeImage(Image *,const double,const double,const double,ExceptionInfo *),
LevelImageColors(Image *,const PixelInfo *,const PixelInfo *,
const MagickBooleanType,ExceptionInfo *),
LinearStretchImage(Image *,const double,const double),
ModulateImage(Image *,const char *),
LinearStretchImage(Image *,const double,const double,ExceptionInfo *),
ModulateImage(Image *,const char *,ExceptionInfo *),
NegateImage(Image *,const MagickBooleanType,ExceptionInfo *),
NormalizeImage(Image *,ExceptionInfo *),
SigmoidalContrastImage(Image *,const MagickBooleanType,const double,
const double);
const double,ExceptionInfo *);
extern MagickExport Image
*EnhanceImage(const Image *,ExceptionInfo *);
+29 -13
View File
@@ -12,7 +12,9 @@
/* #undef AUTOTRACE_DELEGATE */
/* Define if coders and filters are to be built as modules. */
/* #undef BUILD_MODULES */
#ifndef MAGICKCORE_BUILD_MODULES
#define MAGICKCORE_BUILD_MODULES 1
#endif
/* Define if you have the bzip2 library */
#ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -78,7 +80,9 @@
#endif
/* Define if you have FFTW library */
/* #undef FFTW_DELEGATE */
#ifndef MAGICKCORE_FFTW_DELEGATE
#define MAGICKCORE_FFTW_DELEGATE 1
#endif
/* Location of filter modules */
#ifndef MAGICKCORE_FILTER_PATH
@@ -432,15 +436,15 @@
#endif
/* Define if you have the <lcms2.h> header file. */
#ifndef MAGICKCORE_HAVE_LCMS2_H
#define MAGICKCORE_HAVE_LCMS2_H 1
#endif
/* #undef HAVE_LCMS2_H */
/* Define if you have the <lcms2/lcms2.h> header file. */
/* #undef HAVE_LCMS2_LCMS2_H */
/* Define if you have the <lcms.h> header file. */
/* #undef HAVE_LCMS_H */
#ifndef MAGICKCORE_HAVE_LCMS_H
#define MAGICKCORE_HAVE_LCMS_H 1
#endif
/* Define if you have the <lcms/lcms.h> header file. */
/* #undef HAVE_LCMS_LCMS_H */
@@ -1158,7 +1162,9 @@
/* #undef HasUMEM */
/* Define if you have wmflite library */
/* #undef HasWMFlite */
#ifndef MAGICKCORE_HasWMFlite
#define MAGICKCORE_HasWMFlite 1
#endif
/* ImageMagick is formally installed under prefix */
#ifndef MAGICKCORE_INSTALLED_SUPPORT
@@ -1166,7 +1172,9 @@
#endif
/* Define if you have JBIG library */
/* #undef JBIG_DELEGATE */
#ifndef MAGICKCORE_JBIG_DELEGATE
#define MAGICKCORE_JBIG_DELEGATE 1
#endif
/* Define if you have JPEG version 2 "Jasper" library */
#ifndef MAGICKCORE_JP2_DELEGATE
@@ -1195,7 +1203,9 @@
#endif
/* Define if you have LQR library */
/* #undef LQR_DELEGATE */
#ifndef MAGICKCORE_LQR_DELEGATE
#define MAGICKCORE_LQR_DELEGATE 1
#endif
/* Define if using libltdl to support dynamically loadable modules */
#ifndef MAGICKCORE_LTDL_DELEGATE
@@ -1207,7 +1217,7 @@
/* Define to the system default library search path. */
#ifndef MAGICKCORE_LT_DLSEARCH_PATH
#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib/llvm:/usr/lib64/llvm:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
#endif
/* The archive extension */
@@ -1258,7 +1268,9 @@
/* #undef NO_MINUS_C_MINUS_O */
/* Define if you have OPENEXR library */
/* #undef OPENEXR_DELEGATE */
#ifndef MAGICKCORE_OPENEXR_DELEGATE
#define MAGICKCORE_OPENEXR_DELEGATE 1
#endif
/* Define to the address where bug reports for this package should be sent. */
#ifndef MAGICKCORE_PACKAGE_BUGREPORT
@@ -1313,7 +1325,9 @@
#endif
/* Define if you have RSVG library */
/* #undef RSVG_DELEGATE */
#ifndef MAGICKCORE_RSVG_DELEGATE
#define MAGICKCORE_RSVG_DELEGATE 1
#endif
/* Define to the type of arg 1 for `select'. */
#ifndef MAGICKCORE_SELECT_TYPE_ARG1
@@ -1450,7 +1464,9 @@
/* Define if you have WEBP library */
/* #undef WEBP_DELEGATE */
#ifndef MAGICKCORE_WEBP_DELEGATE
#define MAGICKCORE_WEBP_DELEGATE 1
#endif
/* Define to use the Windows GDI32 library */
/* #undef WINGDI32_DELEGATE */
+1 -1
View File
@@ -27,7 +27,7 @@ extern "C" {
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC"
#define MagickSVNRevision "5041"
#define MagickSVNRevision "exported"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 5,0,0
+5 -9
View File
@@ -6088,9 +6088,8 @@ WandExport MagickBooleanType MagickLinearStretchImage(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
status=LinearStretchImage(wand->images,black_point,white_point);
if (status == MagickFalse)
InheritException(wand->exception,&wand->images->exception);
status=LinearStretchImage(wand->images,black_point,white_point,
&wand->images->exception);
return(status);
}
@@ -6341,9 +6340,7 @@ WandExport MagickBooleanType MagickModulateImage(MagickWand *wand,
ThrowWandException(WandError,"ContainsNoImages",wand->name);
(void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
brightness,saturation,hue);
status=ModulateImage(wand->images,modulate);
if (status == MagickFalse)
InheritException(wand->exception,&wand->images->exception);
status=ModulateImage(wand->images,modulate,&wand->images->exception);
return(status);
}
@@ -10440,9 +10437,8 @@ WandExport MagickBooleanType MagickSigmoidalContrastImage(
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
status=SigmoidalContrastImage(wand->images,sharpen,alpha,beta);
if (status == MagickFalse)
InheritException(wand->exception,&wand->images->exception);
status=SigmoidalContrastImage(wand->images,sharpen,alpha,beta,
&wand->images->exception);
return(status);
}
+4 -5
View File
@@ -1934,7 +1934,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
if ((flags & SigmaValue) == 0)
white_point=(MagickRealType) (*image)->columns*(*image)->rows-
black_point;
(void) LinearStretchImage(*image,black_point,white_point);
(void) LinearStretchImage(*image,black_point,white_point,exception);
InheritException(exception,&(*image)->exception);
break;
}
@@ -2044,8 +2044,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
if (LocaleCompare("modulate",option+1) == 0)
{
(void) SyncImageSettings(mogrify_info,*image);
(void) ModulateImage(*image,argv[i+1]);
InheritException(exception,&(*image)->exception);
(void) ModulateImage(*image,argv[i+1],exception);
break;
}
if (LocaleCompare("monitor",option+1) == 0)
@@ -2716,8 +2715,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
geometry_info.sigma=(double) QuantumRange*geometry_info.sigma/
100.0;
(void) SigmoidalContrastImage(*image,(*option == '-') ?
MagickTrue : MagickFalse,geometry_info.rho,geometry_info.sigma);
InheritException(exception,&(*image)->exception);
MagickTrue : MagickFalse,geometry_info.rho,geometry_info.sigma,
exception);
break;
}
if (LocaleCompare("sketch",option+1) == 0)
+3 -3
View File
@@ -8772,7 +8772,7 @@ Mogrify(ref,...)
}
(void) FormatLocaleString(modulate,MaxTextExtent,"%.15g,%.15g,%.15g",
geometry_info.rho,geometry_info.sigma,geometry_info.xi);
(void) ModulateImage(image,modulate);
(void) ModulateImage(image,modulate,exception);
break;
}
case 44: /* Negate */
@@ -9781,7 +9781,7 @@ Mogrify(ref,...)
MagickFalse;
channel_mask=SetPixelChannelMask(image,channel);
(void) SigmoidalContrastImage(image,sharpen,geometry_info.rho,
geometry_info.sigma);
geometry_info.sigma,exception);
(void) SetPixelChannelMask(image,channel_mask);
break;
}
@@ -10073,7 +10073,7 @@ Mogrify(ref,...)
black_point=argument_list[1].real_reference;
if (attribute_flag[2] != 0)
white_point=argument_list[2].real_reference;
(void) LinearStretchImage(image,black_point,white_point);
(void) LinearStretchImage(image,black_point,white_point,exception);
break;
}
case 109: /* Mask */
+2 -1
View File
@@ -3966,7 +3966,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
}
(void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
geometry_info.rho,geometry_info.sigma,geometry_info.xi);
(void) ModulateImage(msl_info->image[n],modulate);
(void) ModulateImage(msl_info->image[n],modulate,
&msl_info->image[n]->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);