When I use this method to resize a bitmap:
private Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
{
Bitmap result = new Bitmap(nWidth, nHeight);
using (Graphics g = Graphics.FromImage((Image)result))
{
g.SmoothingMode = SmoothingMode.None;
g.DrawImage(b, 0, 0, nWidth, nHeight);
}
return result;
}
It still uses antialiasing even though I specified:
g.SmoothingMode = SmoothingMode.None;
I want just a basic resizing without any smoothing.开发者_如何学Python
Instead of doing
g.SmoothingMode = SmoothingMode.None;
you should do
g.InterpolationMode = InterpolationMode.NearestNeighbor;
Anti-aliasing is a sub-pixel thing, you're actually looking for Nearest Neighbour interpolation during the resize operation.
Take a look at the InterpolationMode property.
I think that's what you want. Hanselman has a good blog article on it.
精彩评论