Batch image work gets tedious fast when every resize, format conversion, contact sheet, or watermark needs a graphical editor. To install ImageMagick on Fedora, use the package in Fedora’s default repositories so DNF manages the command-line tools, plugins, security updates, and removal cleanly.
Fedora ships ImageMagick 7, so new commands should use the unified magick command. Fedora 44 currently packages the 7.1.2 branch, while Fedora 43 remains on the 7.1.1 branch; both use the same command structure for the examples in this article.
Install ImageMagick on Fedora
Some Fedora Workstation installs may already include ImageMagick through another desktop package, but Server, minimal, and custom installs usually need the package added manually. Check first if you want to avoid a no-op install transaction:
rpm -q ImageMagick
If the package is not installed, RPM returns a line like this:
package ImageMagick is not installed
Update Fedora Before Installing ImageMagick
Refresh Fedora’s package metadata and apply available updates before installing ImageMagick:
sudo dnf upgrade --refresh
If your account cannot run
sudo, configure administrator access first with the Fedora sudoers workflow in how to add a user to sudoers on Fedora.
Install ImageMagick with DNF
Install the main ImageMagick package from Fedora’s repositories:
sudo dnf install ImageMagick
The Fedora package page for ImageMagick in Fedora repositories lists the current release packages, related subpackages, and maintainer-owned source RPM. For broader package-manager syntax, see DNF5 install examples for Fedora.
Add Optional ImageMagick Packages
The base package covers common command-line work with JPEG, PNG, WebP, JPEG-XL, SVG, TIFF, PDF, and many other formats. Add optional packages only when your workflow needs the extra role:
| Package | Role | Install When |
|---|---|---|
ImageMagick-heic | HEIC and HEIF coder plugin | You need to read iPhone HEIC photos or HEIF images. |
ImageMagick-devel | C headers, libraries, and pkg-config files | You compile software against MagickCore or MagickWand. |
ImageMagick-c++ and ImageMagick-c++-devel | Magick++ runtime and development files | You build C++ applications that use ImageMagick APIs. |
ImageMagick-perl | Perl bindings | You run Perl scripts that use the Image::Magick module. |
ImageMagick-doc | Local HTML documentation | You want offline API and command reference files. |
ImageMagick-djvu | DjVu coder plugin | You process DjVu image or document files. |
For HEIC and HEIF photo support, install the plugin package:
sudo dnf install ImageMagick-heic
For C or C++ development against ImageMagick libraries, install the matching development packages:
sudo dnf install ImageMagick-devel ImageMagick-c++ ImageMagick-c++-devel
For Perl bindings, offline documentation, or DjVu support, install the specific companion package you need. For example, local documentation uses:
sudo dnf install ImageMagick-doc
Use the same DNF form with ImageMagick-perl or ImageMagick-djvu when those roles apply.
Source builds are best reserved for custom developer workflows. On Fedora 44, the build-dependency path requires extra DNF tooling plus a large compiler and development-library transaction, and a source install under
/usr/localis not managed by DNF. Use the Fedora package unless you specifically need custom delegates or upstream build flags.
Verify ImageMagick on Fedora
Confirm that Fedora installed the magick command and inspect the version banner:
command -v magick
magick --version
Relevant output includes the binary path, ImageMagick 7 version line, and delegate list. The exact package revision can change as Fedora publishes updates:
/usr/bin/magick Version: ImageMagick 7.1.2-13 Q16-HDRI x86_64 23522 https://imagemagick.org Features: Cipher DPC HDRI Modules OpenMP Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff uhdr webp wmf x xml zip zlib zstd
Create a small test image from ImageMagick’s built-in logo fixture:
magick logo: logo.gif
ls -lh logo.gif
A successful conversion creates a GIF file in the current directory:
-rw-r--r--. 1 user user 28K May 16 09:44 logo.gif
Use ImageMagick Commands on Fedora
ImageMagick 7 centers normal work on the magick command. The official ImageMagick command-line tools documentation recommends starting with magick, while compatibility subcommands such as magick identify, magick mogrify, and magick montage cover older ImageMagick 6 tool names.
| Task | Command Pattern | What It Does |
|---|---|---|
| Convert formats | magick input.jpg output.png | Reads the input and writes the output format based on the file extension. |
| Inspect an image | magick identify image.png | Shows format, dimensions, color space, and related metadata. |
| Modify files in place | magick mogrify -resize 1200x *.jpg | Changes matching files directly, so use it carefully. |
| Create a contact sheet | magick montage *.jpg -tile 2x sheet.jpg | Arranges images in a two-column grid. |
| Compare images | magick compare old.png new.png diff.png | Creates an image that highlights differences. |
| Display an image | magick display image.jpg | Opens a window through X11 or XWayland when a graphical session is available. |
Fedora GNOME uses Wayland by default. Commands that need an X server, such as
magick displayandmagick import, can work through XWayland for compatible windows, butmagick importis not a full Wayland screenshot tool.
For magick compare, an exit code of 1 can simply mean the input images differ after the diff image is written. Treat the diff file and any metric output as the useful signal instead of assuming the command failed to run.
Convert Images with ImageMagick
Convert a JPEG image to PNG when you need lossless output or transparency support:
magick input.jpg output.png
Convert a PNG image to WebP for web delivery:
magick input.png -quality 80 output.webp
The -quality 80 option sets the compression target for formats that support quality settings. Compare the result visually before replacing original files, especially for photos or artwork.
Create a PDF from one or more images when you need a portable document output:
magick page1.jpg page2.jpg output.pdf
magick identify -format '%m %n pages\n' output.pdf
For a two-image input, the verification line reports a two-page PDF:
PDF 2 pages
Render PDF pages to numbered JPG files when you need raster image copies. The -density option controls the rasterization resolution before ImageMagick reads the PDF:
magick -density 150 input.pdf page-%02d.jpg
Convert HEIC Images to JPG
Install ImageMagick-heic before converting iPhone HEIC or HEIF photos. After the plugin is installed, this format check should show readable HEIC entries:
magick identify -list format | grep -Ei 'HEIC|HEIF'
Relevant output includes read support for HEIC and HEIF:
HEIC HEIC r-- High Efficiency Image Format (1.21.2)
HEIF HEIC r-- High Efficiency Image Format (1.21.2)
Convert one HEIC file to JPG:
magick input.heic output.jpg
Convert every HEIC file in the current directory to JPG copies. Run this in a directory that contains matching *.heic files; otherwise the shell may pass the literal pattern and ImageMagick will report a missing file:
magick mogrify -format jpg *.heic
Create a Contact Sheet with Montage
The -tile 2x syntax tells magick montage to use two columns and as many rows as needed. Add -geometry to set each thumbnail size and spacing:
magick montage image1.jpg image2.jpg image3.jpg image4.jpg -tile 2x -geometry 300x300+8+8 contact-sheet.jpg
For a quick local test without your own files, create two sample images from ImageMagick fixtures and build a two-column montage:
magick rose: rose-1.png
magick rose: -rotate 90 rose-2.png
magick montage rose-1.png rose-2.png -tile 2x -geometry 70x46+4+4 montage.png
magick identify -format '%m %wx%h\n' montage.png
The sample montage reports its output format and final dimensions:
PNG 156x54
Resize Images
Resize an image to fit within an 800×600 box while preserving the original aspect ratio:
magick input.png -resize 800x600 output.png
Force exact dimensions only when stretching or squeezing the image is acceptable:
magick input.png -resize 800x600! output.png
The ImageMagick geometry documentation explains resize operators such as !, >, <, and @ in more detail.
Batch Process Multiple Files
Use mogrify when you want to process many files in one directory. Before using a wildcard, preview which filenames the shell will pass:
printf '%s\n' *.jpg
If that prints the literal *.jpg, move to a directory with JPG files or adjust the pattern before running a batch command.
mogrifyoverwrites input files unless you use an option such as-formatthat writes a different output extension. Even then, existing output files with the same names can be replaced, so back up important images before running batch operations in a working directory.
This command creates PNG copies from all JPG files and leaves the JPG originals in place because -format png changes the output extension:
magick mogrify -format png *.jpg
Resize JPG files wider than 1920 pixels down to a maximum width of 1920 pixels:
magick mogrify -resize '1920x>' *.jpg
For deeper examples, the upstream ImageMagick usage examples cover composition, masking, animation, text, and advanced transformations.
Troubleshoot ImageMagick on Fedora
Fix magick Command Not Found
If the shell cannot find magick, Fedora either does not have the package installed or the current shell has stale command lookup state:
bash: magick: command not found
Check the package state and install ImageMagick if it is missing:
rpm -q ImageMagick || sudo dnf install ImageMagick
Clear Bash’s command cache and verify the command path:
hash -r
command -v magick
magick --version | head -n 1
A working DNF installation resolves to /usr/bin/magick and prints an ImageMagick 7 version line.
Fix convert Deprecation Warnings
Fedora keeps compatibility links such as convert, but ImageMagick 7 warns when you call the old command name directly:
WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert"
Replace old format-conversion syntax with the unified magick command:
magick input.jpg output.png
For scripts that previously called another standalone ImageMagick tool, add the tool name after magick:
magick identify image.png
magick mogrify -resize 1200x *.jpg
magick montage *.jpg -tile 2x contact-sheet.jpg
Fix Missing HEIC or Other Format Support
If ImageMagick reports that a file format has no decode delegate, inspect the enabled format list. Use the grep command to filter the long output to the formats you care about:
magick identify -list format | grep -Ei 'HEIC|HEIF|JXL|WEBP|PNG|JPEG'
On a Fedora system with ImageMagick-heic installed, relevant output includes HEIC and HEIF entries. Without that plugin, HEIC and HEIF may be absent even though common formats such as JPEG, PNG, JXL, and WebP are present.
sudo dnf install ImageMagick-heic
For compiled applications or language bindings, install the matching development or binding package instead of adding random library packages one at a time:
sudo dnf install ImageMagick-devel ImageMagick-c++-devel ImageMagick-perl
Find ImageMagick Policy and Delegate Files
Fedora stores the package-managed policy and delegate files under /etc/ImageMagick-7. The dependency package ImageMagick-libs owns these files, so query that package when you need the exact paths:
rpm -ql ImageMagick-libs | grep -E '/policy.xml|/delegates.xml'
Expected paths are:
/etc/ImageMagick-7/delegates.xml /etc/ImageMagick-7/policy.xml
Update or Remove ImageMagick on Fedora
Update ImageMagick with DNF
DNF updates ImageMagick with the rest of your Fedora packages:
sudo dnf upgrade --refresh
If you installed optional ImageMagick subpackages, the same update command covers them when Fedora publishes matching updates.
Remove ImageMagick DNF Packages
Preview removal first if ImageMagick arrived as a dependency of another desktop package or if you installed optional subpackages:
sudo dnf remove --assumeno ImageMagick ImageMagick-heic ImageMagick-devel ImageMagick-doc ImageMagick-perl ImageMagick-c++ ImageMagick-c++-devel ImageMagick-djvu
If the transaction list matches what you intend to remove, rerun the command without --assumeno:
sudo dnf remove ImageMagick ImageMagick-heic ImageMagick-devel ImageMagick-doc ImageMagick-perl ImageMagick-c++ ImageMagick-c++-devel ImageMagick-djvu
Verify the main packages are no longer installed, then clear Bash’s command cache before checking the command path:
rpm -q ImageMagick ImageMagick-heic ImageMagick-devel ImageMagick-doc ImageMagick-perl ImageMagick-c++ ImageMagick-c++-devel ImageMagick-djvu || true
hash -r
command -v magick || echo "magick is not in PATH"
Expected output after removal looks like this when no other package provides magick:
package ImageMagick is not installed package ImageMagick-heic is not installed package ImageMagick-devel is not installed package ImageMagick-doc is not installed package ImageMagick-perl is not installed package ImageMagick-c++ is not installed package ImageMagick-c++-devel is not installed package ImageMagick-djvu is not installed magick is not in PATH
Conclusion
ImageMagick is ready on Fedora with DNF-managed updates, the modern magick command, and optional plugins for formats such as HEIC. Use it for quick terminal conversions, batch resizing, and contact sheets, then pair it with FFmpeg for video processing on Fedora or GIMP for advanced image editing on Fedora when a project needs video or full graphical editing.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>