public Bitmap ScaleBitmap(Bitmap Bitmap, int scaleWidth, int scaleHeight)
{
Bitmap scaledBitmap;
try
{
// int scaleWidth = (int)Math.Max(Bitmap.Width * ScaleFactorX, 1.0f);
// int scaleHeight = (int)Math.Max(Bitmap.Height * ScaleFactorY, 1.0f);
scaledBitmap = new Bitmap(scaleWidth, scaleHeight);
// Scale the bitmap in high quality mode.
using (Graphics gr = Graphics.FromImage(scaledBitmap))
{
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
gr.DrawImage(Bitmap, new Rectangle(0, 0, scaleWidth, scaleHeight), new Rectangle(0, 0, Bitmap.Width, Bitmap.Height), GraphicsUnit.Pixel);
}
// Copy original Bitmap's EXIF tags to new bitmap.
foreach (PropertyItem propertyItem in Bitmap.PropertyItems)
{
scaledBitmap.SetPropertyItem(propertyItem);
}
}
catch (Exception ex)
{
scaledBitmap = null;
}
return scaledBitmap;
}