산술 복합 효과

산술 복합 효과를 사용하여 입력 이미지의 가중치 픽셀 합계를 사용하여 2개의 이미지를 결합합니다.

이 효과에 대한 CLSID는 CLSID_D2D1ArithmeticComposite.

Formula

이 수식은 이 효과를 계산하는 데 사용됩니다.

출력rgba = C1 * Sourcergba * Destinationrgba + C2 * Sourcergba + C3 * Destinationrgba + C4

여기서 C1, C2, C3, C4는 설정한 계수입니다.

계수는 D2D1_VECTOR_4F(x, y, z, w)의 값에 매핑됩니다.

  • x = C1
  • y = C2
  • z = C3
  • w = C4

예제 이미지

간단한 예는 원본 및 대상 픽셀을 추가하는 것입니다. 이 예제에서는 2개의 둥근 사각형이 함께 복합됩니다. 원본 사각형은 파란색이고 대상은 빨간색입니다.

여기에 있는 이미지는 수식 계수가 여기에 있는 값으로 설정된 산술 복합 효과의 출력입니다.

  • C1 = 0
  • C2 = 1
  • C3 = 1
  • C4 = 0

산술 복합 효과를 사용하여 겹치는 크기가 같은 2개의 둥근 사각형을 보여 주는 예제 이미지입니다.

그 결과 원본 및 대상의 픽셀 값이 추가됩니다. 사각형이 RGBA 값과 겹치지 않는 지역은 모두 0입니다. 사각형이 겹치는 경우 R 값과 B 값이 모두 최대이므로 색은 magenta입니다.

코드가 있는 또 다른 예제 이미지는 다음과 같습니다.

이미지 1 이전
효과 앞의 첫 번째 원본 이미지입니다.
이미지 2 이전
효과 앞의 두 번째 이미지입니다.
After
변환 후의 이미지입니다.
ComPtr<ID2D1Effect> arithmeticCompositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ArithmeticComposite, &arithmeticCompositeEffect);

arithmeticCompositeEffect->SetInput(0, bitmap);
arithmeticCompositeEffect->SetInput(1, bitmapTwo);
arithmeticCompositeEffect->SetValue(D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS, D2D1::Vector4F(0.0f, 0.5f, 0.5f, 0.0f));

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

효과 속성

표시 이름 및 인덱스 열거형 Description
계수
D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS
두 입력 이미지를 합성하는 데 사용되는 수식의 계수입니다. 계수는 단위가 없고 바인딩되지 않습니다. 형식이 D2D1_VECTOR_4F.
기본값은 {1.0f, 0.0f, 0.0f, 0.0f}입니다.
ClampOutput
D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT
효과는 효과가 그래프의 다음 효과에 값을 전달하기 전에 색 값을 0에서 1 사이로 고정합니다.
이 값을 TRUE로 설정하면 효과가 값을 고정합니다. FALSE로 설정하면 효과는 색 값을 고정하지 않지만, 다른 효과와 출력 표면이 충분히 높은 정밀도를 없으면 값을 고정할 수 있습니다.
BOOL 유형입니다.
기본값은 FALSE입니다.

출력 비트맵

출력 비트맵은 계수 값에 따라 달라집니다. 가능한 출력 비트맵 크기입니다.

  • C1이 0이 아닌 유일한 계수인 경우 출력 크기는 입력 사각형의 교집합입니다.
  • C2가 0이 아닌 유일한 계수인 경우 출력 크기는 원본 사각형의 크기입니다.
  • C3이 0이 아닌 유일한 계수인 경우 출력 크기는 대상 사각형의 크기입니다.
  • 모든 계수가 0이면 출력 크기는 빈 사각형입니다.
  • 다른 모든 계수 값의 경우 출력 크기는 입력 사각형의 공용 구조체입니다.

요구 사항

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

ID2D1Effect