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


_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