Dela via


Tabellöverföringseffekt

Använd tabellöverföringseffekten för att mappa färgintensiteterna i en bild med hjälp av en överföringsfunktion som skapats genom att interpolera en lista med värden som du anger.

CLSID för den här effekten är CLSID_D2D1TableTransfer.

Exempelbild

Bilden här visar indata och utdata för tabellöverföringseffekten.

Före
bilden före effekten.
Efter
bilden efter transformen.
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);

tableTransferEffect->SetInput(0, bitmap);

float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);

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

Överföringsfunktionen baseras på en lista över indata V=(V0,V1,V2,V3, V? ,VN) där N är antalet element - 1.

Indatapixelintensiteten representeras som C. Utdatapixelintensiteten, C kan beräknas med ekvationen.

För ett värde C väljer du ett värde k, så att: k/N = C < (k+1)/N

Utdata C beräknas med hjälp av följande ekvation: C = V? + (C - k/N) * N * (V??? 1? - V?)

Den här effekten fungerar på raka och förmultiplierade alfabilder. Effekten matar ut förmultiplied alfa bitmappar.

Så här ser diagrammet över tabellöverföringsfunktionen ut om tabellegenskapen är inställd på [0.0, 0.25, 1.0].

bildpunktsintensitetsdiagram för tabellöverföringsfunktionen.

Effektegenskaper

Not

Värdena för alla kanaler i tabellöverföringsegenskaperna är enhetslösa och har minst 0,0 och högst 1,0.

Visningsnamn och indexuppräkning Typ- och standardvärde Beskrivning
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLOAT[]
{0.0f, 1.0f}
Listan med värden som används för att definiera överföringsfunktionen för den röda kanalen.
RedDisable
D2D1_TABLETRANSFER_PROP_RED_DISABLE
BOOL
FALSK
Om du ställer in detta på TRUE tillämpas inte överföringsfunktionen på den röda kanalen. Om du ställer in detta på FALSE tillämpas funktionen RedTableTransfer på den röda kanalen.
GreenTable
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{0.0f, 1.0f}
Listan med värden som används för att definiera överföringsfunktionen för den gröna kanalen.
GreenDisable
D2D1_TABLETRANSFER_PROP_GREEN_DISABLE
BOOL
FALSK
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den gröna kanalen. Om du ställer in detta på FALSE tillämpas funktionen GreenTableTransfer på den gröna kanalen.
BlueTable
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{0.0f, 1.0f}
Listan med värden som används för att definiera överföringsfunktionen för den blå kanalen.
BlueDisable
D2D1_TABLETRANSFER_PROP_BLUE_DISABLE
BOOL
FALSK
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den blå kanalen. Om du ställer in detta på FALSE tillämpas funktionen BlueTableTransfer på den blå kanalen.
Alfatabell
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{0.0f, 1.0f}
Listan med värden som används för att definiera överföringsfunktionen för Alpha-kanalen.
AlphaDisable
D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSK
Om du ställer in detta på TRUE tillämpas inte överföringsfunktionen på Alpha-kanalen. Om du ställer in detta på FALSE tillämpas funktionen AlphaTableTransfer på Alpha-kanalen.
ClampOutput
D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSK
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.

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