共用方式為


D2D1_ALPHA_MODE列舉 (dcommon.h)

指定應如何處理位圖或轉譯目標的Alpha值。

Syntax

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
Alpha 值可能沒有意義。
D2D1_ALPHA_MODE_PREMULTIPLIED
值: 1
Alpha 值已被預乘。 每個色彩都會先依 Alpha 值縮放。 Alpha 值本身在直線和預乘 Alpha 中都相同。 一般而言,沒有色彩色板值大於Alpha色板值。 如果預先乘法格式的色彩色板值大於Alpha色板,則標準來源過度混合數學會產生加法混合。
D2D1_ALPHA_MODE_STRAIGHT
值: 2
Alpha 值尚未預先乘法。 Alpha 色板表示色彩的透明度。
D2D1_ALPHA_MODE_IGNORE
值: 3
Alpha 值會被忽略。
D2D1_ALPHA_MODE_FORCE_DWORD
值: 0xffffffff

備註

D2D1_ALPHA_MODE列舉會與D2D1_PIXEL_FORMAT列舉搭配使用,以指定轉譯目標或位圖的 Alpha 模式。 不同的轉譯目標和位圖支援不同的Alpha模式。 如需清單,請參閱 支援的圖元格式和 Alpha 模式

直線與預乘Alpha之間的差異

使用直接 Alpha 描述 RGBA 色彩時,色彩的 Alpha 值會儲存在 Alpha 色板中。 例如,若要描述 60% 不透明紅色,您可以使用下列值: (255、0、0、0、255 * 0.6) = (255、0、0、153) 。 255 值表示全紅色,而 153 (60% 為 255) 表示色彩應該不透明度為 60%。

使用預乘 Alpha 描述 RGBA 色彩時,每個色彩都會乘以 Alpha 值: (255 * 0.6、0*0.6、0*0.6、255 * 0.6) = (153、0、0、153) 。

無論轉譯目標的 Alpha 模式為何, D2D1_COLOR_F 值一律會解譯為直接 Alpha。 例如,指定 ID2D1SolidColorBrush 的色彩以搭配使用預先乘法 Alpha 模式的點陣圖時,您會指定色彩,就像使用直接 Alpha 一樣。 當您使用筆刷繪製時,Direct2D 會將色彩轉譯為您的目的格式。

轉譯目標的Alpha模式

無論Alpha模式設定為何,轉譯目標的內容都支援透明度。 例如,如果您使用alpha模式為 D2D1_ALPHA_MODE_IGNORE的轉譯目標繪製部分透明紅色矩形,則如果背景為白色) ,則矩形會以白色) 顯示 (。

如果您在 Alpha 模式為 CreateCompatibleRenderTarget 方法時繪製部分透明的紅色矩形,) 建立支持透明度的位圖。

ClearType 和 Alpha 模式

如果您為轉譯目標指定 D2D1_ALPHA_MODE_IGNORE 以外的 Alpha 模式,文字反鋸齒模式會自動從 D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE 變更為 D2D1_TEXT_ANTIALIAS_MODE GRAYSCALE。 (當您指定 D2D1_ALPHA_MODE_UNKNOWN Alpha 模式時,Direct2D 會根據轉譯目標的類型為您設定 Alpha。如需每個轉譯目標 D2D1_ALPHA_MODE_UNKNOWN 設定解析為 的專案清單,請參閱 支援的圖元格式和 Alpha 模式 概觀。)

您可以使用 SetTextAntialiasMode 方法將文字反鋸齒模式變更回 D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE,但將 ClearType 文字轉譯為透明介面可能會產生無法預期的結果。 如果您想要將 ClearType 文字轉譯為透明轉譯目標,建議您使用下列兩種技術之一。

  • 使用 PushAxisAlignedClip 方法,將轉譯目標裁剪到將轉譯文字的區域,然後呼叫 Clear 方法並指定不透明色彩,然後轉譯文字。
  • 使用 DrawRectangle 在將轉譯文字的區域後面繪製不透明的矩形。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
標頭 dcommon.h (包含 D2d1.h)

另請參閱

支援的像素格式和 Alpha 模式