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

发布于 2024-11-02 15:50:47 字数 309 浏览 0 评论 0原文

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

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

当我使用以下代码时:

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

其中 image 是从 png 加载的图像,Xdraw 和 Ydraw 是上面确定的左上角。

图像有点模糊,因为 .DrawImage 使用双三次(或其他一些平滑函数)来放大图像。我希望它关闭平滑,这样我就可以保留硬边缘。

这可能吗?

I am drawing some images in a grid. The images are saved as 16x16px pngs.

However, I later decided to up the size of the grid to 32x32px.

When I use the following code:

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

where image is an Image loaded from a png, and Xdraw and Ydraw are the top left corner decided somewhere above.

The image is slightly blurry as .DrawImage uses bicubic(or some other smoothing function) to upscale the image. I would like it to turn the smoothing off, so I can preserve the hard edges.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜清冷一曲。 2024-11-09 15:50:47

我认为你应该更改图形的 InterpolationMode 属性。还可以查看 Graphics 类的 SmoothingModeCompositingQuality

I think you should change InterpolationMode property of your graphics. Aslo take a look into SmoothingMode and CompositingQuality of Graphics class.

本王不退位尔等都是臣 2024-11-09 15:50:47

有两件事可能有效。

  • 尝试在您的计算机上尝试使用 InterpolationMode 属性图形对象。不幸的是,我不知道哪种设置比默认设置更好。
  • 尝试在 Graphics 对象上使用 ScaleTransform (记住在你完成了)。

There's two things that might work.

  • Try to experiment with the InterpolationMode property on your Graphics object. Unfortunately, off the top of my head, I don't know which setting woud work better than the default.
  • Try using a ScaleTransform on your Graphics object (an remember to reset it when you're done).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文