알파 효과에 대한 광도
알파 효과에 광도를 사용하여 알파 채널을 이미지의 광도로 설정하고 색 채널을 0으로 설정합니다. 이 효과의 출력을 사용하여 입력 이미지의 밝기를 기반으로 반투명 오버레이를 만들 수 있습니다. 또는 이미지 마스크를 만드는 데 사용할 수 있습니다.
참고
이 효과에는 속성이 없습니다.
이 효과에 대한 CLSID는 CLSID_D2D1LuminanceToAlpha.
예제 이미지
이 예제에서는 불투명도를 표시하기 위해 흰색 표면에 합성된 알파 효과에 대한 광도의 출력을 보여 줍니다.
이전 |
---|
After |
ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);
luminanceToAlphaEffect->SetInput(0, bitmap);
// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
이 효과는 이 색 행렬을 사용하여 출력의 알파 채널을 입력 이미지의 광도로 설정합니다.
이 효과는 미리 곱한 알파 이미지를 사용하고 출력합니다. 완전히 불투명하지 않으면 효과는 직선 알파 이미지에서 작동하지 않습니다.
참고
이미지는 감마 보정 형식으로 저장되므로 이미지의 광도를 계산하기 전에 먼저 역 감마 보정을 수행하여 이미지의 실제 색 값을 가져와야 합니다. 이미지는 일반적으로 2.2 감마에 저장되므로 지수(1/2.2)와 함께 감마 전송 효과를 사용한 다음 해당 효과의 출력을 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |
출력 비트맵
출력은 입력 이미지와 같은 크기입니다.
관련 항목