ImageMagick – MagickCore, C API: Draw on an Image
Author: ImageMagick Studio LLC
Description: ImageMagick is a powerful, open-source software suite for creating, editing, converting, and manipulating images in over 200 formats. Ideal for web developers, graphic designers, and researchers, it offers versatile tools for image processing, including batch processing, format conversion, and complex image transformations.
Keywords: MagickCore, C API: Draw on an Image, Image Processing, Digital Image Editing, Image Conversion, Open-Source Software, Image Manipulation, Command-Line Image Tools

# Draw

## AcquireDrawInfo

AcquireDrawInfo() returns a DrawInfo structure properly initialized.

The format of the AcquireDrawInfo method is:

    DrawInfo *AcquireDrawInfo(void)

## CloneDrawInfo

CloneDrawInfo() makes a copy of the given draw_info structure. If NULL is specified, a new DrawInfo structure is created initialized to default values.

The format of the CloneDrawInfo method is:

    DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
      const DrawInfo *draw_info)

A description of each parameter follows:

image_info
  the image info.
draw_info
  the draw info.

## DestroyDrawInfo

DestroyDrawInfo() deallocates memory associated with an DrawInfo structure.

The format of the DestroyDrawInfo method is:

    DrawInfo *DestroyDrawInfo(DrawInfo *draw_info)

A description of each parameter follows:

draw_info
  the draw info.

## DrawAffineImage

DrawAffineImage() composites the source over the destination image as dictated by the affine transform.

The format of the DrawAffineImage method is:

    MagickBooleanType DrawAffineImage(Image *image,const Image *source,
      const AffineMatrix *affine)

A description of each parameter follows:

image
  the image.
source
  the source image.
affine
  the affine transform.

## DrawClipPath

DrawClipPath() draws the clip path on the image mask.

The format of the DrawClipPath method is:

    MagickBooleanType DrawClipPath(Image *image,const DrawInfo *draw_info,
      const char *id)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.
id
  the clip path id.

## DrawClippingMask

DrawClippingMask() draws the clip path and returns it as an image clipping mask.

The format of the DrawClippingMask method is:

    Image *DrawClippingMask(Image *image,const DrawInfo *draw_info,
      const char *id,const char *clip_path,ExceptionInfo *exception)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.
id
  the clip path id.
clip_path
  the clip path.
exception
  return any errors or warnings in this structure.

## DrawCompositeMask

DrawCompositeMask() draws the mask path and returns it as an image mask.

The format of the DrawCompositeMask method is:

    Image *DrawCompositeMask(Image *image,const DrawInfo *draw_info,
      const char *id,const char *mask_path,ExceptionInfo *exception)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.
id
  the mask path id.
mask_path
  the mask path.
exception
  return any errors or warnings in this structure.

## DrawGradientImage

DrawGradientImage() draws a linear gradient on the image.

The format of the DrawGradientImage method is:

    MagickBooleanType DrawGradientImage(Image *image,
      const DrawInfo *draw_info)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.

## DrawImage

DrawImage() draws a graphic primitive on your image. The primitive may be represented as a string or filename. Precede the filename with an "at" sign (@) and the contents of the file are drawn on the image. You can affect how text is drawn by setting one or more members of the draw info structure.

The format of the DrawImage method is:

    MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.

## DrawPatternPath

DrawPatternPath() draws a pattern.

The format of the DrawPatternPath method is:

    MagickBooleanType DrawPatternPath(Image *image,const DrawInfo *draw_info,
      const char *name,Image **pattern)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.
name
  the pattern name.
image
  the image.

## DrawPrimitive

DrawPrimitive() draws a primitive (line, rectangle, ellipse) on the image.

The format of the DrawPrimitive method is:

    MagickBooleanType DrawPrimitive(Image *image,const DrawInfo *draw_info,
      PrimitiveInfo *primitive_info)

A description of each parameter follows:

image
  the image.
draw_info
  the draw info.
primitive_info
  Specifies a pointer to a PrimitiveInfo structure.

## GetAffineMatrix

GetAffineMatrix() returns an AffineMatrix initialized to the identity matrix.

The format of the GetAffineMatrix method is:

    void GetAffineMatrix(AffineMatrix *affine_matrix)

A description of each parameter follows:

affine_matrix
  the affine matrix.