【发布时间】:2021-09-21 06:12:58
【问题描述】:
我正在用 Pygame 制作一个绘图程序。除了可以保存图像之外,所有功能基本上都已完成。是否有任何内置的 Pygame 功能可以做到这一点,或者我必须找到其他方式(例如截屏或其他方式)。
【问题讨论】:
-
裁剪屏幕,然后使用
pygame.image.save()
我正在用 Pygame 制作一个绘图程序。除了可以保存图像之外,所有功能基本上都已完成。是否有任何内置的 Pygame 功能可以做到这一点,或者我必须找到其他方式(例如截屏或其他方式)。
【问题讨论】:
pygame.image.save()
screen 是一个Surface 对象,它有方法subsurface(Rect) 来获取表面的一部分——这部分也是一个Surface 对象。
还有函数pygame.image.save(surface, filename)
其他方法:在开始时创建较小的Surface 并在此表面上绘制(而不是直接在screen 上绘制)和blit() 此表面在screen 上显示它和save() 此表面到文件。
您甚至可以使用许多表面并将它们保留在列表中以创建函数Undo。当您使用新工具时,您复制表面并将其放在列表中。当您使用 Undo 时,您将获得列表中的最后一个表面。
【讨论】:
undo() 函数,所以我猜伟大的思想是一样的。
如果是绘图游戏,那么您可能会发现手动制作图像非常容易。
我知道这听起来很可怕,但事实并非如此,尤其是在 python 中。
您可以使用PyPng 将二维数组转换为图像,因为我假设您已经使用二维数组来存储绘图
【讨论】: