このためのツールを作成しました:https : //github.com/igrmk/blec。あなたの特定のケースでは、このように使用できます
blec white deadbeef
最後ef
は、アルファチャネルの16進表現です。またはあなたはこのようにそれを使うかもしれません
blec white deadbe:0.75
不透明度を小数で指定します。
提案された公式Y = 255 - P * (255 - X)
は、ガンマ補正のために正確ではないことに注意してください。より正確なものはY = (255^G * (1 - P) + X^G * P) ^ (1 / G)
、Y
結果のRGBコンポーネント値、X
オーバーレイRGBコンポーネント値、P
その不透明度、G
ガンマの値です。ガンマの最も一般的な値は2.2です。数式にガンマ補正を含める理由は、計算時にコンポーネントを線形空間に移動するためです。現在使用されているほとんどすべてのRGBスペースは、8ビットにより多くの色情報を配置するために、非線形の方法で色成分を解釈します。歴史的には、CRTディスプレイの非直線性を補正するために導入されました。
ブレンドにガンマ補正が重要である理由の例を次に示します。この赤い画像を撮りましょう

そしてこの青い画像

最初に完全に不透明な1つを取り、2番目の画像の不透明度をこのようにx軸に等しく設定します

次に、ガンマ補正なしでブレンドします(ガンマ= 1)。
ガンマ補正を有効にして同じことをしましょう(ガンマ= 2.2)

ご覧のように、ガンマ補正を使用しない場合、より局所的な遷移があります。中央の色が明らかに暗い。ガンマ補正を使用すると、遷移と明度がはるかにスムーズになります。
最後のグラデーションは、ディザリングを使用して構築されます。

画像には2色のピクセルしか含まれていませんが、青の確率は左の0から右の1に線形的に増加します。結果は、明度と遷移色の点で、ガンマ= 2.2のイメージに非常に近く見えます。遠くから見てみてください。そして、これはおそらく2色をブレンドすることから期待することです。この例では、文字通りそれらをaquarelleのように混合してブレンドします。そのため、特に不透明度が0.5に近い場合、ガンマはブレンドにとって非常に重要です。
最後に、不透明な赤と青のブレンドと、ガンマ補正の効果が最大になる0.5のアルファを比較してみましょう。

最初の画像はガンマ補正を使用せず、2番目の画像は2.2のガンマを使用し、3番目の画像はディザリングを使用しています。ご覧のとおり、最初の1つは他の2つとは大きく異なります。したがって、常にガンマ補正を使用することをお勧めします。適切な画像エディタを使用している場合は、おそらく安全であり、ガンマ補正はデフォルトで有効になっています。
ディザリングとブレンディングを比較するには、100%スケールで画像を見て、画像のすべてのピクセルが画面の正確に1ピクセルを占めるようにする必要があることに注意してください。これは、携帯電話を使用する場合にはほとんど当てはまりません。異なるスケールで画像を見る場合、おそらくアンチエイリアス処理された画像を見るでしょう。アンチエイリアスは、現時点ではガンマ補正を使用しないため、非常に不正確な結果になる可能性があります。Android 10のChrome 83とiOS 13の最新のSafariで確認できます。正しい方法で実行するには、リソースが多すぎると思います。したがって、非常にコントラストのあるノイズの多い画像を見ると、ディスプレイのガンマが実質的に1.8に減少します。
すべてのディスプレイが適切に調整されているわけではないことにも注意してください。ガンマが2.2の画像とディザリングが異なる画像を生成する画像のように感じる場合は、悪いニュースがあります。監視しているガンマはhttp://web.mit.edu/jmorzins/www/gamma/adilger/gamma.htmlで確認できます。ただし、モバイルデバイスを使用する場合は、アプリケーションを使用することをお勧めします。アンチエイリアスを使用すると、結果が非常に不正確になる可能性があるためです。
これらの写真を取得するためのコードはhttps://pastebin.com/fHYtWrMbです。