首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于图像编辑中撤消-重做状态可维护性的建议

关于图像编辑中撤消-重做状态可维护性的建议
EN

Stack Overflow用户
提问于 2011-08-18 17:04:51
回答 1查看 396关注 0票数 0

我正在开发一个用java编写的图像编辑应用程序,这当然需要撤销-重做功能。我做了什么.我创建了一个state类,它将包含一个bufferedimage,ref to prev state,ref to next State。然后形成一个状态的链表,通过单击undo和redo按钮来回遍历。所以我想要什么.我观察到bufferedimage对于一个中等(桌面)大小的图像来说占用了太多的memory...say 4MB。你们能推荐更好的方法吗?

谢谢你!!

EN

回答 1

Stack Overflow用户

发布于 2011-08-18 17:19:07

如果您的状态使用太多内存,则应该使用Command pattern而不是Memento pattern

您将拥有一个UndoRedo对象的链接列表,每个对象包含的信息恰好足以运行撤消命令或重做命令。

您必须使用不同的方法来组织命令:

  • 具有双向命令。例如,当更改像素的颜色时,操作必须同时包含原始颜色和新颜色,以便该命令可以在每个撤消块的两个不同命令directions.
  • Have中运行。对于一些更改图像上所有内容的命令(如更改比例或亮度,其中有关原始图像的某些信息会丢失),您必须同时存储要重做的命令和要撤消的命令。如果这是完整的图像,则内存占用将与您已有的相似。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7104871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档