_GDIPlus_ColorMatrixCreateScale
Создает матрицу цвета с коэффициентом масштабирования
#Include <GDIP.au3>
_GDIPlus_ColorMatrixCreateScale($nRed, $nGreen, $nBlue[, $nAlpha = 1])
Параметры
$nRed | Коэффициент масштабирования красного компонента |
$nGreen |
Коэффициент масштабирования зелёного компонента |
$nBlue |
Коэффициент масштабирования синего компонента |
$nAlpha |
[необязательный] Коэффициент масштабирования Альфа (прозрачности) компонента |
Возвращаемое значение
Успех: | Возвращает структуру $tagGDIPCOLORMATRIX, которая содержит матрицу цвета масштабирования |
Ошибка: | Возвращает 0 |
Примечания
Матрица цвета с коэффициентом масштабирования используется для умножения компонента цвета на коэффициент.См. также
См. также
Искать ColorMatrix в библиотеке MSDNПример
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>
#include <GDIP.au3>
Example()
Func Example()
Local $hBitmap, $hGraphics, $hGUI, $hHBmp, $hIA, $tColorMatrix, $pColorMatrix
Local Const $iWidth = 600, $iHeight = 600
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
$hGUI = GUICreate("_GDIPlus_ColorMatrixCreateScale", $iWidth, $iHeight)
GUISetState(@SW_SHOW)
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Создает объект ImageAttributes
$hIA = _GDIPlus_ImageAttributesCreate()
; Создает матрицу цвета с масштабируемым коэффициентом для RGB канала цвета
$tColorMatrix = _GDIPlus_ColorMatrixCreateScale(0.5, 0.5, 0.5)
$pColorMatrix = DllStructGetPtr($tColorMatrix)
; Устанавливает матрицу цвета. Уменьшение уровня каждого цвета (RGB) на 50% (темнее)
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pColorMatrix)
; Делает снимок левой верхней части экрана
$hHBmp = _ScreenCapture_Capture("", 0, 0, $iWidth, $iHeight)
; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBmp)
_WinAPI_DeleteObject($hHBmp) ; Освобождает ресурс GDI bitmap, потому что он больше не нужен
; Рисует изображение в указанном прямоугольнике
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, 0, $iWidth, $iHeight, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($hBitmap)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
GUIDelete($hGUI)
EndFunc ;==>Example