Effect::GetAuxData 메서드(gdipluseffects.h)
Effect::GetAuxData는 Bitmap::ApplyEffect 메서드에 대한 이전 호출에서 만든 조회 테이블 집합에 대한 포인터를 가져옵니다.
구문
VOID * GetAuxData();
반환 값
이 메서드는 Bitmap::ApplyEffect에 대한 이전 호출에서 만든 조회 테이블 집합에 대한 포인터를 반환합니다. 조회 테이블을 사용할 수 없는 경우 반환 값은 NULL입니다.
설명
Effect 클래스의 하위 항목 중 하나의 instance 만들고 해당 하위 항목의 주소를 Bitmap::ApplyEffect 메서드에 전달하여 비트맵에 효과를 적용할 수 있습니다. Effect의 특정 하위 항목에 대해 ApplyEffect는 조회 테이블을 만들고 해당 테이블의 주소를 하위 개체에 반환합니다. 예를 들어 다음과 같이 BrightnessContrast 개체에 대한 조회 테이블을 검색할 수 있습니다.
- BrightnessContrast 개체를 만들고 SetParameters 메서드를 호출합니다.
- BrightnessContrast 개체의 Effect::UseAuxData 메서드에 TRUE를 전달합니다.
- BrightnessContrast 개체의 주소를 Bitmap::ApplyEffect 메서드에 전달합니다.
- BrightnessContrast 개체의 Effect::GetAuxData 메서드를 호출하여 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 |
헤더 | gdipluseffects.h(Gdiplus.h 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |