By default, the Graphics.DrawImage method scales Bitmaps efficiently but unattractively. To avoid ugly aliasing ("jaggies"), set the Graphics object's SmoothingMode, PixelOffsetMode, CompositingQuality, and InterpolationMode to high quality:
public static Bitmap Scale(Bitmap Bitmap, float ScaleFactorX, float ScaleFactorY) { int scaleWidth = (int)Math.Max(Bitmap.Width * ScaleFactorX, 1.0f); int scaleHeight = (int)Math.Max(Bitmap.Height * ScaleFactorY, 1.0f); Bitmap 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); } return scaledBitmap; }
Title | Date |
.NET Public-Key (Asymmetric) Cryptography Demo | July 20, 2025 |
Raspberry Pi 3B+ Photo Frame | June 17, 2025 |
EBTCalc (Android) Version 1.53 is now available | May 19, 2024 |
Vault 3 Security Enhancements | October 24, 2023 |
Vault 3 is now available for Apple OSX M2 Mac Computers! | September 18, 2023 |
Vault (for Desktop) Version 0.77 Released | March 26, 2023 |
EBTCalc (Android) Version 1.44 is now available | October 12, 2021 |