mogrify(1)mogrify(1)NAMEmogrify - transform an image or sequence of images
SYNOPSISmogrify [ options ...] file [ [ options ...] file ...]
DESCRIPTIONmogrify transforms an image or a sequence of images.
These transforms include image scaling, image rotation,
color reduction, and others. The transmogrified image
overwrites the original image.
EXAMPLES
To convert all the TIFF files in a particular directory to
JPEG, use:
mogrify-format jpeg *.tiff
To scale an image of a cockatoo to exactly 640 pixels in
width and 480 pixels in height, use:
mogrify-geometry 640x480! cockatoo.miff
OPTIONS-blur factor
blurs an image. Specify factor as the percent
enhancement (0.0 - 99.9%).
-border <width>x<height>
surround the image with a border of color. See
X(1) for details about the geometry specification.
The color of the border is obtained from the X
server and is defined as bordercolor (class border-
Color). See X(1) for details.
-box color
set the color of the annotation bounding box. See
-draw or for further details.
See X(1) for details about the color specification.
-charcoal factor
simulate a charcoal drawing.
-colorize value
colorize the image with the pen color.
Specify the amount of colorization as a percentage.
You can apply separate colorization values to the
red, green, and blue channels of the image with a
colorization value list delineated with slashes
(e.g. 0/0/50).
ImageMagick 1 May 1994 1
mogrify(1)mogrify(1)-colors value
preferred number of colors in the image.
The actual number of colors in the image may be
less than your request, but never more. Note, this
is a color reduction option. Images with less
unique colors than specified with this option will
remain unchanged. Refer to quantize(9) for more
details.
If more than one image is specified on the command
line, a single colormap is created and saved with
each image.
Note, options -colormap, -dither, -colorspace, and
-treedepth affect the color reduction algorithm.
-colorspace value
the type of colorspace: GRAY, OHTA, RGB, Transpar-
ent, XYZ, YCbCr, YIQ, YPbPr, or YUV.
Color reduction, by default, takes place in the RGB
color space. Empirical evidence suggests that dis-
tances in color spaces such as YUV or YIQ corre-
spond to perceptual color differences more closely
than do distances in RGB space. These color spaces
may give better results when color reducing an
image. Refer to quantize(9) for more details.
The Transparent color space behaves uniquely in
that it preserves the matte channel of the image if
it exists.
The -colors or -monochrome option is required for
this option to take effect.
-comment string
annotate an image with a comment.
By default, each image is commented with its file
name. Use this option to assign a specific comment
to the image. Optionally you can include the image
filename, type, width, height, or scene number by
embedding special format characters. Embed %f for
filename, %d for directory, %e for filename exten-
tion, %t for top of filename, %m for magick, %w for
width, %h for height, %s for scene number, %b for
file size, or \n for newline. For example,
-comment "%m:%f %wx%h"
produces an image comment of MIFF:bird.miff 512x480
for an image titled bird.miff and whose width is
512 and height is 480.
ImageMagick 1 May 1994 2
mogrify(1)mogrify(1)
If the first character of string is @, the image
comment is read from a file titled by the remaining
characters in the string.
-compress type
the type of image compression: No, RunlengthEn-
coded, or Zip.
Specify +compress to store the binary image in an
uncompressed format. The default is the compres-
sion type of the specified image file.
-contrast
enhance or reduce the image contrast.
This option enhances the intensity differences
between the lighter and darker elements of the
image. Use -contrast to enhance the image or +con-
trast to reduce the image contrast.
-crop <width>{%}x<height>{%}{+-}<x offset>{+-}<y offset>
preferred size and location of the cropped image.
See X(1) for details about the geometry specifica-
tion.
To specify a percentage width or height instead,
append %. For example to crop the image by ten
percent on all sides of the image, use -crop 10%.
Use cropping to apply image processing options, or
transmogrify, only a particular area of an image.
Use -crop 0x0 to remove edges that are the back-
ground color. Omit the x and y offset to generate
one or more subimages of a uniform size.
-cycle amount
displace image colormap by amount.
Amount defines the number of positions each col-
ormap entry is shifted.
-delay <1/100ths of a second>
display the next image after pausing.
This option is useful for regulating the animation
of a sequence of GIF images within Netscape.
1/100ths of a second must expire before the redis-
play of the image sequence. The default is no
delay between each showing of the image sequence.
The maximum delay is 65535.
-density <width>x<height>
vertical and horizontal resolution in pixels of the
image.
ImageMagick 1 May 1994 3
mogrify(1)mogrify(1)
This option specifies an image density when decod-
ing a Postscript or Portable Document page. The
default is 72 pixels per inch in the horizontal and
vertical direction.
-despeckle
reduce the speckles within an image.
-display host:display[.screen]
specifies the X server to contact; see X(1).
-dispose method
GIF disposal method.
Here are the valid methods:
0 No disposal specified.
1 Do not dispose.
2 Restore to background color.
3 Restore to previous.
-dither
apply Floyd/Steinberg error diffusion to the image.
The basic strategy of dithering is to trade inten-
sity resolution for spatial resolution by averaging
the intensities of several neighboring pixels.
Images which suffer from severe contouring when
reducing colors can be improved with this option.
The -colors or -monochrome option is required for
this option to take effect.
-draw string
annotate an image with one or more graphic primi-
tives.
Use this option to annotate an image with one or
more graphic primitives. The primitives include
point
line
rectangle
fillRectangle
circle
fillCircle
polygon
fillPolygon
color
matte
text
image
Point, line, color, matte, text, and image each
ImageMagick 1 May 1994 4
mogrify(1)mogrify(1)
require a single coordinate. Line requires a start
and end coordinate, while rectangle expects an
upper left and lower right coordinate. Circle has
a center coordinate and a coordinate on the outer
edge. Finally, polygon requires three or more
coordinates defining its boundaries. Coordinates
are integers separated by an optional comma. For
example, to define a circle centered at 100,100
that extends to 150,150 use:
-draw 'circle 100,100 150,150'
Use color to change the color of a pixel. Follow
the pixel coordinate with a method:
point
replace
floodfill
reset
Consider the target pixel as that specified by your
coordinate. The point method recolors the target
pixel. The replace method recolors any pixel that
matches the color of the target pixel. Floodfill
recolors any pixel that matches the color of the
target pixel and is a neighbor. Finally, reset
recolors all pixels.
Use matte to the change the pixel matte value to
transparent. Follow the pixel coordinate with a
method (see the color primitive for a description
of methods). The point method changes the matte
value of the target pixel. The replace method
changes the matte value of any pixel that matches
the color of the target pixel. Floodfill changes
the matte value of any pixel that matches the color
of the target pixel and is a neighbor. Finally
reset changes the matte value of all pixels.
Use text to annotate an image with text. Follow
the text coordinates with a string. If the string
has embedded spaces, enclose it in double quotes.
Optionally you can include the image filename,
type, width, height, or scene number by embedding
special format characters. Embed %f for filename,
%d for directory, %e for filename extention, %t for
top of filename, %m for magick, %w for width, %h
for height, %s for scene number, or \n for newline.
For example,
-draw 'text 100,100 "%m:%f %wx%h"'
annotates the image with MIFF:bird.miff 512x480 for
an image titled bird.miff and whose width is 512
ImageMagick 1 May 1994 5
mogrify(1)mogrify(1)
and height is 480.
If the first character of the string is @, the text
is read from a file titled by the remaining charac-
ters in the string.
Use image to composite an image with another image.
Follow the image coordinates with the filename of
an image.
If the first character of string is @, the text is
read from a file titled by the remaining characters
in the string.
You can set the primitive color, font color, and
font bounding box color with -pen, -font, and -box
respectively. Options are processed in command
line order so be sure to use -pen before the -draw
option.
-edge factor
detect edges with an image. Specify factor as the
percent enhancement (0.0 - 99.9%).
-emboss
emboss the image.
-enhance
apply a digital filter to enhance a noisy image.
-equalize
perform histogram equalization to the image.
-flip create a "mirror image" by reflecting the image
scanlines in the vertical direction.
-flop create a "mirror image" by reflecting the image
scanlines in the horizontal direction.
-format type
the image format type.
This option will convert any image to the image
format you specify. See convert(1) for a list of
image format types supported by ImageMagick.
By default the file is written to its original
name. However, if the filename extension matches a
supported format, the extension is replaced with
the image format type specified with -format. For
example, if you specify tiff as the format type and
the input image filename is image.gif, the output
image filename becomes image.tiff.
ImageMagick 1 May 1994 6
mogrify(1)mogrify(1)-font name
use this font when annotating the image with text.
Mogrify contacts an X server to obtain the font.
If an X server is not available, a Postscript font
is used. You can set the pointsize with -point-
size.
-frame <width>x<height>+<outer bevel width>+<inner bevel
width>
surround the image with an ornamental border. See
X(1) for details about the geometry specification.
The color of the border is specified with the -mat-
tecolor command line option.
-gamma value
level of gamma correction.
The same color image displayed on two different
workstations may look different due to differences
in the display monitor. Use gamma correction to
adjust for this color difference. Reasonable val-
ues extend from 0.8 to 2.3.
You can apply separate gamma values to the red,
green, and blue channels of the image with a gamma
value list delineated with slashes (i.e.
1.7/2.3/1.2).
-geometry <width>{%}x<height>{%}{!}{<}{>}
preferred width and height of the image. See X(1)
for details about the geometry specification.
By default, the width and height are maximum val-
ues. That is, the image is expanded or contracted
to fit the width and height value while maintaining
the aspect ratio of the image. Append an exclama-
tion point to the geometry to force the image size
to exactly the size you specify. For example, if
you specify 640x480! the image width is set to 640
pixels and height to 480. If only one factor is
specified, both the width and height assume the
value.
To specify a percentage width or height instead,
append %. The image size is multiplied by the
width and height percentages to obtain the final
image dimensions. To increase the size of an
image, use a value greater than 100 (e.g. 125%).
To decrease an image's size, use a percentage less
than 100.
Use > to change the dimensions of the image only if
ImageMagick 1 May 1994 7
mogrify(1)mogrify(1)
its size exceeds the geometry specification. <
resizes the image only if its dimensions is less
than the geometry specification. For example, if
you specify 640x480> and the image size is 512x512,
the image size does not change. However, if the
image is 1024x1024, it is resized to 640x480.
-implode factor
implode image pixels about the center. Specify fac-
tor as the percent implosion (0 - 99.9 %) or explo-
sion (-99.9 - 0)
-interlace type
the type of interlacing scheme: No, Line, Plane, or
Partition. The default is Plane.
This option is used to specify the type of inter-
lacing scheme for raw image formats such as RGB or
YUV. No means do not interlace (RGBRGBRGBRGBRG-
BRGB...), Line uses scanline interlacing
(RRR...GGG...BBB...RRR...GGG...BBB...), and Plane
uses plane interlacing
(RRRRRR...GGGGGG...BBBBBB...). Partition is like
plane except the different planes are saved to
individual files (e.g. image.R, image.G, and
image.B).
Use Line, or Plane to create an interlaced GIF or
progressive JPEG image. -label name assign a label
to an image.
Use this option to assign a specific label to the
image. Optionally you can include the image file-
name, type, width, height, or scene number in the
label by embedding special format characters.
Embed %f for filename, %d for directory, %e for
filename extention, %t for top of filename, %m for
magick, %w for width, %h for height, or %s for
scene number, or \n for newline. For example,
-label "%m:%f %wx%h"
produces an image label of MIFF:bird.miff 512x480
for an image titled bird.miff and whose width is
512 and height is 480.
If the first character of string is @, the image
label is read from a file titled by the remaining
characters in the string.
When converting to Postscript, use this option to
specify a header string to print above the image.
ImageMagick 1 May 1994 8
mogrify(1)mogrify(1)-linewidth value
set the width of a line. See -draw for further
details.
-loop iterations
add Netscape loop extension to your GIF animation.
A value other than zero forces the animation to
repeat itself up to iterations times.
-map filename
choose a particular set of colors from this image.
By default, color reduction chooses an optimal set
of colors that best represent the original image.
Alternatively, you can choose a particular set of
colors from an image file with this option. Use
+map to reduce all images in an image sequence to a
single optimal set of colors that best represent
all the images.
-modulate value
vary the brightness, saturation, and hue of an
image.
Specify the percent change in brightness, the color
saturation, and the hue separated by commas. For
example, to increase the color brightness by 20%
and decrease the color saturation by 10% and leave
the hue unchanged, use: -modulate 20/-10.
-monochrome
transform the image to black and white.
-negate
apply color inversion to image.
The red, green, and blue intensities of an image
are negated. Use +negate to only negate the
grayscale pixels of the image.
-noise add or reduce noise in an image.
The principal function of noise peak elimination
filter is to smooth the objects within an image
without losing edge information and without creat-
ing undesired structures. The central idea of the
algorithm is to replace a pixel with its next
neighbor in value within a 3 x 3 window, if this
pixel has been found to be noise. A pixel is
defined as noise if and only if this pixel is a
maximum or minimum within the 3 x 3 window. PP Use
+noise followed by a noise type to add noise to an
image. Choose from these noise types:
ImageMagick 1 May 1994 9
mogrify(1)mogrify(1)
uniform
gaussian
multiplicative
impulse
laplacian
poisson
-normalize
transform image to span the full range of color
values.
This is a contrast enhancement technique.
-opaque color
change this color to the pen color within the
image. See -pen for more details.
-page <width>x<height>{+-}<x offset>{+-}<y offset>
preferred size and location of the Postscript page.
Use this option to specify the dimensions of the
Postscript page in pixels per inch or a TEXT page
in pixels. The default for a Postscript page is to
center the image on a letter page 612 by 792 pix-
els. The margins are 1/2" (i.e. 612x792+42+42).
Other common sizes are:
Letter 612x 792
Tabloid 792x1224
Ledger 1224x 792
Legal 612x1008
Statement 396x 612
Executive 540x 720
A3 842x1190
A4 595x 842
A5 420x 595
B4 729x1032
B5 516x 729
Folio 612x 936
Quarto 610x 780
10x14 720x1008
For convenience you can specify the page size by
media (e.g. A4, Ledger, etc.).
To place a Postscript image with a given size on a
given location on a page, use -page +HOFFSET+VOFF-
SET -geometry WIDTHxHEIGHT (fill in numbers). Note:
this is only for generating Postscript, not Encap-
sulated Postscript.
To position a GIF image, use -page +LEFT+TOP (e.g.
-page +100+200).
ImageMagick 1 May 1994 10
mogrify(1)mogrify(1)
The default page dimensions for a TEXT image is
612x792.
-paint radius
simulate an oil painting.
Each pixel is replaced by the most frequent color
in a circular neighborhood whose width is specified
with radius.
-pen color
set the color of the font or opaque color. See
-draw for further details.
See X(1) for details about the color specification.
-pointsize value
pointsize of the Postscript font.
-quality value
JPEG quality setting.
Quality is 0 (worst) to 100 (best). The default is
75.
-raise <width>x<height>
lighten or darken image edges to create a 3-D
effect. See X(1) for details about the geometry
specification.
Use -raise to create a raised effect, otherwise use
+raise.
-region <width>x<height>{+-}<x offset>{+-}<y offset>
apply options to a portion of the image.
By default, any command line options are applied to
the entire image. Use -region to restrict opera-
tions to a particular area of the image.
-roll {+-}<x offset>{+-}<y offset>
roll an image vertically or horizontally. See X(1)
for details about the geometry specification.
A negative x offset rolls the image left-to-right.
A negative y offset rolls the image top-to-bottom.
-rotate degrees{<}{>}
apply Paeth image rotation to the image.
Use > to rotate the image only if its width exceeds
the height. < rotates the image only if its width
is less than the height. For example, if you spec-
ify -90> and the image size is 480x640, the image
ImageMagick 1 May 1994 11
mogrify(1)mogrify(1)
is not rotated by the specified angle. However, if
the image is 640x480, it is rotated by -90 degrees.
Empty triangles left over from rotating the image
are filled with the color defined as bordercolor
(class borderColor).
-sample geometry
scale image with pixel sampling.
-scene value
image scene number.
-seed value
pseudo-random number generator seed value.
-segment <cluster threshold>x<smoothing threshold>
segment an image by analyzing the histograms of the
color components and identifying units that are
homogeneous with the fuzzy c-means technique.
Specify cluster threshold as the number of pixels
in each cluster must exceed the the cluster thresh-
old to be considered valid. Smoothing threshold
eliminates noise in the second derivative of the
histogram. As the value is increased, you can
expect a smoother second derivative. The default
is 1.5. See IMAGE SEGMENTATION for details.
-shade <azimuth>x<elevation>
shade the image using a distant light source.
Specify azimuth and elevation as the position of
the light source. Use +shade to return the shading
results as a grayscale image.
-sharpen factor
sharpen an image. Specify factor as the percent
enhancement (0.0 - 99.9%).
-shear <x degrees>x<y degrees>
shear the image along the X or Y axis by a positive
or negative shear angle.
Shearing slides one edge of an image along the X or
Y axis, creating a parallelogram. An X direction
shear slides an edge along the X axis, while a Y
direction shear slides an edge along the Y axis.
The amount of the shear is controlled by a shear
angle. For X direction shears, x degrees> is mea-
sured relative to the Y axis, and similarly, for Y
direction shears y degrees is measured relative to
the X axis.
ImageMagick 1 May 1994 12
mogrify(1)mogrify(1)
Empty triangles left over from shearing the image
are filled with the color defined as bordercolor
(class borderColor). See X(1) for details.
-size <width>{%}x<height>{%}+<offset>
width and height of the image.
Use this option to specify the width and height of
raw images whose dimensions are unknown such as
GRAY, RGB, or CMYK. In addition to width and
height, use -size to skip any header information in
the image or tell the number of colors in a MAP
image file, (e.g. -size 640x512+256).
For Photo CD images, choose from these sizes:
192x128
384x256
768x512
1536x1024
3072x2048
Finally, use this option to choose a particular
resolution layer of a JBIG or JPEG image (e.g.
-size 1024x768).
-solarize threshold
negate all pixels above the threshold level.
Specify factor as the percent threshold of the
intensity (0 - 99.9%).
This option produces a solarization effect seen
when exposing a photographic film to light during
the development process.
-spread amount
displace image pixels by a random amount.
Amount defines the size of the neighborhood around
each pixel to choose a candidate pixel to swap.
-swirl degrees
swirl image pixels about the center.
Degrees defines the tightness of the swirl.
-texture filename
name of texture to tile onto the image background.
-threshold value
threshold the image.
Create a bi-level image such that any pixel inten-
sity that is equal or exceeds the threshold is
ImageMagick 1 May 1994 13
mogrify(1)mogrify(1)
reassigned the maximum intensity otherwise the min-
imum intensity.
-transparency color
make this color transparent within the image.
-treedepth value
Normally, this integer value is zero or one. A
zero or one tells mogrify to choose a optimal tree
depth for the color reduction algorithm.
An optimal depth generally allows the best repre-
sentation of the source image with the fastest com-
putational speed and the least amount of memory.
However, the default depth is inappropriate for
some images. To assure the best representation,
try values between 2 and 8 for this parameter.
Refer to quantize(9) for more details.
The -colors or -monochrome option is required for
this option to take effect.
-undercolor <undercolor factor>x<black-generation factor>
control undercolor removal and black generation on
CMYK images.
This option enables you to perform undercolor
removal and black generation on CMYK images--
images to be printed on a four-color printing sys-
tem. You can control how much cyan, magenta, and
yellow to remove from your image and how much black
to add to it. The standard undercolor removal is
1.0x1.0. You'll frequently get better results,
though, if the percentage of black you add to your
image is slightly higher than the percentage of C,
M, and Y you remove from it. For example you might
try 0.5x0.7.
-verbose
print detailed information about the image.
This information is printed: image scene number;
image name; image size; the image class (Direct-
Class or PseudoClass); the total number of unique
colors (if known); and the number of seconds to
read and transform the image. Refer to miff(5) for
a description of the image class.
If -colors is also specified, the total unique col-
ors in the image and color reduction error values
are printed. Refer to quantize(9) for a descrip-
tion of these values.
ImageMagick 1 May 1994 14
mogrify(1)mogrify(1)-wave <amplitude>x<wavelength>
alter an image along a sine wave.
Specify amplitude and wavelength to effect the
characteristics of the wave.
Options are processed in command line order. Any option
you specify on the command line remains in effect until it
is explicitly changed by specifying the option again with
a different effect. For example, to mogrify two images,
the first with 32 colors and the second with only 16 col-
ors, use:
mogrify-colors 32 cockatoo.miff -colors 16
macaw.miff
Change - to + in any option above to reverse its effect.
For example, specify +compress to store the binary image
in an uncompressed format.
By default, the image format 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). See convert(1) for a list of valid image
formats.
Specify file as - for standard input and output. If file
has the extension .Z or .gz, the file is uncompressed with
uncompress or gunzip respectively and subsequently com-
pressed using with compress or gzip. Finally, precede the
image file name with | to pipe to or from a system com-
mand.
Use an optional index enclosed in brackets after a file
name to specify a desired subimage of a multi-resolution
image format like Photo CD (e.g. img0001.pcd[4]) or a
range for MPEG images (e.g. video.mpg[50-75]). A subimage
specification can be disjoint (e.g. image.tiff[2,7,4]).
For raw images, specify a subimage with a geometry (e.g.
-size 640x512 image.rgb[320x256+50+50]).
IMAGE SEGMENTATION
Use -segment to segment an image by analyzing the his-
tograms of the color components and identifying units that
are homogeneous with the fuzzy c-means technique. The
scale-space filter analyzes the histograms of the three
color components of the image and identifies a set of
classes. The extents of each class is used to coarsely
segment the image with thresholding. The color associated
with each class is determined by the mean color of all
pixels within the extents of a particular class. Finally,
any unclassified pixels are assigned to the closest class
with the fuzzy c-means technique.
ImageMagick 1 May 1994 15
mogrify(1)mogrify(1)
The fuzzy c-Means algorithm can be summarized as follows:
o Build a histogram, one for each color component
of the image.
o For each histogram, successively apply the scale-
space filter and build an interval tree of zero
crossings in the second derivative at each scale.
Analyze this scale-space ``fingerprint'' to deter-
mine which peaks or valleys in the histogram are
most predominant.
o The fingerprint defines intervals on the axis of
the histogram. Each interval contains either a
minima or a maxima in the original signal. If each
color component lies within the maxima interval,
that pixel is considered ``classified'' and is
assigned an unique class number.
o Any pixel that fails to be classified in the
above thresholding pass is classified using the
fuzzy c-Means technique. It is assigned to one of
the classes discovered in the histogram analysis
phase.
The fuzzy c-Means technique attempts to cluster a pixel by
finding the local minima of the generalized within group
sum of squared error objective function. A pixel is
assigned to the closest class of which the fuzzy member-
ship has a maximum value.
For additional information see
Young Won Lim, Sang Uk Lee, "On The Color Image
Segmentation Algorithm Based on the Thresholding
and the Fuzzy c-Means Techniques", Pattern Recogni-
tion, Volume 23, Number 9, pages 935-952, 1990.
SEE ALSOdisplay(1), animate(1), import(1), montage(1), convert(1),
combine(1), xtp(1)COPYRIGHT
Copyright 1997 E. I. du Pont de Nemours and Company
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby
granted without fee, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of E. I. du Pont de
Nemours and Company not be used in advertising or public-
ity pertaining to distribution of the software without
specific, written prior permission. E. I. du Pont de
ImageMagick 1 May 1994 16
mogrify(1)mogrify(1)
Nemours and Company makes no representations about the
suitability of this software for any purpose. It is pro-
vided "as is" without express or implied warranty.
E. I. du Pont de Nemours and Company disclaims all war-
ranties with regard to this software, including all
implied warranties of merchantability and fitness, in no
event shall E. I. du Pont de Nemours and Company be liable
for any special, indirect or consequential damages or any
damages whatsoever resulting from loss of use, data or
profits, whether in an action of contract, negligence or
other tortious action, arising out of or in connection
with the use or performance of this software.
ACKNOWLEDGEMENTS
Michael Halle, Spatial Imaging Group at MIT, for the ini-
tial implementation of Alan Paeth's image rotation algo-
rithm.
David Pensak, E. I. du Pont de Nemours and Company, for
providing a computing environment that made this program
possible.
Paul Raveling, USC Information Sciences Institute, for the
original idea of using space subdivision for the color
reduction algorithm.
AUTHORS
John Cristy, E.I. du Pont de Nemours and Company Incorpo-
rated
ImageMagick 1 May 1994 17