Как перейти в растровое изображение с измененными размерами и кадрированием? - PullRequest
0 голосов
/ 08 апреля 2019

В ядре .net у меня есть контроллер, который возвращает случайное изображение. Допустим, у меня есть смайлик. Когда я вызываю localhost / 1000/1000, он возвращает смайлик с шириной и высотой 1000 пикселей каждый.

smiley

Когда я звонил localhost / 500/1000, я обрезал его:

smiley2

Пока я это сделал.

        Rectangle rect = new Rectangle(0,0,width,height);

        rect.Intersect(new Rectangle(0, 0, image.Width, image.Height));

        image = ((Bitmap)image).Clone(rect, System.Drawing.Imaging.PixelFormat.DontCare);

        var returnedImage = ImageUtils.ToStream(image, System.Drawing.Imaging.ImageFormat.Jpeg);

        return returnedImage;

Вместо того, чтобы иметь половину смайлика, я бы хотел обрезать центр, как это:

smiley3

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

1 Ответ

1 голос
/ 08 апреля 2019

Вы пробовали это?

Rectangle rect = new Rectangle(image.Width / 4, 0, width, height);

Редактирование (добавление объяснения): начиная с прямоугольника в первой четверти изображения, оно покрывает нужную часть, поэтому, если вы хотите правую половину, вы начнете с image.Width / 2.

...