Функция _GDIPlus_LineBrushGetPresetBlend

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


_GDIPlus_LineBrushGetPresetBlend

Возвращает цвета, интерполированные в данный момент для объекта кисти линейного градиента в соответствующих позициях их смешивания

#Include <GDIP.au3>
_GDIPlus_LineBrushGetPresetBlend($hLineGradientBrush)

Параметры

$hLineGradientBrush Указатель на объект LinearGradientBrush

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

Успех:Возвращает массив содержащий цвета и их позиции для смешивания.
[0][0] - Количество элементов в массиве (пар цвета и позиции)
[1][0] - Цвет 1
[1][1] - Позиция 1
[2][0] - Цвет 2
[2][1] - Позиция 2
...
[n][0] - Цвет n
[n][1] - Позиция n
Ошибка:Возвращает -1, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки.
$GDIP_ERROR:
1 - Ошибка функции _GDIPlus_LineBrushGetPresetBlendCount, $GDIP_STATUS содержит код ошибки
2 - Объект LineGradientBrush не содержит никаких интерполированных цветов
3 - Ошибка функции _GDIPlus_LineBrushGetPresetBlend, $GDIP_STATUS содержит код ошибки

См. также

_GDIPlus_LineBrushGetPresetBlendCount, _GDIPlus_LineBrushSetPresetBlend

Пример

#include <GDIP.au3>
#include <Array.au3>

_Example()

Func _Example()
    Local $hGUI, $hGraphics, $hBrush, $aInterpolations[5][2]

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

    $hGUI = GUICreate("Получает массив цветов и позиций", 400, 200, 10)
    GUISetState()

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

    ; Создаёт кисть линейного градиента, который плавно изменяет цвет с чёрного на белый
    $hBrush = _GDIPlus_LineBrushCreate(0, 0, 400, 200, 0xFF000000, 0xFFFFFFFF, 1) ; Повторение кисти

    ; Задаёт интерполяцию цветов и позиций
    $aInterpolations[0][0] = 4

    $aInterpolations[1][0] = 0xFFFF0000 ; Красный
    $aInterpolations[1][1] = 0              ; 0% Слева
    $aInterpolations[2][0] = 0xFF00FF00 ; Зелёный
    $aInterpolations[2][1] = 0.3                ; На 30% от левого края
    $aInterpolations[3][0] = 0xFF0000FF ; Синий
    $aInterpolations[3][1] = 0.7                ; На 70% от левого края
    $aInterpolations[4][0] = 0xFFFFFF00 ; Жёлтый
    $aInterpolations[4][1] = 1              ; На 100% от левого края

    ; Устанавливает позиции и цвета кисти линейного градиента
    _GDIPlus_LineBrushSetPresetBlend($hBrush, $aInterpolations)

    ; Заполняет прямоугольник кистью с линейным градиентом
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 400, 200, $hBrush)

    ; Получает массив цветов и позиций
    $aNew = _GDIPlus_LineBrushGetPresetBlend($hBrush)
    If $aNew <> -1 Then _ArrayDisplay($aNew, 'Цвета и позиции')

    ; Освобождает ресурсы
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphics)

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