감마 전송 효과

감마 전송 효과를 사용하여 각 채널에 대해 제공하는 진폭, 지수 및 오프셋을 사용하여 만든 감마 함수를 사용하여 이미지의 색 강도를 매핑합니다.

이 효과에 대한 CLSID는 CLSID_D2D1GammaTransfer. 이 효과를 사용하려면 링커 종속성에 dxguid.lib를 추가합니다.

예제 이미지

이전
효과 앞의 이미지입니다.
After
변환 후의 이미지입니다.
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);

gammaTransferEffect->SetInput(0, bitmap);

gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();

이 효과는 여기에 수식을 기반으로 감마 전송 함수를 적용합니다.

입력 픽셀 강도는 C로, 출력 픽셀 강도는 C'로 표시됩니다. C' = 진폭 * C지수 + 오프셋

이 효과는 직선 및 미리 곱한 알파 이미지에서 작동합니다. 효과는 미리 곱한 알파 비트맵을 출력합니다.

효과 속성

참고

감마 전송 속성의 모든 채널:

  • 진폭 값은 바인딩되지 않으며 단위가 없습니다.
  • 지수 값은 바인딩되지 않으며 단위가 없습니다.
  • 오프셋 값은 바인딩되지 않으며 단위가 없습니다.
표시 이름 및 인덱스 열거형 설명
RedAmplitude
D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE
빨간색 채널에 대한 감마 전송 함수의 진폭입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
RedExponent
D2D1_GAMMATRANSFER_PROP_RED_EXPONENT
빨간색 채널에 대한 감마 전송 함수의 지수입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
RedOffset
D2D1_GAMMATRANSFER_PROP_RED_OFFSET
빨간색 채널에 대한 감마 전송 함수의 오프셋입니다. FLOAT 형식입니다.
기본값은 0.0f입니다.
RedDisable
D2D1_GAMMATRANSFER_PROP_RED_DISABLE
이 값을 TRUE로 설정하면 전송 함수가 빨간색 채널에 적용되지 않습니다. ID 전송 함수가 사용됩니다. FALSE로 설정하면 감마 전송 함수가 빨간색 채널에 적용됩니다. BOOL 형식입니다.
기본값은 FALSE입니다.
GreenAmplitude
D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE
녹색 채널에 대한 감마 전송 함수의 진폭입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
GreenExponent
D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT
녹색 채널에 대한 감마 전송 함수의 지수입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
GreenOffset
D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET
녹색 채널에 대한 감마 전송 함수의 오프셋입니다. FLOAT 형식입니다.
기본값은 0.0f입니다.
GreenDisable
D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE
이 값을 TRUE로 설정하면 전송 함수가 녹색 채널에 적용되지 않습니다. ID 전송 함수가 사용됩니다. FALSE로 설정하면 감마 전송 함수가 녹색 채널에 적용됩니다. BOOL 형식입니다.
기본값은 FALSE입니다.
BlueAmplitude
D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE
파란색 채널에 대한 감마 전송 함수의 진폭입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
BlueExponent
D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT
Blue 채널에 대한 감마 전송 함수의 지수입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
BlueOffset
D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET
Blue 채널에 대한 감마 전송 함수의 오프셋입니다. FLOAT 형식입니다.
기본값은 0.0f입니다.
BlueDisable
D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE
TRUE로 설정하면 Blue 채널에 전송 함수가 적용되지 않습니다. ID 전송 함수가 사용됩니다. FALSE로 설정하면 감마 전송 함수가 파란색 채널에 적용됩니다. BOOL 형식입니다.
기본값은 FALSE입니다.
AlphaAmplitude
D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE
알파 채널에 대한 감마 전송 함수의 진폭입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
AlphaExponent
D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT
알파 채널에 대한 감마 전송 함수의 지수입니다. FLOAT 형식입니다.
기본값은 1.0f입니다.
AlphaOffset
D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET
알파 채널에 대한 감마 전송 함수의 오프셋입니다. FLOAT 형식입니다.
기본값은 0.0f입니다.
AlphaDisable
D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE
이 값을 TRUE로 설정하면 알파 채널에 전송 함수가 적용되지 않습니다. ID 전송 함수가 사용됩니다. FALSE로 설정하면 감마 전송 함수가 알파 채널에 적용됩니다. BOOL 형식입니다.
기본값은 FALSE입니다.
ClampOutput
D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT
효과가 그래프의 다음 효과에 값을 전달하기 전에 효과가 색 값을 0에서 1 사이로 고정하는지 여부입니다. 효과는 알파 를 미리 곱하기 전에 값을 고정합니다.
이 값을 TRUE로 설정하면 효과가 값을 고정합니다. 이 값을 FALSE로 설정하면 효과는 색 값을 고정하지 않지만 다른 효과와 출력 표면은 값이 충분히 정밀하지 않은 경우 값을 고정할 수 있습니다.
BOOL 형식입니다.
기본값은 FALSE입니다.

출력 비트맵

출력 비트맵 크기는 입력 비트맵 크기와 동일합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
지원되는 최소 서버 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
헤더 d2d1effects.h
라이브러리 d2d1.lib, dxguid.lib

ID2D1Effect