I using simple re-size method to change my bitmap to new size.
The original bitmap size is 320×240 and i change the size two times
- To 250×160
- Doing some process on the bitmap
- Change it back to 320×240
I found out that after i change it back to 320×240 i see that the bitmap is little smooth and not as i excepted.
How can i avoid this smooth to appear ?
The Resize method:
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
Since you’re using the HighQualityBicubic interpolation mode, the image will be prefiltered and resized using the highest possible quality, resulting in the “smoothing effect”.
You can try setting the InterpolationMode property to
NearestNeighborto obtain a “rougher” result: