Show / Hide Table of Contents

Практическое руководство. Обрезка и масштабирование изображений

Graphics Класс предоставляет несколько DrawImage методы, некоторые из которых имеют параметры прямоугольника источника и назначения, которые можно использовать для обрезки и масштабирования изображений.

Пример

В следующем примере создается Image объект из файла Apple.gif. Код рисует изображение всей apple в его исходном размере. Затем код вызывает DrawImage метод Graphics для рисования фрагмента изображения apple в прямоугольник назначения, который больше, чем исходное изображение apple.

DrawImage Метод определяет, какая часть элемента apple для рисования, просмотрев исходный прямоугольник, который задается в-четвертых, третий, пятая и шестая аргументы. В этом случае apple обрезается 75 процентов от его ширины и 75% высоты.

DrawImage Метод определяет, где рисовать обрезанное apple и как осуществлять обрезанное apple, просмотрев целевого прямоугольника, который указан с помощью второго аргумента. В этом случае целевого прямоугольника — 30% шире и 30% выше, чем исходное изображение.

Ниже показан исходный apple и масштабированное обрезанное изображение.

Снимок экрана исходный образ и то же изображение обрезается.

Image image = new Bitmap("Apple.gif");

// Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0);

// Make the destination rectangle 30 percent wider and
// 30 percent taller than the original image.
// Put the upper-left corner of the destination
// rectangle at (150, 20).
int width = image.Width;
int height = image.Height;
RectangleF destinationRect = new RectangleF(
    150,
    20,
    1.3f * width,
    1.3f * height);

// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
RectangleF sourceRect = new RectangleF(0, 0, .75f * width, .75f * height);
e.Graphics.DrawImage(
    image,
    destinationRect,
    sourceRect,
    GraphicsUnit.Pixel);

Компиляция кода

Предыдущий пример предназначен для работы с Windows Forms и требует PaintEventArgs e, который является параметром Paint обработчик событий. Не забудьте заменить Apple.gif путь, допустимые в вашей системе и имя файла изображения.

См. также

  • Работа с растровыми и векторными изображениями с использованием классов Image, Bitmap и Metafile
  • Работа с растровыми и векторными изображениями
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX