Обрезка изображения, получение прямоугольника из X, Y?

Я пытаюсь обрезать изображение на С# из целых координат x, y. Я просто не могу понять, как это получить?

public void doCroppedImage(int pointX, int pointY)
{
    Rectangle cropRect = //???
}

person Ben    schedule 04.11.2012    source источник
comment
похоже, это потому, что вы еще не написали никакого кода...   -  person Mitch Wheat    schedule 04.11.2012
comment
Что такое pointX, pointY? Упакованные координаты с x в loword и y в hiword? Или просто x и y одной и той же точки, причем (0,0) всегда является другой точкой?   -  person GSerg    schedule 04.11.2012
comment
Одна точка не образует прямоугольник. Базовая геометрия. См. Структура прямоугольника.   -  person John Saunders    schedule 04.11.2012


Ответы (1)


Вы можете использовать этот код. Он возвращает обрезанное изображение.

public static Bitmap CropImage(Image source, int x,int y,int width,int height)
{
    Rectangle crop = new Rectangle(x, y, width, height);

    var bmp = new Bitmap(crop.Width, crop.Height);
    using (var gr = Graphics.FromImage(bmp))
    {
        gr.DrawImage(source, new Rectangle(0, 0, bmp.Width, bmp.Height), crop, GraphicsUnit.Pixel);
    }
    return bmp;
} 

Но один комментарий: чтобы обрезать изображение, вам нужно знать не только координаты x и y точки обрезки, но также ширину и высоту обрезанного изображения.

person antew    schedule 04.11.2012