Функция _GDIPlus_ImageAttributesGetAdjustedPalette

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


_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