_GDIPlus_ImageAttributesSetRemapTable
Устанавливает или очищает таблицу преобразования цветов для указанной категории
#Include <GDIP.au3>
_GDIPlus_ImageAttributesSetRemapTable($hImageAttributes[, $iColorAdjustType = 0[, $fEnable = False[, $aColorMap = 0]]])
Параметры
$hImageAttributes | Указатель на объект ImageAttribute |
$iColorAdjustType |
[необязательный] Категория, для которой устанавливается или сбрасывается таблица преобразования цветов: 0 - Настройки цвета применяются для всех категорий, у которых нет собственных настроек 1 - Настройки цвета применяются для bitmap изображений 2 - Настройки цвета применяются для операций кисти в метафайлах 3 - Настройки цвета применяются для операций карандаша в метафайлах 4 - Настройки цвета применяются для текста в метафайлах |
$fEnable |
[необязательный] Флаг установки или очистки таблицы преобразования цветов True - Устанавливает False - Очищает |
$aColorMap |
[необязательный] Массив старых и новых цветов: [0][0] - Количество старых и новых цветов [1][0] - Старый цвет 1 [1][1] - Новый цвет 1 [2][0] - Старый цвет 2 [2][1] - Новый цвет 2 ... [n][0] - Старый цвет n [n][2] - Новый цвет n |
Возвращаемое значение
Успех: | Возвращает True |
Ошибка: | Возвращает False, либо: |
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall() | |
$GDIP_STATUS содержит не нулевое значение кода ошибки. |
Примечания
В процессе преобразования, любой цвет, который соответствует любому из старых цветов в таблице изменяется на соответствующий новый цветСм. также
Искать GdipSetImageAttributesRemapTable в библиотеке MSDNПример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
_Example()
Func _Example()
Local $hGUI, $hGraphics, $hRedBrush, $hGreenBrush, $hBlueBrush, $hBitmap, $hBitmapContext, $hIA, $iI, $iJ, $aRemapTable[4][2]
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
$hGUI = GUICreate("С таблицей преобразования цветов", 420, 350)
GUISetState()
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Создаёт объект Bitmap и получает его графический контекст
$hBitmap = _GDIPlus_BitmapCreateFromScan0(200, 200)
$hBitmapContext = _GDIPlus_ImageGetGraphicsContext($hBitmap)
; Создаёт 3 кисти 3-х различных цветов: красный, зеленый и синий
$hRedBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ; Красный
$hGreenBrush = _GDIPlus_BrushCreateSolid(0xFF00FF00) ; Зеленый
$hBlueBrush = _GDIPlus_BrushCreateSolid(0xFF0000FF) ; Синий
For $iI = 0 To 9
For $iJ = 0 To 9
Switch Random(1, 3, 1)
Case 1
_GDIPlus_GraphicsFillRect($hBitmapContext, $iI*20, $iJ*20, 20, 20, $hRedBrush)
Case 2
_GDIPlus_GraphicsFillRect($hBitmapContext, $iI*20, $iJ*20, 20, 20, $hGreenBrush)
Case Else
_GDIPlus_GraphicsFillRect($hBitmapContext, $iI*20, $iJ*20, 20, 20, $hBlueBrush)
EndSwitch
Next
Next
; Рисует объект изображения
_GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
; Создаёт объект ImageAttribute для применения установок
$hIA = _GDIPlus_ImageAttributesCreate()
; Создание массива являющегося таблицей переназначения цветов
$aRemapTable[0][0] = 3 ; 3 цвета
; Заменяет красный голубым
$aRemapTable[1][0] = 0xFFFF0000
$aRemapTable[1][1] = 0xFF00FFFF
; Заменяет зеленый синим
$aRemapTable[2][0] = 0xFF00FF00
$aRemapTable[2][1] = 0xFF0000FF
; Заменяет синий желтым
$aRemapTable[3][0] = 0xFF0000FF
$aRemapTable[3][1] = 0xFFFFFF00
; Устанавливает таблицу преобразования цветов
_GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemapTable)
; Рисует копию изображения с преобразованными цветами
_GDIPlus_GraphicsDrawImageRectRectIA($hGraphics, $hBitmap, 0, 0, 200, 200, 220, 0, 200, 200, $hIA)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает ресурсы
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_BrushDispose($hBlueBrush)
_GDIPlus_BrushDispose($hGreenBrush)
_GDIPlus_BrushDispose($hRedBrush)
_GDIPlus_GraphicsDispose($hBitmapContext)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc