Effetto di 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.
Il CLSID per questo effetto è CLSID_D2D1LinearTransfer.
Immagine di esempio
Prima |
---|
![]() |
Dopo |
![]() |
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 sulle immagini alfa dritte e premoltiplicate. L'effetto restituisce bitmap alfa premoltiplicate.
Proprietà dell'effetto
Nota
Per tutti i canali delle proprietà di trasferimento lineare:
- L'intercetta Y non è delimitata ed è senza unità.
- Il coefficiente angolare non è delimitato ed è senza unità.
Enumerazione del nome visualizzato e dell'indice | Tipo e valore predefinito | Descrizione |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
GALLEGGIARE 0,0f |
Intercetta Y della funzione lineare per il canale Rosso. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
GALLEGGIARE 1.0f |
Pendenza della funzione lineare per il canale Rosso. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSO |
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, l'effetto applica la funzione RedLinearTransfer al canale Red. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
GALLEGGIARE 0,0f |
Intercetta Y della funzione lineare per il canale Verde. |
VerdeSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
GALLEGGIARE 1.0f |
Pendenza della funzione lineare per il canale Verde. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSO |
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 GreenLinearTransfer viene applicata al canale Verde. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
GALLEGGIARE 0,0f |
Intercetta Y della funzione lineare per il canale Blue. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
GALLEGGIARE 1.0f |
Coefficiente angolare della funzione lineare per il canale Blu. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSO |
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 BlueLinearTransfer viene applicata al canale Blue. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
GALLEGGIARE 0,0f |
Intercetta Y della funzione lineare per il canale Alfa. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
GALLEGGIARE 0,0f |
Coefficiente angolare della funzione lineare per il canale Alfa. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSO |
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 AlphaLinearTransfer viene applicata al canale Alfa. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSO |
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 bloccherà 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. |
Fabbisogno
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 |
Biblioteca | d2d1.lib, dxguid.lib |