Как обрезать и изменить размер изображения за один шаг в .NET
У меня есть файл изображения, который я хотел бы обрезать и изменить размер одновременно с помощью класса System.Drawing
Я пытаюсь опираться на идеи, найденные в этой статье:http://www.schnieds.com/2011/07/image-upload-crop-and-resize-with.html
Я могу обрезать и изменять размеры по отдельности, но когда я пытаюсь объединить процесс, я получаю некоторые странные результаты.
Вот что я пытался
using (System.Drawing.Bitmap _bitmap = new System.Drawing.Bitmap(w, h))
{
_bitmap.SetResolution(img.HorizontalResolution, img.VerticalResolution);
using (Graphics _graphic = Graphics.FromImage(_bitmap))
{
_graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
_graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
_graphic.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
_graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//Code used to crop
_graphic.DrawImage(img, 0, 0, w, h);
_graphic.DrawImage(img, new Rectangle(0, 0, w, h), x, y, w, h, GraphicsUnit.Pixel);
//Code I used to resize
_graphic.DrawImage(img, 0, 0, img.Width, img.Height);
_graphic.DrawImage(img, new Rectangle(0, 0, W_FixedSize, H_FixedSize), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);
//continued...
}
}
В приведенном выше коде ... есть два комментария ... один для обрезки и один для изменения размера.
Для обрезки я передаю правильные координаты и ширину / высоту части изображения для обрезки (x, y, w, h).
Я хотел бы обрезать на основе моих параметров и нарисовать изображение на основе параметров размера W_FixedSize и H_Fixed.