_GDIPlus_ColorMatrixMultiply
Умножает матрицу цвета на другую матрицу цвета
#Include <GDIP.au3>
_GDIPlus_ColorMatrixMultiply(ByRef $tCM1, $tCM2[, $iOrder = 0])
Параметры
$tCM1 | Матрица цвета, которая будет обновлена |
$tCM2 |
Матрица цвета, на которую необходимо умножить |
$iOrder |
[необязательный] Порядок умножения матриц: 0 - Матрица цвета $CM2 находится слева 1 - Матрица цвета $CM2 находится справа |
См. также
Пример
#include <GDIP.au3>
#include <GUIConstants.au3>
; Извлекает путь к AutoIt
Local $Wow64
If @AutoItX64 Then $Wow64 = "\Wow6432Node"
Local $AutoItDir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $Wow64 & "\AutoIt v3\AutoIt", "InstallDir")
_GDIPlus_Startup()
$hGUI = GUICreate("Умножает матрицу цвета", 380, 300)
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hImage = _GDIPlus_ImageLoadFromFile($AutoItDir & '\Examples\GUI\msoobe.jpg')
Local $tMatrix = _GDIPlus_ColorMatrixCreate()
;Local $tMatrix = _GDIPlus_ColorMatrixCreateNegative()
Local $pColorMatrix = DllStructGetPtr($tMatrix)
; Матрица насыщенности цвета
Local $saturation = _GDIPlus_ColorMatrixCreateSaturation(0.5)
; Умножает матрицу цвета
_GDIPlus_ColorMatrixMultiply($tMatrix, $saturation)
; Создает объект ImageAttributes
$hIA = _GDIPlus_ImageAttributesCreate()
; Устанавливает матрицу цвета
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pColorMatrix)
GUISetState()
; Рисует изображение в указанном прямоугольнике
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hImage, 0, 0, 1024, 768, 0, 0, 380, 300, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()