_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.См. также
См. также
Искать 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