У меня есть файл образа, который я хотел бы, чтобы обрезать и изменять размер в то же время, используя класс System.DrawingКак обрезать и изменять размер изображения в одном шаге в .NET
Я пытаюсь построить на идеях в этой статье: 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.
вы можете посмотреть исходный код http://imager.codeplex.com (около 100 строк) или использовать его как dll – Omu