_GDIPlus_ImageAttributesSetColorKeys
Устанавливает или сбрасывает цветовой ключ (диапазон прозрачности) для указанной категории
#Include <GDIP.au3>
_GDIPlus_ImageAttributesSetColorKeys($hImageAttributes[, $iColorAdjustType = 0[, $fEnable = False[, $iARGBLow = 0[, $iARGBHigh = 0]]]])
Параметры
$hImageAttributes | Указатель на объект ImageAttributes |
$iColorAdjustType |
[необязательный] Категория, для которой устанавливается или сбрасывается цветовой ключ: 0 - Настройки цвета или градации серого применяются для всех категорий, у которых нет собственных настроек 1 - Настройки цвета или градации серого применяются для bitmap изображений 2 - Настройки цвета или градации серого применяются для операций кисти в метафайлах 3 - Настройки цвета или градации серого применяются для операций карандаша в метафайлах 4 - Настройки цвета или градации серого применяются для текста в метафайлах |
$fEnable |
[необязательный] Устанавливает или сбрасывает True - задействует диапазон прозрачности False - сбрасывает диапазон прозрачности. Параметры $iARGBLow and $iARGBHigh в этом случае игнорируются. |
$iARGBLow |
[необязательный] Нижняя граница диапазона, представляющая цвет в шестнадцатеричном формате: прозрачность, красный, зелёный и синий. |
$iARGBHigh |
[необязательный] Верхняя граница диапазона, представляющая цвет в шестнадцатеричном формате: прозрачность, красный, зелёный и синий. |
Возвращаемое значение
Успех: | Возвращает True |
Ошибка: | Возвращает False, либо: |
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall() | |
$GDIP_STATUS содержит не нулевое значение кода ошибки. |
Примечания
Любой цвет, каждый компонент которого (красный, зеленый, синий) находится между соответствующими составляющими максимального и минимального цветовых ключей, становится прозрачным.Пример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>
_Example()
Func _Example()
Local $hGUI, $hGraphics, $hBmp, $hBitmap, $hIA, $iHeight, $iDWidth
$iDWidth = @DesktopWidth / 2
$iHeight = @DesktopHeight / 2
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
; Создаёт GUI (нажмите ESC для выхода)
$hGUI = GUICreate("Цветовой ключ", $iDWidth, $iHeight)
GUISetBkColor(0xFF0000) ; Красный фон GUI, чтобы ярко показать прозрачные области
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Делает снимок левой верхней части экрана
$hBmp = _ScreenCapture_Capture("", 0, 0, $iDWidth, $iHeight, False)
; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
; Создаёт объект ImageAttributes
$hIA = _GDIPlus_ImageAttributesCreate()
; Делает указанный диапазон цветов прозрачным
_GDIPlus_ImageAttributesSetColorKeys($hIA, 0, True, 0xFF000000, 0xFF404040)
GUISetState()
; Устанавливает режим интерполяции, влияющий на качество
_GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)
; Рисует изображение с применением регулировки цвета
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iDWidth, $iHeight, 0, 0, $iDWidth, $iHeight, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_ImageAttributesDispose($hIA)
_WinAPI_DeleteObject($hBmp)
_GDIPlus_ImageDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc