我用 php imagemagick 创建了一个 cmyk 图像,但是 photoshop 上的 cmyk 颜色不同?
I create a cmyk image by php imagemagick, but cmyk color is different on photoshop?
需要帮助!
我用 php imagemagick 创建了一个 cmyk 图像,但是 cmyk 颜色在 photoshop 上是不同的!例如:设置 ImagickPixel 颜色 cmyk(0,0,0,100)(黑色),但在 photoshop 上找到 cmyk(61,61,61,0)。
为什么?以及如何设置正确的 cmyk 颜色?
您需要将色彩空间设置为 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;
需要帮助! 我用 php imagemagick 创建了一个 cmyk 图像,但是 cmyk 颜色在 photoshop 上是不同的!例如:设置 ImagickPixel 颜色 cmyk(0,0,0,100)(黑色),但在 photoshop 上找到 cmyk(61,61,61,0)。 为什么?以及如何设置正确的 cmyk 颜色?
您需要将色彩空间设置为 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;