使用graphics.DrawImage进行非平滑的Upscaling
我正在网格中绘制一些图像。 图像保存为16x16px pngs。
但是,我后来决定将网格的大小增加到32x32px。
当我使用以下代码时:
graphics.DrawImage(image, Xdraw, Ydraw, 32, 32);
其中image是从png加载的Image,而Xdraw和Ydraw是在上面某处决定的左上角。
图像稍微模糊,因为.DrawImage使用双三次(或其他平滑函数)来放大图像。 我希望它关闭平滑,所以我可以保留硬边。
这可能吗?
我认为你应该改变图形的InterpolationMode
属性。 我们来看看Graphics类的SmoothingMode
和CompositingQuality
。
有两件事可能有用。
- 尝试在Graphics对象上试验InterpolationMode属性。 不幸的是,我不知道哪个设置比默认设置更好。
- 尝试在Graphics对象上使用ScaleTransform (记得在完成后重置它)。