我通过php imagemagick创建了一个cmyk图像,但cmyk颜色在photoshop上有所不同?

时间:2016-06-23 03:01:53

标签: php imagemagick cmyk

需要帮助! 我通过php imagemagick创建了一个cmyk图像,但是cmyk颜色在photoshop上有所不同!例如:设置ImagickPixel颜色cmyk(0,0,0,100)(黑色),但在photoshop上找到了cmyk(61,61,61,0)。 为什么?以及如何设置正确的cmyk颜色?

1 个答案:

答案 0 :(得分:0)

您需要将色彩空间设置为CMYK,否则您的像素将转换为RGB。

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

http://php.net/manual/en/imagick.setimagecolorspace.php

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

修改

似乎Imagick有一个错误。 在修复之前,您可以尝试使用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;