1

パフォーマンス上の理由から(php経由での実行は時々信じられないほど遅い)私はほとんどのimagemagickコマンドをphpのimagickに変換しています。

ここで-channelと-levelに関するドキュメントを読みました:http: //www.imagemagick.org/script/command-line-options.php#channelhttp://www.imagemagick.org/script/command-line- options.php#level

特に黒、白、ガンマ値に関して:

カンマで区切られた1つ、2つ、または3つの値が与えられた場合:黒点、白点、ガンマ(例:10,250,1.0または2%、98%、0.5)。黒と白のポイントの範囲は0からQuantumRange、または0から100%です。白色点を省略すると、中心のコントラストが変化するように(QuantumRange --black_point)に設定されます。文字列のどこかに%記号が存在する場合、黒と白の両方のポイントがフルカラー範囲のパーセンテージになります。ガンマは値のガンマ調整を行います。省略した場合、デフォルトの1.0(ガンマ補正なし)が想定されます。

通常の使用法(-level)では、元の画像の指定された「black_point」値がゼロ(または黒)に設定され、指定された「white_point」値がQuantumRange(または白)に設定されるように画像値が引き伸ばされます。これにより、画像のコントラストを直接調整できます。結果の画像の「ガンマ」が調整されます。

これに基づいて私は変更しようとしました

convert a.jpg -channel R -level 33% -channel G -level 33% b.jpg

$quantumRange = $image->getQuantumRange();
//get the 33%
$blackPoint = $quantumRange ['quantumRangeLong']/100*33;
//to get the middle ground between black and white - also tried with $quantumRange['quantumRangeLong']
$whitePoint = $quantumRange ['quantumRangeLong'] - $blackPoint;
$gamma = 1;

$image->levelImage ( $blackPoint , $gamma , $whitePoint , Imagick::CHANNEL_RED);
$image->levelImage ( $blackPoint , $gamma , $whitePoint , Imagick::CHANNEL_GREEN);

しかし、結果はかなり異なって見えます... imagickがそのチャネルレベルをどのように実行するかを指摘できる専門家はいますか?

4

1 に答える 1

3

私は自分のコンピューターでそれを試しましたが、PHPとコマンドラインのバージョンは非常に似ています。

オリジナル
オリジナル

コマンドライン
コマンドライン

ここに画像の説明を入力してください
PHP

スクリプトに問題はありませんが、動作が異なるかどうかを確認してみてください。

$image = new Imagick();
$quantum_range = $image->getQuantumRange();
$max_quantum = $quantum_range["quantumRangeLong"];
$image->readImage("rose.jpg");
$black_point = $max_quantum * .33;
$white_point = $max_quantum - $black_point;
$gamma = 1.0;
$image->levelImage($black_point, $gamma, $white_point, Imagick::CHANNEL_RED);
$image->levelImage($black_point, $gamma, $white_point, Imagick::CHANNEL_GREEN);
header("Content-type: image/jpeg");
echo $image;
$image->writeImage("php.jpg");

それでも機能しない場合は、ImageMagickとPHPのImageMagickモジュールの私のバージョンを次に示します。

$ convert -version
Version: ImageMagick 6.7.9-10 2012-10-10 Q16 http://www.imagemagick.org
Array ( [versionNumber] => 1632
        [versionString] => ImageMagick 6.6.0-4 2012-05-03 Q16
                           http://www.imagemagick.org )
于 2013-01-20T17:13:59.967 に答える