_GDIPlus_ColorMatrixCreateGrayScale
Создаёт матрицу цвета с масштабированием в серый
#Include <GDIP.au3>
_GDIPlus_ColorMatrixCreateGrayScale ()
Возвращаемое значение
Успех: | Возвращает структуру $tagGDIPCOLORMATRIX с матрицей цвета с масштабированием в серый |
Ошибка: | Возвращает 0 |
См. также
См. также
Искать ColorMatrix в библиотеке MSDNПример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>
_Example()
Func _Example()
Local $hGUI, $hGraphics, $hBmp, $hBitmap, $tColorMatrix, $pColorMatrix, $hIA
Local Const $iWidth = 600, $iHeight = 600
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
; Создаёт GUI (нажмите ESC для выхода)
$hGUI = GUICreate("", $iWidth, $iHeight)
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Делает снимок левой верхней части экрана
$hBmp = _ScreenCapture_Capture("", 0, 0, $iWidth, $iHeight)
; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
; Создаёт объект градаций серого ImageAttributes
$hIA = _GDIPlus_ImageAttributesCreate()
; Создаёт цветовую матрицу градаций серого
$tColorMatrix = _GDIPlus_ColorMatrixCreateGrayScale()
$pColorMatrix = DllStructGetPtr($tColorMatrix)
; Устанавливает цвета изображения в градации серого
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pColorMatrix)
GUISetState()
; Устанавливает режим интерполяции, влияющий на качество
_GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)
; Рисует изображение устанавливая цветовую матрицу градаций серого
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight, 0, 0, $iWidth, $iHeight, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_ImageAttributesDispose($hIA)
_WinAPI_DeleteObject($hBmp)
_GDIPlus_ImageDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc