Как вырезать часть изображения в С#

Я понятия не имею, как вырезать изображение прямоугольника из другого большого изображения.

Скажем, есть 300 x 600 image.png.

Я хочу просто разрезать прямоугольник с X: 10 Y 20, с 200, высота 100 и сохранить его в другой файл.

Как я могу сделать это на С#?

Спасибо!!!

Ответы

Ответ 1

Проверьте Графический класс на MSDN.

Вот пример, который укажет вам правильное направление (обратите внимание на объект Rectangle):

public Bitmap CropImage(Bitmap source, Rectangle section)
{
    var bitmap = new Bitmap(section.Width, section.Height);
    using (var g = Graphics.FromImage(bitmap))
    {
        g.DrawImage(source, 0, 0, section, GraphicsUnit.Pixel);
        return bitmap;
    }
}

// Example use:     
Bitmap source = new Bitmap(@"C:\tulips.jpg");
Rectangle section = new Rectangle(new Point(12, 50), new Size(150, 150));

Bitmap CroppedImage = CropImage(source, section);

Ответ 2

Другим способом создания изображения будет клонирование изображения с определенными начальными точками и размером.

int x= 10, y=20, width=200, height=100;
Bitmap source = new Bitmap(@"C:\tulips.jpg");
Bitmap CroppedImage = source.Clone(new System.Drawing.Rectangle(x, y, width, height), source.PixelFormat);