web-dev-qa-db-ja.com

PorterDuff.ModeはAndroidグラフィックスで何を意味しますか。

AndroidグラフィックスでのPorterDuff.Modeの意味を知りたいです。

私はそれが転送モードであることを知っています。

また、DST_IN、Multiplyなどの属性があることも知っています。

140
rogerstone

Googleエンジニアによるイラスト付きの優れた記事を次に示します。

http://ssp.impulsetrain.com/porterduff.html

PorterDuffは、画像が互いに重なり合った「不規則な形の段ボール」であるかのように画像を結合する方法、および重なり合う部分をブレンドするスキームとして説明されています。

画像を構成するデフォルトのAndroidの方法は PorterDuff.Mode.SRC_OVER で、これはソース画像/色の描画に相当します 以上 ターゲット画像。言い換えると、期待どおりの処理を行い、ソース画像(描画中の画像)をデスティネーション画像(キャンバス)の上に描画します。デスティネーション画像は、ソース画像のアルファで定義された程度まで透けて見えます。

PorterDuff infographic from the article

以下のキーを使用して、 Android docs が他のモードの説明に使用する代数を理解できます(同様の詳細な説明については the article を参照してください)条項)。

  •  ソースアルファ
  • Sc ソースカラー
  •  宛先アルファ
  • Dc 宛先色

ここで、alphaは値[0..1]であり、色はチャネルごとに1回置換されます(したがって、赤、緑、青のそれぞれに対して式を1回使用します)

結果の値は、次のように角括弧で囲まれたペアとして指定されます。

[<alpha-value>,<color-value>]

ここで、alpha-valuecolor-valueは、それぞれ結果のアルファシャネルと各カラーシャネルを生成するための式です。

314
Phasmal

アルファ値に基づいて画像を構成する方法を定義します。詳細はこちら http://en.wikipedia.org/wiki/Alpha_compositing

4
yoah