혼합 효과
혼합 효과를 사용하여 2개 이미지를 결합합니다. 이 효과에는 26개의 혼합 모드가 있습니다.
이 효과에 대한 CLSID는 CLSID_D2D1Blend.
혼합 예제
다음은 혼합 효과의 모든 혼합 모드에 대한 예제 이미지입니다. 혼합 모드 및 해당 모드 속성의 전체 목록은 다음 섹션에 있습니다.
사용 가능한 모든 혼합 모드의
다음은 제외 모드를 사용하는 또 다른 예입니다.
이미지 1 이전 |
---|
효과 앞에 첫 번째 원본 이미지를 ![]() |
이미지 2 이전 |
효과 앞에 두 번째 이미지를 ![]() |
후 |
변환 후 이미지를 ![]() |
ComPtr<ID2D1Effect> blendEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Blend, &blendEffect);
blendEffect->SetInput(0, bitmap);
blendEffect->SetInput(1, bitmapTwo);
blendEffect->SetValue(D2D1_BLEND_PROP_MODE, D2D1_BLEND_MODE_EXCLUSION);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(blendEffect.Get());
m_d2dContext->EndDraw();
효과 속성
표시 이름 및 인덱스 열거형 | 묘사 |
---|---|
모드 D2D1_BLEND_PROP_MODE |
효과에 사용되는 혼합 모드입니다. 자세한 내용은 Blend 모드 참조하세요. 형식이 D2D1_BLEND_MODE. 기본값은 D2D1_BLEND_MODE_MULTIPLY. |
혼합 모드
다음 표에서는 이 효과의 모든 혼합 모드를 보여 줍니다. 효과의 출력을 계산하는 데 필요한 도우미 함수는 다음 섹션에 있습니다.
색: OPRGB = f(FRGB, BRGB) * FA * BA + FRGB * FA * (1 - BA) + BRGB * BA * (1 - FA)
알파: O = FA * (1 - B) + BA
어디:
- OPRGB 미리 곱한 출력 색입니다.
- O 출력 알파입니다.
- BRGB 미리 곱하지 않은 대상 색입니다.
- B 대상 알파입니다.
- FRGB 미리 곱하지 않은 소스 색입니다.
- F 원본 알파입니다.
- f(SRGB, DRGB)는 혼합 모드마다 달라지는 혼합 함수입니다.
일부 혼합 모드에서는 색조, 채도, 광도(HSL) 색 공간을 RGB로 변환해야 합니다.
열거형 | 방정식 |
---|---|
D2D1_BLEND_MODE_DARKEN | 알파 전용 기본 혼합 수식입니다. 어둡게 효과에 대한 수학적 수식을 ![]() |
D2D1_BLEND_MODE_MULTIPLY | 알파 전용 기본 혼합 수식입니다. 곱하기 효과를 위해 수학 수식을 ![]() |
D2D1_BLEND_MODE_COLOR_BURN | 기본 혼합 수식과 f(FRGB, BRGB) = 쿠어 굽기 효과에 대한 ![]() |
D2D1_BLEND_MODE_LINEAR_BURN | 기본 혼합 수식과 f(FRGB, BRGB) = 선형 화상 효과에 대한 ![]() |
D2D1_BLEND_MODE_DARKER_COLOR | 알파 전용 기본 혼합 수식입니다. 색 효과를 어둡게 하려면 수학 수식을 ![]() |
D2D1_BLEND_MODE_LIGHTEN | 알파 전용 기본 혼합 수식입니다.
![]() |
D2D1_BLEND_MODE_SCREEN | 알파 전용 기본 혼합 수식입니다. 화면 효과에 대한 수학 수식을 ![]() |
D2D1_BLEND_MODE_COLOR_DODGE | 기본 혼합 수식과 f(FRGB, BRGB) = 색 닷지 효과를 위한 ![]() |
D2D1_BLEND_MODE_LINEAR_DODGE | 기본 혼합 수식과 f(FRGB, BRGB) = 선형 닷지 효과를 위한 ![]() |
D2D1_BLEND_MODE_LIGHTER_COLOR | 알파 전용 기본 혼합 수식입니다. 밝은 색 효과를 위해 수학 수식을 ![]() |
D2D1_BLEND_MODE_OVERLAY | 기본 혼합 수식과 f(FRGB, BRGB) = 오버레이 효과를 위한 ![]() |
D2D1_BLEND_MODE_SOFT_LIGHT |
f(FRGB, BRGB)를 사용한 기본 혼합 수식 = 부드러운 조명 효과를 위한 ![]() |
D2D1_BLEND_MODE_HARD_LIGHT | 기본 혼합 수식과 f(FRGB, BRGB) = 하드 라이트 효과를 위한 ![]() |
D2D1_BLEND_MODE_VIVID_LIGHT |
f(FRGB, BRGB)를 사용한 기본 혼합 수식 = 생생한 조명 효과를 위한 ![]() |
D2D1_BLEND_MODE_LINEAR_LIGHT | 기본 혼합 수식과 f(FRGB, BRGB) = 선형 조명 효과를 위한 ![]() |
D2D1_BLEND_MODE_PIN_LIGHT | 기본 혼합 수식과 f(FRGB, BRGB) = 핀 조명 효과에 대한 ![]() |
D2D1_BLEND_MODE_HARD_MIX | 기본 혼합 수식과 f(FRGB, BRGB) = 하드 혼합 효과를 위한 ![]() |
D2D1_BLEND_MODE_DIFFERENCE | 기본 혼합 수식과 f(FRGB, BRGB) = abs(FRGB - BRGB) |
D2D1_BLEND_MODE_EXCLUSION | 기본 혼합 수식과 f(FRGB, BRGB) = FRGB + BRGB 2 * FRGB * BRGB |
D2D1_BLEND_MODE_HUE | 알파 전용 기본 혼합 수식입니다. 색조 블렌드 효과를 위한 수학 수식을 ![]() |
D2D1_BLEND_MODE_SATURATION | 알파 전용 기본 혼합 수식입니다. 채도 혼합 효과를 위한 수학 수식을 ![]() |
D2D1_BLEND_MODE_COLOR | 알파 전용 기본 혼합 수식입니다. 색 혼합 효과에 대한 수학 수식을 ![]() |
D2D1_BLEND_MODE_LUMINOSITY | 알파 전용 기본 혼합 수식입니다. 광도 혼합 효과를 위한 수학 수식을 ![]() |
D2D1_BLEND_MODE_DISSOLVE | 주어진:
![]() |
D2D1_BLEND_MODE_SUBTRACT | 알파 전용 기본 혼합 수식입니다. 빼기 혼합 효과를 위한 수학 수식을 ![]() |
D2D1_BLEND_MODE_DIVISION | 알파 전용 기본 혼합 수식입니다. 나누기 혼합 효과에 대한 수학 수식을 ![]() |
메모
모든 Blend 모드의 경우 출력 값이 미리 곱하고 [0, 1] 범위로 고정됩니다.
HSL 색 공간 변환
광도 구성 요소는 RGB 가중치를 사용하여 계산됩니다.
- kR = 0.30
- kG = 0.59
- kB = 0.11
RGB에서 HSL로 변환
rgb 색에서 hsl 색으로의 변환을 설명하는 수학 수식을
그러면 [-1.0, 5.0] 범위의 [0.0, 1.0] 및 H 범위에서 S 및 L 배치됩니다.
HSL에서 RGB로 변환
다른 방법으로 변환하려면 이전 계산의 역방향을 사용합니다.
S = 0이면 R = G = B = L
그렇지 않으면 6개의 색조 의존 사례가 있습니다.
H 0보다 크면 값은 R>B>G가빨간색/마젠타 섹터에 있습니다.
H 0보다 크거나 같고 1보다 작으면 값은 R>G>B가빨간색/노란색 섹터에 있습니다.
H 1보다 크거나 같거나 2보다 작으면 값은 G>R>B가노란색/녹색 섹터에 있습니다.
H 2보다 크거나 같고 3보다 작으면 값은 G>B>R이녹색/시안 섹터에 있습니다.
H 3보다 크거나 같고 4보다 작으면 값은 B>G>R이시안/파랑 섹터에 있습니다.
H 4보다 크거나 같으면 값은 B>R>G가파란색/마젠타 섹터에 있습니다.
혼합 모드는 서로 다른 두 가지 색에서 HSL 구성 요소를 임의로 조합하기 때문에 변환된 RGB 값이 범위를 벗어나는 것이 일반적입니다. 즉, 하나 이상의 채널 구성 요소가 [0.0, 1.0]의 법적 범위를 벗어날 수 있습니다. 이러한 색상은 채도를 최소화하면서 색상과 광도를 모두 유지하면서 영역으로 다시 가져옵니다.
출력 비트맵
이 효과의 출력 비트맵은 항상 두 입력 이미지의 합합 크기입니다.
샘플 코드
이 효과의 예제를 보려면 Direct2D 복합 효과 모드 샘플다운로드합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
머리글 | d2d1effects.h |
도서관 | d2d1.lib, dxguid.lib |