/*
Update color information using point algorithm.
*/
- if (SetImageStorageClass(*image,DirectClass) == MagickFalse)
+ if (SetImageStorageClass(*image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
q=GetCacheViewAuthenticPixels(image_view,(ssize_t)x_offset,
- (ssize_t)y_offset,1,1,exception);
+ (ssize_t) y_offset,1,1,exception);
if (q == (Quantum *) NULL)
break;
SetPixelRed(*image,ScaleShortToQuantum(color.red),q);
(DrawInfo *) NULL);
(void) QueryColorDatabase(resource_info->pen_colors[pen_id],
&draw_info->fill,exception);
- (void) FloodfillPaintImage(*image,DefaultChannels,draw_info,&target,
- (ssize_t) x_offset,(ssize_t) y_offset,
- method == FloodfillMethod ? MagickFalse : MagickTrue);
+ (void) FloodfillPaintImage(*image,draw_info,&target,(ssize_t)
+ x_offset,(ssize_t) y_offset,method == FloodfillMethod ?
+ MagickFalse : MagickTrue,exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
/*
Update color information using reset algorithm.
*/
- if (SetImageStorageClass(*image,DirectClass) == MagickFalse)
+ if (SetImageStorageClass(*image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
for (y=0; y < (int) (*image)->rows; y++)
{
/*
Create mattes for blending.
*/
- (void) SetImageAlphaChannel(composite_image,OpaqueAlphaChannel);
+ exception=(&image->exception);
+ (void) SetImageAlphaChannel(composite_image,OpaqueAlphaChannel,exception);
opacity=(Quantum) (ScaleQuantumToChar((Quantum) QuantumRange)-
((ssize_t) ScaleQuantumToChar((Quantum) QuantumRange)*blend)/100);
- if (SetImageStorageClass(image,DirectClass) == MagickFalse)
+ if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
image->matte=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (int) image->rows; y++)
{
/*
Cut image.
*/
- if (SetImageStorageClass(image,DirectClass) == MagickFalse)
+ exception=(&image->exception);
+ if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
image->matte=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (int) crop_info.height; y++)
{
(void) AcquireUniqueFileResource(filename);
(void) FormatLocaleString(stipple_image->filename,MaxTextExtent,
"xbm:%s",filename);
- (void) WriteImage(image_info,stipple_image);
+ (void) WriteImage(image_info,stipple_image,&(*image)->exception);
stipple_image=DestroyImage(stipple_image);
image_info=DestroyImageInfo(image_info);
status=XReadBitmapFile(display,root_window,filename,&width,
(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;
(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;
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;
Query user for gamma value.
*/
(void) XDialogWidget(display,windows,"Gamma",
- "Enter gamma value (e.g. 1.0,1.0,1.6):",factor);
+ "Enter gamma value (e.g. 1.2):",factor);
if (*factor == '\0')
break;
/*
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) GammaImage(*image,factor);
+ (void) GammaImage(*image,atof(factor),&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) ContrastImage(*image,MagickTrue);
+ (void) ContrastImage(*image,MagickTrue,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) ContrastImage(*image,MagickFalse);
+ (void) ContrastImage(*image,MagickFalse,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
white_point*=(double) (*image)->columns*(*image)->rows/100.0;
}
white_point=(MagickRealType) (*image)->columns*(*image)->rows-white_point;
- (void) ContrastStretchImageChannel(*image,DefaultChannels,black_point,
- white_point);
+ (void) ContrastStretchImage(*image,black_point,white_point,
+ &(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
}
case SigmoidalContrastCommand:
{
+ GeometryInfo
+ geometry_info;
+
+ MagickStatusType
+ flags;
+
static char
levels[MaxTextExtent] = "3x50%";
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) SigmoidalContrastImage(*image,MagickTrue,levels);
+ flags=ParseGeometry(levels,&geometry_info);
+ if ((flags & SigmaValue) == 0)
+ geometry_info.sigma=1.0*QuantumRange/2.0;
+ 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,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) NormalizeImage(*image);
+ (void) NormalizeImage(*image,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) EqualizeImage(*image);
+ (void) EqualizeImage(*image,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) NegateImage(*image,MagickFalse);
+ (void) NegateImage(*image,MagickFalse,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
XCheckRefreshWindows(display,windows);
(void) ParsePageGeometry(*image,bevel_width,&page_geometry,
&(*image)->exception);
- (void) RaiseImage(*image,&page_geometry,MagickTrue);
+ (void) RaiseImage(*image,&page_geometry,MagickTrue,&(*image)->exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
flags=ParseGeometry(radius,&geometry_info);
- paint_image=OilPaintImage(*image,geometry_info.rho,&(*image)->exception);
+ paint_image=OilPaintImage(*image,geometry_info.rho,geometry_info.sigma,
+ &(*image)->exception);
if (paint_image != (Image *) NULL)
{
*image=DestroyImage(*image);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"launch:%s",
filename);
- status=WriteImage(image_info,*image);
+ status=WriteImage(image_info,*image,&(*image)->exception);
if (status == MagickFalse)
XNoticeWidget(display,windows,"Unable to launch image editor",
(char *) NULL);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"preview:%s",
filename);
- status=WriteImage(image_info,*image);
+ status=WriteImage(image_info,*image,&(*image)->exception);
(void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
preview_image=ReadImage(image_info,&(*image)->exception);
(void) RelinquishUniqueFileResource(filename);
break;
(void) FormatLocaleString(preview_image->filename,MaxTextExtent,"show:%s",
filename);
- status=WriteImage(image_info,preview_image);
+ status=WriteImage(image_info,preview_image,&(*image)->exception);
preview_image=DestroyImage(preview_image);
if (status == MagickFalse)
XNoticeWidget(display,windows,"Unable to show image preview",
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"histogram:%s",
filename);
- status=WriteImage(image_info,*image);
+ status=WriteImage(image_info,*image,&(*image)->exception);
(void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
histogram_image=ReadImage(image_info,&(*image)->exception);
(void) RelinquishUniqueFileResource(filename);
break;
(void) FormatLocaleString(histogram_image->filename,MaxTextExtent,
"show:%s",filename);
- status=WriteImage(image_info,histogram_image);
+ status=WriteImage(image_info,histogram_image,&(*image)->exception);
histogram_image=DestroyImage(histogram_image);
if (status == MagickFalse)
XNoticeWidget(display,windows,"Unable to show histogram",
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"matte:%s",
filename);
- status=WriteImage(image_info,*image);
+ status=WriteImage(image_info,*image,&(*image)->exception);
(void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
matte_image=ReadImage(image_info,&(*image)->exception);
(void) RelinquishUniqueFileResource(filename);
break;
(void) FormatLocaleString(matte_image->filename,MaxTextExtent,"show:%s",
filename);
- status=WriteImage(image_info,matte_image);
+ status=WriteImage(image_info,matte_image,&(*image)->exception);
matte_image=DestroyImage(matte_image);
if (status == MagickFalse)
XNoticeWidget(display,windows,"Unable to show matte",
if ((x_offset >= (int) (*image)->columns) ||
(y_offset >= (int) (*image)->rows))
continue;
- if (SetImageStorageClass(*image,DirectClass) == MagickFalse)
+ exception=(&(*image)->exception);
+ if (SetImageStorageClass(*image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
(*image)->matte=MagickTrue;
- exception=(&(*image)->exception);
image_view=AcquireCacheView(*image);
switch (method)
{
case FloodfillMethod:
case FillToBorderMethod:
{
+ ChannelType
+ channel_mask;
+
DrawInfo
*draw_info;
(DrawInfo *) NULL);
draw_info->fill.alpha=ClampToQuantum(InterpretLocaleValue(matte,
(char **) NULL));
- (void) FloodfillPaintImage(*image,OpacityChannel,draw_info,&target,
- (ssize_t) x_offset,(ssize_t) y_offset,
- method == FloodfillMethod ? MagickFalse : MagickTrue);
+ channel_mask=SetPixelChannelMask(*image,AlphaChannel);
+ (void) FloodfillPaintImage(*image,draw_info,&target,(ssize_t)
+ x_offset,(ssize_t) y_offset,method == FloodfillMethod ?
+ MagickFalse : MagickTrue,exception);
+ (void) SetPixelChannelMap(*image,channel_mask);
draw_info=DestroyDrawInfo(draw_info);
break;
}
/*
Update matte information using reset algorithm.
*/
- if (SetImageStorageClass(*image,DirectClass) == MagickFalse)
+ if (SetImageStorageClass(*image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
for (y=0; y < (int) (*image)->rows; y++)
{
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString(print_image->filename,MaxTextExtent,"print:%s",
filename);
- status=WriteImage(image_info,print_image);
+ status=WriteImage(image_info,print_image,&image->exception);
(void) RelinquishUniqueFileResource(filename);
print_image=DestroyImage(print_image);
image_info=DestroyImageInfo(image_info);
Write image.
*/
(void) CopyMagickString(save_image->filename,filename,MaxTextExtent);
- status=WriteImage(image_info,save_image);
+ status=WriteImage(image_info,save_image,&image->exception);
if (status != MagickFalse)
image->taint=MagickFalse;
save_image=DestroyImage(save_image);