_GDIPlus_ImageAttributesGetAdjustedPalette
Настройка цветов в палитре соответствует установкам указанной категории
#Include <GDIP.au3>
_GDIPlus_ImageAttributesGetAdjustedPalette($hImageAttributes, $pColorPalette[, $iColorAdjustType = 0])
Параметры
$hImageAttributes | Указатель на объект ImageAttributes |
$pColorPalette |
Указатель на структуру $tagGDIPCOLORPALETTE, содержащую палитру. |
$iColorAdjustType |
[необязательный] Категория, настройки которой будут применены к палитре 0 - Настройки цвета или градации серого применяются для всех категорий, у которых нет собственных настроек 1 - Настройки цвета или градации серого применяются для bitmap изображений 2 - Настройки цвета или градации серого применяются для операций кисти в метафайлах 3 - Настройки цвета или градации серого применяются для операций карандаша в метафайлах 4 - Настройки цвета или градации серого применяются для текста в метафайлах |
Возвращаемое значение
Успех: | Возвращает True |
Ошибка: | Возвращает False, либо: |
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall() | |
$GDIP_STATUS содержит не нулевое значение кода ошибки. |
См. также
Пример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
_Example()
Func _Example()
Local $hGUI, $hGraphics, $hBrush, $hIA, $tColorPalette, $pColorPalette, $aRemap[2][2], $iI
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
$hGUI = GUICreate("Настройка палитры", 400, 200)
GUISetState()
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Создаёт палитру, которая имеет четыре записи
$tColorPalette = DllStructCreate("uint Flags;uint Count;uint Entries[4]")
$pColorPalette = DllStructGetPtr($tColorPalette)
DllStructSetData($tColorPalette, "Flags", 0)
DllStructSetData($tColorPalette, "Count", 4)
DllStructSetData($tColorPalette, "Entries", 0xFF00FFFF, 1) ; Aqua (голубой)
DllStructSetData($tColorPalette, "Entries", 0xFF000000, 2) ; Чёрный
DllStructSetData($tColorPalette, "Entries", 0xFFFF0000, 3) ; Красный
DllStructSetData($tColorPalette, "Entries", 0xFF00FF00, 4) ; Зелёный
; Создаёт кисть, чтобы заполнить внутреннее пространство прямоугольников
$hBrush = _GDIPlus_BrushCreateSolid()
; Отображает 4 цвета палитры без регулировки
For $iI = 1 to 4
_GDIPlus_BrushSetFillColor($hBrush, DllStructGetData($tColorPalette, "Entries", $iI))
_GDIPlus_GraphicsFillRect($hGraphics, $iI*30, 10, 20, 20, $hBrush)
Next
; Создаёт таблицу подмены цветов, которая заменяет зелёные цвета синими
$aRemap[0][0] = 1
$aRemap[1][0] = 0xFF00FF00 ; Зелёный в качестве старого цвета
$aRemap[1][1] = 0xFF0000FF ; Синий в качестве нового цвета
; Создаёт объект ImageAttributes
$hIA = _GDIPlus_ImageAttributesCreate()
; Устанавливает таблицу переназначения цветов
_GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemap)
; Настройка палитры
_GDIPlus_ImageAttributesGetAdjustedPalette($hIA, $pColorPalette, 1)
; Отображает 4 цвета палитры после регулировки
For $iI = 1 To 4
_GDIPlus_BrushSetFillColor($hBrush, DllStructGetData($tColorPalette, "Entries", $iI))
_GDIPlus_GraphicsFillRect($hGraphics, $iI*30, 40, 20, 20, $hBrush)
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc