共用方式為


線性傳輸效果

使用線性傳輸效果,使用從您為每個通道提供之值的清單中建立的線性函式,來對應影像的色彩濃度。

此效果的 CLSID CLSID_D2D1LinearTransfer。

範例影像

之前
效果之前的影像。
After
轉換之後的影像。
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);

linearTransferEffect->SetInput(0, bitmap);

linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();

線性傳輸函式會根據您指定的每個通道的斜率和 Y 攔截來建立。 輸出圖元強度 C 是以方程式計算:C' = mC + B,其中 m 是線性函式的斜率,而 B 是線性函式的 Y 攔截。

此效果適用于直接和預先乘法的 Alpha 影像。 效果會輸出預先乘法的 Alpha 點陣圖。

效果屬性

注意

針對線性傳輸屬性的所有通道:

  • Y 攔截未系結且無單位。
  • 斜率未限定且無單位。
顯示名稱和索引列舉 類型和預設值 Description
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
FLOAT
0.0f
紅色通道之線性函式的 Y 攔截。
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
FLOAT
1.0f
紅色通道的線性函式斜率。
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
FALSE
如果您將此設定為 TRUE,效果就不會將傳輸函式套用至紅色通道。 如果您將此設定為 FALSE,效果會將 RedLinearTransfer 函式套用至 Red 通道。
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
FLOAT
0.0f
綠色通道線性函式的 Y 攔截。
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
FLOAT
1.0f
綠色通道線性函式的斜率。
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
FALSE
如果您將此設定為 TRUE,效果就不會將傳輸函式套用至綠色通道。 如果您將此設定為 FALSE,則會將 GreenLinearTransfer 函式套用至綠色通道。
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
FLOAT
0.0f
藍色通道線性函式的 Y 攔截。
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
FLOAT
1.0f
藍色通道的線性函式斜率。
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
false
如果您將此設定為 TRUE,效果就不會將傳輸函式套用至藍色通道。 如果您將此設定為 FALSE,則會將 BlueLinearTransfer 函式套用至 Blue 通道。
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
FLOAT
0.0f
Alpha 色板線性函式的 Y 攔截。
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
FLOAT
0.0f
Alpha 色板線性函式的斜率。
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
false
如果您將此設定為 TRUE,效果就不會將傳送函式套用至 Alpha 色板。 如果您將此設定為 FALSE,則會將 AlphaLinearTransfer 函式套用至 Alpha 通道。
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSE
效果是否會在效果將值傳遞至圖形中的下一個效果之前,將色彩值限制在 0 到 1 之間。 效果會先將值固定在預先乘以 Alpha 之前。
如果您將此設定為 TRUE,效果將會限制值。 如果您將此設定為 FALSE,則效果不會限制色彩值,但其他效果和輸出介面可能會在這些值不是高精確度時加以限制。

規格需求

需求
最低支援的用戶端 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
最低支援的伺服器 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
標頭 d2d1effects.h
程式庫 d2d1.lib、dxguid.lib

ID2D1Effect