Поделиться через


Метод Effect::GetAuxData (gdipluseffects.h)

Effect::GetAuxData получает указатель на набор таблиц подстановки, созданных при предыдущем вызове метода Bitmap::ApplyEffect.

Синтаксис

VOID * GetAuxData();

Возвращаемое значение

Этот метод возвращает указатель на набор таблиц подстановки, созданных при предыдущем вызове Bitmap::ApplyEffect. Если таблицы подстановки недоступны, возвращаемое значение равно NULL.

Комментарии

Эффект можно применить к точечным рисункам, создав экземпляр одного из потомков класса Effect и передав адрес этого потомка методу Bitmap::ApplyEffect . Для некоторых потомков Effect ApplyEffect создает таблицы подстановки и возвращает адрес этих таблиц в объект-потомок. Например, таблицы подстановки для объекта BrightnessContrast можно получить следующим образом:

  1. Создайте объект BrightnessContrast и вызовите его метод SetParameters .
  2. Передайте значение TRUE методу Effect::UseAuxData объекта BrightnessContrast .
  3. Передайте адрес объекта BrightnessContrast методу Bitmap::ApplyEffect .
  4. Вызовите метод Effect::GetAuxData объекта BrightnessContrast , чтобы получить указатель на таблицы подстановки, созданные ApplyEffect. Буфер для таблиц подстановки выделяется с помощью ApplyEffect; вы не несете ответственности за освобождение буфера.

ApplyEffect может возвращать адреса таблиц подстановки для следующих потомков класса Effect .

Для классов из предыдущего списка ApplyEffect создает четыре таблицы подстановки: по одной для синего, зеленого, красного и альфа-каналов. Каждая таблица подстановки представляет собой массив из 256 байт, поэтому размер всего набора таблиц составляет 1024 байта. Таблицы хранятся в порядке синего, зеленого, красного, альфа-канала.

Примеры

Следующий код передает адрес объекта BrightnessContrast методу Bitmap::ApplyEffect . Затем код выводит таблицу подстановки синего канала, созданную с помощью ApplyEffect.

Bitmap bm(L"Picture.bmp");

BrightnessContrastParams briConParams;
briConParams.brightnessLevel = 0;
briConParams.contrastLevel = 25;

BrightnessContrast briCon;
briCon.SetParameters(&briConParams);
briCon.UseAuxData(TRUE);
	
bm.ApplyEffect(&briCon, NULL);

VOID* data = briCon.GetAuxData();

// You know the size is 1024, but check to make sure.
INT size = briCon.GetAuxDataSize();

if(1024 != size || NULL == data)
   return;

// Cast the data pointer as a ColorLUTParams pointer so that it
// will be easy to examine the individual tables.
ColorLUTParams* tables = (ColorLUTParams*)data;
   
// Print the lookup table for the blue channel.
for(UINT j = 0; j < 256; ++j)
{
   printf("%u, %u\n", j, tables->lutB[j]);
}

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header gdipluseffects.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

ColorLUTParams

Действие

Effect::GetAuxDataSize

Effect::UseAuxData