我通过php imagemagick创建了一个cmyk图像,但是cmyk的颜色在photoshop中是不同的吗? [英] I create a cmyk image by php imagemagick, but cmyk color is different on photoshop?

查看:338
本文介绍了我通过php imagemagick创建了一个cmyk图像,但是cmyk的颜色在photoshop中是不同的吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

NEED HELP! I create a cmyk image by php imagemagick, but cmyk color is different on photoshop! e.g.: set ImagickPixel color cmyk(0,0,0,100)(black), but found cmyk(61,61,61,0) on photoshop. why? and how to set the correct cmyk color?

推荐答案

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

You need to set the colorspace to CMYK, other wise your pixels will be converted to RGB.

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

http://php.net/manual/zh-CN/imagick.setimagecolorspace.php

还要确保您使用的文件类型支持CMYK. (例如.jpg,.tif)

Also all make sure that you are using file type that supports CMYK. ( eg. .jpg, .tif )

修改

似乎Imagick有一个错误. 在此问题修复之前,您可以尝试使用transformImageColorspace来解决此问题.

It seems Imagick has a bug. Until it is fixed you can try and use this work around using 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中是不同的吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆