변위 맵 효과

변위 맵 효과를 사용하여 입력 이미지의 픽셀을 두 번째 입력 이미지의 강도 값으로 대체합니다.

이 효과에 대한 CLSID는 CLSID_D2D1DisplacementMap.

예제 이미지

이전
효과 앞의 이미지입니다.
After
변환 후의 이미지입니다.
ComPtr<ID2D1Effect> displacementMapEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DisplacementMap, &displacementMapEffect);

displacementMapEffect->SetInput(0, bitmap);
displacementMapEffect->SetValue(D2D1_DISPLACEMENTMAP_PROP_SCALE, 100.0f);

// The second input of the displacement effect determines how the input image is transformed.
// For this example, we will use a turbulence effect as the second input to randomly distort the image.
ComPtr<ID2D1Effect> turbulenceEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Turbulence, &turbulenceEffect);
displacementMapEffect->SetInputEffect(1, turbulenceEffect.Get());

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

출력의 픽셀 위치는 다음 수식을 사용하여 결정됩니다.

C'(x,y)=C(x+ scale*(XChannelSelector(Displacement Bitmap (x,y))-0.5),y+ scale*(YChannelSelector(Displacement Bitmap (x,y))-0.5))

위치:

C(x, y) 는 (x, y)의 출력 픽셀입니다.
C(x, y) 는 (x, y)의 입력 픽셀입니다.
변위 비트맵(x, y) 은 지정된 좌표의 변위 픽셀 강도입니다.
XChannelSelector 입력 이미지를 X 방향으로 대체하는 변위 비트맵에서 선택한 RGBA 채널의 강도입니다.
YChannelSelector 입력 이미지를 Y 방향으로 대체하는 변위 비트맵에서 선택한 RGBA 채널의 강도입니다.

효과는 배율 속성 및 변위 이미지의 강도에 따라 입력 이미지를 다시 샘플링합니다. 입력 이미지의 픽셀 간에 샘플링하는 경우 쌍선형 보간을 사용합니다.

이 효과는 직선 및 미리 곱한 알파 이미지에서 작동합니다. 출력 알파 형식은 입력 형식과 동일합니다.

효과 속성

표시 이름 및 인덱스 열거형 형식 및 기본값 설명
확장
D2D1_DISPLACEMENTMAP_PROP_SCALE
FLOAT
0.0f
변위 이미지에서 선택한 채널의 강도를 곱합니다. 이 속성을 설정할수록 더 많은 효과가 픽셀을 대체합니다.
XChannelSelect
D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT
D2D1_CHANNEL_SELECTOR
D2D1_CHANNEL_SELECTOR_A
이 효과는 이 색 채널에서 강도를 추출하고 이를 사용하여 이미지를 X 방향으로 공간적으로 대체합니다. 자세한 내용은 색 채널을 참조하세요.
YChannelSelect
D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT
D2D1_CHANNEL_SELECTOR
D2D1_CHANNEL_SELECTOR_A
이 효과는 이 색 채널에서 강도를 추출하고 이를 사용하여 이미지를 Y 방향으로 공간적으로 대체합니다. 자세한 내용은 색 채널을 참조하세요.

색 채널

열거형 설명
D2D1_CHANNEL_SELECTOR_R 효과는 빨간색 채널에서 강도 출력을 추출합니다.
D2D1_CHANNEL_SELECTOR_G 효과는 녹색 채널에서 강도 출력을 추출합니다.
D2D1_CHANNEL_SELECTOR_B 효과는 파란색 채널에서 강도 출력을 추출합니다.
D2D1_CHANNEL_SELECTOR_A 이 효과는 알파 채널에서 강도 출력을 추출합니다.

출력 비트맵

다음 수식을 사용하여 출력 비트맵의 최대 크기를 확인할 수 있습니다.

출력 비트맵? Pixels=(입력 비트맵 크기?( DIP)+Scale)*(User DPI/96)

출력 비트맵y Pixels=(입력 비트맵 크기y(DIP) + Scale)*(User DPI/96)

요구 사항

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

ID2D1Effect