The libWand library is the proposed API to the ImageMagick core. Depending on the configuration of ImageMagick it supports many, many different file formats for input and output and comes along with a powerful set of image manipulation commands.
Just like the bindings for libcurl the libWand bindings can be roughly classified into user-level functions and commands, currently there is only one command in this class, and low-level API calls.
Let us begin with context handlers.
Clear all resources associated with the wand. This does not free the memory, i.e. wand can furtherly be used as a context, see
Wand:delete-wand.
Return a cloned copy of wand. This duplicates everything necessary to get an exact, but independent clone of wand.
Delete the wand. This frees all resources associated with the wand.
WARNING: Do not use wand after calling this function!
(setq foo (Wand:make-wand))
⇒ #<ffiobject type=MagickWand size=4 fotype=0 foptr=0x8b38350>
(Wand:wandp foo)
⇒ t
(Wand:delete-wand foo)
⇒ nil
(Wand:wandp foo)
⇒ nil
Now here is an assortment of functions which operate on a Wand.
Return a raw string of image pixel data (RGB triples).
Scale the image in wand to the dimensions width times height.
Crop to the rectangle spanned at coordinates (x, y) by width dx and height dy in the image associated with wand.
Rolls (offsets) the image associated with wand to an offset of x and y.
Increase the contrast of the image associated with wand.
Decrease the contrast of the image associated with wand.
Posterize the image associated with wand, that is quantise the range of used colours to at most levels. If optional argument ditherp is non-
niluse a dithering effect to wipe hard contrasts.
Perform gamma correction on the image associated with wand. The argument level is a positive float, a value of 1.00 (read 100%) is a no-op.
Perform median normalisation of the pixels in the image associated with wand.
Tweak the image associated with wand.
Perform negation on the image associated with wand.
Simulate a charcoal drawing of the image associated with wand. The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation.
Simulate oil-painting of image associated with wand. The radius argument is a float and measured in pixels.
Enhance the edges of the image associated with wand. The radius argument is a float and measured in pixels.
Emboss the image associated with wand (a relief effect). The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation.
Create a ripple effect on the image associated with wand. The amplitude argument is a float and defines the how large waves are. The wavelength argument is a float and defines how often the waves occur.
Blur the image associated with wand. The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation.
Blur the image associated with wand. The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation.
Blur the image associated with wand. The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation. The angle argument is a float and measured in degrees.
Blur the image associated with wand. The angle argument is a float and measured in degrees.
Sharpen the image associated with wand. The radius argument is a float and measured in pixels. The sigma argument is a float and defines a derivation.
Sharpen the image associated with wand using an unsharp mask. The unsharp mask is defined by radius and sigma (defined as in
Wand:blur-image). The strength of sharpening is controlled by amount and threshold.
Mostly, for demonstration purposes, there are two functions which are claimed to be suitable for user interaction. The only operations they perform are reading an image file, rescaling it to fit into the window, glyphifying it and to insert that glyph into a buffer.