# MagickWand, C API: Command-line Interface @ ImageMagick
ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
Author: ImageMagick Studio LLC
Keywords: magickwc, api:, command-line, interface, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert

MagickCommandGenesis

## MagickCommandGenesis

MagickCommandGenesis() applies image processing options to an image as prescribed by command line options.

It wiil look for special options like "-debug", "-bench", and "-distribute-cache" that needs to be applied even before the main processing begins, and may completely overrule normal command processing. Such 'Genesis' Options can only be given on the CLI, (not in a script) and are typically ignored (as they have been handled) if seen later.

The format of the MagickCommandGenesis method is:

    MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
      MagickCommand command,int argc,char **argv,char **metadata,
      ExceptionInfo *exception)

A description of each parameter follows:

image_info
  the image info.
command
  Choose from ConvertImageCommand, IdentifyImageCommand, MogrifyImageCommand, CompositeImageCommand, CompareImagesCommand, ConjureImageCommand, StreamImageCommand, ImportImageCommand, DisplayImageCommand, or AnimateImageCommand.
argc
  Specifies a pointer to an integer describing the number of elements in the argument vector.
argv
  Specifies a pointer to a text array containing the command line arguments.
metadata
  any metadata is returned here.
exception
  return any errors or warnings in this structure.