3

IMagick PHP モジュールを使用して、RGB .gif を CMYK .gif に変換しようとしています。

私はこのコードを書きました

$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

4

4 に答える 4

3

エラーは実際にはバグです;)

私はそれを報告し、他の人が私の恐怖を確認し、現在、修正のために開発者に割り当てられています: http://pecl.php.net/bugs/bug.php?id=22184

現時点での解決策は、別のバージョンのライブラリを使用することです。

于 2011-10-05T10:14:55.460 に答える
2

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

于 2011-01-28T19:28:52.803 に答える
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();
于 2011-04-04T14:40:05.127 に答える
-2

ここを参照してくださいhttp://imagemagick.org/Usage/formats/#color_profile

convert cmyk_image.jpg -colorspace rgb rgb_image.jpg

于 2011-04-12T10:59:26.040 に答える