다음을 통해 공유


알파 효과에 대한 광도

알파 효과에 광도를 사용하여 알파 채널을 이미지의 광도로 설정하고 색 채널을 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

 

출력 비트맵

출력은 입력 이미지와 같은 크기입니다.

ID2D1Effect