Condividi tramite


Effetto trasferimento lineare

Usare l'effetto di trasferimento lineare per eseguire il mapping delle intensità di colore di un'immagine usando una funzione lineare creata da un elenco di valori forniti per ogni canale.

ClSID per questo effetto è CLSID_D2D1LinearTransfer.

Immagine di esempio

Prima
immagine prima dell'effetto.
After
immagine dopo la trasformazione.
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);

linearTransferEffect->SetInput(0, bitmap);

linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);

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

La funzione di trasferimento lineare viene creata in base alla pendenza e all'intercetta y per ogni canale specificato. L'intensità del pixel di output C viene calcolata con l'equazione: C' = mC + B, dove m è la pendenza della funzione lineare e B è l'intercetta Y della funzione lineare.

Questo effetto funziona su immagini alfa dritte e premultiplied. L'effetto restituisce bitmap alfa premultiplied.

Proprietà dell'effetto

Nota

Per tutti i canali delle proprietà di trasferimento lineare:

  • L'intercetta Y non è vincolata ed è senza unità.
  • La pendenza non è delimitata ed è senza unità.
Enumerazione nome visualizzato e indice Tipo e valore predefinito Descrizione
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
FLOAT
0.0f
Intercetta Y della funzione lineare per il canale Rosso.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
FLOAT
1.0f
Pendenza della funzione lineare per il canale Rosso.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
FALSE
Se si imposta questa opzione su TRUE, l'effetto non applica la funzione di trasferimento al canale Rosso. Se si imposta questa opzione su FALSE, l'effetto applica la funzione RedLinearTransfer al canale Rosso.
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
FLOAT
0.0f
Intercetta Y della funzione lineare per il canale Verde.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
FLOAT
1.0f
Pendenza della funzione lineare per il canale Verde.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
FALSE
Se si imposta questa opzione su TRUE, l'effetto non applica la funzione di trasferimento al canale Verde. Se si imposta questo valore su FALSE, si applica la funzione GreenLinearTransfer al canale Verde.
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
FLOAT
0.0f
Intercetta Y della funzione lineare per il canale Blu.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
FLOAT
1.0f
Pendenza della funzione lineare per il canale Blu.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
FALSE
Se si imposta questa opzione su TRUE, l'effetto non applica la funzione di trasferimento al canale Blu. Se si imposta questo valore su FALSE, si applica la funzione BlueLinearTransfer al canale Blu.
AlfaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
FLOAT
0.0f
Intercetta Y della funzione lineare per il canale Alfa.
AlfaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
FLOAT
0.0f
Pendenza della funzione lineare per il canale Alfa.
AlfaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSE
Se si imposta questa opzione su TRUE, l'effetto non applica la funzione di trasferimento al canale Alfa. Se si imposta questa opzione su FALSE, si applica la funzione AlphaLinearTransfer al canale Alfa.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSE
Se l'effetto blocca i valori di colore su 0 e 1 prima che l'effetto passi i valori all'effetto successivo nel grafico. L'effetto blocca i valori prima che premultiplifichi l'alfa .
Se si imposta questa opzione su TRUE, l'effetto blocca i valori. Se si imposta questa opzione 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 di precisione sufficiente.

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