当我使用此方法调整位图大小时:
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;
}
即使我指定了它仍然使用抗锯齿:
g.SmoothingMode = SmoothingMode.None;
我想要一个没有任何平滑的基本调整大小。
答案 0 :(得分:10)
而不是做
g.SmoothingMode = SmoothingMode.None;
你应该做
g.InterpolationMode = InterpolationMode.NearestNeighbor;
答案 1 :(得分:3)
消除锯齿是一个子像素的事情,你实际上在调整大小操作期间寻找Nearest Neighbour interpolation。
答案 2 :(得分:1)
查看InterpolationMode属性。
我认为这就是你想要的。 Hanselman有一篇很好的博客文章。