복합 효과
복합 효과를 사용하여 2개 이상의 이미지를 결합합니다. 이 효과에는 13가지 복합 모드가 있습니다. T
복합 효과는 2개 이상의 입력을 허용합니다. 2개 이미지를 지정하면 대상은 첫 번째 입력(인덱스 0)이고 원본은 두 번째 입력(인덱스 1)입니다. 2개 이상의 입력을 지정하는 경우 이미지는 첫 번째 입력 및 두 번째 입력 등으로 시작하여 합성됩니다.
이 효과는 GPU(그래픽 처리 장치)의 혼합 단위를 사용하여 모든 모드를 구현합니다.
이 효과에 대한 CLSID는 CLSID_D2D1Composite.
예제 이미지
여기에 있는 이미지는 겹치는 크기가 같은 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인 이미지가 있는 각 모드의 예를 보여 줍니다.
예제 코드
이 효과의 예를 보려면 Direct2D 복합 효과 모드 샘플을 다운로드합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |