복합 효과

복합 효과를 사용하여 2개 이상의 이미지를 결합합니다. 이 효과에는 13가지 복합 모드가 있습니다. T

복합 효과는 2개 이상의 입력을 허용합니다. 2개 이미지를 지정하면 대상은 첫 번째 입력(인덱스 0)이고 원본은 두 번째 입력(인덱스 1)입니다. 2개 이상의 입력을 지정하는 경우 이미지는 첫 번째 입력 및 두 번째 입력 등으로 시작하여 합성됩니다.

이 효과는 GPU(그래픽 처리 장치)의 혼합 단위를 사용하여 모든 모드를 구현합니다.

이 효과에 대한 CLSID는 CLSID_D2D1Composite.

예제 이미지

여기에 있는 이미지는 겹치는 크기가 같은 2개의 둥근 사각형을 보여 줍니다. 파란색 사각형이 원본이고 빨간색 사각형이 대상입니다. 이미지는 소스 오버 모드로 합성되었습니다.

소스 오버 모드를 사용하여 겹치는 크기가 같은 2개의 둥근 사각형을 보여 주는 예제 이미지입니다.

다음은 기본 모드를 사용하는 또 다른 예입니다.

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

compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);

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

효과 속성

표시 이름 및 인덱스 열거형 형식 및 기본값 Description
Mode
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
효과에 사용되는 모드입니다.

모드 유형

여기 표에서는 이 효과의 모드를 보여 줍니다. 표에 나열된 수식은 다음 요소를 사용합니다.

  • O = 출력
  • S = 원본
  • SA = 원본 알파
  • D = 대상
  • DA = 대상 알파
열거형 방정식 출력 비트맵 크기
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D 원본 및 대상 비트맵의 공용 구조체
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D 원본 및 대상 비트맵의 공용 구조체
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S 원본 및 대상 비트맵의 교집합
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D 원본 및 대상 비트맵의 교집합
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S 원본 비트맵의 영역
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D 대상 비트맵의 영역
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D 대상 비트맵의 영역
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D 원본 비트맵의 영역
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D 원본 및 대상 비트맵의 공용 구조체
D2D1_COMPOSITE_MODE_PLUS O = S + D 원본 및 대상 비트맵의 공용 구조체
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S 원본 비트맵의 영역
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S(원본이 있는 경우에만) 원본 및 대상 비트맵의 공용 구조체입니다. 원본이 없는 대상은 덮어쓰지 않습니다.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D 원본 및 대상 비트맵의 공용 구조체입니다. 알파 값은 변경되지 않습니다.

이 그림에서는 불투명도가 1.0 또는 0.5인 이미지가 있는 각 모드의 예를 보여 줍니다.

불투명도가 1.0 또는 0.5로 설정된 각 모드의 예제 이미지입니다.

예제 코드

이 효과의 예를 보려면 Direct2D 복합 효과 모드 샘플을 다운로드합니다.

요구 사항

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

ID2D1Effect