Поделиться через


Эффект обрезки

Используйте эффект обрезки для вывода указанной области изображения.

CLSID для этого эффекта CLSID_D2D1Crop.

Пример изображения

Перед
изображение перед эффектом.
После
изображение после преобразования.
ComPtr<ID2D1Effect> cropEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Crop, &cropEffect);

cropEffect->SetInput(0, bitmap);
cropEffect->SetValue(D2D1_CROP_PROP_RECT, D2D1::RectF(0.0f, 0.0f, 256.0f, 192.0f));

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

Свойства эффекта

Отображаемое имя и перечисление индексов Тип и значение по умолчанию Описание
Rect
D2D1_VECTOR_4F
Область, указанная в виде вектора в форме (левая, верхняя, ширина, высота).
D2D1_CROP_PROP_RECT
{-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX}
Единицы находятся в dips.
Примечание :
Прямоугольник будет усечен, если он перекрывает границы края входного изображения.
D2D1_CROP_PROP_BORDER_MODE
D2D1_BORDER_MODE
D2D1_BORDER_MODE_SOFT
  • D2D1_BORDER_MODE_SOFT: если прямоугольник обрезки падает на дробные пиксельные координаты, эффект применяет антиалисинг, что приводит к мягкому краю.
  • D2D1_BORDER_MODE_HARD: если прямоугольник обрезки попадает на дробные пиксельные координаты, эффект зажимает, что приводит к жесткому краю.

Выходной растровый рисунок

Выходные данные этого эффекта — это размер свойства Rect. Длина и ширина вычисляются

ulated с помощью уравнений здесь:

Длина выходных данных в пикселях=(Rect.Right-Rect.Left)*(DPI пользователя/96)
Высота вывода в пикселях=(Rect.Bottom-Rect.Top)*(DPI пользователя/96)

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows]
Минимальный поддерживаемый сервер Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows]
Заголовок d2d1effects.h
Библиотека d2d1.lib, dxguid.lib

ID2D1Effect