% July 1992 %
% %
% %
-% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
#include "MagickCore/artifact.h"
#include "MagickCore/blob.h"
#include "MagickCore/cache.h"
+#include "MagickCore/cache-private.h"
#include "MagickCore/client.h"
#include "MagickCore/color.h"
#include "MagickCore/colorspace.h"
#include "MagickCore/delegate.h"
#include "MagickCore/display.h"
#include "MagickCore/display-private.h"
+#include "MagickCore/distort.h"
#include "MagickCore/draw.h"
#include "MagickCore/effect.h"
#include "MagickCore/enhance.h"
#include "MagickCore/resource_.h"
#include "MagickCore/shear.h"
#include "MagickCore/segment.h"
+#include "MagickCore/statistic.h"
#include "MagickCore/string_.h"
#include "MagickCore/string-private.h"
#include "MagickCore/transform.h"
#include "MagickCore/threshold.h"
#include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
#include "MagickCore/version.h"
#include "MagickCore/widget.h"
+#include "MagickCore/widget-private.h"
+#include "MagickCore/xwindow.h"
#include "MagickCore/xwindow-private.h"
\f
#if defined(MAGICKCORE_X11_DELEGATE)
XDrawPanRectangle(Display *,XWindows *),
XImageCache(Display *,XResourceInfo *,XWindows *,const CommandType,Image **,
ExceptionInfo *),
- XMagnifyImage(Display *,XWindows *,XEvent *),
+ XMagnifyImage(Display *,XWindows *,XEvent *,ExceptionInfo *),
XMakePanImage(Display *,XResourceInfo *,XWindows *,Image *,ExceptionInfo *),
- XPanImage(Display *,XWindows *,XEvent *),
+ XPanImage(Display *,XWindows *,XEvent *,ExceptionInfo *),
XMagnifyWindowCommand(Display *,XWindows *,const MagickStatusType,
- const KeySym),
+ const KeySym,ExceptionInfo *),
XSetCropGeometry(Display *,XWindows *,RectangleInfo *,Image *),
- XScreenEvent(Display *,XWindows *,XEvent *),
+ XScreenEvent(Display *,XWindows *,XEvent *,ExceptionInfo *),
XTranslateImage(Display *,XWindows *,Image *,const KeySym);
\f
/*
image=GetImageFromList(images,i % GetImageListLength(images));
(void) XDisplayImage(display,&resource_info,argv,1,&image,&state,exception);
}
+ (void) SetErrorHandler((ErrorHandler) NULL);
+ (void) SetWarningHandler((WarningHandler) NULL);
argv[0]=DestroyString(argv[0]);
(void) XCloseDisplay(display);
XDestroyResourceInfo(&resource_info);
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
break;
if (entry != 8)
{
- degrees=InterpretLocaleValue(RotateMenu[entry],(char **) NULL);
+ degrees=StringToDouble(RotateMenu[entry],(char **) NULL);
break;
}
(void) XDialogWidget(display,windows,"OK","Enter rotation angle:",
angle);
if (*angle == '\0')
break;
- degrees=InterpretLocaleValue(angle,(char **) NULL);
+ degrees=StringToDouble(angle,(char **) NULL);
break;
}
case AnnotateHelpCommand:
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Annotate image with text.
*/
- status=XAnnotateImage(display,windows->pixel_info,annotate_info,image);
+ status=XAnnotateImage(display,windows->pixel_info,annotate_info,image,
+ exception);
if (status == 0)
return(MagickFalse);
/*
/*
Update image configuration.
*/
- XConfigureImageColormap(display,resource_info,windows,image);
+ XConfigureImageColormap(display,resource_info,windows,image,exception);
(void) XConfigureImage(display,resource_info,windows,image,exception);
return(MagickTrue);
}
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (distance > 9)
XHighlightLine(display,windows->image.id,
windows->image.highlight_context,&segment_info);
/*
Update image configuration.
*/
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
return(MagickTrue);
}
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
break;
if (entry != 5)
{
- (*image)->fuzz=SiPrefixToDouble(FuzzMenu[entry],1.0*
+ (*image)->fuzz=StringToDoubleInterval(FuzzMenu[entry],(double)
QuantumRange+1.0);
break;
}
if (*fuzz == '\0')
break;
(void) ConcatenateMagickString(fuzz,"%",MaxTextExtent);
- (*image)->fuzz=SiPrefixToDouble(fuzz,1.0*QuantumRange+1.0);
+ (*image)->fuzz=StringToDoubleInterval(fuzz,(double) QuantumRange+
+ 1.0);
break;
}
case ColorEditUndoCommand:
*/
x=event.xbutton.x;
y=event.xbutton.y;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
XInfoWidget(display,windows,text);
(void) XCheckDefineCursor(display,windows->image.id,cursor);
}
case ReplaceMethod:
{
- PixelPacket
+ PixelInfo
pixel,
target;
/*
Update color information using replace algorithm.
*/
- (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t) x_offset,
- (ssize_t) y_offset,&target,exception);
+ (void) GetOneCacheViewVirtualPixelInfo(image_view,(ssize_t)
+ x_offset,(ssize_t) y_offset,&target,exception);
if ((*image)->storage_class == DirectClass)
{
for (y=0; y < (int) (*image)->rows; y++)
break;
for (x=0; x < (int) (*image)->columns; x++)
{
- GetPixelPacket(*image,q,&pixel);
- if (IsFuzzyEquivalencePixelPacket(*image,&pixel,&target))
+ GetPixelInfoPixel(*image,q,&pixel);
+ if (IsFuzzyEquivalencePixelInfo(&pixel,&target))
{
SetPixelRed(*image,ScaleShortToQuantum(
color.red),q);
else
{
for (i=0; i < (ssize_t) (*image)->colors; i++)
- if (IsFuzzyEquivalencePixelPacket(*image,(*image)->colormap+i,&target))
+ if (IsFuzzyEquivalencePixelInfo((*image)->colormap+i,&target))
{
- (*image)->colormap[i].red=ScaleShortToQuantum(
+ (*image)->colormap[i].red=(double) ScaleShortToQuantum(
color.red);
- (*image)->colormap[i].green=ScaleShortToQuantum(
+ (*image)->colormap[i].green=(double) ScaleShortToQuantum(
color.green);
- (*image)->colormap[i].blue=ScaleShortToQuantum(
+ (*image)->colormap[i].blue=(double) ScaleShortToQuantum(
color.blue);
}
- (void) SyncImage(*image);
+ (void) SyncImage(*image,exception);
}
break;
}
/*
Update color information using floodfill algorithm.
*/
- (void) GetOneVirtualMagickPixel(*image,(ssize_t) x_offset,
- (ssize_t) y_offset,&target,exception);
+ (void) GetOneVirtualPixelInfo(*image,
+ GetPixelCacheVirtualMethod(*image),(ssize_t) x_offset,(ssize_t)
+ y_offset,&target,exception);
if (method == FillToBorderMethod)
{
target.red=(MagickRealType)
}
draw_info=CloneDrawInfo(resource_info->image_info,
(DrawInfo *) NULL);
- (void) QueryColorDatabase(resource_info->pen_colors[pen_id],
- &draw_info->fill,exception);
+ (void) QueryColorCompliance(resource_info->pen_colors[pen_id],
+ AllCompliance,&draw_info->fill,exception);
(void) FloodfillPaintImage(*image,draw_info,&target,(ssize_t)
x_offset,(ssize_t) y_offset,method == FloodfillMethod ?
MagickFalse : MagickTrue,exception);
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
if (event.xany.window == windows->command.id)
GXinvert);
if (*factor == '\0')
break;
- blend=InterpretLocaleValue(factor,(char **) NULL);
+ blend=StringToDouble(factor,(char **) NULL);
compose=DissolveCompositeOp;
break;
}
Scale composite image.
*/
resize_image=ResizeImage(composite_image,composite_info.width,
- composite_info.height,composite_image->filter,composite_image->blur,
- exception);
+ composite_info.height,composite_image->filter,exception);
composite_image=DestroyImage(composite_image);
if (resize_image == (Image *) NULL)
{
/*
Composite image with X Image window.
*/
- (void) CompositeImage(image,compose,composite_image,composite_info.x,
- composite_info.y);
+ (void) CompositeImage(image,composite_image,compose,MagickTrue,
+ composite_info.x,composite_info.y,exception);
composite_image=DestroyImage(composite_image);
XSetCursorState(display,windows,MagickFalse);
/*
Update image configuration.
*/
- XConfigureImageColormap(display,resource_info,windows,image);
+ XConfigureImageColormap(display,resource_info,windows,image,exception);
(void) XConfigureImage(display,resource_info,windows,image,exception);
return(MagickTrue);
}
Update Magnify window configuration.
*/
if (windows->magnify.mapped != MagickFalse)
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
windows->pan.crop_geometry=windows->image.crop_geometry;
XBestIconSize(display,&windows->pan,image);
while (((windows->pan.width << 1) < MaxIconSize) &&
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if ((highlight_info.width > 3) && (highlight_info.height > 3))
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
}
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Update image configuration.
*/
- XConfigureImageColormap(display,resource_info,windows,image);
+ XConfigureImageColormap(display,resource_info,windows,image,exception);
(void) XConfigureImage(display,resource_info,windows,image,exception);
return(MagickTrue);
}
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
switch (element)
{
case PointElement:
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- status=XDrawImage(display,windows->pixel_info,&draw_info,*image);
+ status=XDrawImage(display,windows->pixel_info,&draw_info,*image,exception);
XSetCursorState(display,windows,MagickFalse);
/*
Update image colormap and return to image drawing.
*/
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
}
XSetCursorState(display,windows,MagickFalse);
windows->image.window_changes.height=(int) cache_image->rows;
(void) FormatLocaleString(image_geometry,MaxTextExtent,"%dx%d!",
windows->image.ximage->width,windows->image.ximage->height);
- (void) TransformImage(image,windows->image.crop_geometry,image_geometry);
+ (void) TransformImage(image,windows->image.crop_geometry,image_geometry,
+ exception);
if (windows->image.crop_geometry != (char *) NULL)
- windows->image.crop_geometry=(char *)
- RelinquishMagickMemory(windows->image.crop_geometry);
+ windows->image.crop_geometry=(char *) RelinquishMagickMemory(
+ windows->image.crop_geometry);
windows->image.crop_geometry=cache_image->geometry;
if (redo_image != (Image *) NULL)
redo_image=DestroyImage(redo_image);
cache_image=DestroyImage(cache_image);
if (windows->image.orphan != MagickFalse)
return;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
return;
}
ssize_t
bytes;
- bytes=(ssize_t) ((*image)->columns*(*image)->rows*sizeof(PixelPacket));
+ bytes=(ssize_t) ((*image)->columns*(*image)->rows*sizeof(PixelInfo));
if (undo_image != (Image *) NULL)
{
/*
while (previous_image != (Image *) NULL)
{
bytes+=previous_image->list->columns*previous_image->list->rows*
- sizeof(PixelPacket);
+ sizeof(PixelInfo);
if (bytes <= (ssize_t) (resource_info->undo_cache << 20))
{
previous_image=GetPreviousImageInList(previous_image);
continue;
}
bytes-=previous_image->list->columns*previous_image->list->rows*
- sizeof(PixelPacket);
+ sizeof(PixelInfo);
if (previous_image == undo_image)
undo_image=NewImageList();
else
/*
Save image before transformations are applied.
*/
- cache_image=AcquireImage((ImageInfo *) NULL);
+ cache_image=AcquireImage((ImageInfo *) NULL,exception);
if (cache_image == (Image *) NULL)
break;
XSetCursorState(display,windows,MagickTrue);
redo_image=NewImageList();
if (windows->image.orphan != MagickFalse)
return;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
return;
}
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- XDisplayImageInfo(display,resource_info,windows,undo_image,*image);
+ XDisplayImageInfo(display,resource_info,windows,undo_image,*image,exception);
XSetCursorState(display,windows,MagickFalse);
}
\f
status=XSaveImage(display,resource_info,windows,*image,exception);
if (status == MagickFalse)
{
- XNoticeWidget(display,windows,"Unable to write X image:",
- (*image)->filename);
+ char
+ message[MaxTextExtent];
+
+ (void) FormatLocaleString(message,MaxTextExtent,"%s:%s",
+ exception->reason != (char *) NULL ? exception->reason : "",
+ exception->description != (char *) NULL ? exception->description :
+ "");
+ XNoticeWidget(display,windows,"Unable to save file:",message);
break;
}
break;
status=XPrintImage(display,resource_info,windows,*image,exception);
if (status == MagickFalse)
{
- XNoticeWidget(display,windows,"Unable to print X image:",
- (*image)->filename);
+ char
+ message[MaxTextExtent];
+
+ (void) FormatLocaleString(message,MaxTextExtent,"%s:%s",
+ exception->reason != (char *) NULL ? exception->reason : "",
+ exception->description != (char *) NULL ? exception->description :
+ "");
+ XNoticeWidget(display,windows,"Unable to print file:",message);
break;
}
break;
XFileBrowserWidget(display,windows,"Delete",filename);
if (*filename == '\0')
break;
- status=remove(filename) != 0 ? MagickTrue : MagickFalse;
+ status=remove_utf8(filename) != 0 ? MagickTrue : MagickFalse;
if (status != MagickFalse)
XNoticeWidget(display,windows,"Unable to delete image file:",filename);
break;
*/
(void) FormatLocaleString(image_geometry,MaxTextExtent,"%dx%d!",
windows->image.ximage->width,windows->image.ximage->height);
- (void) TransformImage(image,windows->image.crop_geometry,image_geometry);
+ (void) TransformImage(image,windows->image.crop_geometry,image_geometry,
+ exception);
if (windows->image.crop_geometry != (char *) NULL)
- windows->image.crop_geometry=(char *)
- RelinquishMagickMemory(windows->image.crop_geometry);
+ windows->image.crop_geometry=(char *) RelinquishMagickMemory(
+ windows->image.crop_geometry);
windows->image.x=0;
windows->image.y=0;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
windows->image.x=0;
windows->image.y=0;
}
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
exception);
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) QueryColorDatabase(color,&(*image)->background_color,
- exception);
+ (void) QueryColorCompliance(color,AllCompliance,
+ &(*image)->background_color,exception);
flags=ParseGeometry(geometry,&geometry_info);
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
break;
windows->image.window_changes.width=(int) (*image)->columns;
windows->image.window_changes.height=(int) (*image)->rows;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
break;
windows->image.window_changes.width=(int) (*image)->columns;
windows->image.window_changes.height=(int) (*image)->rows;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
(void) XDialogWidget(display,windows,"Trim","Enter fuzz factor:",fuzz);
if (*fuzz == '\0')
break;
- (*image)->fuzz=SiPrefixToDouble(fuzz,(double) QuantumRange+1.0);
+ (*image)->fuzz=StringToDoubleInterval(fuzz,(double) QuantumRange+1.0);
/*
Trim image.
*/
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
(void) SetImageType(*image,(*image)->matte == MagickFalse ?
- GrayscaleType : GrayscaleMatteType);
+ GrayscaleType : GrayscaleMatteType,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
affinity_image=ReadImage(image_info,exception);
if (affinity_image != (Image *) NULL)
{
- (void) RemapImage(&quantize_info,*image,affinity_image);
+ (void) RemapImage(&quantize_info,*image,affinity_image,exception);
affinity_image=DestroyImage(affinity_image);
}
CatchException(exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XCheckRefreshWindows(display,windows);
quantize_info.number_colors=StringToUnsignedLong(colors);
quantize_info.dither=status != 0 ? MagickTrue : MagickFalse;
- (void) QuantizeImage(&quantize_info,*image);
+ (void) QuantizeImage(&quantize_info,*image,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
noise_image=AddNoiseImage(*image,(NoiseType) ParseCommandOption(
- MagickNoiseOptions,MagickFalse,noise_type),exception);
+ MagickNoiseOptions,MagickFalse,noise_type),1.0,exception);
if (noise_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- threshold=SiPrefixToDouble(factor,QuantumRange);
- (void) BilevelImage(*image,threshold);
+ threshold=StringToDoubleInterval(factor,(double) QuantumRange+1.0);
+ (void) BilevelImage(*image,threshold,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
flags=ParseGeometry(radius,&geometry_info);
- edge_image=EdgeImage(*image,geometry_info.rho,exception);
+ edge_image=EdgeImage(*image,geometry_info.rho,geometry_info.sigma,
+ exception);
if (edge_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
flags=ParseGeometry(amount,&geometry_info);
- spread_image=EdgeImage(*image,geometry_info.rho,exception);
+ spread_image=EdgeImage(*image,geometry_info.rho,geometry_info.sigma,
+ exception);
if (spread_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
flags=ParseGeometry(threshold,&geometry_info);
if ((flags & SigmaValue) == 0)
geometry_info.sigma=1.0;
- (void) SegmentImage(*image,RGBColorspace,MagickFalse,geometry_info.rho,
- geometry_info.sigma);
+ (void) SegmentImage(*image,sRGBColorspace,MagickFalse,geometry_info.rho,
+ geometry_info.sigma,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- threshold=SiPrefixToDouble(factor,QuantumRange);
+ threshold=StringToDoubleInterval(factor,(double) QuantumRange+1.0);
sepia_image=SepiaToneImage(*image,threshold,exception);
if (sepia_image != (Image *) NULL)
{
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
*/
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- threshold=SiPrefixToDouble(factor,QuantumRange);
+ threshold=StringToDoubleInterval(factor,(double) QuantumRange+1.0);
(void) SolarizeImage(*image,threshold,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
flags=ParseGeometry(degrees,&geometry_info);
- swirl_image=SwirlImage(*image,geometry_info.rho,exception);
+ swirl_image=SwirlImage(*image,geometry_info.rho,(*image)->interpolate,
+ exception);
if (swirl_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
flags=ParseGeometry(factor,&geometry_info);
- implode_image=ImplodeImage(*image,geometry_info.rho,exception);
+ implode_image=ImplodeImage(*image,geometry_info.rho,(*image)->interpolate,
+ exception);
if (implode_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
geometry_info.xi=0.1*(*image)->columns;
if ((flags & PsiValue) == 0)
geometry_info.psi=0.1*(*image)->rows;
- vignette_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);
+ vignette_image=VignetteImage(*image,geometry_info.rho,0.0,(ssize_t)
+ ceil(geometry_info.xi-0.5),(ssize_t) ceil(geometry_info.psi-0.5),
+ exception);
if (vignette_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
if ((flags & SigmaValue) == 0)
geometry_info.sigma=1.0;
wave_image=WaveImage(*image,geometry_info.rho,geometry_info.sigma,
- exception);
+ (*image)->interpolate,exception);
if (wave_image != (Image *) NULL)
{
*image=DestroyImage(*image);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
exception);
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) QueryColorDatabase(color,&(*image)->border_color,
+ (void) QueryColorCompliance(color,AllCompliance,&(*image)->border_color,
exception);
(void) ParsePageGeometry(*image,geometry,&page_geometry,
exception);
- border_image=BorderImage(*image,&page_geometry,exception);
+ border_image=BorderImage(*image,&page_geometry,(*image)->compose,
+ exception);
if (border_image != (Image *) NULL)
{
*image=DestroyImage(*image);
break;
windows->image.window_changes.width=(int) (*image)->columns;
windows->image.window_changes.height=(int) (*image)->rows;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
exception);
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (void) QueryColorDatabase(color,&(*image)->matte_color,
+ (void) QueryColorCompliance(color,AllCompliance,&(*image)->matte_color,
exception);
(void) ParsePageGeometry(*image,geometry,&page_geometry,
exception);
frame_info.y=(ssize_t) frame_info.height;
frame_info.width=(*image)->columns+2*frame_info.width;
frame_info.height=(*image)->rows+2*frame_info.height;
- frame_image=FrameImage(*image,&frame_info,exception);
+ frame_image=FrameImage(*image,&frame_info,(*image)->compose,exception);
if (frame_image != (Image *) NULL)
{
*image=DestroyImage(*image);
break;
windows->image.window_changes.width=(int) (*image)->columns;
windows->image.window_changes.height=(int) (*image)->rows;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
break;
}
if (unique_file == -1)
XNoticeWidget(display,windows,"Unable to edit image comment",
image_info->filename);
- value=GetImageProperty(*image,"comment");
+ value=GetImageProperty(*image,"comment",exception);
if (value == (char *) NULL)
unique_file=close(unique_file)-1;
else
comment=FileToString(image_info->filename,~0UL,exception);
if (comment != (char *) NULL)
{
- (void) SetImageProperty(*image,"comment",comment);
+ (void) SetImageProperty(*image,"comment",comment,exception);
(*image)->taint=MagickTrue;
}
}
ParseCommandOption(MagickPreviewOptions,MagickFalse,preview_type);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Preview");
+ (void) SetImageProperty(*image,"label","Preview",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"preview:%s",
filename);
XCheckRefreshWindows(display,windows);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Histogram");
+ (void) SetImageProperty(*image,"label","Histogram",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"histogram:%s",
filename);
XCheckRefreshWindows(display,windows);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Matte");
+ (void) SetImageProperty(*image,"label","Matte",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"matte:%s",
filename);
%
% The format of the XMagnifyImage method is:
%
-% void XMagnifyImage(Display *display,XWindows *windows,XEvent *event)
+% void XMagnifyImage(Display *display,XWindows *windows,XEvent *event,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o event: Specifies a pointer to a XEvent structure. If it is NULL,
% the entire image is refreshed.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-static void XMagnifyImage(Display *display,XWindows *windows,XEvent *event)
+static void XMagnifyImage(Display *display,XWindows *windows,XEvent *event,
+ ExceptionInfo *exception)
{
char
text[MaxTextExtent];
/*
Wait for next event.
*/
- XScreenEvent(display,windows,event);
+ XScreenEvent(display,windows,event,exception);
switch (event->type)
{
case ButtonPress:
% The format of the XMagnifyWindowCommand method is:
%
% void XMagnifyWindowCommand(Display *display,XWindows *windows,
-% const MagickStatusType state,const KeySym key_symbol)
+% const MagickStatusType state,const KeySym key_symbol,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o key_symbol: Specifies a KeySym which indicates which side of the image
% to trim.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static void XMagnifyWindowCommand(Display *display,XWindows *windows,
- const MagickStatusType state,const KeySym key_symbol)
+ const MagickStatusType state,const KeySym key_symbol,ExceptionInfo *exception)
{
unsigned int
quantum;
default:
break;
}
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
}
\f
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
break;
if (entry != 5)
{
- (*image)->fuzz=SiPrefixToDouble(FuzzMenu[entry],1.0*
+ (*image)->fuzz=StringToDoubleInterval(FuzzMenu[entry],(double)
QuantumRange+1.0);
break;
}
if (*fuzz == '\0')
break;
(void) ConcatenateMagickString(fuzz,"%",MaxTextExtent);
- (*image)->fuzz=SiPrefixToDouble(fuzz,1.0*QuantumRange+1.0);
+ (*image)->fuzz=StringToDoubleInterval(fuzz,(double) QuantumRange+
+ 1.0);
break;
}
case MatteEditValueCommand:
*/
x=event.xbutton.x;
y=event.xbutton.y;
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
(void) XConfigureImage(display,resource_info,windows,*image,exception);
XInfoWidget(display,windows,text);
(void) XCheckDefineCursor(display,windows->image.id,cursor);
continue;
if (SetImageStorageClass(*image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
- (*image)->matte=MagickTrue;
+ if ((*image)->matte == MagickFalse)
+ (void) SetImageAlphaChannel(*image,OpaqueAlphaChannel,exception);
image_view=AcquireCacheView(*image);
switch (method)
{
}
case ReplaceMethod:
{
- PixelPacket
+ PixelInfo
pixel,
target;
/*
Update matte information using replace algorithm.
*/
- (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t) x_offset,
- (ssize_t) y_offset,&target,exception);
+ (void) GetOneCacheViewVirtualPixelInfo(image_view,(ssize_t)
+ x_offset,(ssize_t) y_offset,&target,exception);
for (y=0; y < (int) (*image)->rows; y++)
{
q=GetCacheViewAuthenticPixels(image_view,0,(ssize_t) y,
break;
for (x=0; x < (int) (*image)->columns; x++)
{
- GetPixelPacket(*image,q,&pixel);
- if (IsFuzzyEquivalencePixelPacket(*image,&pixel,&target))
+ GetPixelInfoPixel(*image,q,&pixel);
+ if (IsFuzzyEquivalencePixelInfo(&pixel,&target))
SetPixelAlpha(*image,(Quantum) StringToLong(matte),q);
q+=GetPixelChannels(*image);
}
/*
Update matte information using floodfill algorithm.
*/
- (void) GetOneVirtualMagickPixel(*image,(ssize_t) x_offset,
- (ssize_t) y_offset,&target,exception);
+ (void) GetOneVirtualPixelInfo(*image,
+ GetPixelCacheVirtualMethod(*image),(ssize_t) x_offset,(ssize_t)
+ y_offset,&target,exception);
if (method == FillToBorderMethod)
{
target.red=(MagickRealType) ScaleShortToQuantum(
}
draw_info=CloneDrawInfo(resource_info->image_info,
(DrawInfo *) NULL);
- draw_info->fill.alpha=ClampToQuantum(InterpretLocaleValue(matte,
- (char **) NULL));
+ draw_info->fill.alpha=(MagickRealType) ClampToQuantum(
+ StringToDouble(matte,(char **) NULL));
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);
+ (void) SetPixelChannelMapMask(*image,channel_mask);
draw_info=DestroyDrawInfo(draw_info);
break;
}
%
% The format of the XPanImage method is:
%
-% void XPanImage(Display *display,XWindows *windows,XEvent *event)
+% void XPanImage(Display *display,XWindows *windows,XEvent *event,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o event: Specifies a pointer to a XEvent structure. If it is NULL,
% the entire image is refreshed.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-static void XPanImage(Display *display,XWindows *windows,XEvent *event)
+static void XPanImage(Display *display,XWindows *windows,XEvent *event,
+ ExceptionInfo *exception)
{
char
text[MaxTextExtent];
Wait for next event.
*/
if ((state & ExitState) == 0)
- XScreenEvent(display,windows,event);
+ XScreenEvent(display,windows,event,exception);
} while ((state & ExitState) == 0);
/*
Restore cursor.
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
if (event.xany.window == windows->command.id)
/*
Paste image with X Image window.
*/
- (void) CompositeImage(image,compose,paste_image,paste_info.x,paste_info.y);
+ (void) CompositeImage(image,paste_image,compose,MagickTrue,paste_info.x,
+ paste_info.y,exception);
paste_image=DestroyImage(paste_image);
XSetCursorState(display,windows,MagickFalse);
/*
Update image colormap.
*/
- XConfigureImageColormap(display,resource_info,windows,image);
+ XConfigureImageColormap(display,resource_info,windows,image,exception);
(void) XConfigureImage(display,resource_info,windows,image,exception);
return(MagickTrue);
}
return(MagickFalse);
(void) FormatLocaleString(geometry,MaxTextExtent,"%dx%d!",
windows->image.ximage->width,windows->image.ximage->height);
- (void) TransformImage(&print_image,windows->image.crop_geometry,geometry);
+ (void) TransformImage(&print_image,windows->image.crop_geometry,geometry,
+ exception);
/*
Print image.
*/
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if ((highlight_info.width > 3) && (highlight_info.height > 3))
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
(void) XMagickCommand(display,resource_info,windows,
SaveToUndoBufferCommand,image,exception);
windows->image.orphan=MagickFalse;
- (void) CompositeImage(*image,CopyCompositeOp,roi_image,
- crop_info.x,crop_info.y);
+ (void) CompositeImage(*image,roi_image,CopyCompositeOp,
+ MagickTrue,crop_info.x,crop_info.y,exception);
roi_image=DestroyImage(roi_image);
(void) SetImageProgressMonitor(*image,progress_monitor,
(*image)->client_data);
}
if (command_type != InfoCommand)
{
- XConfigureImageColormap(display,resource_info,windows,*image);
- (void) XConfigureImage(display,resource_info,windows,*image,exception);
+ XConfigureImageColormap(display,resource_info,windows,*image,
+ exception);
+ (void) XConfigureImage(display,resource_info,windows,*image,
+ exception);
}
XCheckRefreshWindows(display,windows);
XInfoWidget(display,windows,text);
}
XHighlightRectangle(display,windows->image.id,
windows->image.highlight_context,&highlight_info);
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (event.xany.window == windows->command.id)
{
/*
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
XHighlightLine(display,windows->image.id,
windows->image.highlight_context,&rotate_info);
if (event.xany.window == windows->command.id)
/*
Wait for next event.
*/
- XScreenEvent(display,windows,&event);
+ XScreenEvent(display,windows,&event,exception);
if (distance > 9)
XHighlightLine(display,windows->image.id,
windows->image.highlight_context,&rotate_info);
exception);
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
- (*image)->background_color.red=ScaleShortToQuantum(
+ (*image)->background_color.red=(double) ScaleShortToQuantum(
windows->pixel_info->pen_colors[pen_id].red);
- (*image)->background_color.green=ScaleShortToQuantum(
+ (*image)->background_color.green=(double) ScaleShortToQuantum(
windows->pixel_info->pen_colors[pen_id].green);
- (*image)->background_color.blue=ScaleShortToQuantum(
+ (*image)->background_color.blue=(double) ScaleShortToQuantum(
windows->pixel_info->pen_colors[pen_id].blue);
rotate_image=RotateImage(*image,degrees,exception);
XSetCursorState(display,windows,MagickFalse);
windows->image.window_changes.width=(int) width;
windows->image.window_changes.height=(int) height;
}
- XConfigureImageColormap(display,resource_info,windows,*image);
+ XConfigureImageColormap(display,resource_info,windows,*image,exception);
}
else
if (((rotations % 4) == 1) || ((rotations % 4) == 3))
GetPathComponent(image->filename,HeadPath,path);
GetPathComponent(image->filename,TailPath,filename);
- status=chdir(path);
- if (status == -1)
- (void) ThrowMagickException(exception,GetMagickModule(),
- FileOpenError,"UnableToOpenFile","%s",path);
+ if (*path != '\0')
+ {
+ status=chdir(path);
+ if (status == -1)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ FileOpenError,"UnableToOpenFile","%s",path);
+ }
}
XFileBrowserWidget(display,windows,"Save",filename);
if (*filename == '\0')
return(MagickFalse);
(void) FormatLocaleString(geometry,MaxTextExtent,"%dx%d!",
windows->image.ximage->width,windows->image.ximage->height);
- (void) TransformImage(&save_image,windows->image.crop_geometry,geometry);
+ (void) TransformImage(&save_image,windows->image.crop_geometry,geometry,
+ exception);
/*
Write image.
*/
%
% The format of the XScreenEvent function is:
%
-% void XScreenEvent(Display *display,XWindows *windows,XEvent *event)
+% void XScreenEvent(Display *display,XWindows *windows,XEvent *event,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
%
% o event: Specifies a pointer to a X11 XEvent structure.
%
+% o exception: return any errors or warnings in this structure.
%
*/
}
#endif
-static void XScreenEvent(Display *display,XWindows *windows,XEvent *event)
+static void XScreenEvent(Display *display,XWindows *windows,XEvent *event,
+ ExceptionInfo *exception)
{
register int
x,
}
if (event->xbutton.window == windows->pan.id)
{
- XPanImage(display,windows,event);
+ XPanImage(display,windows,event,exception);
break;
}
if (event->xbutton.window == windows->image.id)
windows->magnify.y=windows->image.y+y;
if (windows->magnify.mapped == MagickFalse)
(void) XMapRaised(display,windows->magnify.id);
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
if (event->type == ButtonRelease)
(void) XWithdrawWindow(display,windows->info.id,
windows->info.screen);
&window_changes);
break;
}
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
break;
}
break;
if (event->xexpose.window == windows->magnify.id)
if (event->xexpose.count == 0)
{
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
break;
}
break;
*/
(void) XLookupString((XKeyEvent *) &event->xkey,command,(int)
sizeof(command),&key_symbol,(XComposeStatus *) NULL);
- XMagnifyWindowCommand(display,windows,event->xkey.state,key_symbol);
+ XMagnifyWindowCommand(display,windows,event->xkey.state,key_symbol,
+ exception);
break;
}
case MapNotify:
if (y >= (int) windows->image.height)
y=(int) (windows->image.height-1);
windows->magnify.y=windows->image.y+y;
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
}
break;
}
status=XConfirmWidget(display,windows,"Really delete tile",filename);
if (status <= 0)
break;
- status=remove(filename) != 0 ? MagickTrue : MagickFalse;
+ status=remove_utf8(filename) != 0 ? MagickTrue : MagickFalse;
if (status != MagickFalse)
{
XNoticeWidget(display,windows,"Unable to delete image file:",
x_offset,
y_offset;
- PixelPacket
+ PixelInfo
pixel;
register int
Ensure all the images exist.
*/
tile=0;
+ GetPixelInfo(image,&pixel);
for (p=image->directory; *p != '\0'; p++)
{
CacheView
x_offset=(int) (width*(tile % (((int) image->columns-x)/width))+x);
y_offset=(int) (height*(tile/(((int) image->columns-x)/width))+y);
image_view=AcquireCacheView(image);
- (void) GetOneCacheViewVirtualPixel(image_view,0,0,&pixel,exception);
+ (void) GetOneCacheViewVirtualPixelInfo(image_view,0,0,&pixel,exception);
for (i=0; i < (int) height; i++)
{
s=GetCacheViewAuthenticPixels(image_view,(ssize_t) x_offset,(ssize_t)
break;
for (j=0; j < (int) width; j++)
{
- SetPixelPacket(image,&pixel,s);
+ SetPixelInfoPixel(image,&pixel,s);
s+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
}
windows->image.window_changes.width=(int) image->columns;
windows->image.window_changes.height=(int) image->rows;
- XConfigureImageColormap(display,resource_info,windows,image);
+ XConfigureImageColormap(display,resource_info,windows,image,exception);
(void) XConfigureImage(display,resource_info,windows,image,exception);
break;
}
{
(void) DeleteImageProperty(next_image,"label");
(void) SetImageProperty(next_image,"label",InterpretImageProperties(
- read_info,next_image,DefaultTileLabel));
+ read_info,next_image,DefaultTileLabel,exception),exception);
(void) ParseRegionGeometry(next_image,read_info->size,&geometry,
exception);
thumbnail_image=ThumbnailImage(next_image,geometry.width,
Initialize Standard Colormap.
*/
resources.colormap=SharedColormap;
- XMakeStandardColormap(display,visual_info,&resources,image,map_info,&pixel);
+ XMakeStandardColormap(display,visual_info,&resources,image,map_info,&pixel,
+ exception);
/*
Graphic context superclass.
*/
display_image->magick);
}
XMakeStandardColormap(display,visual_info,resource_info,display_image,
- map_info,pixel);
+ map_info,pixel,exception);
display_image->taint=MagickFalse;
/*
Initialize graphic context.
*title;
title=InterpretImageProperties(resource_info->image_info,display_image,
- resource_info->title);
+ resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,MaxTextExtent);
(void) CopyMagickString(windows->image.icon_name,title,MaxTextExtent);
title=DestroyString(title);
Window name is the base of the filename.
*/
GetPathComponent(display_image->magick_filename,TailPath,filename);
- if (GetImageListLength(display_image) == 1)
+ if (display_image->scene == 0)
(void) FormatLocaleString(windows->image.name,MaxTextExtent,
"%s: %s",MagickPackageName,filename);
else
resource_info->image_info->filename,MaxTextExtent,
"%s:%s",display_image->magick,
display_image->filename);
- nexus=ReadImage(resource_info->image_info,
- &display_image->exception);
+ nexus=ReadImage(resource_info->image_info,exception);
if (nexus != (Image *) NULL)
{
nexus=DestroyImage(nexus);
*/
(void) XMagickCommand(display,resource_info,windows,ZoomCommand,
&display_image,exception);
- XMagnifyImage(display,windows,&event);
+ XMagnifyImage(display,windows,&event,exception);
break;
}
case Button3:
*/
factor=XMenuWidget(display,windows,"Magnify",MagnifyMenu,command);
if (factor >= 0)
- XMagnifyWindowCommand(display,windows,0,MagnifyCommands[factor]);
+ XMagnifyWindowCommand(display,windows,0,MagnifyCommands[factor],
+ exception);
break;
}
if (event.xbutton.window == windows->pan.id)
}
default:
{
- XPanImage(display,windows,&event);
+ XPanImage(display,windows,&event,exception);
break;
}
}
(void) CopyMagickString(resource_info->image_info->filename,
((char *) data)+5,MaxTextExtent);
}
- nexus=ReadImage(resource_info->image_info,
- &display_image->exception);
- CatchException(&display_image->exception);
+ nexus=ReadImage(resource_info->image_info,exception);
+ CatchException(exception);
if (nexus != (Image *) NULL)
*state|=NextImageState | ExitState;
(void) XFree((void *) data);
status=XMakeImage(display,resource_info,&windows->magnify,
display_image,windows->magnify.width,windows->magnify.height,
exception);
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
}
break;
}
if ((event.xexpose.window == windows->magnify.id) &&
(windows->magnify.mapped != MagickFalse))
{
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
break;
}
if (event.xexpose.window == windows->pan.id)
&display_image,exception);
}
if (event.xkey.window == windows->magnify.id)
- XMagnifyWindowCommand(display,windows,event.xkey.state,key_symbol);
+ XMagnifyWindowCommand(display,windows,event.xkey.state,key_symbol,
+ exception);
if (event.xkey.window == windows->pan.id)
{
if ((key_symbol == XK_q) || (key_symbol == XK_Escape))
}
if (event.xmap.window == windows->magnify.id)
{
- XMakeMagnifyImage(display,windows);
+ XMakeMagnifyImage(display,windows,exception);
windows->magnify.mapped=MagickTrue;
(void) XWithdrawWindow(display,windows->info.id,
windows->info.screen);
*/
taint=display_image->taint;
XMakeStandardColormap(display,icon_visual,icon_resources,
- display_image,icon_map,icon_pixel);
+ display_image,icon_map,icon_pixel,exception);
(void) XMakeImage(display,icon_resources,&windows->icon,
display_image,windows->icon.width,windows->icon.height,
exception);
(void) CopyMagickString(resource_info->image_info->filename,
(char *) data,MaxTextExtent);
(void) XFree((void *) data);
- nexus=ReadImage(resource_info->image_info,&display_image->exception);
- CatchException(&display_image->exception);
+ nexus=ReadImage(resource_info->image_info,exception);
+ CatchException(exception);
if (nexus != (Image *) NULL)
*state|=NextImageState | ExitState;
break;
{
if (map_info->colormap == icon_map->colormap)
XConfigureImageColormap(display,resource_info,windows,
- display_image);
+ display_image,exception);
(void) XFreeStandardColormap(display,icon_visual,icon_map,
icon_pixel);
windows->icon.mapped=MagickFalse;
status=chdir(resource_info->home_directory);
if (status == -1)
- (void) ThrowMagickException(&display_image->exception,GetMagickModule(),
- FileOpenError,"UnableToOpenFile","%s",resource_info->home_directory);
+ (void) ThrowMagickException(exception,GetMagickModule(),FileOpenError,
+ "UnableToOpenFile","%s",resource_info->home_directory);
}
*image=display_image;
return(nexus);