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


_GDIPlus_ColorMatrixCreateTranslate

Смещение матрицы цвета

#Include <GDIP.au3>
_GDIPlus_ColorMatrixCreateTranslate($nRed, $nGreen, $nBlue[, $nAlpha = 0])

Параметры

$nRed Коэффициент смещения красного цвета, от -1 до 1
$nGreen Коэффициент смещения зеленого цвета, от -1 до 1
$nBlue Коэффициент смещения синего цвета, от -1 до 1
$nAlpha [необязательный] Коэффициент смещения альфа-канала (прозрачности), от -1 до 1

Возвращаемое значение

Успех:Возвращает структуру $tagGDIPCOLORMATRIX, которая содержит смещение матрицы цвета
Ошибка:Возвращает 0

Примечания

Смещение матрицы цвета используется для увеличения или уменьшения составляющих цвета, используя коэффициент от -1 до 1

См. также

См. также

Искать ColorMatrix в библиотеке MSDN

Пример

#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>

_Example()

Func _Example()
    Local $hGUI, $hGraphics, $hBmp, $hBitmap, $hIA, $tColorMatrix, $pColorMatrix, $iWidth, $iHeight, $aSize

    ; Инициализирует библиотеку GDI+
    _GDIPlus_Startup()

    ; Создаёт GUI (нажмите ESC для выхода)
    $hGUI = GUICreate("Смещение цветовой матрицы", @DesktopWidth / 2, @DesktopHeight * 2 / 3)

    ; Создаёт графический объект из дескриптора окна
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    ; Делает снимок левой верхней части экрана
    $hBmp = _ScreenCapture_Capture("", 0, 0, @DesktopWidth / 2, @DesktopHeight / 3, False)

    ; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)

    ; Создаёт объект ImageAttribute
    $hIA = _GDIPlus_ImageAttributesCreate()

    ; Создаёт цветную матрицу, используемую для регулирования цвета изображения
    ; Используйте смещение цветовой матрицы для увеличения яркости изображения
    $tColorMatrix = _GDIPlus_ColorMatrixCreateTranslate(0.15, 0.15, 0.15)
    $pColorMatrix = DllStructGetPtr($tColorMatrix)

    ; Устанавливает матрицу цвета в объект ImageAttribute
    _GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pColorMatrix)

    GUISetState()

    ; Получает размеры изображения
    $aSize = _GDIPlus_ImageGetDimension($hBitmap)
    $iWidth = $aSize[0]
    $iHeight = $aSize[1]

    ; Устанавливает режим интерполяции, влияющий на качество
    _GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)

    ; Рисует изображение в указанном прямоугольнике
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, @DesktopWidth / 2, @DesktopHeight / 3)

    ; Рисует изображение с применением регулировки цвета
    _GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, @DesktopHeight / 3, @DesktopWidth / 2, @DesktopHeight / 3, $hIA)

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Освобождает ресурсы
    _GDIPlus_ImageAttributesDispose($hIA)
    _WinAPI_DeleteObject($hBmp)
    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphics)

    ; Закрывает библиотеку GDI+
    _GDIPlus_Shutdown()
EndFunc   ;==>_Example