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


Как обрезать прямоугольник с выравниванием по оси

В этом разделе описывается, как вырезать изображение с прямоугольником с выравниванием по оси. Этот подход создает только прямоугольные клипы, так как границы содержимого выровнены по оси прямоугольника. Этот подход более эффективен, чем использование слоев с границами содержимого. Дополнительные сведения см. в разделе "Обзор слоев".

Клип с прямоугольником с выравниванием по оси

  1. Загрузите исходный образ из ресурса. Сведения о загрузке растрового изображения см. в разделе "Загрузка растрового изображения" из ресурса.

  2. Вызов ID2D1RenderTarget::P ushAxisAlignedClip , чтобы указать прямоугольник. Команды отрисовки обрезаются к прямоугольнику.

  3. Нарисуйте исходное изображение.

  4. Вызов ID2D1RenderTarget::P opAxisAlignedClip , чтобы удалить последний выровненный по оси клип из целевого объекта отрисовки.

Например, на следующем рисунке исходный растровый рисунок слева составляет 200*130 пикселей. Растровое изображение справа — это исходная растровая карта, обрезанная прямоугольником выровненной по оси. Измерения : (20, 20) до (100, 100).

иллюстрация растрового изображения золотой рыбки до и после обрезания растрового изображения

Чтобы создать обрезанное изображение, создайте прямоугольную структуру в качестве области вырезки. Вызов PushAxisAlignedClip с областью вырезки и нарисуйте исходное изображение. Вызовите PopAxisAlignedClip , чтобы удалить клип из целевого объекта отрисовки. В следующем примере кода показано, как это сделать:

pRT->PushAxisAlignedClip(
    D2D1::RectF(20, 20, 100, 100),
    D2D1_ANTIALIAS_MODE_PER_PRIMITIVE
    );

pRT->FillRectangle(D2D1::RectF(0, 0, 200, 133), m_pOriginalBitmapBrush);
pRT->PopAxisAlignedClip();

Справочник по Direct2D