Effetto di trasferimento gamma
Usare l'effetto di trasferimento gamma per eseguire il mapping delle intensità di colore di un'immagine usando una funzione gamma creata usando un'ampiezza, l'esponente e l'offset forniti per ogni canale.
Il CLSID per questo effetto è CLSID_D2D1GammaTransfer. Per usare questo effetto, aggiungere dxguid.lib alle dipendenze del linker.
Immagine di esempio
Prima |
---|
After |
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();
Questo effetto applica una funzione di trasferimento gamma in base all'equazione qui.
L'intensità del pixel di input è rappresentata come C e l'intensità del pixel di output come C'. C' = Amplitude * CExponent + Offset
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 gamma:
- Il valore di ampiezza non è delimitato ed è senza unità.
- Il valore dell'esponente non è delimitato ed è senza unità.
- Il valore di offset non è delimitato ed è senza unità.
Enumerazione nome visualizzato e indice | Descrizione |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Ampiezza della funzione di trasferimento gamma per il canale Rosso. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Esponente della funzione di trasferimento gamma per il canale Rosso. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Offset della funzione di trasferimento gamma per il canale Rosso. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Se si imposta questa proprietà su TRUE, la funzione di trasferimento non viene applicata al canale Rosso. Viene usata una funzione di trasferimento delle identità. Se si imposta questa proprietà su FALSE, la funzione di trasferimento gamma viene applicata al canale Rosso. Il tipo è BOOL. Il valore predefinito è FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Ampiezza della funzione di trasferimento gamma per il canale Verde. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Esponente della funzione di trasferimento gamma per il canale Verde. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Offset della funzione di trasferimento gamma per il canale Verde. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Se si imposta questa proprietà su TRUE, la funzione di trasferimento non viene applicata al canale Verde. Viene usata una funzione di trasferimento delle identità. Se si imposta questa proprietà su FALSE, la funzione di trasferimento gamma viene applicata al canale Verde. Il tipo è BOOL. Il valore predefinito è FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Ampiezza della funzione di trasferimento gamma per il canale Blu. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Esponente della funzione di trasferimento gamma per il canale Blue. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Offset della funzione di trasferimento gamma per il canale Blue. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Se si imposta questa proprietà su TRUE, la funzione di trasferimento non viene applicata al canale Blue. Viene usata una funzione di trasferimento delle identità. Se si imposta questa proprietà su FALSE, la funzione di trasferimento gamma viene applicata al canale Blue. Il tipo è BOOL. Il valore predefinito è FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Ampiezza della funzione di trasferimento gamma per il canale alfa. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Esponente della funzione di trasferimento gamma per il canale alfa. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Offset della funzione di trasferimento gamma per il canale alfa. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Se si imposta questa proprietà su TRUE, la funzione di trasferimento non viene applicata al canale alfa. Viene usata una funzione di trasferimento delle identità. Se si imposta questa proprietà su FALSE, la funzione di trasferimento gamma viene applicata al canale alfa. Il tipo è BOOL. Il valore predefinito è FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
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. Il tipo è BOOL. Il valore predefinito è FALSE. |
Bitmap di output
Le dimensioni della bitmap di output corrispondono alle dimensioni della bitmap di input.
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 |