배율 효과
이미지를 확장 또는 축소하려면 이 효과를 사용합니다. 효과에는 가장 가까운 인접, 선형, 입방형, 다중 샘플 선형, 이방성 및 고품질 입방형의 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 |