Функция _GDIPlus_ImageAttributesSetThreshold

         Описание функции


_GDIPlus_ImageAttributesSetThreshold

Устанавливает или сбрасывает пороговое значение для указанной категории

#Include <GDIP.au3>
_GDIPlus_ImageAttributesSetThreshold($hImageAttributes[, $iColorAdjustType = 0[, $fEnable = False[, $nThershold = 0]]])

Параметры

$hImageAttributes Указатель на объект ImageAttribute
$iColorAdjustType [необязательный] Категория, для которой цветовой порог устанавливается или сбрасывается:
0 - Настройки цвета применяются для всех категорий, у которых нет собственных настроек
1 - Настройки цвета применяются для bitmap изображений
2 - Настройки цвета применяются для операций кисти в метафайлах
3 - Настройки цвета применяются для операций карандаша в метафайлах
4 - Настройки цвета применяются для текста в метафайлах
$fEnable [необязательный] Флаг установки или сброса цветового порога для указанной категории
True - Устанавливает
False - Сбрасывает
$nThershold [необязательный] Число от 0 до 1, указывающее пороговое значение (см. примечания)

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

Успех:Возвращает True
Ошибка:Возвращает False, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки.

Примечания

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

См. также

Искать GdipSetImageAttributesThreshold в библиотеке MSDN

Пример

#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>

_Example()

Func _Example()
    Local $hGUI, $hGraphics, $hBmp, $hBitmap, $hIA, $iWidth, $iHeight, $aSize

    ; Инициализирует библиотеку GDI+
    _GDIPlus_Startup()

    ; Создаёт GUI (нажмите ESC для выхода)
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight)

    ; Создаёт графический объект из дескриптора окна
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    ; Устанавливает режим интерполяции высокого качества, бикубической интерполяции. Обеспечивает высокого качество для рисования уменьшенного изображения
    _GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)

    ; Делает снимок левой верхней части экрана
    $hBmp = _ScreenCapture_Capture("", 0, 0, @DesktopWidth / 2, @DesktopHeight / 2, False)
    ; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
    ; Получает размеры изображения
    $aSize = _GDIPlus_ImageGetDimension($hBitmap)
    $iWidth = $aSize[0]
    $iHeight = $aSize[1]

    ; Создаёт объект ImageAttribute для применения установок
    $hIA = _GDIPlus_ImageAttributesCreate()

    GUISetState()
    ; Рисует оригинальное изображение и далее с использованием порогового значения
    _GDIPlus_GraphicsDrawImageRectRect($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, 0, @DesktopWidth / 2, @DesktopHeight / 2)

    _GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.3) ; Устанавливает пороговое значение 0.3
    _GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, @DesktopHeight / 2, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)
    _GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.6) ; Устанавливает пороговое значение 0.6
    _GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, @DesktopWidth / 2, 0, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)
    _GDIPlus_ImageAttributesSetThreshold($hIA, 1, True, 0.9) ; Устанавливает пороговое значение 0.9
    _GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, @DesktopWidth / 2, @DesktopHeight / 2, @DesktopWidth / 2, @DesktopHeight / 2, $hIA)

   
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Освобождает ресурсы
    _GDIPlus_ImageAttributesDispose($hIA)
    _GDIPlus_ImageDispose($hBitmap)
    _WinAPI_DeleteObject($hBmp)
    _GDIPlus_GraphicsDispose($hGraphics)

    ; Закрывает библиотеку GDI+
    _GDIPlus_Shutdown()
EndFunc   ;==>_Example