2016-06-23 2 views
0

НУЖНА ПОМОЩЬ! Я создаю изображение cmyk по php imagemagick, но цвет cmyk отличается от Photoshop! Например: установите цвет CMYK ImagickPixel (0,0,0,100) (черный), но на фотошопе найдено cmyk (61,61,61,0). Почему? и как установить правильный цвет cmyk?Я создаю образ cmyk от php imagemagick, но цвет cmyk отличается от Photoshop?

+0

вот мой код: http://liudonghua.net/use-imagemagick-to-create-cmyk-image-in-php/ –

ответ

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; 
+0

Я установил и цветовой тип файла .jpg, фотошоп показывает образ как цвет CMYK. –

+0

Я отредактировал ответ, чтобы обратиться к ошибке. – hcoat

+0

Да, цветовое пространство CMYK недопустимо для ImagickDraw, за исключением исправленной ошибки. Ваше решение работает для меня, но если для печати требуется больше цветов, возникает проблема цвета. –

Смежные вопросы