ImageMagick: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[ImageMagick]] is a popular "swiss army knife" image manipulation program for the FLOSS world. In addition to a collection of powerful command line utilities, [[ImageMagick]] is available via libraries in most of the popular (web) scripting languages.
{{Software
|Website=http://www.imagemagick.org/
|License=Apache
|OS=Linux, Mac, iOS, Windows
|Media=Image
|Format=JPEG, PNG, GIF, TIFF
|Interface=Command-line interface,
|Wikipedia=http://en.wikipedia.org/wiki/Image_Magick
|Thumbnail=File:Imagemagick-logo.jpg
}}


== Installing ==


=== Gentoo Linux ===
[[Category: Software]]


You should be able to simply "emerge imagemagick" using [[Portage]]. You'll probably want to make sure that "truetype" is enabled in the [[use flags]], as this allows you to open and use [[TrueType]] fonts.
ImageMagick is a suite of [[commandline]] tools for manipulating images. It's often called the "swiss army knife" of image tools. It is [[free software]].


== Ubuntu ==
== Links ==
* http://www.imagemagick.org/


Imagemagick may very well be pre-installed on your system. Otherwise use synaptic or apt-get to pull in the "imagemagick" package.
* [http://www.imagemagick.org/Usage/ usage] tutorial


=== Mac OS X ===
* Several commands use [http://www.imagemagick.org/script/command-line-processing.php#geometry geometry] specifications


There is now a "binary distribution" for Mac OS X on the [http://www.imagemagick.org main imagemagick website]. You simply unpack the files, move the resulting folder to a convenient location (say in your home directory), then tweak some environment variables so your system can find everything.
== General ==
Imagemagick provides a number of [[commandline]] tools, none of which are named imagemagick, but rather:
* convert: create/modify an image and save as a new file
* mogrify: makes changes to an image "in-place" (replacing the original -- use with caution!)
* montage: automated "poster" maker that creates a "thumbnail" image of a number of images (in a grid with variable spacing and options like showing the filename)
* identify: display information about an image
* display: show an image in a window (may not work on OS X, use the "open" command instead)


== Command line Tools ==
== How to check if ImageMagick is installed ==
Type the name of one of the above commands in a terminal/shell, such as:
convert


Here's a list of the command-line tools that get installed:
=== Installing ImageMagick ===


* animate
In Linux, ImageMagick should either already be installed, or is available via whatever package manager the distribution supports. In Debian/Ubuntu:
* compare
* composite
* conjure
* convert
* display
* identify
* import
* Magick-config
* Magick++-config
* mogrify
* montage
* Wand-config


== Resources ==
sudo apt-get install imagemagick


* [http://www.imagemagick.org/ Imagemagick website]
or on mac ox, try:
* [http://www.imagemagick.org/Usage Usage examples]
 
* [http://www-128.ibm.com/developerworks/library/l-graf/?ca=dnt-428 Graphics from the command-line]
brew install imagemagick
 
== Resizing A folder of Images with mogrify ==
 
DANGER: this replaces all the images in the current folder with thumbnails, so you'd make a copy first!
 
mogrify -resize 320x240 *
 
=== Seeing what version of ImageMagick you have ===
 
Use the --version option with an ImageMagick command.
 
<source lang="text">
convert --version
</source>
 
=== Creating new images (without changing any originals) ===
 
Use convert. Convert always produces a new output file, generally you give the output file at the end of the command.
 
<source lang="text">
convert original.png -resize 160x120 icon.png
</source>
 
 
=== Modifying images "in-place" (changing the originals) ===
 
Use mogrify. Mogrify supports the same options as convert, only it modifies it's input, replacing the original (so you need to be careful with it).
 
Mogrify can be used with a wildcard to modify many files at once.
 
<source lang="text">
mogrify -resize 320x240 *.JPG
</source>
 
 
=== Getting Information about an Image ===
 
identify original.png
 
=== Displaying an image ===
 
display foo.png
 
==pdfunite==
 
From package: poppler-utils
 
== Cutting ==
 
=== Cutting out a particular rectangle from an image ===
 
The format of the crop option is: WIDTHxHEIGHT+LEFT+TOP
 
For instance, to extract a 256 pixel square from an image 500 pixels from the left, at the top (0):
 
<source lang="text">
convert FILE0058.JPG -crop 256x256+500+0 tile.jpg
</source>
 
 
=== Cuting an image up into tiles or strips / "Cookie Cutting" ===
 
The crop command, when not given a specific position to cut out, will repeat as many times as it can, "cookie-cutter style", producing a series of images.
 
<source lang="text">
convert original.png -crop 64x64 tile%04d.png
convert original.png -crop 64x strip%04d.png
convert original.png -crop x64 bar%04d.png
</source>
 
== Transforming ==
 
=== Converting/Changing image formats ===
 
<source lang="text">
convert original.png new.jpg
convert original.png -quality 1 lo.jpg
</source>
 
 
=== Resizing images ===
 
<source lang="text">
convert -resize 640x640 FILE0058.JPG work.png
convert -resize 640x640! FILE0058.JPG work.png
</source>
 
 
== Assembling ==
 
=== Creating an animated gif from multiple images ===
<source lang="text">
convert tile*.png slide.gif
convert -delay 5 -dispose background -page +0+0 tile*.png slide.gif
</source>
 
 
=== Overlaying/Combining 2 images into a new image ===
 
Use composite. Composite is both a command-line tool on its own, and also it's available via the "-composite" option of convert. Note that the order of things is different depending on which way you use.
 
=== Creating a "contact sheet" / table of images ===
 
Use montage.
 
Arrange the frames as tiles on new jpg files.
Geometry describes how big each image is resized to (640) and the spacing in between the tiles (+10+10).
 
%04d in the output filename means that the results are numbered starting from 0001 (0-padded to 4 places).
<source lang=bash>
 
montage -geometry '640x640>+10+10' -tile 1x3 /*.jpg test%04d.jpg
</source>
 
== Drawing ==
 
TODO: check circle parameters (radius one number only?!)
 
<source lang="text">
convert -size 300x300 xc:lightgray -fill black -draw 'rectangle 0,0 150,150' rect.gif
convert -size 300x300 xc:lightgray -fill black -draw 'circle 150,150 50,40' circle.gif
</source>
 
 
=== Finding more examples of drawing with ImageMagick ===
 
http://www.imagemagick.org/Usage/draw/#primitives
 
 
 
[[Category:Cookbook]]

Latest revision as of 11:28, 10 January 2020

Website http://www.imagemagick.org/
License Apache
OS Linux, Mac, iOS, Windows
Media Image
Format JPEG, PNG, GIF, TIFF
Interface Command-line interface,
Wikipedia http://en.wikipedia.org/wiki/Image_Magick
Thumbnail
Imagemagick-logo.jpg

ImageMagick is a suite of commandline tools for manipulating images. It's often called the "swiss army knife" of image tools. It is free software.

Links

  • Several commands use geometry specifications

General

Imagemagick provides a number of commandline tools, none of which are named imagemagick, but rather:

  • convert: create/modify an image and save as a new file
  • mogrify: makes changes to an image "in-place" (replacing the original -- use with caution!)
  • montage: automated "poster" maker that creates a "thumbnail" image of a number of images (in a grid with variable spacing and options like showing the filename)
  • identify: display information about an image
  • display: show an image in a window (may not work on OS X, use the "open" command instead)

How to check if ImageMagick is installed

Type the name of one of the above commands in a terminal/shell, such as:

convert

Installing ImageMagick

In Linux, ImageMagick should either already be installed, or is available via whatever package manager the distribution supports. In Debian/Ubuntu:

sudo apt-get install imagemagick

or on mac ox, try:

brew install imagemagick

Resizing A folder of Images with mogrify

DANGER: this replaces all the images in the current folder with thumbnails, so you'd make a copy first!

mogrify -resize 320x240 *

Seeing what version of ImageMagick you have

Use the --version option with an ImageMagick command.

convert --version

Creating new images (without changing any originals)

Use convert. Convert always produces a new output file, generally you give the output file at the end of the command.

convert original.png -resize 160x120 icon.png


Modifying images "in-place" (changing the originals)

Use mogrify. Mogrify supports the same options as convert, only it modifies it's input, replacing the original (so you need to be careful with it).

Mogrify can be used with a wildcard to modify many files at once.

mogrify -resize 320x240 *.JPG


Getting Information about an Image

identify original.png

Displaying an image

display foo.png

pdfunite

From package: poppler-utils

Cutting

Cutting out a particular rectangle from an image

The format of the crop option is: WIDTHxHEIGHT+LEFT+TOP

For instance, to extract a 256 pixel square from an image 500 pixels from the left, at the top (0):

convert FILE0058.JPG -crop 256x256+500+0 tile.jpg


Cuting an image up into tiles or strips / "Cookie Cutting"

The crop command, when not given a specific position to cut out, will repeat as many times as it can, "cookie-cutter style", producing a series of images.

convert original.png -crop 64x64 tile%04d.png
convert original.png -crop 64x strip%04d.png
convert original.png -crop x64 bar%04d.png

Transforming

Converting/Changing image formats

convert original.png new.jpg
convert original.png -quality 1 lo.jpg


Resizing images

convert -resize 640x640 FILE0058.JPG work.png
convert -resize 640x640! FILE0058.JPG work.png


Assembling

Creating an animated gif from multiple images

convert tile*.png slide.gif
convert -delay 5 -dispose background -page +0+0 tile*.png slide.gif


Overlaying/Combining 2 images into a new image

Use composite. Composite is both a command-line tool on its own, and also it's available via the "-composite" option of convert. Note that the order of things is different depending on which way you use.

Creating a "contact sheet" / table of images

Use montage.

Arrange the frames as tiles on new jpg files. Geometry describes how big each image is resized to (640) and the spacing in between the tiles (+10+10).

%04d in the output filename means that the results are numbered starting from 0001 (0-padded to 4 places).

montage -geometry '640x640>+10+10' -tile 1x3 /*.jpg test%04d.jpg

Drawing

TODO: check circle parameters (radius one number only?!)

convert -size 300x300 xc:lightgray -fill black -draw 'rectangle 0,0 150,150' rect.gif
convert -size 300x300 xc:lightgray -fill black -draw 'circle 150,150 50,40' circle.gif


Finding more examples of drawing with ImageMagick

http://www.imagemagick.org/Usage/draw/#primitives