Метод ImageAttributes::SetThreshold (gdiplusimageattributes.h)

Метод ImageAttributes::SetThreshold задает пороговое значение (диапазон прозрачности) для указанной категории.

Синтаксис

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

Параметры

[in] threshold

Тип: REAL

REAL число, указывающее пороговое значение.

[in, optional] type

Тип: ColorAdjustType

Элемент перечисления ColorAdjustType , указывающий категорию, для которой задано пороговое значение цвета. Значение по умолчанию — ColorAdjustTypeDefault.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Пороговое значение — это значение от 0 до 1, указывающее точку отсечения для каждого компонента цвета. Например, предположим, что для порогового значения задано значение 0,7, и предполагается, что вы отрисовываете цвет, компоненты красного, зеленого и синего цветов 230, 50 и 220. Красный компонент 230 больше 0,7×255, поэтому красный компонент будет изменен на 255 (полная интенсивность). Зеленый компонент 50 меньше 0,7×255, поэтому зеленый компонент будет изменен на 0. Синий компонент 220 больше 0,7×255, поэтому синий компонент будет изменен на 255.

Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, точечный рисунок, кисть, перо и текст. Например, можно указать пороговое значение для категории по умолчанию, пороговое значение для категории растрового изображения и другое пороговое значение для категории пера.

Параметры настройки цветов и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории пера, то параметры по умолчанию применяются к категории пера.

Как только вы укажете параметр настройки цветов или оттенков серого для определенной категории, параметры настройки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указали коллекцию параметров корректировки для категории по умолчанию. Если задать пороговое значение для категории пера, передав ColorAdjustTypePen в метод ImageAttributes::SetThreshold , ни один из параметров настройки по умолчанию не будет применяться к ручкам.

Примеры

В следующем примере создается объект Image на основе файла .bmp. Код также создает объект ImageAttributes и устанавливает для его порогового значения растрового изображения значение 0,6. Затем код рисует изображение дважды: один раз без настройки цвета и один раз с корректировкой, заданной пороговым значением.


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

На следующем рисунке показаны выходные данные предыдущего кода. Обратите внимание, что красный цвет был преобразован в максимальную интенсивность, а зеленый — в нулевую интенсивность.

Иллюстрация, показывающая прямоугольник с бордовые и зеленые области, а затем тот же прямоугольник, но отрисованный красным и черным

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusimageattributes.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Bitmap

Цвет

Coloradjusttype

Изображение

ImageAttributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

Метафайл

Перекрашивание