【问题标题】:saving modified screens in python/pygame for later use在 python/pygame 中保存修改后的屏幕供以后使用
【发布时间】:2016-06-22 18:59:02
【问题描述】:
当使用python和pygame时:在用背景图片加载屏幕并blitting新对象(文本,圆形,矩形等)后,有没有办法保存修改后的屏幕,以便稍后在程序中调用?具体来说,我正在设置背景并为新对象添加 blitting,并希望将所有 blits 完整保存的屏幕图像,以便稍后在程序中用作可以操作 sprite 的新背景。欢迎提出任何建议!
【问题讨论】:
标签:
python
background
pygame
screen
sprite
【解决方案1】:
Blitting 是双向的,这意味着您可以将某些东西blit 到显示屏幕上,但您也可以将屏幕blit 到另一个表面上。因此,只需制作一个与显示表面大小相同的新表面,然后将屏幕blit 到该表面上以供以后使用。
【解决方案2】:
找到了一个解决方案,效果比我预期的要好:
将原始背景粘贴到我的表面上,然后添加大量圆圈、矩形和文本以制作具有多个刻度盘、仪表和标签的图像后,我运行了以下命令:
pygame.display.update()
window = pygame.display.set_mode((800,480),0,32)
pygame.image.save(TFT,"screen_update.jpg")
新图像作为“screen_update.jpg”保存到磁盘(我的 RPi2 上的 XDcard)
然后我只需将名称更改为“ANAL_update.jpg”并将其用作下一个程序运行的背景。我注释掉了所有用于创建矩形、圆形和标签的代码,它可以工作。我将在程序中添加一个可选择的“更新”例程,并将所有额外的绘图和标签移动到该例程中,以便在我希望更改背景布局时使用。我喜欢该程序创建一个新的更新文件的事实,该文件只需要重命名即可使用并将背景复制到其他机器。
注意:这是在我的 RaspberryPi 2B 上工作,带有 HDMI 输出到 42 英寸高清电视进行开发,但它打算在带有官方 RPi 7 英寸 TFT 显示器的 RPi3B 上运行。感谢所有回复的人和其他人谁留下了与我类似的先前问题的相关代码。