如何在Photoshop等专业绘图应用程序中存储动作以撤消重做?

时间:2016-10-03 09:42:01

标签: algorithm design-patterns heap-memory memory-efficient

我正在制作一个绘图应用程序,并且我已成功实现了撤消重做功能。但是现在我想将每个动作中的图像存储到堆内存中,但是OutOfMemory会崩溃。

所以我需要专业应用程序的一些说明。专业应用程序在绘制时如何存储操作?

1 个答案:

答案 0 :(得分:1)

您正在搜索“命令设计模式”。

参考What is the Action Design Pattern?

https://sourcemaking.com/design_patterns/command

或更一般地说:Google it

命令对象应包含有关已执行操作的数据

在某些情况下,你需要额外的数据来进行撤销操作(例如,当在一堆像素上绘制红色方块时,你需要保存那些像素(仅限同一层),这会要求你执行不同的操作每个操作,有些需要整个图像,有些需要特定的图层,有些可以不保存任何内容(例如新图层)。