私は、ビットマップでブレンド効果を「乗算」するためのより高速な方法を探していました。使用してみPorterDuff.Multiply
ましたが、アルファチャネルを含むビットマップでは目的の結果が得られず、アルファが0の場合は黒になります。
読んだことがありますが、私が求めている効果(photoshop / gimpの「乗算」レイヤーブレンディング)を実現する唯一の方法は、ピクセルごとに効果を適用することです。
OpenGLはアプリのオプションではありません。
ウィキペディアが提案するブレンドモードのアルゴリズムを正しく理解しているかどうかはわかりません。
TopColour * BottomColour / 255
だろう:
ColorC.R = ColorA.R * ColorB.R / 255;
ColorC.G = ColorA.G * ColorB.G / 255;
ColorC.B = ColorA.B * ColorB.B / 255;
// Alpha = Alpha?
// This example is suggesting Android.Graphics.Color.A/R/G/B is writeable,
// it's not - this is just for readability.
// ColorA = Top, ColorB = Bottom, ColorC = Result
を変換Color.ToArgb
して整数で作業する方が速いでしょうか?そして最後に、乗算効果を正しく計算していますか?正しく表示されません:(
私は立ち往生しています、どんな助けでも大歓迎です。
ありがとうございました。