我用php imagemagick创建了一个cmyk图像,但是在photoshop上cmyk的颜色是不同的吗?

我用php imagemagick创建了一个cmyk图像,但是在photoshop上cmyk的颜色是不同的吗?,php,imagemagick,cmyk,Php,Imagemagick,Cmyk,需要帮助! 我用php imagemagick创建了一个cmyk图像,但在photoshop上cmyk的颜色是不同的!e、 g:设置ImagickPixel颜色cmyk(0,0,0100)(黑色),但在photoshop上找到了cmyk(61,61,61,0)。 为什么?如何设置正确的cmyk颜色?您需要将颜色空间设置为cmyk,否则您的像素将转换为RGB $img->setImageColorspace(Imagick::COLORSPACE_CMYK); 另外,请确保您使用的文件类

需要帮助! 我用php imagemagick创建了一个cmyk图像,但在photoshop上cmyk的颜色是不同的!e、 g:设置ImagickPixel颜色cmyk(0,0,0100)(黑色),但在photoshop上找到了cmyk(61,61,61,0)。
为什么?如何设置正确的cmyk颜色?

您需要将颜色空间设置为cmyk,否则您的像素将转换为RGB

$img->setImageColorspace(Imagick::COLORSPACE_CMYK);

另外,请确保您使用的文件类型支持CMYK。(例如,jpg,.tif)

编辑

看来Imagick有个bug。 在修复之前,您可以尝试使用
transformImageColorspace
来解决此问题

$draw = new \ImagickDraw();

$fillColor = new \ImagickPixel();    
$fillColor->setColor('cmyk(0%,0%,0%,100%');
$draw->setFillColor($fillColor);
$draw->rectangle(100, 100, 400, 400);

$img = new \Imagick();
$img->newImage(500, 500, 'white');
$img->drawImage($draw);
$img->transformImageColorspace(Imagick::COLORSPACE_CMYK);
$img->setImageFormat("jpg");

header('Content-Type: image/'.$img->getImageFormat());
echo $img;

我已经设置了颜色空间,文件类型为.jpg,photoshop显示图像为CMYK颜色模式。是的,CMYK颜色空间对ImagickDraw无效,但修复了错误。您的解决方案对我有效,但如果需要打印更多颜色,则会出现颜色问题。@hcoat您的解决方案有效吗?请看我的问题这是我的代码: