2011-01-28 144 views
3

我想使用IMagick PHP模塊將RGB .gif轉換爲CMYK .gif。PHP的IMagick RGB到CMYK反轉?

我已經寫了這段代碼

$i = new Imagick('mosaique.gif'); 
$i->setImageColorspace(Imagick::COLORSPACE_CMYK); 
$i->setImageFormat('gif'); 
$i->writeImage('mosaique-cmyk.gif'); 

但是得到的 「MOSAIQUE-cmyk.gif」 仍然是一個RGB ......但反色(O_O)

我在做什麼錯誤?

編輯:

我試着.jpg格式和圖像轉換爲CMYK,但它的負面劇照。

編輯2:

我試着運行我的腳本使其他服務器上的.pdf和它工作正常。

IMagick中是否有任何已知的錯誤? 是否有一些選項可以在php5庫中設置?

返回我倒像是比正常工作

錯誤的結果 PHP 5.3.3 IMagick 3.0.0RC1 ImageMagick的6.6.2

正確的結果 PHP 5.2的一個新版本.10 IMagick 2.1.1 ImageMagick 6.5.1

回答

3

其實這是一個錯誤的錯誤;)

我報告了,其他一些r已經證實了我的恐懼,現在它已被分配給開發人員進行修復:http://pecl.php.net/bugs/bug.php?id=22184

此時,解決方案是使用不同版本的庫。

2

GIF是一種256位色彩格式,也稱爲「索引」。我不認爲可以將gif保存爲cmyk。 256色中的每一個都是RGB值,但不能存儲完整的RGB色域。

+0

我試過使用Illustrator,它在CMYK上轉換你的.gif,但是當它將圖像保存爲.gif時,它回到了RGB,所以你可能是對的!我也嘗試了我以前的JPG格式的示例,它已轉換爲CMYK,但它仍處於否定狀態:| – Riccardo 2011-01-29 16:16:30

+0

CMYK jpg也沒有普遍支持。 Photoshop可以,但並非所有軟件都可以處理它。此外,技術上GIF不是RGB,而是索引顏色。你混淆了這些條款。每當你從rgb到cmyk來回轉換時,你也會失去顏色保真度。 – horatio 2011-02-01 17:39:51

1

試試這個:

$im->stripImage(); 
$icc_cmyk_profile_path='image_functions/cmyk_icc_profiles/USWebUncoated.icc'; 
//[http://www.mattbeals.com/icc/][1] 

$icc_cmyk = file_get_contents($icc_cmyk_profile_path); 
$im->profileImage('icc', $icc_cmyk); 
unset($icc_cmyk); 
$colorspace=$im->getImageColorspace();     

if ($colorspace==12) { 
    echo "CMYK"; 
} 

$im->stripImage(); 

$im->writeImage($destination);  
$im->clear(); 
$im->destroy(); 
-2

看到這裏http://imagemagick.org/Usage/formats/#color_profile

轉換cmyk_image.jpg -colorspace RGB rgb_image.jpg

+0

這個問題是關於php imagick擴展,而不是關於ImageMagick的命令行「轉換」,所以這個答案是「不在話題上」。 => -1 – griffin 2013-06-12 16:39:28