Effect::GetAuxData 方法 (gdipluseffects.h)

Effect::GetAuxData 获取一个指针,该指针指向先前调用 Bitmap::ApplyEffect 方法创建的一组查找表。

语法

VOID * GetAuxData();

返回值

此方法返回指向先前调用 Bitmap::ApplyEffect 创建的一组查找表的指针。 如果没有可用的查阅表格,则返回值为 NULL

注解

可以通过创建 Effect 类的一个后代的实例并将该后代的地址传递给 Bitmap::ApplyEffect 方法,将效果应用于位图。 对于 Effect 的某些后代,ApplyEffect 会创建查找表,并将这些表的地址返回给后代对象。 例如,可以检索 BrightnessContrast 对象的查找表,如下所示:

  1. 创建 BrightnessContrast 对象并调用其 SetParameters 方法。
  2. TRUE 传递给 BrightnessContrast 对象的 Effect::UseAuxData 方法。
  3. BrightnessContrast 对象的地址传递给 Bitmap::ApplyEffect 方法。
  4. 调用 BrightnessContrast 对象的 Effect::GetAuxData 方法以获取指向 ApplyEffect 创建的查找表的指针。 查找表的缓冲区由 ApplyEffect 分配;你不负责释放缓冲区。

ApplyEffect 可以返回 Effect 类的以下后代的查找表的地址。

对于上述列表中的类, ApplyEffect 创建四个查找表:蓝色、绿色、红色和 alpha 通道各一个。 每个查阅表格是一个 256 字节的数组,因此整个表集的大小为 1024 字节。 表按蓝色、绿色、红色、alpha 的顺序存储。

示例

以下代码将 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
标头 gdipluseffects.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

ColorLUTParams

效果

Effect::GetAuxDataSize

效果::UseAuxData