Método Effect::GetAuxData (gdipluseffects.h)
O Effect::GetAuxData obtém um ponteiro para um conjunto de tabelas de pesquisa criadas por uma chamada anterior para o método Bitmap::ApplyEffect .
Sintaxe
VOID * GetAuxData();
Valor retornado
Esse método retorna um ponteiro para um conjunto de tabelas de pesquisa criadas por uma chamada anterior para Bitmap::ApplyEffect. Se nenhuma tabela de pesquisa estiver disponível, o valor retornado será NULL.
Comentários
Você pode aplicar um efeito a um bitmap criando uma instância de um dos descendentes da classe Effect e passando o endereço desse descendente para o método Bitmap::ApplyEffect . Para determinados descendentes de Effect, ApplyEffect cria tabelas de pesquisa e retorna o endereço dessas tabelas para o objeto descendente. Por exemplo, você pode recuperar as tabelas de pesquisa de um objeto BrightnessContrast da seguinte maneira:
- Crie um objeto BrightnessContrast e chame seu método SetParameters .
- Passe TRUE para o método Effect::UseAuxData do objeto BrightnessContrast .
- Passe o endereço do objeto BrightnessContrast para o método Bitmap::ApplyEffect .
- Chame o método Effect::GetAuxData do objeto BrightnessContrast para obter um ponteiro para as tabelas de pesquisa criadas por ApplyEffect. O buffer para as tabelas de pesquisa é alocado por ApplyEffect; você não é responsável por liberar o buffer.
ApplyEffect pode retornar o endereço das tabelas de pesquisa para os descendentes a seguir da classe Effect .
Para as classes na lista anterior, ApplyEffect cria quatro tabelas de pesquisa: uma para os canais azul, verde, vermelho e alfa. Cada tabela de pesquisa é uma matriz de 256 bytes, portanto, o tamanho de todo o conjunto de tabelas é de 1024 bytes. As tabelas são armazenadas na ordem azul, verde, vermelho, alfa.Exemplos
O código a seguir passa o endereço de um objeto BrightnessContrast para o método Bitmap::ApplyEffect . Em seguida, o código imprime a tabela de pesquisa de canal azul criada por 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]);
}
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | gdipluseffects.h (inclua Gdiplus.h) |
Biblioteca | Gdiplus.lib |
DLL | Gdiplus.dll |