Dela via


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

Före
bilden före effekten.
Efter
bilden efter transformen.
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

ID2D1Effect