Share via


배율 효과

이미지를 확장 또는 축소하려면 이 효과를 사용합니다. 효과에는 가장 가까운 인접, 선형, 입방형, 다중 샘플 선형, 이방성 및 고품질 입방형의 6가지 크기 조정 모드가 있습니다.

이 효과에 대한 CLSID는 CLSID_D2D1Scale.

예제 이미지

이 예제에서는 입력의 2배로 확대/축소하고 원래 크기로 자르는 배율 효과를 보여줍니다.

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

scaleEffect->SetInput(0, bitmap);

scaleEffect->SetValue(D2D1_SCALE_PROP_CENTER_POINT, D2D1::Vector2F(256.0f, 192.0f));
scaleEffect->SetValue(D2D1_SCALE_PROP_SCALE, D2D1::Vector2F(2.0f, 2.0f));

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

효과 속성

표시 이름 및 인덱스 열거형 설명
확장
D2D1_SCALE_PROP_SCALE
입력 크기에 대한 출력 크기의 비율로 X 및 Y 방향의 배율 크기입니다. 이 속성은 D2D1_VECTOR_2Fdefined 다음과 같습니다(X 배율, Y 배율). 배율 크기는 FLOAT, 단위가 없으며 양수 또는 0이어야 합니다.
형식이 D2D1_VECTOR_2F.
기본값은 {1.0f, 1.0f}입니다.
CenterPoint
D2D1_SCALE_PROP_CENTER_POINT
이미지 크기 조정 중심점입니다. 이 속성은 (점 X, 점 Y)로 정의된 D2D1_VECTOR_2F. 단위는 DIP에 있습니다.
중심점 속성을 사용하여 왼쪽 위 모서리가 아닌 점 주위로 크기를 조정합니다.
형식이 D2D1_VECTOR_2F.
기본값은 {0.0f, 0.0f}입니다.
BorderMode
D2D1_SCALE_PROP_BORDER_MODE
소프트 또는 하드 이미지의 테두리를 계산하는 데 사용되는 모드입니다. 자세한 내용은 테두리 모드를 참조하세요.
형식이 D2D1_BORDER_MODE.
기본값은 D2D1_BORDER_MODE_SOFT.
선명도
D2D1_SCALE_PROP_SHARPNESS
고품질 입방 보간 모드에서는 크기 조정 필터의 선명도 수준이 0에서 1 사이의 부동 소수로 표시됩니다. 값은 단위가 없습니다. 선명도를 사용하여 이미지를 축소할 때 이미지 품질을 조정할 수 있습니다.
선명도 요소는 커널의 모양에 영향을 줍니다. 선명도 인자가 높을수록 커널이 작습니다.
참고: 이 속성은 고품질 입방 보간 모드에만 영향을 줍니다.
FLOAT 형식입니다.
기본값은 0.0f입니다.
보간Mode
D2D1_SCALE_PROP_INTERPOLATION_MODE
효과에서 이미지 크기를 조정하는 데 사용하는 보간 모드입니다. 품질과 속도의 범위는 6가지 배율 모드입니다. 자세한 내용은 보간 모드를 참조하세요.
형식이 D2D1_SCALE_INTERPOLATION_MODE.
기본값은 D2D1_SCALE_INTERPOLATION_MODE_LINEAR.

테두리 모드

이름 Description
D2D1_BORDER_MODE_SOFT 효과는 변환 커널을 적용할 때 입력 범위를 벗어난 샘플에 대해 투명한 검은색 픽셀로 입력 이미지를 채운다. 그러면 이미지에 대한 부드러운 가장자리가 만들어지고 프로세스에서 커널 크기로 출력 비트맵을 확장합니다.
D2D1_BORDER_MODE_HARD 이 효과는 입력 범위를 벗어난 샘플에 대한 미러 형식 테두리 변환을 사용하여 입력 이미지를 확장합니다. 출력 비트맵의 크기는 입력 비트맵의 크기와 같습니다.

`

보간 모드

열거형 설명
D2D1_SCALE_INTERPOLATION_MODE_NEAREST_NEIGHBOR 가장 가까운 단일 지점을 샘플하고 사용합니다. 이 모드는 처리 시간을 줄이지만 가장 낮은 품질의 이미지를 출력합니다.
D2D1_SCALE_INTERPOLATION_MODE_LINEAR 4포인트 샘플 및 선형 보간을 사용합니다. 이 모드는 가장 가까운 인접 모드보다 더 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다.
D2D1_SCALE_INTERPOLATION_MODE_CUBIC 보간을 위해 16 샘플 입방 커널을 사용합니다. 이 모드는 가장 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다.
D2D1_SCALE_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR 좋은 에지 앤티앨리어싱을 위해 단일 픽셀 내에 4개의 선형 샘플을 사용합니다. 이 모드는 픽셀이 적은 이미지에서 소량으로 축소하는 데 적합합니다.
D2D1_SCALE_INTERPOLATION_MODE_ANISOTROPIC 이방성 필터링을 사용하여 비트맵의 변형된 모양에 따라 패턴을 샘플링합니다.
D2D1_SCALE_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC 변형 매트릭스에 다운스케일링이 관련된 경우 변수 크기의 고품질 입방 커널을 사용하여 이미지의 미리 다운스케일을 수행합니다. 그런 다음 최종 출력에 입방 보간 모드를 사용합니다.

참고

모드를 선택하지 않으면 효과가 기본적으로 D2D1_SCALE_INTERPOLATION_MODE_LINEAR.

참고

이방성 모드는 크기 조정 시 mipmap을 생성합니다. 그러나 이 효과에 입력되는 효과에 대해 Cached 속성을 true로 설정하면 밉맵이 충분히 작은 이미지에 대해 매번 생성되지 않습니다.

출력 비트맵

출력 비트맵의 위치와 크기는 지정된 배율 인수 및 중심점에 따라 달라집니다.

다음 수식을 사용하여 출력 비트맵의 크기를 계산할 수 있습니다.

BitmapSizex(Pixels)=Scale x*Original Bitmap Sizex (DIP)*(UserDPI/96)
BitmapSizey(Pixels)=Scaley*원래 비트맵 크기y (DIP)*(UserDPI/96)

효과는 픽셀의 분수를 가장 가까운 전체 픽셀까지 반올림합니다.

비트맵의 위치는 (0, 0) 또는 중심점 속성의 값입니다.

요구 사항

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

ID2D1Effect