_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_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