2011-01-28 38 views
3

IMGick PHPモジュールを使用してRGB .gifをCMYK .gifに変換しようとしています。PHP IMagick RGB to 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)

で私は何をしています違う?

EDIT:

私は.JPGで試してみた画像がCMYKに変換されますが、それは否定的に静止画。

EDIT 2:

私は別のサーバー上でPDFファイルを作成する私のスクリプトを実行しようとしたのだが、正常に動作します。

IMagickには既知のバグはありますか? php5ライブラリにいくつかのオプションを設定できますか?

倒立像を私に返しバージョンが正しく

誤った結果を作品1 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

今のところ解決策は異なるバージョンのライブラリを使用することです。

+0

私はこれに対する解決策を持っています。私の答えを見る –

2

GIFは別名「インデックス付き」です。私はcmykとしてgifを保存することはできないと思う。 256色のそれぞれはRGB値ですが、完全なRGB色域を格納することはできません。

+0

私はIllustratorで試してみたところ、.gifをCMYKに変換しましたが、画像を.gifとして保存するとRGBに戻りますので、おそらく正しいでしょう!私は以前の例をJPGでも試してみましたが、それはCMYKに変換されましたが、依然として否定的です。 – Riccardo

+0

CMYK jpgは普遍的にサポートされていません。 Photoshopは機能しますが、すべてのソフトウェアで対応できるわけではありません。また、技術的にはGIFはRGBではなく、インデックスカラーです。あなたは条件を混乱させています。 rgbからcmykに前後に変換するたびに、色の忠実度も失われます。 – horatio

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

質問はImageMagickのコマンドライン "convert"ではなく、php imagickの拡張に関するものだったので、この答えは "not on topic"です。 => -1 – griffin

+0

php imagickは、ImageMagickの単なるラッパーです。コマンドラインオプションを知っていれば、PHPコードで使用できます。 –

+0

ImageMagickライブラリのラッパーであり、変換ツール用のラッパーではありません。それは同じではありません。また、ラッパーはすべてのオプションを公開していません。 https://github.com/mkoppanen/imagick/あなたはソースを見ることができ、cli IMコマンド(imagick.cを参照)を呼び出すだけでなく、機能を個別に公開することもできます。 – griffin

0

私はこの問題を解決: このstackoverflowのページで私の答えをご覧ください: Convert image from RGB to CMYK with Imagick

(ケビン)

をそれはnegateImage()の問題です。簡単に修正できます。

関連する問題