使用graphics.DrawImage进行非平滑升级

时间:2011-04-21 08:31:16

标签: c# .net image graphics

我正在网格中绘制一些图像。图像保存为16x16px pngs。

然而,我后来决定将网格的大小增加到32x32px。

当我使用以下代码时:

graphics.DrawImage(image, Xdraw, Ydraw, 32, 32);

其中image是从png加载的Image,而Xdraw和Ydraw是在上面某处决定的左上角。

图像稍微模糊,因为.DrawImage使用双三次(或其他平滑功能)来放大图像。我希望它关闭平滑,所以我可以保留硬边。

这可能吗?

2 个答案:

答案 0 :(得分:12)

我认为您应该更改图片的InterpolationMode属性。我们来看看Graphics类的SmoothingModeCompositingQuality

答案 1 :(得分:3)

有两件事可行。

  • 尝试在Graphics对象上试验InterpolationMode属性。不幸的是,我不知道哪个设置比默认设置更好。
  • 尝试在Graphics对象上使用ScaleTransform(记得在完成后重置它)。