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

ID2D1Effect