2016-06-23 95 views

回答

0

您需要將色彩空間設置爲CMYK,否則您的像素將被轉換爲RGB。

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

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

也都確保您使用的是支持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; 
+0

我已經設置色彩和文件類型爲.jpg,Photoshop中顯示圖像是CMYK顏色模式。 –

+0

我編輯了答案來解決imagick bug。 – hcoat

+0

是的,CMYK色彩空間對於ImagickDraw是無效的,除了已修正的bug。您的解決方案適用於我,但如果打印需要更多顏色,則會出現顏色問題。 –