.TH mogrify 1 "Date: 2009/01/10 01:00:00" "ImageMagick"
.SH NAME
mogrify \- resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert(1) writes to a different image file.
.SH SYNOPSIS
.TP
\fBmogrify\fP [\fIoptions\fP] \fIinput-file\fP 
.SH OVERVIEW
The \fBmogrify\fP program is a member of the ImageMagick(1) suite of tools.  Use it to resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. This tool is similar to convert(1) except the original image file is overwritten with any changes you request.

For more information about the mogrify command, point your browser to file:///usr/local/share/doc/ImageMagick-7/www/mogrify.html or http://imagemagick.org/script/mogrify.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
  \-attenuate value     lessen (or intensify) when adding noise to an image
  \-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
  \-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   convert cipher pixels to plain pixels
  \-define format:option
                       define one or more image format options
  \-delay centiseconds  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   convert 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
  \-features distance   analyze image features (e.g. contrast, correlation)
  \-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 type         image format type
  \-function name       apply a function to the image
  \-fuzz distance       colors within this distance are considered equal
  \-gravity type        horizontal and vertical text placement
  \-green-primary point chromaticity green primary point
  \-intensity method    method to generate intensity value from pixel
  \-intent type         type of rendering intent when managing the image color
  \-interlace type      type of image interlacing scheme
  \-interline-spacing   value set the space between two text lines
  \-interpolate method  pixel color interpolation method
  \-interword-spacing   value set the space between two words
  \-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
  \-matte               store matte channel if the image has one
  \-mattecolor color    frame color
  \-metric type         measure differences between images with this metric
  \-monitor             monitor progress
  \-morphology method kernel
                       apply a morphology method to the image
  \-orient type         image orientation
  \-page geometry       size and location of an image canvas (setting)
  \-path path           write images to this path on disk
  \-perceptible epsilon
                       pixel value less than |epsilon| become epsilon or -epsilon
  \-ping                efficiently determine image attributes
  \-pointsize value     font point size
  \-precision value     maximum number of significant digits to print
  \-preview type        image preview type
  \-quality value       JPEG/MIFF/PNG compression level
  \-quiet               suppress all warning messages
  \-read-mask filename  associate a read mask with the image
  \-red-primary point   chromaticity red primary point
  \-regard-warnings     pay attention to warning messages
  \-remap filename      transform image colors to match this set of colors
  \-repage geometry     size and location of an image canvas
  \-respect-parentheses settings remain in effect until parenthesis boundary
  \-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
  \-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
  \-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
  \-virtual-pixel method
                       virtual pixel access method
  \-weight type         render text with this font weight
  \-white-point point   chromaticity white point
  \-write-mask filename associate a write mask with the image

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
  \-alpha option        on, activate, off, deactivate, set, opaque, copy
                       transparent, extract, background, or shape
  \-annotate geometry text
                       annotate the image with text
  \-auto-gamma          automagically adjust gamma level of image
  \-auto-level          automagically adjust color levels of image
  \-auto-orient         automatically orient image
  \-auto-threshold method
                       automatically perform image thresholding
  \-bench iterations    measure performance
  \-bilateral-blur geometry     
                        non-linear, edge-preserving, and noise-reducing smoothing filter
  \-black-threshold value
                       force all pixels below the threshold into black
  \-blue-shift          simulate a scene at nighttime in the moonlight
  \-blur geometry       reduce image noise and reduce detail levels
  \-border geometry     surround image with a border of color
  \-brightness-contrast geometry
                       improve brightness / contrast of the image
  \-canny geometry      detect edges in the image
  \-channel mask        set the image channel mask
  \-charcoal radius     simulate a charcoal drawing
  \-chop geometry       remove pixels from the image interior
  \-clahe geometry      contrast limited adaptive histogram equalization 
  \-clamp               keep pixel values in range (0-QuantumRange)
  \-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
  \-colors value        preferred number of colors in the image
  \-color-threshold start_color-stop_color
                       force all pixels in the color range to white otherwise black
  \-connected-component connectivity
                       connected-components uniquely labeled
  \-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
  \-deskew threshold    straighten an image
  \-despeckle           reduce the speckles within an image
  \-distort method args
                       distort images according to given method and args
  \-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
  \-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
  \-grayscale method    convert image to grayscale
  \-help                print program options
  \-hough-lines geometry
                       identify lines in 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
  \-interpolative-resize geometry
                       resize image using interpolation
  \-kmeans geometry     K means color reduction
  \-lat geometry        local adaptive thresholding
  \-layers method       optimize or compare image layers
  \-level value         adjust the level of image contrast
  \-level-colors color,color
                       level image with the given colors
  \-linear-stretch geometry
                       improve contrast by `stretching with saturation' the intensity range
  \-liquid-rescale geometry
                       rescale image with seam-carving
  \-magnify             double the size of the image with pixel art scaling
  \-mean-shift geometry delineate arbitrarily shaped clusters in the image
  \-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
  \-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
  \-sparse-color method args
                       fill in a image based on a few color points
  \-splice geometry     splice the background color into the image
  \-spread amount       displace image pixels by a random amount
  \-statistic type geometry
                       replace each pixel with corresponding statistic from the neighborhood
  \-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
  \-wavelet-denoise threshold
                        removes noise from the image using a wavelet transform
  \-white-balance       automagically adjust white balance of image
  \-white-threshold value
                       force all pixels above the threshold into white

Image Channel Operators:
  \-channel-fx expression
                       exchange, extract, or transfer one or more image channels
  \-separate            separate an image channel into a grayscale image

Image Sequence Operators:
  \-affinity filename   transform image colors to match this set of colors
  \-append              append an image sequence top to botto (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
  \-compare             mathematically and visually annotate the difference between an image and its reconstruction
  \-complex operator    perform complex mathematics on an image sequence
  \-composite           composite image
  \-copy geometry offset,
                       copy pixels from one area of an image to another
  \-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
  \-poly terms          build a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs)
  \-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:
  \-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
  \-reverse             reverse image sequence
  \-swap indexes        swap two images in the image sequence

Miscellaneous Options:
  \-debug events        display copious debugging information
  \-distribute-cache port
                       distributed pixel cache spanning one or more servers
  \-help                print program options
  \-log format          format of debugging information
  \-list type           print a list of supported option arguments
  \-version             print version information

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-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
