히스토그램 효과
히스토그램 효과를 사용하여 지정된 수의 bin에 따라 입력 비트맵에 대한 히스토그램을 생성합니다.
이 효과에 대한 CLSID는 CLSID_D2D1Histogram.
예제
이전 |
---|
히스토그램 출력 데이터의 그래프 |
ComPtr<ID2D1Effect> histogramEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Histogram, &histogramEffect);
histogramEffect->SetInputEffect(0, m_2DAffineTransformEffectRight.Get());
histogramEffect->SetValue(D2D1_HISTOGRAM_PROP_CHANNEL_SELECT, D2D1_CHANNEL_SELECTOR_G);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(histogramEffect.Get());
m_d2dContext->EndDraw();
// The histogram data is only available once the effect has been 'drawn'.
int histogramBinCount;
HRESULT hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_NUM_BINS, &histogramBinCount);
float *histogramData = new float[histogramBinCount];
hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT,
reinterpret_cast<BYTE*>(histogramData),
histogramBinCount * sizeof(float));
효과 속성
출력을 생성하는 수식은 다음과 같습니다.
i 는 0에서 bin 수로 평가됩니다. 이 효과는 0에서 1 사이의 픽셀 값에 대한 히스토그램을 생성합니다. 이 범위를 벗어난 값은 범위로 고정됩니다. 특정 버킷의 범위는 버킷 수에 따라 달라집니다. 이 효과는 직선 비트맵 픽셀에서 작동합니다. 입력 비트맵의 색 채널은 이 효과를 계산하기 위해 알파 채널로 나뉩니다.
표시 이름 및 인덱스 열거형 | 형식 및 기본값 | Description |
---|---|---|
NumBins D2D1_HISTOGRAM_PROP_NUM_BINS |
Uint32 256 |
히스토그램에 사용되는 bin 수를 지정합니다. 특정 버킷에 속하는 강도 값의 범위는 지정된 버킷 수에 따라 달라집니다. |
ChannelSelect D2D1_HISTOGRAM_PROP_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_R |
히스토그램을 생성하는 데 사용되는 채널을 지정합니다. 이 효과에는 지정된 채널에 해당하는 단일 데이터 출력이 있습니다. 자세한 내용은 채널 선택기를 참조하세요. |
히스토그램아웃푸트 D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT |
FLOAT[] 출력 속성만 해당합니다. |
출력 배열입니다. |
채널 선택기
열거형 | 설명 |
---|---|
D2D1_CHANNEL_SELECTOR_R | 이 효과는 빨간색 채널을 기반으로 히스토그램 출력을 생성합니다. |
D2D1_CHANNEL_SELECTOR_G | 효과는 녹색 채널을 기반으로 히스토그램 출력을 생성합니다. |
D2D1_CHANNEL_SELECTOR_B | 효과는 파란색 채널을 기반으로 히스토그램 출력을 생성합니다. |
D2D1_CHANNEL_SELECTOR_A | 이 효과는 알파 채널을 기반으로 히스토그램 출력을 생성합니다. |
데이터 출력
이 효과는 지정된 bin 수에 해당하는 요소 수와 함께 FLOAT[]를 출력합니다. FLOAT[]의 각 요소는 float입니다. 요소의 값은 해당 bin의 요소 수에 해당합니다.
설명
참고
디바이스가 DirectCompute를 지원하지 않고 HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES 반환하면 CreateEffect 메서드가 실패합니다. DirectCompute를 지원하는 모든 DirectX11 카드 및 DirectX10 카드는 효과를 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |