伽瑪轉移效果
使用伽瑪傳輸效果,使用您為每個通道提供的幅度、指數和位移所建立的 gamma 函式,來對應影像的色彩強度。
這個效果的 CLSID 是CLSID_D2D1GammaTransfer。 若要使用此效果,請將 dxguid.lib 新增至連結器相依性。
範例影像
以前 |
---|
在效果之前 ![]() |
後 |
在轉換之後 ![]() |
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();
這個效果會根據這裡的方程式套用伽瑪轉移函式。
輸入圖元強度會以 C 表示,輸出圖元強度為 C'。 C' = Amplitude * C指數 + 位移
這個效果適用於直線和預乘Alpha影像。 效果會輸出預乘Alpha位圖。
效果屬性
注意
對於 gamma 傳輸屬性的所有通道:
- 幅度值未限定且無單位。
- 指數值未系結且無單位。
- 位移值未限定且無單位。
顯示名稱和索引列舉 | 描述 |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Red 通道的伽瑪傳輸函式幅度。 此類型為 FLOAT。 預設值為 1.0f。 |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
紅色通道的伽瑪傳輸函式指數。 此類型為 FLOAT。 預設值為 1.0f。 |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Red 通道伽瑪傳輸函式的位移。 此類型為 FLOAT。 預設值為 0.0f。 |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
如果您將此設定為TRUE,則不會將傳輸函式套用至 Red 通道。 使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將伽瑪傳輸函式套用至 Red 通道。 此類型為 BOOL。 預設值為 FALSE。 |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
綠色通道的伽瑪傳輸函式幅度。 此類型為 FLOAT。 預設值為 1.0f。 |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
綠色通道伽瑪轉移函式的指數。 此類型為 FLOAT。 預設值為 1.0f。 |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
綠色通道伽瑪傳輸函式的位移。 此類型為 FLOAT。 預設值為 0.0f。 |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
如果您將此設定為TRUE,則不會將傳輸函式套用至綠色通道。 使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將伽瑪傳輸函式套用至綠色通道。 此類型為 BOOL。 預設值為 FALSE。 |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Blue 通道的伽瑪傳輸函式幅度。 此類型為 FLOAT。 預設值為 1.0f。 |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Blue 通道的伽瑪轉移函式指數。 此類型為 FLOAT。 預設值為 1.0f。 |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Blue 通道的 gamma 傳輸函式位移。 此類型為 FLOAT。 預設值為 0.0f。 |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
如果您將此設定為TRUE,則不會將傳輸函式套用至藍色通道。 使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將伽瑪傳輸函式套用至藍色通道。 此類型為 BOOL。 預設值為 FALSE。 |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Alpha 色板的伽瑪傳輸函式幅度。 此類型為 FLOAT。 預設值為 1.0f。 |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Alpha 色板的伽瑪轉移函數指數。 此類型為 FLOAT。 預設值為 1.0f。 |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Alpha 色板的伽瑪轉移函式位移。 此類型為 FLOAT。 預設值為 0.0f。 |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
如果您將此設定為TRUE,則不會將傳輸函式套用至Alpha色板。 使用身分識別傳輸函式。 如果您將此設定為 FALSE,則會將伽瑪傳輸函式套用至 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 |