I had a need to extract the pages of a PDF as JPG images. I have a Linux VM setup already with tesseract as an OCR server, so I decided to add this ability to it. The first choice was to install ImageMagick and use it’s convert utility.

After using yum install ImageMagick, when I tried to convert with ICC files like below;

convert -verbose -density 300 -colorspace rgb SaleCat.pdf[10-20] -profile eciCMYK.icc -profile eciRGB_v2.icc -quality 100 y-%04d.jpg

I got this message:

convert: delegate library support not built-in `SaleCat.pdf' (LCMS) @ warning/profile.c/ProfileImage/565.

I ran the following to see the delegates installed:

convert -list configure | grep -i "delegates"

The results showed the lcms delegate wasn’t setup:

DELEGATES     bzlib fontconfig freetype gs jpeg jng jp2 lzma openexr pango png rsvg tiff x11 xml wmf zlib

I verified that lcms was already installed with yum install lcms2 (it was).

So it appears that I needed to rebuild ImageMagick from source to include the lcms2 delegate. I removed Image magic with “yum remove ImageMagick” first.

I made sure gcc was installed:

yum install gcc

Then downloaded and configured the ImageMagick source:

wget https://imagemagick.org/download/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd ImageMagick-*
./configure --with-lcms=yes

The config should show that lcms was now enabled, but it wasn’t:

LCMS              --with-lcms=yes             no

So I looked at config.log to see the details:

     configure:31839: checking for lcms2 >= 2.0.0
configure:31846: $PKG_CONFIG --exists --print-errors "lcms2 >= 2.0.0"
Package lcms2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `lcms2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lcms2' found

I made sure that lcms2 devel was installed:

yum install lcms2-devel

I tried again to build:

./configure  --with-lcms=yes

And this time the config looked good:

LCMS              --with-lcms=yes             yes

And so I built and installed ImageMagick from the source:

make install
make clean

Now I can run convert from /usr/local/bin/convert and process with icc files.