次の方法で共有


D2D1_ALPHA_MODE列挙 (dcommon.h)

ビットマップまたはレンダー ターゲットのアルファ値の処理方法を指定します。

構文

typedef enum D2D1_ALPHA_MODE {
  D2D1_ALPHA_MODE_UNKNOWN = 0,
  D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
  D2D1_ALPHA_MODE_STRAIGHT = 2,
  D2D1_ALPHA_MODE_IGNORE = 3,
  D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} ;

定数

 
D2D1_ALPHA_MODE_UNKNOWN
値: 0
アルファ値が意味を持たない可能性があります。
D2D1_ALPHA_MODE_PREMULTIPLIED
値: 1
アルファ値は事前に乗算されています。 各色は、最初にアルファ値でスケーリングされます。 アルファ値自体は、直線アルファとプリ乗算アルファの両方で同じです。 通常、アルファ チャネル値より大きいカラー チャネル値はありません。 事前乗算形式のカラー チャネル値がアルファ チャネルよりも大きい場合、標準のソースオーバー ブレンド演算では加法ブレンドが行われます。
D2D1_ALPHA_MODE_STRAIGHT
値: 2
アルファ値が事前に乗算されていません。 アルファ チャネルは、色の透明度を示します。
D2D1_ALPHA_MODE_IGNORE
値: 3
アルファ値は無視されます。
D2D1_ALPHA_MODE_FORCE_DWORD
値: 0xffffffff

注釈

D2D1_ALPHA_MODE列挙は、レンダー ターゲットまたはビットマップのアルファ モードを指定するために、D2D1_PIXEL_FORMAT列挙体と共に使用されます。 レンダー ターゲットとビットマップが異なると、異なるアルファ モードがサポートされます。 一覧については、「 サポートされているピクセル形式とアルファ モード」を参照してください。

直線と前乗算アルファの違い

直線アルファを使用して RGBA 色を記述する場合、色のアルファ値はアルファ チャネルに格納されます。 たとえば、60% 不透明な赤色を記述するには、次の値を使用します。 (255、0、0、255 * 0.6) = (255、0、0、153)。 255 の値は完全な赤を示し、153 (255 の 60%) は、色の不透明度が 60% であることを示します。

前乗算アルファを使用して RGBA 色を記述する場合、各色にアルファ値 (255 * 0.6、0 * 0.6、0 * 0.6、255 * 0.6) = (153、0、0、153) が乗算されます。

レンダー ターゲットのアルファ モードに関係なく、 D2D1_COLOR_F 値は常に直線アルファとして解釈されます。 たとえば、事前乗算アルファ モードを使用するビットマップで使用する ID2D1SolidColorBrush の色を指定する場合、ビットマップで直線アルファを使用する場合と同じように色を指定します。 ブラシでペイントすると、Direct2D によって色が変換先の形式に変換されます。

レンダー ターゲットのアルファ モード

アルファ モードの設定に関係なく、レンダー ターゲットのコンテンツは透過性をサポートします。 たとえば、D2D1_ALPHA_MODE_IGNOREのアルファ モードでレンダー ターゲットを持つ部分的に透明な赤い四角形を描画 すると、期待どおりに四角形はピンクで表示されます (背景が白の場合)。

アルファ モードが CreateCompatibleRenderTarget メソッドのときに部分的に透明な赤い四角形を描画する場合は、透過性をサポートするビットマップを作成します。

ClearType モードとアルファ モード

レンダー ターゲットに D2D1_ALPHA_MODE_IGNORE 以外のアルファ モードを指定した場合、テキストアンチエイリアシング モードは CLEARTYPE D2D1_TEXT_ANTIALIAS_MODE から GRAYSCALE D2D1_TEXT_ANTIALIAS_MODEに自動的に変更されます。 ( D2D1_ALPHA_MODE_UNKNOWNのアルファ モードを指定すると、レンダー ターゲットの種類に応じて、Direct2D によってアルファが設定されます。レンダー ターゲットごとに D2D1_ALPHA_MODE_UNKNOWN 設定が解決される内容の一覧については、「 サポートされているピクセル形式とアルファ モード の概要」を参照してください)。

SetTextAntialiasMode メソッドを使用すると、テキストアンチエイリアス モードを CLEARTYPE D2D1_TEXT_ANTIALIAS_MODEに戻すことができますが、ClearType テキストを透明サーフェスにレンダリングすると、予期しない結果が生じる可能性があります。 ClearType テキストを透明レンダー ターゲットにレンダリングする場合は、次の 2 つの手法のいずれかを使用することをお勧めします。

  • PushAxisAlignedClip メソッドを使用して、テキストがレンダリングされる領域にレンダー ターゲットをクリップしてから、Clear メソッドを呼び出して不透明な色を指定し、テキストをレンダリングします。
  • DrawRectangle を使用して、テキストがレンダリングされる領域の背後に不透明な四角形を描画します。

要件

要件
サポートされている最小のクライアント Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
Header dcommon.h (D2d1.h を含む)

こちらもご覧ください

サポートされているピクセル形式とアルファ モード