Question

I'm trying to convert a RGB .gif to a CMYK .gif using IMagick PHP module.

I've wrote this piece of code

$i = new Imagick('mosaique.gif');
$i->setImageColorspace(Imagick::COLORSPACE_CMYK);
$i->setImageFormat('gif');
$i->writeImage('mosaique-cmyk.gif');

But the resultant "mosaique-cmyk.gif" still a RGB... but with inverted colors (O_O)

What am I doing wrong?

EDIT:

I've tried with a .jpg and the image is converted to CMYK but it stills in negative.

EDIT 2:

I've tried to run my script making a .pdf on another server and it works fine.

Are there any known bug in IMagick? Are there some options to set in the php5 library?

The version that returns me the inverted image is newer than the one that works correctly

WRONG RESULT PHP 5.3.3 IMagick 3.0.0RC1 ImageMagick 6.6.2

CORRECT RESULT PHP 5.2.10 IMagick 2.1.1 ImageMagick 6.5.1

Was it helpful?

Solution

The error in fact it's a bug ;)

I reported it, some other has confirmed my fear and now it's assigned to a developer for a fix: http://pecl.php.net/bugs/bug.php?id=22184

At this moment the solution it's to use a different version of the libraries.

OTHER TIPS

GIF is 256-color format aka "indexed." I do not think one can save a gif as cmyk. Each of the 256 colors is an RGB value, but it is not capable of storing the full RGB gamut.

Try this:

$im->stripImage();
$icc_cmyk_profile_path='image_functions/cmyk_icc_profiles/USWebUncoated.icc'; 
//[http://www.mattbeals.com/icc/][1]

$icc_cmyk = file_get_contents($icc_cmyk_profile_path);
$im->profileImage('icc', $icc_cmyk);
unset($icc_cmyk);
$colorspace=$im->getImageColorspace();                  

if ($colorspace==12) {
    echo "CMYK";
}

$im->stripImage();

$im->writeImage($destination);      
$im->clear();
$im->destroy();

I solved this issue: Please visit my answer on this stackoverflow page: Convert image from RGB to CMYK with Imagick

(Kevin)

It is a negateImage() issue. Easy to fix.

see here http://imagemagick.org/Usage/formats/#color_profile

convert cmyk_image.jpg -colorspace rgb rgb_image.jpg

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top