Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP IMagick RGB到CMYK反转?_Php_Rgb_Imagick_Cmyk - Fatal编程技术网

PHP IMagick RGB到CMYK反转?

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

我正在尝试使用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中有已知的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.1

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();
看这里

转换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),而且单独公开功能。我有一个解决方案。看到我的答案了吗