_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