PHP IMagick RGB到CMYK反转?
我正在尝试使用IMagick PHP模块将RGB.gif转换为CMYK.gif 我已经写了这段代码PHP IMagick RGB到CMYK反转?,php,rgb,imagick,cmyk,Php,Rgb,Imagick,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
$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中有已知的bug吗?
php5库中是否有一些可设置的选项
返回反转图像的版本比正常工作的版本更新
错误结果
PHP 5.3.3
IMagick 3.0.0RC1
ImageMagick 6.6.2
正确结果
PHP 5.2.10
IMagick 2.1.1
ImageMagick 6.5.1GIF是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();
看这里
转换cmyk_image.jpg-颜色空间
rgb rgb_image.jpg
这个错误实际上是一个bug;) 我报告了它,其他人证实了我的担心,现在它被分配给一个开发人员进行修复:
目前的解决方案是使用不同版本的库。我尝试过Illustrator,它在CMYK上转换你的.gif,但当它将图像保存为.gif时,它又回到了RGB上,所以你可能是对的!我也在JPG上尝试了我之前的示例,它被转换为CMYK,但仍然是否定的:| CMYK JPG也不是普遍支持的。Photoshop可以,但不是所有的软件都能处理。另外,从技术上讲,GIF不是RGB,而是索引颜色。你把术语弄糊涂了。无论何时从rgb来回转换到cmyk,颜色保真度也会降低。问题是关于php imagick扩展,而不是ImageMagick的命令行“转换”,所以这个答案是“不在主题上”。=>-1HP imagick没有这样做,它只是ImageMagick的包装器,如果您知道命令行选项,您可以在php代码中使用它。它是ImageMagick库的包装器,而不是转换工具的包装器。那不一样。而且包装器不会公开所有选项。您可以查看源代码,发现它实际上不仅调用cli IM命令(请参见imagick.c),而且单独公开功能。我有一个解决方案。看到我的答案了吗