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


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

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

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

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

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

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

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

Например, на следующем рисунке исходный растровый рисунок слева составляет 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