3

1 つの均一な半透明の画像を表示してから、この画像を「フェード アウト」し、同じ透明度の別の画像に徐々に置き換えながら、移行中に結合された透明度を一定のレベルに維持したい場合、どの透明度をどのように決定するのですか?イメージを描くには?

試行錯誤により、さまざまなアルファの透明な画像を重ねて描画し、下のグラフを思いつきました.1つの軸に画像Aの透明度、もう1つの軸に画像Bの透明度を示しています。「isoalpha」ラインは、ライン全体で同じアルファになるアルファの組み合わせを示しています。各線は異なるレベルのアルファ用で、左上が完全に透明です。

私が探している数式は、alphaA + alphaB == alphaTarget を使用した直線的な遷移ではないことがわかります。

私が探している数式は何ですか?

アルファクロスフェードグラフ

X 軸 - 画像 B のアルファ (0-255 lr)。Y 軸 - 画像 A のアルファ (下方向に 0-255)。

4

1 に答える 1

8

透明度が倍増します。

transparency_new = transparency_a * transparency_b

ただし、不透明度 (アルファ) は透明度の逆であるため:

1 - opacity_new = (1 - opacity_a) * (1 - opacity_b)

また:

opacity_new = 1 - (1 - opacity_a) * (1 - opacity_b)

0 から 1.0 ではなく 0 から 255 のアルファ ランニングを使用する場合は、必要に応じてスケーリングします。

alpha_new = 255 * (1 - (1 - alpha_a / 255) * (1 - alpha_b / 255))

上記の式と Grapher.app を使用してグラフを複製しました。

ここに画像の説明を入力

于 2011-06-17T13:23:54.357 に答える