2017-02-24 9 views
0

私はImagickを使って奇妙なことを見つけたのですが、color-extractorを開発中です。私は単一の黒の透明なピクセル画像で問題を確認しました。 Gimpの下では、この黒は75%の不透明度と表示されているので、そのアルファ/透明度は25%です。Imagick ALPHA vs OPACITY

私がgetColorValue(\Imagick::COLOR_OPACITY)を実行したとき、私は約0.75をgetColorValue(\Imagick::COLOR_ALPHA)としましたが、これは私が期待したものと正反対でした。

これはImagick(私はphp-imagick 3.4.3-1とImageMagick 6.9.7-9を使用しています)の問題か、または不透明度と透明度の概念を逆にしていますか?

答えて

0

気まぐれではなく、設計通りです。ほとんどの場合、不透明度&アルファは同じデータチャネルを共有し、画像フォーマット/コーダのコンテキストは正しい値を実装します。そして私はストレスがキーであることを強調します。

これはImagick [..]の問題ですか、または私は不透明度と透明度の概念を逆にしていますか?

この2つがどのように実装されているかを見てみましょう。あなたが見ることができるように

PixelGetOpacityQuantum

return(ClampToQuantum(wand->pixel.opacity)); 

PixelGetAlphaQuantum

return(QuantumRange-ClampToQuantum(wand->pixel.opacity)); 

は、両方とも0と量子リミットの間で結合した同じデータを返します。

PixelGetOpacityQuantumは正確なデータ値を返しますが、PixelGetAlphaQuantumは一般的なカラーフォーマット/スペックで予想されるものに調整/反転します。それはすべての文脈です!

+0

私は不透明度と透明度がユニークな値から推測されていることを知っていますが、Imagickは透明度の代わりに不透明度を返します。 – MatTheCat

+0

実際、ImageMagickバージョン7.x.xはImageMagick 6.x.xとは異なります。 http://imagemagick.org/script/porting.phpによると、「私たちは以前の不透明アルファをサポートしています」 –

+0

これは私の質問に答えるかもしれないが、私は実際にその文の意味を理解していない。 – MatTheCat