【发布时间】:2017-12-03 13:45:05
【问题描述】:
我正在从一个 numpy 数组在 pygame 表面上渲染 Mandelbrot 分形。
当我生成一个 10k 像素 * 10k 像素的图像并使用 pylab 将其保存在一个 1000dpi 的 10 * 10 英寸图像中时,我得到一个 10k 像素的图像,当 Windows 内置照片应用程序通过缩放调整显示它时,它渲染得非常好。 在 pygame 中,图像看起来很丑,尽管它以相同的大小显示:
我正在使用此代码:
pygame.init()
display = pygame.display.set_mode((1000, 1000))
surf = pygame.surfarray.make_surface(gimage)
surf = pygame.transform.rotate(surf, 90)
surf = pygame.transform.scale(surf, (1000, 1000))
如何设置 pygame 图像大小和调整 DPI?
【问题讨论】:
-
阅读文档:scale 是“快速缩放操作”。还有smoothscale 使用不同的算法。也许它会给你更好的结果。
-
您还可以使用
PIL/Pillow到resize() 进行不同的重采样方法。您也可以使用PIL/Pillow显示它。 -
所以我应该将 10k px 调整为 1k px,然后将其返回给 pygame ?我使用 pygame 是因为我可以使用键盘探索 Mandelbrot,设置边界和缩放属性。
-
Smoothscale 提供更好的结果。谢谢你。也许您应该将其添加为答案。
-
尝试使用
PIL/Pillow或CV2调整图像大小,看看效果是否更好。昨天有问题how to use CV2 with PyGame