Effect::GetAuxData 方法 (gdipluseffects.h)
Effect::GetAuxData 获取一个指针,该指针指向先前调用 Bitmap::ApplyEffect 方法创建的一组查找表。
语法
VOID * GetAuxData();
返回值
此方法返回指向先前调用 Bitmap::ApplyEffect 创建的一组查找表的指针。 如果没有可用的查阅表格,则返回值为 NULL。
注解
可以通过创建 Effect 类的一个后代的实例并将该后代的地址传递给 Bitmap::ApplyEffect 方法,将效果应用于位图。 对于 Effect 的某些后代,ApplyEffect 会创建查找表,并将这些表的地址返回给后代对象。 例如,可以检索 BrightnessContrast 对象的查找表,如下所示:
- 创建 BrightnessContrast 对象并调用其 SetParameters 方法。
- 将 TRUE 传递给 BrightnessContrast 对象的 Effect::UseAuxData 方法。
- 将 BrightnessContrast 对象的地址传递给 Bitmap::ApplyEffect 方法。
- 调用 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 |