我正在尝试使用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
答案 0 :(得分:3)
错误实际上是一个错误;)
我报告了,其他一些人已经证实了我的恐惧,现在它被分配给开发人员进行修复:http://pecl.php.net/bugs/bug.php?id=22184
此时解决方案是使用不同版本的库。
答案 1 :(得分:2)
GIF是256色格式,也就是“索引”。我不认为可以将gif保存为cmyk。 256种颜色中的每一种都是RGB值,但它不能存储完整的RGB色域。
答案 2 :(得分:1)
试试这个:
$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();
答案 3 :(得分:0)
我解决了这个问题: 请访问此stackoverflow页面上的答案: Convert image from RGB to CMYK with Imagick
(凯文)
这是一个negateImage()问题。易于修复。
答案 4 :(得分:-2)
见http://imagemagick.org/Usage/formats/#color_profile
转换cmyk_image.jpg -colorspace rgb rgb_image.jpg