Как обрезать и изменить размер изображения за один шаг в .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.

Ответы на вопрос(5)

Ваш ответ на вопрос