TclMagick

Main | TclMagick | TkMagick |  |

## A Tcl interface to ImageMagick & ImageMagick

TclMagick is a Tcl wrapper for ImageMagick's high-level Wand interface. It lets you convert and manipulate a large variety of image formats, and importantly, does not require the Tk toolkit or an active windowing system!

There is also a TkMagick module, which exists to bridge TclMagick and Tk. It lets you use make Tk images from data loaded with TclMagick, and vice versa.

http://www.imagemagick.org
http://www.graphicsmagick.org

TclMagick doesn't add any intelligence to ImageMagick, except some Tclification with optional command arguments. The wrapping of ImageMagick's Wand-API should be mostly obvious, so there is no need for extensive, separate TclMagick documentation. For a more detailed description of methods refer to the Wand-API documentation.

There are three different ImageMagick object types: MagickWand, DrawingWand and PixelWand. In TclMagick these objects are called wand, drawing and pixel. They are created and deleted with the magick command similar to Tcl's imagecommand. Wand-API methods are then called as subcommands of the created TclMagick object.
If an ImageMagick-API allows a NULL object argument, it can be specified as an empty string {} or "".

## General design:

There is one main command: magick - Create/delete Magick "wand", "drawing", and "pixel" objects

Creating a Magick object creates a command of the same name: `magickName subcmd ?args?`

Deleting the Magick object also deletes the associated command.

## "magick" command

magick subcmd ?args?
magick create type ?name? | # Create a TclMagick object of type
type="wand", "drawing", "pixel" returns: object name |
magick delete name ?name? ... | # Delete TclMagick objects
magick names ?type? | # Return all TclMagick objects (of type)
magick type name | # Return the type of the object
magick types | # Return valid type names
magick resourcelimit resource ?limit? | MagickGet/SetResourceLimits
resource="undefined", "area", "disk", "file", "map", "memory" unsigned limit |
magick fonts ?pattern? | MagickQueryFonts
string pattern (default="*") returns stringList (all matching fonts) |
magick formats ?pattern? | MagickQueryFormats
string pattern (default="*") returns stringList (all matching image formats) |
magick library magick library -copyright magick library -date magick library -maxrgb magick library -name magick library -quantumdepth magick library -url magick library -version magick library -versionstr | # Returns all options MagickGetCopyright MagickGetReleaseDate MagickGetQuantumDepth MagickGetPackageName MagickGetQuantumDepth MagickGetHomeURL MagickGetVersion MagickGetVersion
Without -option the return is a list of all -option value ... pairs -quantumdepth returns an integer -version returns a string like "5.5.8" -versionstr returns the complete MagickGetVersion() all others return a string |
magick version | # Return TclMagick version
return string version |

## MagickWand object subcommands

wandName subcmd ?args? | ImageMagick API
--- | ---
wandName adaptivethreshold ?width? ?height? ?ofs? wandName AdaptiveThresholdImage ?width? ?height? ?ofs? | MagickAdaptiveThresholdImage MagickAdaptiveThresholdImage
integer width,height,ofs (default: width=2, height=width, ofs=0) |
wandName add wandName wandName AddImage wandName | MagickAddImage MagickAddImage
MagickWand wandName |
wandName addnoise ?noiseType? wandName AddNoiseImage ?noiseType? | MagickAddNoiseImage MagickAddNoiseImage
string noiseType = "uniform", "gaussian", "multiplicativegaussian", "impulse", "laplacian", "poisson" (default: noisetype="uniform") |
wandName affinetransform draw wandName AffineTransformImage draw | MagickAffineTransformImage MagickAffineTransformImage
DrawingWand draw |
wandName annotate draw ?x y? ?angle? text wandName AnnotateImage draw ?x y? ?angle? text | MagickAnnotateImage MagickAnnotateImage
DrawingWand draw double x, y (default=0.0) double angle (default=0.0) string text |
wandName append ?stack? ?newName? wandName AppendImages ?stack? ?newName? | MagickAppendImages MagickAppendImages
bool stack (default=0) string newName |
wandName average ?newName? wandName AverageImages ?newName? | MagickAverageImages MagickAverageImages
string newName |
wandName blackthreshold thresholdPixel wandName BlackThresholdImage thresholdPixel | MagickBlackThresholdImage MagickBlackThresholdImage
PixelWand thresholdPixel |
wandName blur ?radius? ?sigma? wandName BlurImage ?radius? ?sigma? | MagickBlurImage MagickBlurImage
double radius,sigma (default: radius=0.0, sigma=1.0) |
wandName border borderPixel ?width? ?height? wandName BorderImage borderPixel ?width? ?height? |
PixelWand borderPixel integer width,height (default: width=1, height=width) | MagickBorderImage MagickBorderImage
wandName charcoal ?radius? ?sigma? wandName CharcoalImage ?radius? ?sigma? | MagickCharcoalImage MagickCharcoalImage
double radius,sigma (default: radius=0.0, sigma=1.0) |
wandName chop width height ?x y? wandName ChopImage width height ?x y? | MagickChopImage MagickChopImage
integer width,height,x,y (default: x=y=0) |
wandName clip wandName ClipImage | MagickClipImage MagickClipImage
<none> |
wandName clippath pathname ?inside? wandName ClipPathImage pathname ?inside? | MagickClipPathImage MagickClipPathImage
string pathname bool inside (default=0) |
wandName clone ?newName? wandName CloneWand ?newName? | CloneMagickWand CloneMagickWand
string newName |
wandName coalesce ?newName? wandName CoalesceImages ?newName? | MagickCoalesceImages MagickCoalesceImages
string newNam |
wandName colorfloodfill fillPix ?fuzz? ?borderPix? ?x y? wandName ColorFloodfillImage fillPix ?fuzz? ?borderPix? ?x y? | MagickColorFloodfillImage MagickColorFloodfillImage
PixelWand fillPix,borderPix (default: borderPix=""=>NULL) double fuzz (default=0.0) integer x,y (default: x=y=0) |
wandName colorize fillPix opacityPix wandName ColorizeImage fillPix opacityPix | MagickColorizeImage MagickColorizeImage
PixelWand fillPix,opacityPix |
wandName comment str wandName CommentImage str | MagickCommentImage MagickCommentImage
string str |
wandName compare refName wandName CompareImages refName metric | MagickCompareImages MagickCompareImages
MagickWand refName string metricType = "meanabsoluteerror", "meansquarederror", "peakabsoluteerror", "peaksignaltonoiseratio", "rootmeansquarederror" returns double distortion |
wandName comparechannels refName chan metric wandName CompareImageChannels refName chan metric | MagickCompareImageChannels MagickCompareImageChannels
MagickWand refName string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" string metricType ="meanabsoluteerror", "meansquarederror", "peakabsoluteerror", "peaksignaltonoiseratio", "rootmeansquarederror" returns double distortion |
wandName composite compWand opType ?x y? wandName CompositeImage compWand opType ?x y? | MagickCompositeImage MagickCompositeImage
string opType = "undefined", "over", "in", "out", "atop", "xor", "plus", "minus", "add", "subtract", "difference", "multiply", "bumpmap", "copy", "copyred", "copygreen", "copyblue", "copyopacity", "clear", "dissolve", "displace", "modulate", "threshold", "no", "darken", "lighten", "hue", "saturate", "colorize", "luminize", "screen", "overlay", "copycyan", "copymagenta", "copyyellow", "copyblack", "replace" MagickWand compWand integer x,y (default: x=y=0) |
wandName contrast ?sharpen? wandName ContrastImage ?sharpen? | MagickContrastImage MagickContrastImage
bool sharpen (default: sharpen=yes) |
wandName convolve order kernelData wandName ConvolveImage order kernelData | MagickConvolveImage MagickConvolveImage
integer order=odd kernelData = list of doubles with (order x order) elements |
wandName crop width height ?x y? wandName CropImage width height ?x y? | MagickCropImage MagickCropImage
integer width,height,x,y (default: x=y=0) |
wandName cyclecolormap ?displace? wandName CycleColormapImage ?displace? | MagickCycleColormapImage MagickCycleColormapImage
integer displace (default: displace=1) |
wandName deconstruct ?newName? wandName DeconstructImages ?newName? | MagickDeconstructImages MagickDeconstructImages
string newName |
wandName describe wandName DescribeImage | MagickDescribeImage MagickDescribeImage
<none> |
wandName despeckle wandName DespeckleImage | MagickDespeckleImage MagickDespeckleImage
<none> |
wandName draw draw wandName DrawImage draw | MagickDrawImage MagickDrawImage
DrawingWand draw |
wandName edge ?radius? wandName EdgeImage ?radius? | MagickEdgeImage MagickEdgeImage
double radius (default: radius=0.0) |
wandName emboss ?radius? ?sigma? wandName EmbossImage ?radius? ?sigma? | MagickEmbossImage MagickEmbossImage
double radius,sigma (default: radius=0.0, sigma=1.0) |
wandName enhance wandName EnhanceImage | MagickEnhanceImage MagickEnhanceImage
<none> |
wandName equalize wandName EqualizeImage | MagickEqualizeImage MagickEqualizeImage
<none> |
wandName flatten ?newName? wandName FlattenImages ?newName? | MagickFlattenImages MagickFlattenImages
string newName |
wandName flip wandName FlipImage | MagickFlipImage MagickFlipImage
<none> |
wandName flop wandName FlopImage | MagickFlopImage MagickFlopImage
<none> |
wandName frame framePix ?width? ?height? ?inner? ?outer? wandName FrameImage framePix ?width? ?height? ?inner? ?outer? | MagickFrameImage MagickFrameImage
PixelWand framePix integer witdh,height,innerBevel,outerBevel (default: width=1, height=width, inner=0, outer=inner) |
wandname fx expr ?newName? wandname fxImage expr ?newName? | MagickFxImage MagickFxImage
string expr string newName |
wandname fxchannel channelType expr ?newName? wandname fxImageChannel channelType expr ?newName? | MagickFxImageChannel MagickFxImageChannel
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" string expr string newName |
wandName gamma level wandName GammaImage level | MagickGammaImage MagickGammaImage
double level |
wandName gammachannel channelType level wandName GammaImageChannel channelType level | MagickGammaImageChannel MagickGammaImageChannel
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" double level |
wandName filename ?name? wandName GetFilename wandName SetFilename name | MagickGet/SetFilename MagickGetFilename MagickSetFilename
string name |
wandName backgroundcolor ?pixel? wandName GetBackgroundColor ?pixel? wandName SetBackgroundColor pixel | MagickGet/SetBackgroundColor MagickGetImageBackgroundColor MagickSetImageBackgroundColor
PixelWand pixel |
wandName blueprimary ?x y? wandName GetBluePrimary wandName SetBluePrimary x y | MagickGet/SetBluePrimary MagickGetBluePrimary MagickSetBluePrimary
double x, y |
wandName bordercolor ?pixel? wandName GetBorderColor ?pixel? wandName SetBorderColor pixel | MagickGet/SetBorderColor MagickGetImageBorderColor MagickSetImageBorderColor
PixelWand pixel |
wandName channeldepth channelType depth wandName GetChannelDepth channelType wandName SetChannelDepth channelType depth | MagickGet/SetImageChannelDepth MagickGetImageChannelDepth MagickSetImageChannelDepth
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" int depth |
wandName channelextrema channelType wandName GetChannelExtrema channelType | MagickGetImageChannelExtrema MagickGetImageChannelExtrema
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" returns intList {min max} |
wandName channelmean channelType wandName GetChannelMean channelType | MagickGetImageChannelMean MagickGetImageChannelMean
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" returns doubleList {mean deviation} |
wandName colormapcolor index ?pixel? wandName GetColormapColor index ?pixel? wandName SetColormapColor index pixel | MagickGet/SetColormapColor MagickGetImageColormapColor MagickSetImageColormapColor
int index PixelWand pixel |
wandName colors wandName GetColors | MagickGetImageColors MagickGetImageColors
returns int numColors |
wandName colorspace ?colorspaceType? wandName GetColorspace wandName SetColorspace colorspaceType | MagickGet/SetImageColorspace MagickGetImageColorspace MagickSetImageColorspace
string colorspaceType (default="RGB") ="undefined", "RGB", "GRAY", "transparent", "OHTA", "LAB", "XYZ", "YCbCr", "YCC", "YIQ", "YPbPr", "YUV", "CMYK", "sRGB", "HSL", "HWB" |
wandName compose ?opType? wandName GetCompose wandName SetCompose opType | MagickGet/SetImageCompose MagickGetImageCompose MagickSetImageCompose
string opType = "undefined", "over", "in", "out", "atop", "xor", "plus", "minus", "add", "subtract", "difference", "multiply", "bumpmap", "copy", "copyred", "copygreen", "copyblue", "copyopacity", "clear", "dissolve", "displace", "modulate", "threshold", "no", "darken", "lighten", "hue", "saturate", "colorize", "luminize", "screen", "overlay", "copycyan", "copymagenta", "copyyellow", "copyblack", "replace" |
wandName compression ?compressType? wandName GetCompression wandName SetCompression compressType | MagickGet/SetImageCompression MagickGetImageCompression MagickSetImageCompression
string compressType ="undefined", "none", "bzip", "fax", "group4", "jpeg", "jpeg-ls", "lzw", "rle", "zip" |
wandName delay ?delay? wandName GetDelay wandName SetDelay delay | MagickGet/SetImageDelay MagickGetImageDelay MagickSetImageDelay
int delay (1/100 sec) |
wandName depth ?depth? wandName GetDepth wandName SetDepth depth | MagickGet/SetImageDepth MagickGetImageDepth MagickSetImageDepth
int depth (bits) |
wandName dispose ?disposeType? wandName GetDispose wandName SetDispose disposeType | MagickGet/SetImageDispose MagickGetImageDispose MagickSetImageDispose
string disposeType = "undefined", "none", "background", "previous" |
wandName extrema wandName GetExtrema | MagickGetImageExtrema MagickGetImageExtrema
returns intList {min max} |
wandName format wandName GetFormat | MagickGetImageFormat MagickGetImageFormat
returns string format |
wandName gamma ?gamma? wandName GetGamma wandName SetGamma gamma | MagickGet/SetImageGamma MagickGetImageGamma MagickSetImageGamma
double gamma |
wandName greenprimary ?x y? wandName GetGreenPrimary wandName SetGreenPrimary x y | MagickGet/SetGreenPrimary MagickGetGreenPrimary MagickSetGreenPrimary
double x, y |
wandName heigth wandName GetHeight | MagickGetImageHeight MagickGetImageHeight
returns int height |
wandName index ?index? wandName GetIndex wandName SetIndex index | MagickGet/SetImageIndex MagickGetImageIndex MagickSetImageIndex
int index |
wandName interlace ?interlaceType? wandName GetInterlaceScheme wandName SetInterlaceScheme interlaceType | MagickGet/SetImageInterlaceScheme MagickGetImageInterlaceScheme MagickSetImageInterlaceScheme
string interlaceType = "undefined", "none", "line", "plane", "partition" |
wandName iterations ?num? wandName GetIterations wandName SetIterations num | MagickGet/SetImageIterations MagickGetImageIterations MagickSetImageIterations
int num |
wandName mattecolor ?pixel? wandName GetMatteColor ?pixel? wandName SetMatteColor pixel | MagickGet/SetMatteColor MagickGetImageMatteColor MagickSetImageMatteColor
PixelWand pixel |
wandName getimage ?newName? wandName GetImage ?newName? wandName setimage name wandName SetImage name | MagickGetImage MagickGetImage MagickSetImage MagickSetImage
string newName MagickWand name |
wandName imagefilename ?name? wandName GetImageFilename wandName SetImageFilename name | MagickGet/SetImageFilename MagickGetImageFilename MagickSetImageFilename
string name |
wandName pixels x0 y0 cols rows map storageType ?data? wandName GetPixels x0 .. storageType wandName SetPixels x0 .. storageType data | MagickGet/SetImagePixels MagickGetImagePixels MagickSetImagePixels
storageType ="char", "short", "integer", "long", "float", "double" |
wandName ProfileImage name ?profile? wandName RemoveProfile name | MagickProfileImage MagickRemoveImageProfile
string name="*","icc","icm","cptc","8bim",genericProfiles binary profile |
wandName profile name ?profile? wandName GetProfile name wandName SetProfile name profile | MagickGet/SetImageProfile MagickGetImageProfile MagickSetImageProfile
string name="*","icc","icm","cptc","8bim",genericProfiles binary profile |
wandName redprimary ?x y? wandName GetRedPrimary wandName SetRedPrimary x y | MagickGet/SetRedPrimary MagickGetRedPrimary MagickSetRedPrimary
double x, y |
wandName rendering ?renderType? wandName GetRenderingIntent wandName SetRenderingIntent renderType | MagickGet/SetImageRenderingIntent MagickGetImageRenderingIntent MagickSetImageRenderingIntent
string renderType = "undefined", "saturation", "perceptual", "absolute", "relative" |
wandName resolution ?x? ?y? wandName GetResolution wandName SetResolution x ?y? | MagickSetImageResolution MagickGetImageResolution MagickSetImageResolution
double x,y (default y=x) |
wandName scene ?num? wandName GetScene wandName SetScene num | MagickGet/SetImageScene MagickGetImageScene MagickSetImageScene
int num |
wandName imagesize wandName GetImageSize | MagickGetImageSize MagickGetImageSize
returns wideInt size |
wandName signature wandName GetSignature | MagickGetImageSignature MagickGetImageSignature
returns string signature |
wandName imagetype ?type? wandName GetImageType wandName SetImageType type | MagickGet/SetImageType MagickGetImageType MagickSetImageType
string type ="undefined","bilevel","grayscale", "grayscalematte","palette","palettematte", "truecolor","truecolormatte","colorseparation", "colorseparationmatte","optimize" |
wandName imageunits ?unitType? wandName GetImageUnits wandName SetImageUnits unitType | MagickGet/SetImageUnits MagickGetImageUnits MagickSetImageUnits
string unitType = "undefined", "ppi", "ppcm", |
wandName virtualpixelmethod ?methodType? wandName GetVirtualPixelMethod wandName SetVirtualPixelMethod methodType | MagickGet/SetImageVirtualPixelMethod MagickGetImageVirtualPixelMethod MagickSetImageVirtualPixelMethod
string methodType ="undefined", "constant", "edge", "mirror", "tile" |
wandName whitepoint ?x y? wandName GetWhitePoint wandName SetWhitePoint x y | MagickGet/SetWhitePoint MagickGetWhitePoint MagickSetWhitePoint
double x, y |
wandName width wandName GetWidth | MagickGetImageWidth MagickGetImageWidth
returns int width |
wandName number wandName GetNumberImages | MagickGetNumberImages MagickGetNumberImages
returns int number |
wandName samplingfactors ?factors? wandName GetSamplingFactors wandName SetSamplingFactors factors | MagickGet/SetSamplingFactors MagickGetSamplingFactors MagickSetSamplingFactors
doubleList factors |
wandName size ?x y? wandName GetSize wandName SetSize x y | MagickGet/SetSize MagickGetSize MagickSetSize
int x,y |
wandName hasnext wandName HasNextImage | MagickHasNextImage MagickHasNextImage
returns boolean |
wandName hasprevious wandName HasPreviousImage | MagickHasPreviousImage MagickHasPreviousImage
returns boolean |
wandName implode ?amount? wandName ImplodeImage ?amount? | MagickImplodeImage MagickImplodeImage
double amount (default=0.0) |
wandName label str wandName LabelImage str | MagickLabelImage MagickLabelImage
string str |
wandName level ?black? ?gamma? ?white? wandName LevelImage ?black? ?gamma? ?white? | MagickLevelImage MagickLevelImage
double black,gamma,white (default: black=0.0, gama=1.0, white=MaxRGB) |
wandName levelchannel channelType ?black? ?gamma? ?white? wandName LevelImageChannel channelType ?black? ?gamma? ?white? | MagickLevelImageChannel MagickLevelImageChannel
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" double black,gamma,white (default: black=0.0, gama=1.0, white=MaxRGB) |
wandName magnify wandName MagnifyImage | MagnifyImage MagnifyImage
<none> |
wandName map mapName ?dither? wandName MapImage mapName ?dither? | MagickMapImage MagickMapImage
MagickWand mapName bool dither (default=no) |
wandName mattefloodfill opacity ?fuzz? ?borderPix? ?x y? wandName MatteFloodfillImage opacity ?fuzz? ?borderPix? ?x y? | MagickMatteFloodfillImage MagickMatteFloodfillImage
int opacity double fuzz (default=0.0) PixelWand borderPix (default: borderPix=none) integer x,y (default: x=y=0) |
wandName medianfilter ?radius? wandName MedianFilterImage ?radius? | MagickMedianFilterImage MagickMedianFilterImage
double radius (default: radius=0.0) |
wandName minify wandName MinifyImage | MagickMinifyImage MagickMinifyImage
<none> |
wandName modulate ?brightness? ?saturation? ?hue? wandName ModulateImage ?brightness? ?saturation? ?hue? | MagickModulateImage MagickModulateImage
double brightness,saturation,hue (default=0.0) |
wandName montage draw tileGeom thumbGeom mode frameGeom ?newName? wandName MontageImage draw tileGeom thumbGeom mode frameGeom ?newName? | MagickMontageImage MagickMontageImage
DrawingWand draw string tileGeom, thumbGeom, frameGeom string mode = "frame", "unframe", "concatenate" |
wandName morph num ?newName? wandName MorphImages num ?newName? | MagickMorphImages MagickMorphImages
integer num string newName |
wandName mosaic ?newName? wandName MosaicImages ?newName? | MagickMosaicImages MagickMosaicImages
string newName |
wandName motionblur ?radius? ?sigma? ?angle? wandName MotionBlurImage ?radius? ?sigma? ?angle? | MagickMotionBlurImage MagickMotionBlurImage
double radius,sigma,angle (default=0.0) |
wandName negate ?gray? wandName NegateImage ?gray? | MagickNegateImage MagickNegateImage
bool gray (default=no) |
wandName next ?offset? wandName NextImage ?offset? | MagickNextImage MagickNextImage
int offset (default = 1) |
wandName normalize wandName NormalizeImage | MagickNormalizeImage MagickNormalizeImage
<none> |
wandName oilpaint ?radius? wandName OilPaintImage ?radius? | MagickOilPaintImage MagickOilPaintImage
double radius (default: radius=0.0) |
wandName opaque targetPix fillPix ?fuzz? wandName OpaqueImage targetPix fillPix ?fuzz? | MagickOpaqueImage MagickOpaqueImage
PixelWand targetPix,fillPix double fuzz (default=0.0) |
wandName ping filename wandName PingImage filename | MagickPingImage MagickPingImage
string filename |
wandName preview previewType ?newName? wandName PreviewImages previewType ?newName? | MagickPreviewImages MagickPreviewImages
integer previewType ="undefined", "rotate", "shear", "roll", "hue", "saturation", "brightness", "gamma", "spiff", "dull", "grayscale", "quantize", "despeckle", "reducenoise", "addnoise", "sharpen", "blur", "threshold", "edgedetect", "spread", "solarize", "shade", "raise", "segment", "swirl", "implode", "wave", "oilpaint", "charcoal", "jpeg", string newName |
wandName previous ?offset? wandName PreviousImage ?offset? | MagickPreviousImage MagickPreviousImage
int offset (default = 1) |
wandName quantize numColors ?colorspaceType? ?treedepth? ?dither? ?measureError? wandName QuantizeImage numColors colorspaceType treedepth dither measureError wandName QuantizeImages numColors colorspaceType treedepth dither measureError | MagickQuantizeImage MagickQuantizeImage MagickQuantizeImages
int numColors string colorspaceType (default="RGB") ="undefined","RGB","GRAY","transparent","OHTA", "LAB","XYZ","YCbCr","YCC","YIQ","YPbPr","YUV", "CMYK","sRGB","HSL","HWB" int treedepth bool dither, measureError (default=no) |
wandName queryfontmetrics draw text wandName QueryFontMetrics draw text | MagickQueryFontMetrics MagickQueryFontMetrics
DrawingWand draw string text returns intList(7) |
wandName raise width height ?x y? ?raise? wandName RaiseImage width height ?x y? ?raise? | MagickRaiseImage MagickRaiseImage
int width,height int x,y (default=0) bool raise (default=no) |
wandName read filename wandName ReadImage filename | MagickReadImage MagickReadImage
string filename |
wandName readblob data wandName ReadImageBlob data | MagickReadImageBlob MagickReadImageBlob
binary data |
wandName reducenoise ?radius? wandName ReduceNoiseImage ?radius? | MagickReduceNoiseImage MagickReduceNoiseImage
double radius (default: radius=0.0) |
wandName remove wandName RemoveImage | MagickRemoveImage MagickRemoveImage
<none> |
wandName resetiterator wandName ResetIterator | MagickResetIterator MagickResetIterator
<none> |
wandName resample xRes ?yRes? ?filterType? ?blur? wandName ResampleImage xRes ?yRes? ?filterType? ?blur? | MagickResampleImage MagickResampleImage
double xRes, yRes, blur (default: yRes=xRes, blur=0.0) filter = "undefined", "point", "box", "triangle", "hermite", "hanning", "hamming", "blackman", "gaussian", "quadratic", "cubic", "catrom", "mitchell", "lanczos", "bessel", "sinc" (default="undefined") |
wandName resize x y ?filterType? ?blur? wandName ResizeImage x y ?filterType? ?blur? | MagickResizeImage MagickResizeImage
int x, y filter = "undefined", "point", "box", "triangle", "hermite", "hanning", "hamming", "blackman", "gaussian", "quadratic", "cubic", "catrom", "mitchell", "lanczos", "bessel", "sinc" (default="undefined") double blur (default =0.0) |
wandName roll xOfs yOfs wandName RollImage xOfs yOfs | MagickRollImage MagickRollImage
int xOfs,yOfs |
wandName rotate background degrees wandName RotateImage background degrees | MagickRotateImage MagickRotateImage
PixelWand background double degrees |
wandName sample x y wandName SampleImage x y | MagickSampleImage MagickSampleImage
int x,y |
wandName separate channelType wandName SeparateImageChannel channelType | MagickSeparateImageChannel MagickSeparateImageChannel
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" |
wandName scale x y wandName ScaleImage x y | MagickScaleImage MagickScaleImage
int x,y |
wandName setoption format key value wandName SetOption format key value | MagickSetImageOption MagickSetImageOption
string format, key, value |
wandName passphrase phrase wandName SetPassphrase phrase | MagickSetPassphrase MagickSetPassphrase
string phrase |
wandName sharpen ?radius? ?sigma? wandName SharpenImage ?radius? ?sigma? | MagickSharpenImage MagickSharpenImage
double radius,sigma (default: radius=0.0, sigma=1.0) |
wandName shave x y wandName ShaveImage x y | MagickShaveImage MagickShaveImage
int x,y |
wandName shear background xShear ?yShear? wandName ShearImage background xShear ?yShear? | MagickShearImage MagickShearImage
PixelWand borderPixel double xShear, yShear (default: yShear=xShear) |
wandName solarize ?threshold? wandName SolarizeImage ?threshold? | MagickSolarizeImage MagickSolarizeImage
double threshold (default=0.0) |
wandName spread ?radius? wandName SpreadImage ?radius? | MagickSpreadImage MagickSpreadImage
double radius (default=0.0) |
wandName stegano watermark ?offset? ?newName? wandName SteganoImage watermark ?offset? ?newName? | MagickSteganoImage MagickSteganoImage
MagickWand watermark int offset (default=0) string newName |
wandName stereo anotherWand ?newName? wandName StereoImage anotherWand ?newName? | MagickStereoImage MagickStereoImage
MagickWand anotherWand string newName |
wandName strip wandName StripImage | MagickStripImage MagickStripImage
<none> |
wandName swirl ?degrees? wandName SwirlImage ?degrees? | MagickSwirlImage MagickSwirlImage
double degrees (default=0.0) |
wandName texture textWand ?newName? wandName TextureImage textWand ?newName? | MagickTextureImage MagickTextureImage
MagickWand textWand string newName |
wandName threshold threshold wandName ThresholdImage threshold | MagickThresholdImage MagickThresholdImage
double threshold |
wandName thresholdchannel channelType threshold wandName ThresholdImageChannel channelType threshold | MagickThresholdImageChannel MagickThresholdImageChannel
string channelType = "undefined", "red", "cyan", "green", "magenta", "blue", "yellow, "opacity, "black, "matte", "index" double threshold |
wandName tint tintPixel opacityPixel wandName TintImage tintPixel opacityPixel | MagickTintImage MagickTintImage
PixelWand tintPixel, opacityPixel |
wandName transform crop geometry ?newName? wandName TransformImage crop geometry ?newName? | MagickTransformImage MagickTransformImage
string crop, geometry string newName |
wandName transparent targetPix ?opacity? ?fuzz? wandName TransparentImage targetPix ?opacity? ?fuzz? | MagickTransparentImage MagickTransparentImage
PixelWand targetPix int opacity (default=0) double fuzz (default=0.0) |
wandName trim ?fuzz? wandName TrimImage ?fuzz? | MagickTrimImage MagickTrimImage
double fuzz (default=0.0) |
wandName unsharpmask ?radius? ?sigma? ?amount? ?threshold? wandName UnsharpMaskImage ?radius? ?sigma? ?amount? ?threshold? | MagickUnsharpMaskImage MagickUnsharpMaskImage
double radius,sigma,amount,threshold (default: radius=0.0,sigma=1.0,amount=0.0,threshold=0.0) |
wandName wave amplitude wavelength wandName WaveImage amplitude wavelength | MagickWaveImage MagickWaveImage
double amplitude,wavelength |
wandName whitethreshold thresholdPixel wandName WhiteThresholdImage thresholdPixel | MagickWhiteThresholdImage MagickWhiteThresholdImage
PixelWand thresholdPixel |
wandName write filename wandName WriteImage filename wandName WriteImages filename ?adjoin? | MagickWriteImage MagickWriteImage MagickWriteImages
string filename bool adjoin (default=no) |

Not implemented MagickWand API's | Comment
--- | ---
MagickAnimateImages | Image display, depends on X
MagickDisplayImage | Image display, depends on X
MagickDisplayImages | Image display, depends on X
MagickGetImageHistogram | Creates & Returns array of PixelWand objects, how to implement ???
MagickReadImageFile | Could be implemented via TclChannel
MagickWriteImageFile | Could be implemented via TclChannel

## PixelWand object subcommands

pixelName subcmd ?args? | ImageMagick API
--- | ---
pixelName set ?-quant? color val color val ... pixelName get ?-quant? color color ... | PixelSetXXX PixelGetXXX
color = "black", "blue", "cyan", "green", "magenta", "opacity", "red", "yellow" |
pixelName color pixelName color string pixelName GetColor pixelName SetColor string pixelName GetColorAsString | PixelGetColorAsString PixelSetColor PixelGetColorAsString PixelSetColor PixelGetColorAsString
string string |
pixelName GetBlack pixelName GetBlackQuantum pixelName SetBlack val pixelName SetBlackQuantum val | PixelGetBlack PixelGetBlackQuantum PixelSetBlack PixelSetBlackQuantum
double value |
pixelName GetBlue pixelName GetBlueQuantum pixelName SetBlue val pixelName SetBlueQuantum val | PixelGetBlue PixelGetBlueQuantum PixelSetBlue PixelSetBlueQuantum
double value |
pixelName GetCyan pixelName GetCyanQuantum pixelName SetCyan val pixelName SetCyanQuantum val | PixelGetCyan PixelGetCyanQuantum PixelSetCyan PixelSetCyanQuantum
double value |
pixelName GetGreen pixelName GetGreenQuantum pixelName SetGreen val pixelName SetGreenQuantum val | PixelGetGreen PixelGetGreenQuantum PixelSetGreen PixelSetGreenQuantum
double value |
pixelName GetMagenta pixelName GetMagentaQuantum pixelName SetMagenta val pixelName SetMagentaQuantum val | PixelGetMagenta PixelGetMagentaQuantum PixelSetMagenta PixelSetMagentaQuantum
double value |
pixelName GetOpacity pixelName GetOpacityQuantum pixelName SetOpacity val pixelName SetOpacityQuantum val | PixelGetOpacity PixelGetOpacityQuantum PixelSetOpacity PixelSetOpacityQuantum
double value |
pixelName GetRed pixelName GetRedQuantum pixelName SetRed val pixelName SetRedQuantum val | PixelGetRed PixelGetRedQuantum PixelSetRed PixelSetRedQuantum
double value |
pixelName GetYellow pixelName GetYellowQuantum pixelName SetYellow val pixelName SetYellowQuantum val | PixelGetYellow PixelGetYellowQuantum PixelSetYellow PixelSetYellowQuantum
double value |
pixelName colorcount ?cnt? pixelName GetColorCount pixelName SetColorCount ?cnt? | PixelGet/SetColorCount PixelGetColorCount PixelSetColorCount
unsigned cnt |

## DrawingWand object subcommands

drawName subcmd ?args? | ImageMagick API
--- | ---
drawName affine sx rx ry sy tx ty drawName Affine sx rx ry sy tx ty | DrawAffine DrawAffine
double sx, rx, ry, sy, tx, ty |
drawName annotation x y text drawName Annotation x y text | DrawAnnotation DrawAnnotation
double x, y string text |
drawName arc sx sy ex ey sd ed drawName Arc sx sy ex ey sd ed | DrawArc DrawArc
double arc, sx, sy, ex. ey. sd, ed |
drawName bezier x y x y ... drawName Bezier x y x y ... | DrawBezier DrawBezier
double x, y |
drawName circle ox oy px py drawName Circle ox oy px py | DrawCircle DrawCircle
double oy, oy, px, py |
drawName clippath ?name? drawName GetClipPath drawName SetClipPath name | DrawGet/SetClipPath DrawGetClipPath DrawSetClipPath
string name |
drawName cliprule ?rule? drawName GetClipRule drawName SetClipRule rule | DrawGet/SetClipRule DrawGetClipRule DrawSetClipRule
rule = "undefined", "evenodd", "nonzero" |
drawName clipunits ?unit? drawName GetClipUnits drawName SetClipUnits unit | DrawGet/SetClipUnits DrawGetClipUnits DrawSetClipUnits
units = "userspace", "userspaceonuse", "objectboundingbox" |
drawName color x y paintMethod drawName Color x y paintMethod | DrawColor DrawColor
double x, y paintMethod = "point", "replace", "floodfill", "filltoborder", "reset" |
drawName comment text drawName comment text | DrawComment DrawComment
string text |
drawName ellipse ox oy rx ry start end drawName Ellipse ox oy rx ry start end | DrawEllipse DrawEllipse
double ox, oy, rx, ry, start, end |
drawName fillcolor ?pixelName? drawName GetFillColor drawName SetFillColor pixelName | DrawGet/SetFillColor DrawGetFillColor DrawSetFillColor
string pixelName |
drawName fillopacity ?value? drawName GetFillOpacity drawName SetFillOpacity value | DrawGet/SetFillOpacity DrawGetFillOpacity DrawSetFillOpacity
double value |
drawName fillpatternurl url drawName SetFillPatternURL url | DrawSetFillPatternURL DrawSetFillPatternURL
string url (e.g. "#pattern_id" from [push pattern]) |
drawName fillrule ?rule? drawName GetFillRule drawName SetFillRule rule | DrawGet/SetFillRule DrawGetFillRule DrawSetFillRule
rule = "undefined", "evenodd", "nonzero" |
drawName font ?fontname? drawName GetFont drawName SetFont fontname | DrawGet/SetFont DrawGetFont DrawSetFont
string fontname |
drawName fontfamily ?name? drawName GetFontFamily drawName SetFontFamily name | DrawGet/SetFontFamily DrawGetFontFamily DrawSetFontFamily
string name |
drawName fontsize ?value? drawName GetFontSize drawName SetFontSize value | DrawGet/SetFontSize DrawGetFontSize DrawSetFontSize
double value |
drawName fontstretch ?stretchType? drawName GetFontStretch drawName SetFontStretch stretchType | DrawGet/SetFontStretch DrawGetFontStretch DrawSetFontStretch
stretchType = "normal", "ultracondensed", "extracondensed", "condensed", "semicondensed", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "any" |
drawName fontstyle ?style? drawName GetFontStyle drawName SetFontStyle style | DrawGet/SetFontStyle DrawGetFontStyle DrawSetFontStyle
style = "normal", "italic", "oblique", "any" |
drawName fontweight ?value? drawName GetFontWeight drawName SetFontWeight value | DrawGet/SetFontWeight DrawGetFontWeight DrawSetFontWeight
unsigned value |
drawName gravity ?gravityType drawName GetGravity drawName SetGravity gravityType | DrawGet/SetGravity DrawGetGravity DrawSetGravity
gravityType = "forget", "northwest", "north", "northeast", "west", "center", "east", "southwest", "south", "southeast", "static" |
drawName line sx sy ex ey drawName Line sx sy ex ey | DrawLine DrawLine
double sx, sy, ex, ey |
drawName matte x y paintMethod drawName Matte x y paintMethod | DrawMatte DrawMatte
double x,y paintMethod = "point", "replace", "floodfill", "filltoborder", "reset" |
drawName point x y drawName Point x y | DrawPoint DrawPoint
double x, y |
drawName polygon x y x y ... drawName Polygon x y x y ... | DrawPolygon DrawPolygon
double x, y |
drawName polyline x y x y ... drawName Polyline x y x y ... | DrawPolyline DrawPolyline
double x, y |
drawName path opt|cmd ?args? opt|cmd ?args? ... | DrawPathXXX
opt ?args? = -relative bool (Switch relative/absolute mode) -smooth bool (Smooth bezier, x1,y1 taken from previous curve) -scale double (Scale all positions by a factor) |
cmd ?args? = # "comment in a single argument" start finish close move x y line x y horizontal x vertical y -smooth 0 quadratic x1 y1 x y -smooth 1 quadratic x y -smooth 0 cubic x1 y1 x2 y2 x y -smooth 1 cubic x2 y2 x y elliptic rx ry rotation large sweep x y | DrawPathStart DrawPathFinish DrawPathClose DrawPathMoveToAbs/Rel DrawPathLineLineToAbs/Rel DrawPathLineLineToHorizontalAbs/Rel DrawPathLineLineToVerticalAbs/Rel DrawPathCurveToQuadraticBezierAbs/Rel DrawPathCurveToQuadraticBezierSmoothAbs/Rel DrawPathCurveToAbs/Rel DrawPathCurveToSmoothAbs/Rel DrawPathEllipticArcAbs/Rel
double x, y, rx, ry , rotation int large, sweep |
drawName path cmdList |
If 'drawName path' is called with a single argument then it's intepreted as a list of path options", "commands with its arguments. |
drawName push what ?args? drawName pop what | DrawPushXXX DrawPopXXX
what = "clippath ", " defs ", "graphiccontext", "pattern" args = see below |
drawName PushClipPath id drawName PopClipPath drawName PushDefs drawName PopDefs drawName PushGraphicContext drawName PopGraphicContext drawName PushPattern id x y width height drawName PopPattern | DrawPushClipPath DrawPopClipPath DrawPushDefs DrawPopDefs DrawPushGraphicContext DrawPopGraphicContext DrawPushPattern DrawPopPattern
string id double x, y, width, height |
drawName rectangle x1 y1 x2 y2 drawName Rectangle x1 y1 x2 y2 | DrawRectangle DrawRectangle
double x1, y1, x2, y2 |
drawName render drawName Render | DrawRender DrawRender
<none> |
drawName rotate degrees drawName Rotate degrees | DrawRotate DrawRotate
double degrees |
drawName round x1 y1 x2 y2 rx ry drawName RoundRectangle x1 y1 x2 y2 rx ry | DrawRoundRectangle DrawRoundRectangle
double x1, y1, x2, y2, rx, ry |
drawName scale x ?y? drawName Scale x ?y? | DrawScale DrawScale
double x, y (default: y=x) |
drawName skewx degrees drawName SkewX degrees drawName skewy degrees drawName SkewY degrees | DrawSkewX DrawSkewX DrawSkewY DrawSkewY
double degrees |
drawName strokecolor ?pixelName? drawName GetStrokeColor drawName SetStrokeColor pixelName | DrawGet/SetStrokeColor DrawGetStrokeColor DrawSetStrokeColor
string pixelName |
drawName strokeantialias ?flag? drawName GetStrokeAntialias drawName SetStrokeAntialias flag | DrawGet/SetStrokeAntialias DrawGetStrokeAntialias DrawSetStrokeAntialias
int flag |
drawName strokedasharray drawName strokedasharray {} drawName strokedasharray val val ... drawName GetStrokeDasharray drawName SetStrokeDashArray drawName SetStrokeDashArray val val ... | DrawGetStrokeDashArray DrawSetStrokeDashArray DrawSetStrokeDashArray DrawGetStrokeDashArray DrawSetStrokeDashArray DrawSetStrokeDashArray
double val |
drawName strokedashoffset ?val? drawName GetStrokeDashOffset drawName SetStrokeDashOffset val | DrawGet/SetStrokeDashOffset DrawGetStrokeDashOffset DrawSetStrokeDashOffset
double val |
drawName strokelinecap ?linecapType? drawName GetStrokeLineCap drawName SetStrokeLineCap linecapType | DrawGet/SetStrokeLineCap DrawGetStrokeLineCap DrawSetStrokeLineCap
linecapType = "undefined", "butt", "round", "square" |
drawName strokelinejoin ?linejoinType? drawName GetStrokeLineJoin drawName SetStrokeLineJoin linejoinType | DrawGet/SetStrokeLineJoin DrawGetStrokeLineJoin DrawSetStrokeLineJoin
linejoinType = "undefined", "miter", "round", "bevel" |
drawName strokemiterlimit ?val? drawName GetStrokeMiterLimit drawName SetStrokeMiterLimit val | DrawGet/SetStrokeMiterLimit DrawGetStrokeMiterLimit DrawSetStrokeMiterLimit
unsigned val |
drawName strokeopacity ?val? drawName GetStrokeOpacity drawName SetStrokeOpacity val | DrawGet/SetStrokeOpacity DrawGetStrokeOpacity DrawSetStrokeOpacity
double val |
drawName strokepatternurl url drawName SetStrokePatternURL url | DrawSetStrokePatternURL DrawSetStrokePatternURL
string url (e.g. "#pattern_id" from [push pattern]) |
drawName strokewidth ?val? drawName GetStrokeWidth drawName SetStrokeWidth val | DrawGet/SetStrokeWidth DrawGetStrokeWidth DrawSetStrokeWidth
double val |
drawName textantialias ?flag? drawName GetTextAntialias drawName SetTextAntialias flag | DrawGet/SetTextAntialias DrawGetTextAntialias DrawSetTextAntialias
int flag |
drawName textdecoration ?decorationType? drawName GeTextDecoration drawName SetTextDecoration decorationType | DrawGet/SetTextDecoration DrawGetTextDecoration DrawSetTextDecoration
string decorationType = "none", "underline", "overline", "linethrough" |
drawName textencoding ?string drawName GetTextEncoding drawName SetTextEncoding string | DrawGet/SetTextEncoding DrawGetTextEncoding DrawSetTextEncoding
string string |
drawName textundercolor ?pixelName? drawName GetTextUnderColor drawName SetTextUnderColor pixelName | DrawGet/SetTextUnderColor DrawGetTextUnderColor DrawSetTextUnderColor
string pixelName |
drawName translate x y drawName Translate x y | DrawTranslate DrawTranslate
double x, y |
drawName viewbox x1 y1 x2 y2 drawName SetViewbox x1 y1 x2 y2 | DrawSetViewbox DrawSetViewbox
unsigned x1, y1, x2, y2 |

Not implemented MagickWand API's | Comment
--- | ---
DrawAllocateWand | For legacy application only, outside Wand-API
DrawComposite | For legacy application only, outside Wand-API
DrawSetStopColor | ???

Copyright 2004 Rolf Schrödter and David N. Welton