python - Python 中的绘制程序 - 撤消和重做

标签 python pygame paint undo redo

我目前正在使用 python 和 pygame 创建一个绘画程序。我目前在程序中创建撤消/重做功能时遇到问题。我想这样做的方法是在每次用户释放鼠标后保存 Canvas 图像,但我不确定是否必须将各个图像保存在程序关闭后删除的临时文件夹中。我还了解到这种方法会影响程序的性能,所以我想知道是否还有其他方法可以更有效地工作。谢谢。

最佳答案

将副本写入文件听起来确实有点繁琐,是否需要无限撤消?我建议使用类似 pythons collections.deque 的东西作为保存最后 N 个修改的循环缓冲区,这将使您不必担心清理和磁盘存储。如果每次拍摄完整快照都会影响性能,您可能需要考虑根据用户执行的最后操作将每个保存区域限制到特定的边界框。

关于python - Python 中的绘制程序 - 撤消和重做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827199/

相关文章:

Java AWT 重量级 Canvas

python - Celery 不排队到远程代理,而是将任务添加到本地主机

python - 如何用Python获取最近的工作日?

python - 使用CMD终端时Python无法显示希伯来语

python - 为什么pygame不显示我的文本?

Python/Pygame - 创建 "End credits"就像电影结尾处的那样

python - Pygame:通过网络发送图像 PodSixNet

java - 在我移动东西之前不画画

python - 如何在 Python 中使用签名 URL 上传到 Google 存储桶?

android - 为什么 drawLine 偏移 1 个像素?