第三种处理撤消的常用方法。那就是在Undo对象中存储两个状态之间的差异。您可以将其作为实际的差异(例如,哪些像素已更改以及像素已更改为像素)来进行,但这可能与在每个阶段存储位图几乎一样浪费内存。
另外,您也可以使用命令模式方法,但是在存储撤消命令时,您无需存储命令的倒数,而无需重新运行命令,即,如果用户将红色值增加了十,那么撤消命令就是将其减少十。
。要撤消 *** 作,只需执行反命令即可。很难找到某些命令的反函数,例如“转换为黑白”,但是通过将基础位图与许多由命令打开或关闭的过滤器混合,您可能可以做到。
作为另一建议,请使用您提到的命令方法,但请保留上一步的位图。当用户撤消 *** 作时,立即显示上一步(n-1)中缓存的位图,然后开始计算n-2的位图,以便您准备好再次按下undo时。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)