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

O método ImageAttributes::SetThreshold define o limite (intervalo de transparência) para uma categoria especificada.

Sintaxe

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

Parâmetros

[in] threshold

Tipo: REAL

Número REAL que especifica o valor limite.

[in, optional] type

Tipo: ColorAdjustType

Elemento da enumeração ColorAdjustType que especifica a categoria para a qual o limite de cor é definido. O valor padrão é ColorAdjustTypeDefault.

Valor retornado

Tipo: Status

Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .

Se o método falhar, ele retornará um dos outros elementos da enumeração Status .

Comentários

O limite é um valor de 0 a 1 que especifica um ponto de corte para cada componente de cor. Por exemplo, suponha que o limite seja definido como 0,7 e suponha que você esteja renderizando uma cor cujos componentes vermelho, verde e azul são 230, 50 e 220. O componente vermelho, 230, é maior que 0,7×255, portanto, o componente vermelho será alterado para 255 (intensidade total). O componente verde, 50, é menor que 0,7×255, portanto, o componente verde será alterado para 0. O componente azul, 220, é maior que 0,7×255, portanto, o componente azul será alterado para 255.

Um objeto ImageAttributes mantém as configurações de cor e escala de cinza para cinco categorias de ajuste: padrão, bitmap, pincel, caneta e texto. Por exemplo, você pode especificar um limite para a categoria padrão, um limite para a categoria bitmap e ainda um limite diferente para a categoria de caneta.

As configurações padrão de ajuste de escala de cores e cinza se aplicam a todas as categorias que não têm configurações de ajuste próprias. Por exemplo, se você nunca especificar nenhuma configuração de ajuste para a categoria de caneta, as configurações padrão se aplicarão à categoria de caneta.

Assim que você especificar uma configuração de ajuste de escala de cor ou cinza para uma determinada categoria, as configurações de ajuste padrão não se aplicam mais a essa categoria. Por exemplo, suponha que você especifique uma coleção de configurações de ajuste para a categoria padrão. Se você definir o limite para a categoria de caneta passando ColorAdjustTypePen para o método ImageAttributes::SetThreshold , nenhuma das configurações de ajuste padrão se aplicará às canetas.

Exemplos

O exemplo a seguir cria um objeto Image com base em um arquivo .bmp. O código também cria um objeto ImageAttributes e define seu valor de limite de bitmap como 0,6. Em seguida, o código desenha a imagem duas vezes: uma vez sem ajuste de cor e uma vez com o ajuste especificado pelo limite.


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

A ilustração a seguir mostra a saída do código anterior. Observe que o vermelho foi convertido em intensidade máxima e o verde foi convertido em intensidade zero.

Ilustração mostrando um retângulo com regiões marrom e verde, em seguida, o mesmo retângulo, mas renderizado em vermelho e preto

Requisitos

   
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdiplusimageattributes.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Bitmap

Cor

Coloradjusttype

Imagem

Imageattributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

Metarquivo

Recolorir