Page 1 of 1

CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T09:48:20-07:00
by axelrose
Hello,
I'm oberving a strange behaviour with 6.5.6-9.
An untagged CMYK TIFF input cannot be converted to RGB thought I can remember
this worked with older versions. IM also complains about missing LCMS support
though I'm sure it is compiled in.

This is my test script:

Code: Select all

#!/bin/bash

IN=/tmp/rose-cmyk.tif
OUT=/tmp/rose-rgb.tif

ICC_CMYK=/tmp/ISOcoated_v2_300_eci.icc
ICC_RGB=/tmp/eciRGB_v2.icc

CONV=/usr/local/share/imagemagick/bin/convert

echo "configuration"
$CONV -list Configure | grep lcms
echo "============="
echo "version"
$CONV -version
echo "============="
echo "profile check"
exiftool $ICC_CMYK | grep "Color Space"
exiftool $ICC_RGB | grep "Color Space"

$CONV rose: -colorspace cmyk $IN
echo "conversion CMYK -> RGB"
$CONV $IN -profile $ICC_CMYK -profile $ICC_RGB +profile icc $OUT
exiftool -PhotometricInterpretation $OUT
This is the output:

Code: Select all

configuration
CONFIGURE     ./configure  'CPPFLAGS=-I/usr/local/share/imagemagick/include' 'LDFLAGS=-L/usr/local/share/imagemagick/lib' '--prefix=/usr/local/share/imagemagick' '--enable-shared' '--disable-dependency-tracking' '--x-libraries=/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib' '--x-includes=/Developer/SDKs/MacOSX10.6.sdk/usr/X11/include' '--with-jpeg=yes' '--with-tiff=yes' '--with-freetype=yes' '--with-png=yes' '--with-jp2=yes' '--with-lcms=yes' '--with-gs-font-dir=/usr/local/share/ghostscript/fonts' '--with-wmf=yes'
DELEGATES     bzlib freetype jpeg jng jp2 lcms png tiff x11 xml wmf zlib
LIBS          -lMagickCore -llcms -ltiff -lfreetype -ljpeg -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread 
=============
version
Version: ImageMagick 6.5.6-9 2009-10-14 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC

=============
profile check
Color Space Data                : CMYK
Color Space Data                : RGB
conversion CMYK -> RGB
convert: delegate library support not built-in `/tmp/rose-cmyk.tif' (LCMS) @ profile.c/ProfileImage/897.
Photometric Interpretation      : CMYK
What could be wrong here??

Thanks for your efforts,
Axel.

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T10:08:55-07:00
by magick
Check magick/magick-config.h. Is MAGICKCORE_LCMS_DELEGATE defined?

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T10:17:59-07:00
by axelrose
That's what I see:

Code: Select all

~/work/imagemagick/ImageMagick-6.5.6-9 > grep --before 2 --after 2 LCMS_DELEGATE magick/magick-config.h

/* Define if you have LCMS library */
#ifndef MAGICKCORE_LCMS_DELEGATE 
#define MAGICKCORE_LCMS_DELEGATE  1 
#endif

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T10:28:27-07:00
by magick
Do you have more than one MagickCore library on your system? ImageMagick does not complain about missing LCMS support if MAGICKCORE_LCMS_DELEGATE is defined when the library is compiled. And if you had LCMS support built-in, the CMYK to RGB conversion would work.

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T10:58:17-07:00
by axelrose
Do you have more than one MagickCore library on your system?
yes, from older compiles

How does IM find and uses the lib?

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T11:40:45-07:00
by magick
It seems likely you are using a version of MagickCore that does not support LCMS. Use the ldd command (Linux) or otool (Mac) to see which library the convert command is dynamically binding to. Also verify you are running the proper release of the convert command (e.g. convert -version).

Re: CMYK->RGB with ICC profiles results in CMYK

Posted: 2009-10-28T13:19:12-07:00
by axelrose
It was my fault. Sorry for the extra traffic.

I had to recompile libcms after an OS update to make it work again.