Java の AWT では、アルファ(不透明度) は 0 (完全に透明) から 255 (完全に不透明) までの値を使用して表現されます。フェード効果を実装するなど、アルファ値を正しくブレンドするにはどうすればよいですか? 子要素のアルファが親に対して 200 で、親要素のアルファが 100 の場合、最終的に描画されるピクセルのアルファは?
2090 次
2 に答える
2
ピクセルのアルファ値をどの程度制御できますか? どのようなフェード効果をお探しですか?
グラフィックス システムが異なれば、既定で異なるアルファ操作が実装される場合があります。最も直感的で、通常はデフォルトであると思います:
DestColor = DestColor * (1 - SourceAlpha) + SourceColor * SourceAlpha
DestAlpha left as-is
このスキームを使用すると、ソース アルファは宛先サーフェスのカラー コンポーネントにのみ影響し、宛先サーフェス アルファ自体には影響しません。
AWT がどのように動作するか、またはアルファ ブレンディング操作をある程度制御できるかどうかはわかりませんが、理論上、アルファはさまざまな方法で適用できます。
于 2011-04-25T23:44:37.117 に答える
1
私はこれが正しいと思います:child
手段の 200 のアルファ
blended = 200/255 * child + (1 - 200/255) * parent
ピクセル値についてはこれに慣れていますが、同じ方法でアルファ チャネルを補間することもできます。の「実際の」アルファ値child
は 255 であると仮定する必要があります。
blended = 255 * 200/255 + 100 * (1 - 200/255)
child.alpha parent.alpha
これは約 222 です。
この質問も役に立つかもしれません。
于 2011-04-25T23:34:21.500 に答える