This is a regular program that I use. You may find this helpful. This is an extension method to download. The only difference is that I omit the code to maintain an aspect ratio that you could easily hook up.
public static Image GetImageHiQualityResized(this Image image, int width, int height) { var thumb = new Bitmap(width, height); using (var g = Graphics.FromImage(thumb)) { g.SmoothingMode = SmoothingMode.HighQuality; g.CompositingQuality = CompositingQuality.HighQuality; g.InterpolationMode = InterpolationMode.High; g.DrawImage(image, new Rectangle(0, 0, thumb.Width, thumb.Height)); return thumb; } }
An example of using this extension method may include:
// Load the original image using(var original = Image.FromFile(@"C:\myimage.jpg")) using(var thumb = image.GetImageHiQualityResized(120, 80)) { thumb.Save(@"C:\mythumb.png", ImageFormat.Png); }
Notes
The difference between the default JPG encoding and the default PNG encoding is really different. Below are two thumbs using your example, one of which is saved using ImageFormat.Png and one with ImageFormat.Jpeg .
PNG image

JPEG image

You may find that the work done by the original poster in this matter will be useful if you decide that you absolutely must use JPEG. This includes adjusting the image codec and encoding parameters to high-quality settings. .NET Saving jpeg with the same quality as when loading
If it were me, I would immediately use the PNG format, since it is lossless.
source share