Compartir a través de


Método ImageAttributes::SetThreshold (gdiplusimageattributes.h)

El método ImageAttributes::SetThreshold establece el umbral (intervalo de transparencia) para una categoría especificada.

Sintaxis

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

Parámetros

[in] threshold

Tipo: REAL

Número REAL que especifica el valor de umbral.

[in, optional] type

Tipo: ColorAdjustType

Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se establece el umbral de color. El valor predeterminado es ColorAdjustTypeDefault.

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

El umbral es un valor comprendido entre 0 y 1 que especifica un punto de corte para cada componente de color. Por ejemplo, supongamos que el umbral está establecido en 0,7 y que representa un color cuyos componentes rojo, verde y azul son 230, 50 y 220. El componente rojo, 230, es mayor que 0,7×255, por lo que el componente rojo se cambiará a 255 (intensidad completa). El componente verde, 50, es menor que 0,7×255, por lo que el componente verde se cambiará a 0. El componente azul, 220, es mayor que 0,7×255, por lo que el componente azul se cambiará a 255.

Un objeto ImageAttributes mantiene la configuración de color y escala de grises para cinco categorías de ajuste: predeterminado, mapa de bits, pincel, lápiz y texto. Por ejemplo, puede especificar un umbral para la categoría predeterminada, un umbral para la categoría de mapa de bits y un umbral diferente para la categoría de lápiz.

La configuración predeterminada de ajuste de escala de grises y color se aplica a todas las categorías que no tienen ajustes de ajuste propios. Por ejemplo, si nunca especifica ninguna configuración de ajuste para la categoría de lápiz, la configuración predeterminada se aplica a la categoría de lápiz.

En cuanto especifique un ajuste de ajuste de escala de grises o de color para una determinada categoría, la configuración de ajuste predeterminada ya no se aplica a esa categoría. Por ejemplo, supongamos que especifica una colección de opciones de ajuste para la categoría predeterminada. Si establece el umbral para la categoría de lápiz pasando ColorAdjustTypePen al método ImageAttributes::SetThreshold , ninguna de las opciones de ajuste predeterminadas se aplicará a los lápices.

Ejemplos

En el ejemplo siguiente se crea un objeto Image basado en un archivo .bmp. El código también crea un objeto ImageAttributes y establece su valor de umbral de mapa de bits en 0,6. A continuación, el código dibuja la imagen dos veces: una vez sin ajuste de color y una vez con el ajuste especificado por el umbral.


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);
}
				

En la ilustración siguiente se muestra la salida del código anterior. Tenga en cuenta que el rojo se convirtió en intensidad máxima y el verde se convirtió en cero intensidad.

Ilustración en la que se muestra un rectángulo con regiones maron y verdes, luego el mismo rectángulo pero representado en rojo y negro

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusimageattributes.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Bitmap

Color

ColorAdjustType

Imagen

ImageAttributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

Metarchivo de

Cambio de color