_GDIPlus_ImageAttributesSetNoOp
Включает или отключает настройки цвета для указанной категории
#Include <GDIP.au3>
_GDIPlus_ImageAttributesSetNoOp($hImageAttributes[, $iColorAdjustType = 0[, $fEnable = True]])
Параметры
$hImageAttributes | Указатель на объект ImageAttributes |
$iColorAdjustType |
[необязательный] Категория, для которой устанавливается или сбрасывается цветовая гамма: 0 - Настройка цвета применяются для всех категорий, у которых нет собственных настроек 1 - Настройка цвета применяются для bitmap изображений 2 - Настройка цвета применяются для операций кисти в метафайлах 3 - Настройка цвета применяются для операций карандаша в метафайлах 4 - Настройка цвета применяются для текста в метафайлах |
$fEnable |
[необязательный] Включает или отключает True - Отключает False - Включает |
Возвращаемое значение
Успех: | Возвращает True |
Ошибка: | Возвращает False, либо: |
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall() | |
$GDIP_STATUS содержит не нулевое значение кода ошибки. |
Пример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
Global Const $sFileName = @MyDocumentsDir & "\SampleMeta.emf"
_Example()
Func _Example()
Local $hGUI, $hGraphics, $hMetafile, $hIA, $tColorMatrix, $pColorMatrix
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
$hGUI = GUICreate("_GDIPlus_ImageAttributesSetNoOp Example", 600, 350)
GUISetState()
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_CreateTestMetafile($hGraphics)
; Создаёт объект Metafile из образца в виде файла метафайла и начинает воспроизведение записи
$hMetafile = _GDIPlus_MetafileCreateFromFile($sFileName)
; Создаёт объект ImageAttributes, используемый для настройки цветов изображения
$hIA = _GDIPlus_ImageAttributesCreate()
; Create a ColorMatrix that converts red to green
$tColorMatrix = _ColorMatrixCreateRedToGreen()
$pColorMatrix = DllStructGetPtr($tColorMatrix)
; Set the ImageAttributes ColorMatrix, applies color adjustment to pens and brushes
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 2, True, $pColorMatrix)
_GDIPlus_ImageAttributesSetColorMatrix($hIA, 3, True, $pColorMatrix)
; Отключает настройку цвета для карандаша и включает для кисти
_GDIPlus_ImageAttributesSetNoOp($hIA, 2, False) ; включает
_GDIPlus_ImageAttributesSetNoOp($hIA, 3, True) ; выключает
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hMetafile, 0, 0, 200, 350, 0, 0, 200, 350, $hIA)
; Отключает настройку цвета для кисти и включает для карандаша
_GDIPlus_ImageAttributesSetNoOp($hIA, 2, True) ; выключает
_GDIPlus_ImageAttributesSetNoOp($hIA, 3, False) ; включает
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hMetafile, 0, 0, 200, 350, 200, 0, 200, 350, $hIA)
; Восстанавливает настройки цвета для кисти и отключает для карандаша
_GDIPlus_ImageAttributesSetNoOp($hIA, 2, False) ; включает
_GDIPlus_ImageAttributesSetNoOp($hIA, 3, True) ; выключает
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hMetafile, 0, 0, 200, 350, 400, 0, 200, 350, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_ImageDispose($hMetafile)
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc
; Эта функция Создаёт и сохраняет образец метафайла
Func _CreateTestMetafile($hGraphics)
Local $hDC, $hMetafile, $hRedBrush, $hRedPen, $hImageContext
; Получает контекст устройства графического объекта, который будет связан с метафайлом
$hDC = _GDIPlus_GraphicsGetDC($hGraphics)
; Создаёт объект Metafile для записи
$hMetafile = _GDIPlus_MetafileRecordFileName($sFileName, $hDC)
; Получает графический контекст изображения, любое рисование сохраняется в метафайл
$hImageContext = _GDIPlus_ImageGetGraphicsContext($hMetafile)
; Record a filled red rectangle
$hRedBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ; Красный
_GDIPlus_GraphicsFillRect($hImageContext, 0, 0, 200, 175, $hRedBrush)
; Record another action by drawing an ellipse using a red pen
$hRedPen = _GDIPlus_PenCreate(0xFFFF0000, 5)
_GDIPlus_GraphicsDrawEllipse($hImageContext, 0, 175, 200, 175, $hRedPen)
; Освобождает контекст устройства
_GDIPlus_GraphicsReleaseDC($hGraphics, $hDC)
; Сохраняет метафайл
_GDIPlus_GraphicsDispose($hImageContext) ; Изображение сохраняется и особая блокировка разблокирована
; Освобождает ресурсы
_GDIPlus_PenDispose($hRedPen)
_GDIPlus_BrushDispose($hRedBrush)
_GDIPlus_ImageDispose($hMetafile)
EndFunc
; Эта функция Создаёт структуру ColorMatrix, которые преобразуют красный цвет в зеленый
Func _ColorMatrixCreateRedToGreen()
Local $tColorMatrix
$tColorMatrix = _GDIPlus_ColorMatrixCreate()
DllStructSetData($tColorMatrix, "m", 0, 1) ; Scaling factor of red component is 0 (nothing)
DllStructSetData($tColorMatrix, "m", 1, 2) ; Scaling factor of green component of the red channel is 1 (red becomes green)
Return $tColorMatrix
EndFunc