.TH magick 1 "Date: 2009/01/10 01:00:00" "ImageMagick"
.SH NAME
magick \- convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
.SH SYNOPSIS
.TP
\fBmagick\fP [\fIinput-options\fP] \fIinput-file\fP [\fIoutput-options\fP] \fIoutput-file\fP
.SH OVERVIEW
The \fBmagickscript\fP program is a member of the ImageMagick(1) suite of tools.  Use it to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.  

For more information about the magick command, point your browser to file://@DOCUMENTATION_PATH@/www/magick.html or http://imagemagick.org/script/magick.php.
.SH DESCRIPTION
Image Settings:
  \-adjoin              join images into a single multi-image file
  \-affine matrix       affine transform matrix
  \-antialias           remove pixel-aliasing
  \-authenticate value  decrypt image with this password
  \-background color    background color
  \-bias value          add bias when convolving an image
  \-black-point-compensation
                       use black point compensation
  \-blue-primary point  chromaticity blue primary point
  \-bordercolor color   border color
  \-caption string      assign a caption to an image
  \-cdl filename        color correct with a color decision list
  \-colors value        preferred number of colors in the image
  \-colorspace type     alternate image colorspace
  \-comment string      annotate image with comment
  \-compose operator    set image composite operator
  \-compress type       type of pixel compression when writing the image
  \-decipher filename   magick cipher pixels to plain pixels
  \-define format:option
                       define one or more image format options
  \-delay value         display the next image after pausing
  \-density geometry    horizontal and vertical density of the image
  \-depth value         image depth
  \-direction type      render text right-to-left or left-to-right
  \-display server      get image or font from this X server
  \-dispose method      layer disposal method
  \-dither method       apply error diffusion to image
  \-encipher filename   magick plain pixels to cipher pixels
  \-encoding type       text encoding type
  \-endian type         endianness (MSB or LSB) of the image
  \-family name         render text with this font family
  \-fill color          color to use when filling a graphic primitive
  \-filter type         use this filter when resizing an image
  \-flatten             flatten a sequence of images
  \-font name           render text with this font
  \-format "string"     output formatted image characteristics
  \-fuzz distance       colors within this distance are considered equal
  \-gravity type        horizontal and vertical text placement
  \-green-primary point chromaticity green primary point
  \-intent type         type of rendering intent when managing the image color
  \-interlace type      type of image interlacing scheme
  \-interpolate method  pixel color interpolation method
  \-kerning value       set the space between two letters
  \-label string        assign a label to an image
  \-limit type value    pixel cache resource limit
  \-loop iterations     add Netscape loop extension to your GIF animation
  \-mask filename       associate a mask with the image
  \-matte               store matte channel if the image has one
  \-mattecolor color    frame color
  \-monitor             monitor progress
  \-orient type         image orientation
  \-origin geometry     image origin
  \-page geometry       size and location of an image canvas (setting)
  \-ping                efficiently determine image attributes
  \-pointsize value     font point size
  \-preview type        image preview type
  \-quality value       JPEG/MIFF/PNG compression level
  \-quiet               suppress all warning messages
  \-red-primary point   chromaticity red primary point
  \-regard-warnings     pay attention to warning messages
  \-repage geometry     size and location of an image canvas
  \-sampling-factor geometry
                       horizontal and vertical sampling factor
  \-scene value         image scene number
  \-seed value          seed a new sequence of pseudo-random numbers
  \-size geometry       width and height of image
  \-statistic type geometry
                       replace each pixel with corresponding statistic from the neighborhood
  \-stretch type        render text with this font stretch
  \-stroke color        graphic primitive stroke color
  \-strokewidth value   graphic primitive stroke width
  \-style type          render text with this font style
  \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
  \-synchronize         synchronize image to storage device
  \-taint               declare the image as modified
  \-texture filename    name of texture to tile onto the image background
  \-tile-offset geometry
                       tile offset
  \-treedepth value     color tree depth
  \-transparent-color color
                       transparent color
  \-undercolor color    annotation bounding box color
  \-units type          the units of image resolution
  \-verbose             print detailed information about the image
  \-view                FlashPix viewing transforms
  \-virtual-pixel method
                       virtual pixel access method
  \-weight type         render text with this font weight
  \-white-point point   chromaticity white point

Image Operators:
  \-adaptive-blur geometry
                       adaptively blur pixels; decrease effect near edges
  \-adaptive-resize geometry
                       adaptively resize image with data dependent triangulation
  \-adaptive-sharpen geometry
                       adaptively sharpen pixels; increase effect near edges
  \-annotate geometry text
                       annotate the image with text
  \-auto-orient         automatically orient image
  \-black-threshold value
                       force all pixels below the threshold into black
  \-blur geometry       reduce image noise and reduce detail levels
  \-border geometry     surround image with a border of color
  \-channel mask        set the image channel mask
  \-charcoal radius     simulate a charcoal drawing
  \-chop geometry       remove pixels from the image interior
  \-clip                clip along the first path from the 8BIM profile
  \-clip-mask filename  associate a clip mask with the image
  \-clip-path id        clip along a named path from the 8BIM profile
  \-colorize value      colorize the image with the fill color
  \-color-matrix matrix apply color correction to the image
  \-contrast            enhance or reduce the image contrast
  \-contrast-stretch geometry
                       improve contrast by `stretching' the intensity range
  \-convolve coefficients
                       apply a convolution kernel to the image
  \-cycle amount        cycle the image colormap
  \-despeckle           reduce the speckles within an image
  \-draw string         annotate the image with a graphic primitive
  \-edge radius         apply a filter to detect edges in the image
  \-emboss radius       emboss an image
  \-enhance             apply a digital filter to enhance a noisy image
  \-equalize            perform histogram equalization to an image
  \-evaluate operator value
                       evaluate an arithmetic, relational, or logical expression
  \-extent geometry     set the image size
  \-extract geometry    extract area from image
  \-fft                 implements the discrete Fourier transform (DFT)
  \-flip                flip image vertically
  \-floodfill geometry color
                       floodfill the image with color
  \-flop                flop image horizontally
  \-frame geometry      surround image with an ornamental border
  \-function name       apply a function to the image
  \-gamma value         level of gamma correction
  \-gaussian-blur geometry
                       reduce image noise and reduce detail levels
  \-geometry geometry   preferred size or location of the image
  \-identify            identify the format and characteristics of the image
  \-ift                 implements the inverse discrete Fourier transform (DFT)
  \-implode amount      implode image pixels about the center
  \-lat geometry        local adaptive thresholding
  \-layers method       optimize or compare image layers
  \-level value         adjust the level of image contrast
  \-linear-stretch geometry
                       improve contrast by `stretching with saturation' the intensity range
  \-median geometry     apply a median filter to the image
  \-mode geometry       make each pixel the 'predominant color' of the neighborhood
  \-modulate value      vary the brightness, saturation, and hue
  \-monochrome          transform image to black and white
  \-morphology method kernel
                       apply a morphology method to the image
  \-motion-blur geometry
                       simulate motion blur
  \-negate              replace each pixel with its complementary color 
  \-noise geometry      add or reduce noise in an image
  \-normalize           transform image to span the full range of colors
  \-opaque color        change this color to the fill color
  \-ordered-dither NxN
                       add a noise pattern to the image with specific amplitudes
  \-paint radius        simulate an oil painting
  \-polaroid angle      simulate a Polaroid picture
  \-posterize levels    reduce the image to a limited number of color levels
  \-print string        interpret string and print to console
  \-profile filename    add, delete, or apply an image profile
  \-quantize colorspace reduce colors in this colorspace
  \-radial-blur angle   radial blur the image
  \-raise value         lighten/darken image edges to create a 3-D effect
  \-random-threshold low,high
                       random threshold the image
  \-range-threshold values
                       perform either hard or soft thresholding within some range of values in an image
  \-region geometry     apply options to a portion of the image
  \-render              render vector graphics
  \-resample geometry   change the resolution of an image
  \-resize geometry     resize the image
  \-roll geometry       roll an image vertically or horizontally
  \-rotate degrees      apply Paeth rotation to the image
  \-sample geometry     scale image with pixel sampling
  \-scale geometry      scale the image
  \-segment values      segment an image
  \-selective-blur geometry
                       selectively blur pixels within a contrast threshold
  \-sepia-tone threshold
                       simulate a sepia-toned photo
  \-set property value  set an image property
  \-shade degrees       shade the image using a distant light source
  \-shadow geometry     simulate an image shadow
  \-sharpen geometry    sharpen the image
  \-shave geometry      shave pixels from the image edges
  \-shear geometry      slide one edge of the image along the X or Y axis
  \-sigmoidal-contrast geometry
                       lightness rescaling using sigmoidal contrast enhancement
  \-sketch geometry     simulate a pencil sketch
  \-solarize threshold  negate all pixels above the threshold level
  \-splice geometry     splice the background color into the image
  \-spread amount       displace image pixels by a random amount
  \-strip               strip image of all profiles and comments
  \-swirl degrees       swirl image pixels about the center
  \-threshold value     threshold the image
  \-thumbnail geometry  create a thumbnail of the image
  \-tile filename       tile image when filling a graphic primitive
  \-tint value          tint the image with the fill color
  \-transform           affine transform image
  \-transparent color   make this color transparent within the image
  \-transpose           flip image vertically and rotate 90 degrees
  \-transverse          flop image horizontally and rotate 270 degrees
  \-trim                trim image edges
  \-type type           image type
  \-unique-colors       discard all but one of any pixel color
  \-unsharp geometry    sharpen the image
  \-vignette geometry   soften the edges of the image in vignette style
  \-wave geometry       alter an image along a sine wave
  \-white-threshold value
                       force all pixels above the threshold into white


Image Channel Operators:
  \-channel-extract channel-list
                        extract the channels in order
  \-channel-inject channel-list
                        inject the channels in order
  \-channel-swap channel,channel
                        swap the channels

Image Sequence Operators:
  \-affinity filename   transform image colors to match this set of colors
  \-append              append an image sequence top to bottom (use +append for left to right)
  \-clut                apply a color lookup table to the image
  \-coalesce            merge a sequence of images
  \-combine             combine a sequence of images
  \-composite           composite image
  \-crop geometry       cut out a rectangular region of the image
  \-deconstruct         break down an image sequence into constituent parts
  \-evaluate-sequence operator
                       evaluate an arithmetic, relational, or logical expression
  \-flatten             flatten a sequence of images
  \-fx expression       apply mathematical expression to an image channel(s)
  \-hald-clut           apply a Hald color lookup table to the image
  \-morph value         morph an image sequence
  \-mosaic              create a mosaic from an image sequence
  \-process arguments   process the image with a custom image filter
  \-separate            separate an image channel into a grayscale image
  \-smush geometry      smush an image sequence together
  \-write filename      write images to this file

Image Stack Operators:
  \-clone indexes       clone an image
  \-delete indexes      delete the image from the image sequence
  \-duplicate count,indexes
                       duplicate an image one or more times
  \-insert index        insert last image into the image sequence
  \-swap indexes        swap two images in the image sequence

Miscellaneous Options:
  \-debug events        display copious debugging information
  \-help                print program options
  \-log format          format of debugging information
  \-list type           print a list of supported option arguments
  \-version             print version information

Use any setting or operator as an \fIoutput-option\fP.  Only a limited number of setting are  \fIinput-option\fP. They include: \-antialias, \-caption, \-density, \-define, \-encoding, \-font, \-pointsize, \-size, and \-texture as well as any of the miscellaneous options.

By default, the image format of `file' is determined by its magic number.  To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps).  Specify 'file' as '-' for standard input or output.
.SH SEE ALSO
ImageMagick(1)

.SH COPYRIGHT
\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
