Metodo ImageAttributes::SetThreshold (gdiplusimageattributes.h)

Il metodo ImageAttributes::SetThreshold imposta la soglia (intervallo di trasparenza) per una categoria specificata.

Sintassi

Status SetThreshold(
  [in]           REAL            threshold,
  [in, optional] ColorAdjustType type
);

Parametri

[in] threshold

Tipo: REAL

Numero REALE che specifica il valore soglia.

[in, optional] type

Tipo: ColorAdjustType

Elemento dell'enumerazione ColorAdjustType che specifica la categoria per cui è impostata la soglia del colore. Il valore predefinito è ColorAdjustTypeDefault.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

La soglia è un valore compreso tra 0 e 1 che specifica un punto di taglio per ogni componente di colore. Si supponga, ad esempio, che la soglia sia impostata su 0,7 e si supponga di eseguire il rendering di un colore i cui componenti rossi, verdi e blu sono 230, 50 e 220. Il componente rosso, 230, è maggiore di 0,7×255, quindi il componente rosso verrà modificato su 255 (intensità completa). Il componente verde, 50, è minore di 0,7×255, quindi il componente verde verrà modificato in 0. Il componente blu, 220, è maggiore di 0,7×255, quindi il componente blu verrà modificato in 255.

Un oggetto ImageAttributes gestisce le impostazioni di colore e scala di grigio per cinque categorie di regolazione: impostazione predefinita, bitmap, pennello, penna e testo. Ad esempio, è possibile specificare una soglia per la categoria predefinita, una soglia per la categoria bitmap e ancora una soglia diversa per la categoria di penna.

Le impostazioni predefinite di regolazione del colore e della scala grigia si applicano a tutte le categorie che non hanno impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria di penna, le impostazioni predefinite si applicano alla categoria di penna.

Non appena si specifica un'impostazione di regolazione del colore o della scala grigia per una determinata categoria, le impostazioni di regolazione predefinite non si applicano più a tale categoria. Si supponga, ad esempio, di specificare una raccolta di impostazioni di regolazione per la categoria predefinita. Se si imposta la soglia per la categoria di penna passando ColorAdjustTypePen al metodo ImageAttributes::SetThreshold , nessuna delle impostazioni di regolazione predefinite verrà applicata alle penne.

Esempio

Nell'esempio seguente viene creato un oggetto Image basato su un file di .bmp. Il codice crea anche un oggetto ImageAttributes e imposta il valore di soglia bitmap su 0,6. Quindi il codice disegna l'immagine due volte: una volta senza regolazione del colore e una volta con la regolazione specificata dalla soglia.


VOID Example_SetThreshold(HDC hdc)
{
   Graphics graphics(hdc);

   // Create an Image object based on a .bmp file.
   // The image has one stripe with RGB components (160, 0, 0)
   // and one stripe with RGB components (0, 140, 0).
   Image image(L"RedGreenThreshold.bmp");

   // Create an ImageAttributes object, and set its bitmap threshold to 0.6.
   ImageAttributes imAtt;
   imAtt.SetThreshold(0.6f, ColorAdjustTypeBitmap);

   // Draw the image with no color adjustment.
   graphics.DrawImage(&image, 10, 10, image.GetWidth(), image.GetHeight());
 
   // Draw the image with the threshold applied.
   // 160 > 0.6*255, so the red stripe will be changed to full intensity.
   // 140 < 0.6*255, so the green stripe will be changed to zero intensity.   
   graphics.DrawImage(&image,
      Rect(100, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);
}
				

La figura seguente mostra l'output del codice precedente. Si noti che il rosso è stato convertito in intensità massima e il verde è stato convertito in intensità zero.

Figura che mostra un rettangolo con aree maroon e verdi, quindi lo stesso rettangolo ma sottoposto a rendering in rosso e nero

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusimageattributes.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Bitmap

Color

Coloradjusttype

Immagine

Imageattributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

Metafile

Ricolorazione