PHP IMagick RGB到CMYK反转?

我正在尝试使用IMagick PHP模块将RGB .gif转换为CMYK .gif。 我写了这段代码
$i = new Imagick('mosaique.gif');
$i->setImageColorspace(Imagick::COLORSPACE_CMYK);
$i->setImageFormat('gif');
$i->writeImage('mosaique-cmyk.gif');
但结果“mosaique-cmyk.gif”仍然是RGB ...但是有反色(O_O) 我究竟做错了什么? 编辑: 我尝试使用.jpg并将图像转换为CMYK,但仍然是负数。 编辑2: 我试图运行我的脚本在另一台服务器上制作.pdf,它运行正常。 IMagick中有任何已知错误吗? 是否有一些选项可以在php5库中设置? 返回反转图像的版本比正常工作的版本更新 错误的结果 PHP 5.3.3 IMagick 3.0.0RC1 ImageMagick 6.6.2 正确的结果 PHP 5.2.10 IMagick 2.1.1 ImageMagick 6.5.1     
已邀请:
这个错误实际上是一个bug;) 我报告了一些,其他一些已证实我的恐惧,现在它被分配给开发人员进行修复:http://pecl.php.net/bugs/bug.php?id = 22184 此时解决方案是使用不同版本的库。     
GIF是256色格式,也称为“索引”。我不认为可以将gif保存为cmyk。 256种颜色中的每一种都是RGB值,但它不能存储完整的RGB色域。     
试试这个:
$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();
    
我解决了这个问题: 请访问此stackoverflow页面上的答案: 使用Imagick将图像从RGB转换为CMYK (凯文) 这是一个negateImage()问题。易于修复。     
请参阅http://imagemagick.org/Usage/formats/#color_profile   转换cmyk_image.jpg -colorspace   rgb rgb_image.jpg     

要回复问题请先登录注册