Php IMagick RGB到CMYK的转换已损坏

Php IMagick RGB到CMYK的转换已损坏,php,rgb,imagick,corrupt,cmyk,Php,Rgb,Imagick,Corrupt,Cmyk,我正在用PHP中的IMagick将图像从RGB转换为CMYK 在转换过程中,一些图像上会出现黑色网格 代码: 图像: 我在一个循环中转换了大约80个图像,大多数都还可以。 知道为什么会这样吗 编辑: 工作代码: $IMagick = new IMagick(); $IMagick->clear(); $IMagick->readImage(SITE_ROOT . 'userfiles/image/products/' . $image); $icc_cmyk = file_ge

我正在用PHP中的IMagick将图像从RGB转换为CMYK

在转换过程中,一些图像上会出现黑色网格

代码:

图像:

我在一个循环中转换了大约80个图像,大多数都还可以。 知道为什么会这样吗

编辑: 工作代码:

$IMagick = new IMagick();
$IMagick->clear();
$IMagick->readImage(SITE_ROOT . 'userfiles/image/products/' . $image); 
$icc_cmyk = file_get_contents(dirname(__FILE__).'/USWebCoatedSWOP.icc'); 
$IMagick->profileImage('icc', $icc_cmyk); 
unset($icc_cmyk); 
$IMagick->transformImageColorspace(12);
$IMagick->writeImage (SITE_ROOT . 'userfiles/image/products/cmyk/' . $image);

setImageColorspace仅在创建新图像时使用,可以通过Imagick::newPseudoImage创建,也可以将ImagickDraw实例渲染到图像中


对于现有图像,更改图像颜色空间的正确方法是Imagick::transformImageColorspace。

setImageColorspace“设置图像颜色空间。创建新图像时应使用此方法。要更改现有图像的颜色空间,应使用Imagick::transformImageColorspace()。还修复了反转颜色的问题。所以没有必要否定年龄。你能不能把它贴成一封电子邮件,这样我就可以接受了。
$IMagick = new IMagick();
$IMagick->clear();
$IMagick->readImage(SITE_ROOT . 'userfiles/image/products/' . $image); 
$icc_cmyk = file_get_contents(dirname(__FILE__).'/USWebCoatedSWOP.icc'); 
$IMagick->profileImage('icc', $icc_cmyk); 
unset($icc_cmyk); 
$IMagick->transformImageColorspace(12);
$IMagick->writeImage (SITE_ROOT . 'userfiles/image/products/cmyk/' . $image);