Condividi tramite


Effetto trasferimento tabella

Usare l'effetto di trasferimento della tabella per eseguire il mapping delle intensità di colore di un'immagine usando una funzione di trasferimento creata dall'interpolazione di un elenco di valori specificati.

Il CLSID per questo effetto è CLSID_D2D1TableTransfer.

Immagine di esempio

L'immagine mostra l'input e l'output dell'effetto di trasferimento della tabella.

Prima
immagine prima dell'effetto.
After
l'immagine dopo la trasformazione.
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();

La funzione di trasferimento si basa su un elenco di input V=(V0,V1,V2,V3, V? ,VN) dove N è il numero di elementi - 1.

L'intensità dei pixel di input è rappresentata come C. L'intensità dei pixel di output, C può essere calcolata con l'equazione.

Per un valore C, selezionare un valore k, in modo che: k/N = C < (k+1)/N

L'output C viene calcolato usando l'equazione seguente: C' = V? + (C - k/N) * N * (V??? 1? - V?)

Questo effetto funziona sulle immagini alfa dritte e premoltiplicate. L'effetto restituisce bitmap alfa premoltiplicate.

Ecco l'aspetto del grafico della funzione di trasferimento della tabella se la proprietà table è impostata su [0.0, 0.25, 1.0].

grafico di intensità pixel per la funzione di trasferimento della tabella.

Proprietà dell'effetto

Nota

I valori di tutti i canali delle proprietà di trasferimento della tabella sono unitless e hanno un minimo di 0,0 e un massimo di 1,0.

Enumerazione nome visualizzato e indice Tipo e valore predefinito Descrizione
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLOAT[]
{0.0f, 1.0f}
Elenco di valori utilizzati per definire la funzione di trasferimento per il canale Rosso.
RedDisable
D2D1_TABLETRANSFER_PROP_RED_DISABLE
BOOL
FALSE
Se si imposta questa proprietà su TRUE, l'effetto non applica la funzione di trasferimento al canale Rosso. Se si imposta questa proprietà su FALSE, la funzione RedTableTransfer viene applicata al canale Red.
GreenTable
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{0.0f, 1.0f}
Elenco di valori utilizzati per definire la funzione di trasferimento per il canale Verde.
GreenDisable
D2D1_TABLETRANSFER_PROP_GREEN_DISABLE
BOOL
FALSE
Se si imposta questa proprietà su TRUE, l'effetto non applica la funzione di trasferimento al canale Verde. Se si imposta questa proprietà su FALSE, la funzione GreenTableTransfer viene applicata al canale Verde.
BlueTable
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{0.0f, 1.0f}
Elenco di valori utilizzati per definire la funzione di trasferimento per il canale Blue.
BlueDisable
D2D1_TABLETRANSFER_PROP_BLUE_DISABLE
BOOL
FALSE
Se si imposta questa proprietà su TRUE, l'effetto non applica la funzione di trasferimento al canale Blue. Se si imposta questa proprietà su FALSE, la funzione BlueTableTransfer viene applicata al canale Blue.
AlphaTable
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{0.0f, 1.0f}
Elenco di valori utilizzati per definire la funzione di trasferimento per il canale Alfa.
AlphaDisable
D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSE
Se si imposta questa proprietà su TRUE, l'effetto non applica la funzione di trasferimento al canale Alfa. Se si imposta questa proprietà su FALSE, la funzione AlphaTableTransfer viene applicata al canale Alfa.
ClampOutput
D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSE
Indica se l'effetto blocca i valori di colore su tra 0 e 1 prima che l'effetto passi i valori all'effetto successivo nel grafico. L'effetto blocca i valori prima di premoltiplicare l'alfa .
Se si imposta questa proprietà su TRUE, l'effetto blocca i valori. Se si imposta questa proprietà su FALSE, l'effetto non blocca i valori di colore, ma altri effetti e la superficie di output possono bloccare i valori se non sono sufficientemente precisi.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Server minimo supportato Windows 8 e aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Intestazione d2d1effects.h
Libreria d2d1.lib, dxguid.lib

ID2D1Effect