_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