
Untitled
By: a guest on
Jul 29th, 2012 | syntax:
None | size: 0.82 KB | hits: 12 | expires: Never
Scaling a System.Drawing.Bitmap to a given size while maintaining aspect ratio
float width = 1024;
float height = 768;
var brush = new SolidBrush(Color.Black);
var image = new Bitmap(file);
float scale = Math.Min(width / image.Width, height / image.Height);
var bmp = new Bitmap((int)width, (int)height);
var graph = Graphics.FromImage(bmp);
// uncomment for higher quality output
//graph.InterpolationMode = InterpolationMode.High;
//graph.CompositingQuality = CompositingQuality.HighQuality;
//graph.SmoothingMode = SmoothingMode.AntiAlias;
var scaleWidth = (int)(image.Width * scale);
var scaleHeight = (int)(image.Height * scale);
graph.FillRectangle(brush, new RectangleF(0, 0, width, height));
graph.DrawImage(image, new Rectangle(((int)width - scaleWidth)/2, ((int)height - scaleHeight)/2, scaleWidth, scaleHeight));