共用方式為


Gamma 傳輸效果

使用 gamma 傳輸效果,使用使用您為每個通道提供的幅度、指數和位移所建立的 gamma 函式,來對應影像的色彩濃度。

此效果的 CLSID CLSID_D2D1GammaTransfer。 若要使用此效果,請將 dxguid.lib 新增至連結器相依性。

範例影像

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

gammaTransferEffect->SetInput(0, bitmap);

gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);

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

此效果會根據這裡的方程式套用 gamma 傳輸函式。

輸入圖元強度會以 C 表示,輸出圖元濃度則表示為 C'。 C' = Amplitude * C指數 + 位移

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

效果屬性

注意

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

  • 幅度值未限定且無單位。
  • 指數值不會系結,而且為無單位值。
  • 位移值未限定且無單位。
顯示名稱和索引列舉 描述
RedAmplitude
D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE
紅色通道的 gamma 傳輸函式的幅度。 此類型為 FLOAT。
預設值為 1.0f。
RedExponent
D2D1_GAMMATRANSFER_PROP_RED_EXPONENT
紅色通道的 gamma 傳輸函式指數。 此類型為 FLOAT。
預設值為 1.0f。
RedOffset
D2D1_GAMMATRANSFER_PROP_RED_OFFSET
紅色通道的 gamma 傳輸函式位移。 此類型為 FLOAT。
預設值為 0.0f。
RedDisable
D2D1_GAMMATRANSFER_PROP_RED_DISABLE
如果您將此設定為 TRUE,則不會將傳輸函式套用至 Red 通道。 會使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將 gamma 傳輸函式套用至紅色通道。 此類型為 BOOL。
預設值為 FALSE。
GreenAmplitude
D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE
綠色通道的 gamma 傳輸函式的幅度。 此類型為 FLOAT。
預設值為 1.0f。
GreenExponent
D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT
綠色通道的 gamma 傳輸函式指數。 此類型為 FLOAT。
預設值為 1.0f。
GreenOffset
D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET
綠色通道的 gamma 傳輸函式位移。 此類型為 FLOAT。
預設值為 0.0f。
GreenDisable
D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE
如果您將此設定為 TRUE,則不會將傳輸函式套用至綠色通道。 會使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將 gamma 傳輸函式套用至綠色通道。 此類型為 BOOL。
預設值為 FALSE。
BlueAmplitude
D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE
藍色通道的 gamma 傳輸函式的幅度。 此類型為 FLOAT。
預設值為 1.0f。
BlueExponent
D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT
藍色通道的 gamma 傳輸函式指數。 此類型為 FLOAT。
預設值為 1.0f。
BlueOffset
D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET
藍色通道的 gamma 傳輸函式位移。 此類型為 FLOAT。
預設值為 0.0f。
BlueDisable
D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE
如果您將此設定為 TRUE,則不會將傳輸函式套用至藍色通道。 會使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將 gamma 傳輸函式套用至藍色通道。 此類型為 BOOL。
預設值為 FALSE。
AlphaAmplitude
D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE
Alpha 色板的 gamma 傳輸函式的幅度。 此類型為 FLOAT。
預設值為 1.0f。
AlphaExponent
D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT
Alpha 色板的 gamma 傳輸函式指數。 此類型為 FLOAT。
預設值為 1.0f。
AlphaOffset
D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET
Alpha 色板的 gamma 傳輸函式位移。 此類型為 FLOAT。
預設值為 0.0f。
AlphaDisable
D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE
如果您將此設定為 TRUE,則不會將傳輸函式套用至 Alpha 色板。 會使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將 gamma 傳輸函式套用至 Alpha 色板。 此類型為 BOOL。
預設值為 FALSE。
ClampOutput
D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT
效果是否會在效果將值傳遞至圖形中的下一個效果之前,將色彩值限制在 0 到 1 之間。 效果會先將值固定在預先乘以 Alpha 之前。
如果您將此設定為 TRUE,效果將會限制值。 如果您將此設定為 FALSE,則效果不會限制色彩值,但其他效果和輸出介面可能會在這些值不是高精確度時加以限制。
此類型為 BOOL。
預設值為 FALSE。

輸出點陣圖

輸出點陣圖大小與輸入點陣圖大小相同。

規格需求

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

ID2D1Effect