Gammaöverföringseffekt
Använd gammaöverföringseffekten för att mappa färgintensiteterna i en bild med hjälp av en gammafunktion som skapats med hjälp av en amplitud, exponent och förskjutning som du anger för varje kanal.
CLSID för den här effekten är CLSID_D2D1GammaTransfer. Om du vill använda den här effekten lägger du till dxguid.lib i länkningsberoendena.
- Exempelbild
- egenskaper för effekt
- bitmapp för utdata
- Krav
- Relaterade ämnen
Exempelbild
Före |
---|
![]() |
Efter |
![]() |
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();
Den här effekten tillämpar en gammaöverföringsfunktion baserat på ekvationen här.
Indatapixelintensiteten representeras som C och utdatapixelintensiteten som C. C' = Amplitude * CExponent + Offset
Den här effekten fungerar på raka och förmultiplierade alfabilder. Effekten matar ut förmultiplied alfa bitmappar.
Effektegenskaper
Not
För alla kanaler i gammaöverföringsegenskaperna:
- Amplitudvärdet är inte begränsat och är enhetslöst.
- Exponentvärdet är inte begränsat och är enhetslöst.
- Förskjutningsvärdet är inte begränsat och är enhetslöst.
Visningsnamn och indexuppräkning | Beskrivning |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Amplituden för gammaöverföringsfunktionen för den röda kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Exponenten för gammaöverföringsfunktionen för den röda kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Förskjutningen av gammaöverföringsfunktionen för den röda kanalen. Typen är FLOAT. Standardvärdet är 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den röda kanalen. En identitetsöverföringsfunktion används. Om du ställer in detta på FALSE tillämpas gammaöverföringsfunktionen på den röda kanalen. Typen är BOOL. Standardvärdet är FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Amplituden för gammaöverföringsfunktionen för den gröna kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Exponenten för gammaöverföringsfunktionen för den gröna kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Förskjutningen av gammaöverföringsfunktionen för den gröna kanalen. Typen är FLOAT. Standardvärdet är 0,0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den gröna kanalen. En identitetsöverföringsfunktion används. Om du ställer in detta på FALSE tillämpas gammaöverföringsfunktionen på den gröna kanalen. Typen är BOOL. Standardvärdet är FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Amplituden för gammaöverföringsfunktionen för den blå kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Exponenten för gammaöverföringsfunktionen för den blå kanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Förskjutningen av gammaöverföringsfunktionen för den blå kanalen. Typen är FLOAT. Standardvärdet är 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den blå kanalen. En identitetsöverföringsfunktion används. Om du ställer in detta på FALSE tillämpas gammaöverföringsfunktionen på den blå kanalen. Typen är BOOL. Standardvärdet är FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Amplituden för gammaöverföringsfunktionen för alfakanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Exponenten för gammaöverföringsfunktionen för alfakanalen. Typen är FLOAT. Standardvärdet är 1,0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Förskjutningen av gammaöverföringsfunktionen för alfakanalen. Typen är FLOAT. Standardvärdet är 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på alfakanalen. En identitetsöverföringsfunktion används. Om du ställer in detta på FALSE tillämpas gammaöverföringsfunktionen på alfakanalen. Typen är BOOL. Standardvärdet är FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
Om effekten klämmer ihop färgvärden till mellan 0 och 1 innan effekten skickar värdena till nästa effekt i diagrammet. Effekten klämmer fast värdena innan den premultiplies alfa . Om du ställer in detta på TRUE klämmer effekten fast värdena. Om du ställer in detta på FALSE kommer effekten inte att klämma in färgvärdena, men andra effekter och utdataytan kan klämma fast värdena om de inte har tillräckligt hög precision. Typen är BOOL. Standardvärdet är FALSE. |
Utdatabitmapp
Bitmappsstorleken för utdata är samma som bitmappsstorleken för indata.
Krav
Krav | Värde |
---|---|
Lägsta klient som stöds | Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar] |
Lägsta server som stöds | Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar] |
Rubrik | d2d1effects.h |
Bibliotek | d2d1.lib, dxguid.lib |