Функция _GDIPlus_LineBrushSetBlend

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


_GDIPlus_LineBrushSetBlend

Устанавливает коэффициенты и позиции смешивания кисти линейного градиента для создания пользовательского смешивания

#Include <GDIP.au3>
_GDIPlus_LineBrushSetBlend($hLineGradientBrush, $aBlends)

Параметры

$hLineGradientBrush Указатель на объект LinearGradientBrush
$aBlends Массив коэффициентов и позиций смешивания:
[0][0] - Количество коэффициентов и позиций смешивания, должно быть не менее 2
[1][0] - Коэффициент 1
[1][1] - Позиция 1
[2][0] - Коэффициент 2
[2][1] - Позиция 2
...
[n][0] - Коэффициент n
[n][1] - Позиция n

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

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

Примечания

Каждый коэффициент в массиве определяет процент конечного цвета и должен быть в диапазоне от 0,0 до 1,0.
Каждая позиция в массиве указывает процент расстояния от общей длины градиента и находится в диапазоне от 0,0 до 1,0, где 0,0 указывает на начало градиента, а 1,0 указывает на конец градиента.

См. также

См. также

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

Пример

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

_Example()

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

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

    $hGUI = GUICreate("Коэффициенты и позиции смешивания", 400, 200)
    GUISetState()

    ; Создаёт графический объект из дескриптора окна
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    ; Create the defining rectangle for the linear gradient brush
    $tRectF = _GDIPlus_RectFCreate(0, 0, 400, 200)
    ; Создаёт кисть линейного градиента, который плавно изменяет цвет с жёлтого на пурпурный
    $hBrush = _GDIPlus_LineBrushCreateFromRect($tRectF, 0xFFFFFF00, 0xFFFF00DD, 0, 1) ; Горизонтальное направление

    ; Задаёт коэффициент и позиции кисти линейного градиента
    $aBlends[0][0] = 4 ; Использует 4 коэффициента и позиции

    $aBlends[1][0] = 0 ; Коэффициент
    $aBlends[1][1] = 0 ; Позиция
    $aBlends[2][0] = 1 ; Процент смешивания равен 100% (жёлтый переходит в пурпурный до границы 20%)
    $aBlends[2][1] = 0.2 ; Процент расстояние от левой границы равен 20%
    $aBlends[3][0] = 0 ; Процент смешивания равен 0% (пурпурный переходит жёлтый от границы 20% до границы 70%)
    $aBlends[3][1] = 0.7 ; Процент расстояние от левой границы равен 70%
    $aBlends[4][0] = 1 ; Процент смешивания равен 100% (rжёлтый переходит в пурпурный от границы 70% до границы 100%)
    $aBlends[4][1] = 1 ; Процент расстояние от левой границы равен 100%

    ; Устанавливает коэффициенты и позиции смешивания кисти линейного градиента
    _GDIPlus_LineBrushSetBlend($hBrush, $aBlends)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

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