다음을 통해 공유


혼합 효과

혼합 효과를 사용하여 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 주어진:
  • 현재 픽셀의 장면 좌표 XY
  • 시드 좌표 XY를 기반으로 하는 결정적 의사 난수 생성기 rand(XY)입니다. [0, 1]에서 값의 편견 없는 분포

혼합 효과를 용해하기 위한 수학 수식입니다.
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 범위에서 SL 배치됩니다.

HSL에서 RGB로 변환

다른 방법으로 변환하려면 이전 계산의 역방향을 사용합니다.

S = 0이면 R = G = B = L

그렇지 않으면 6개의 색조 의존 사례가 있습니다.

H 0보다 크면 값은 R>B>G가빨간색/마젠타 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 1단계 수학적 적도입니다.

H 0보다 크거나 같고 1보다 작으면 값은 R>G>B가빨간색/노란색 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 2단계 수학 적도입니다.

H 1보다 크거나 같거나 2보다 작으면 값은 G>R>B가노란색/녹색 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 3단계 수학 적도입니다.

H 2보다 크거나 같고 3보다 작으면 값은 G>B>R이녹색/시안 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 4단계 수학 적도입니다.

H 3보다 크거나 같고 4보다 작으면 값은 B>G>R이시안/파랑 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 5단계 수학 적도입니다.

H 4보다 크거나 같으면 값은 B>R>G가파란색/마젠타 섹터에 있습니다.

hsl 색을 rgb로 변환하는 6단계 중 6단계 수학 적도입니다.

혼합 모드는 서로 다른 두 가지 색에서 HSL 구성 요소를 임의로 조합하기 때문에 변환된 RGB 값이 범위를 벗어나는 것이 일반적입니다. 즉, 하나 이상의 채널 구성 요소가 [0.0, 1.0]의 법적 범위를 벗어날 수 있습니다. 이러한 색상은 채도를 최소화하면서 색상과 광도를 모두 유지하면서 영역으로 다시 가져옵니다.

외부 인스턴스에 필요한 수정 사항을 설명하는 수학 수식입니다.

출력 비트맵

이 효과의 출력 비트맵은 항상 두 입력 이미지의 합합 크기입니다.

샘플 코드

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

요구 사항

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

ID2D1Effect