В ядре .net у меня есть контроллер, который возвращает случайное изображение. Допустим, у меня есть смайлик. Когда я вызываю localhost/1000/1000, он возвращает изображение смайлика шириной и высотой 1000 пикселей каждое.
Когда я вызываю localhost/500/1000, я обрезаю его:
До сих пор я сделал это.
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;
Вместо того, чтобы иметь половину смайлика, я хотел бы обрезать его из центра следующим образом:
Как я могу это сделать?
Вы пробовали это?
Rectangle rect = new Rectangle(image.Width / 4, 0, width, height);
Редактировать (добавляя объяснение): начиная прямоугольник с первой четверти изображения, он закрывает нужную часть, поэтому, если вам нужна правая половина, вы должны начать с image.Width / 2
.