How to Install ImageMagick with JPEG Support on Ubuntu: Solving “no decode delegate” Error


2 views

When working with ImageMagick on Ubuntu, you might encounter the frustrating error:

identify: no decode delegate for this image format image.jpg' @ error/constitute.c/ReadImage/532.

The root cause is missing JPEG support in your ImageMagick installation. While you've installed libjpeg62, Ubuntu requires additional packages for proper JPEG handling:

sudo apt-get install libjpeg-dev
sudo apt-get install libjpeg-turbo8-dev

For Ubuntu 10.04 and newer versions, follow these steps:

# Remove existing installation
sudo apt-get remove imagemagick

# Install dependencies
sudo apt-get install libjpeg62-dev libpng-dev libtiff-dev libgif-dev

# Reinstall ImageMagick with proper support
sudo apt-get install imagemagick

After installation, verify JPEG support:

identify -list format | grep JPEG

Should return something like:

JPEG* JPEG rw- Joint Photographic Experts Group JFIF format

Try converting a JPEG to verify everything works:

convert input.jpg -resize 50% output.jpg

If package installation doesn't solve the issue, consider building from source:

wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvzf ImageMagick.tar.gz
cd ImageMagick-*
./configure --with-jpeg=yes
make
sudo make install
sudo ldconfig /usr/local/lib
  • Check installed delegates: convert -list configure | grep DELEGATES
  • Verify library paths: ldconfig -p | grep jpeg
  • Check version compatibility between libjpeg and ImageMagick

When working with ImageMagick on Ubuntu, you might encounter the frustrating "no decode delegate" error when trying to process JPEG files, despite having both ImageMagick and libjpeg installed. This typically indicates that ImageMagick wasn't compiled with JPEG support during installation.

Here's how to properly install ImageMagick with full JPEG support:

sudo apt-get update
sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install --reinstall imagemagick libmagickcore-dev

After installation, verify JPEG support is properly enabled:

identify -list format | grep -i jpeg

You should see output similar to:

JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (80)

If the standard installation doesn't work, you might need to build from source:

sudo apt-get build-dep imagemagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvzf ImageMagick.tar.gz
cd ImageMagick-*
./configure --with-jpeg=yes
make
sudo make install
sudo ldconfig /usr/local/lib

If you still experience problems, check your delegates:

convert -list delegate | grep jpeg

For Ubuntu 10.04 specifically, you might need additional legacy packages:

sudo apt-get install libjpeg62-dev

Here's how to properly convert a JPEG after successful installation:

convert input.jpg -resize 50% output.jpg

This should now work without the "no decode delegate" error.