Функция _GDIPlus_ImageAttributesSetColorKeys

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


_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