質問

RGB .GIFをImagICK PHPモジュールを使用して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を作成するスクリプトを実行しようとしましたが、正常に動作します。

Imagicickに既知のバグはありますか? PHP5ライブラリに設定するオプションはありますか?

私に返されたバージョンが逆の画像が正しく動作するものよりも新しいバージョンです

間違った結果PHP 5.3.3 Imagicick 3.0.0RC1 ImageMagick 6.6.2

正しい結果PHP 5.2.10 Imagicick 2.1.1 ImageMagick 6.5.1

役に立ちましたか?

解決

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

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

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

他のヒント

GIFは、「インデックス化」という256色形式です。 GIFをCMYKとして保存できるとは思いません。 256色のそれぞれはRGB値ですが、完全なRGB範囲を保存することはできません。

これを試して:

$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();

この問題を解決しました。このStackOverFlowページで私の答えをご覧ください。ImagiCKを使用して、RGBからCMYKに画像を変換します

(ケビン)

NegateImage()の問題です。簡単に修正できます。

こちらをご覧ください http://imagemagick.org/usage/formats/#color_profile

cmyk_image.jpg -colorspace rgb rgb_image.jpgを変換します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top