画布操作回退方法、装置及计算机设备及存储介质与流程

文档序号:28275319发布日期:2021-12-31 20:37阅读:97来源:国知局
画布操作回退方法、装置及计算机设备及存储介质与流程

1.本技术涉及操作数据处理领域,尤其涉及一种画布操作回退方法、装置、计算机设备及存储介质。


背景技术:

2.在一个编辑工具中,用户对数据的操作行为经常需要一种undo引擎来进行数据的回退和恢复,比如撤回一条删除操作。在文本编辑工具中,比如“word”,主要是通过“命令”的方法来解决的(撤消命令),这种方式对于每一种操作定义一种抽象的“命令”,并同时定义一种逆操作的命令。每一次当数据发生改变时,就将对应的命令记录下来,在需要回退时,调用相应的逆操作命令来进行回退。这种方式可以实现数据的增量存储,缺点是开发成本过高。
3.随着it行业的发展,现在的“编辑工具”不再限于“文本编辑”,而出现了更多的“画布编辑”的工具,比如像photoshop,这种工具需要记录更多的操作,除了对文本的操作外,还有拖拽的动作、各种属性数据的变化、图层的切换等等。更多维的数据,如果想要使用传统的“命令”式开发,就需要更多的“命令/逆命令”来记录,这样开发的时间成本就大大的增加了。而另一种常用方式,是把所有的数据的整体进行存储,也称作“快照式”。这种方式开发简单,逻辑清晰,但是缺点在于浪费了大量空间来存储重复的数据,在saas平台中,经常需要客户端与服务器进行实时的保存与储存,这样就带来了极大了通信负载。因此,现有的“快照式”回退存在数据存储量大的问题。


技术实现要素:

4.本技术实施例的目的在于提出一种画布操作回退方法、装置、计算机设备及存储介质,以解决现有的“快照式”回退存在数据存储量大的问题。
5.为了解决上述技术问题,本技术实施例提供一种画布操作回退方法,采用了如下所述的技术方案:
6.计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据;
7.将所述第一画布数据的第一哈希值、所述第二画布数据的第二哈希值以及所述目标画布操作的diff数据进行打包,得到所述目标画布操作的目标打包数据,并根据所述目标画布操作的时序对所述目标打包数据进行存储;
8.接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据;
9.当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。
10.进一步的,在所述接收到包含回退到的指定时刻的画布操作回退指令时,获取当
前时刻画布数据以及所述指定时刻对应的目标打包数据的步骤之后,所述方法还包括:
11.当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则提示是否自动恢复默认时刻的画布数据;
12.若用户选择自动恢复,则获取所述默认时刻对应的目标打包数据;
13.当所述当前时刻画布数据的第三哈希值与所述默认时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述默认时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。
14.进一步的,在所述在所述接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据的步骤之后,所述方法还包括:
15.当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则获取与预设的时间段对应的目标打包数据;
16.若所述与预设的时间段对应的目标打包数据中存在与所述第三哈希值相同的第二哈希值,则通过与所述第三哈希值相同的第二哈希值所对应的目标画布操作的diff数据对所述当前时刻画布数据进行回退。
17.进一步的,在所述在所述接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据的步骤之后,所述方法还包括:
18.当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则提示历史画布数据已损坏。
19.进一步的,在对所述当前时刻画布数据进行回退之后,所述方法还包括:
20.获取回退后的画布数据;
21.当回退后的画面数据的第四哈希值与对应的目标打包数据中的所述第一哈希值不相同时,计算所述回退后的画布数据与所述第一哈希值对应的第一画布数据之间的第二差异数据;
22.将所述所述回退后的画布数据、所述第一哈希值对应的第一画布数据以及所述第二差异数据进行预览,并提示用户是否接受回退结果。
23.进一步的,所述计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据的步骤包括:
24.将目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据输入预训练的差异模型中,通过所述预训练的差异模型输出所述目标画布操作的第一差异数据,将所述第一差异数据作为所述目标画布操作的diff数据,所述第一差异数据包括局部差异数据以及对齐点位置。
25.进一步的,所述通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退的步骤包括:
26.通过所述指定时刻对应的目标打包数据中的对齐点位置,在所述当前时刻画布数据中确定局部差异数据的回退区域;
27.通过所述局部差异数据对所述回退区域内的数据进行回退。
28.为了解决上述技术问题,本技术实施例还提供一种画布操作回退装置,采用了如
下所述的技术方案:
29.第一计算模块,用于计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据;
30.打包存储模块,用于将所述第一画布数据的第一哈希值、所述第二画布数据的第二哈希值以及所述目标画布操作的diff数据进行打包,得到所述目标画布操作的目标打包数据,并根据所述目标画布操作的时序对所述目标打包数据进行存储;
31.第一获取模块,用于接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据;
32.第一回退模块,用于当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。
33.为了解决上述技术问题,本技术实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述的画布操作回退方法的步骤。
34.为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的画布操作回退方法的步骤。
35.本技术实施例计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据;将所述第一画布数据的第一哈希值、所述第二画布数据的第二哈希值以及所述目标画布操作的diff数据进行打包,得到所述目标画布操作的目标打包数据,并根据所述目标画布操作的时序对所述目标打包数据进行存储;接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据;当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。实施本技术实施例主要有以下有益效果:在计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据后,得到对应于目标画布操作的diff数据;通过目标画布操作的diff数据表征一个目标画布操作前后的两个画布数据变化,并将该画布数据变化进行存储,在需要进行操作回退时,直接在当前画布数据中应用画布数据变化,解决直接对的所有的画布数据进行整体存储带来的存储量大的问题。
附图说明
36.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本技术可以应用于其中的示例性系统架构图;
38.图2是根据本技术的画布操作回退方法的流程图;
39.图3是根据本技术的画布操作回退装置的结构示意图;
40.图4是根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
41.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
42.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
43.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
44.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
45.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如编辑类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
46.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture expertsgroup audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving pictureexperts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
47.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
48.需要说明的是,本技术实施例所提供的画布操作回退方法一般由服务器执行,相应地,画布操作回退装置一般设置于服务器中。
49.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
50.继续参考图2,示出了根据本技术的画布操作回退方法的一个实施例的流程图。所述的画布操作回退方法,包括以下步骤:
51.201,计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到目标画布操作的diff数据。
52.在本技术实施例中,上述画布操作通过画布编辑工具进行实现,画布编辑工具可以是对图像进行编辑的软件或程序。
53.画布编辑工具一般设置在终端设备中,画布操作回退方法一般设置在服务器中。当然,画布操作回退方法也可以设置在终端设备中,以使画布编辑工具在离线状态下也能实施画布操作回退方法。在本实施例中,画布操作回退方法运行于其上的电子设备(例如图
1所示的服务器)可以通过有线连接方式或者无线连接方式与终端进行通信。需要指出的是,上述无线连接方式可以包括但不限于3g/4g/5g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
54.用户通过画布编辑工具进行画布操作,通过画布操作,将操作之前的画布数据改变成操作之后的画布数据,从而得到新的画布数据。
55.上述画布操作可以是拖拽的动作、各种属性数据的属性值、图层的切换等。上述画布数据可以是结构化数据,具体来说,上述画面数据可以包括拖拽的动作数据、各种属性数据的变化数据以及图层的切换数据等。
56.举例来说,上述拖拽的动作数据可以包括拖拽目标的编码值e1,拖拽的目标位置(x1,y1),拖拽的发生时间t1,则拖拽的动作数据可以通过结构化数据(e1,x1,y1,t1)进行表示,若发生拖拽的动作,则结构化数据(e1,x1,y1,t1)会存在对应的值,若没有发生拖拽的动作,则结构化数据(e1,x1,y1,t1)中全为0或全部为空值。进一步的,动作数据可以通过结构化数据(e1,x1,y1,t1,e2,x2,y2,t3

ei,xi,yi,ti)进行表示,i表示有i种动作类型,xi,yi表示第i种动作的作用位置,ti表示第i种动作的发生时间。
57.同样的,上述各种属性数据的属性值数据可以包括属性类型以及属性值,上述各种属性数据的属性值数据可以通过结构化数据(k1,v1,k2,v2

kn,vn)进行表示,n表示有n种属性类型,kn表示第n种属性类型的编码值,vn表示第n种属性类型对应的属性值。
58.同样的,上述据可以包括拖拽的动作数据、各种属性数据的变化数据以及可以通过结构化数据(h1,r1,h2,r2

hm,rm)进行表示,m表示有m个图层,hm表示第m个图层的编号,rm表示第m个图层的开关和切换状态,比如rm=0,则表示图层开,rm=1,则表示图层关,rm=2,则表示图层未选中,rm=3,则表示图层被选中。
59.在本技术实施例中,上述画布数据的结构化数据可以是(e1,x1,y1,t1,e2,x2,y2,t3

ei,xi,yi,ti,k1,v1,k2,v2

kn,vn,h1,r1,h2,r2

hm,rm)。
60.目标画布操作在开始状态下的第一画布数据为s=(e1s,x1s,y1s,t1s,e2s,x2s,y2s,t3s

eis,xis,yis,tis,k1s,v1s,k2s,v2s

kns,vns,h1s,r1s,h2s,r2s

hms,rms)。
61.目标画布操作在结束状态下的第二画布数据为e=(e1e,x1e,y1e,t1e,e2e,x2e,y2e,t3e

eie,xie,yie,tie,k1e,v1e,k2e,v2e

kne,vne,h1e,r1e,h2e,r2e

hme,rme)
62.计算第一画布数据s与第二画布数据e之间的第一差异数据diff=e-s=(e1e-e1s,x1e-x1s,y1e-y1s,t1e-t1s,e2e-e2s,x2e-x2s,y2e-y2s,t3e-t3s

eie-eis,xie-xis,yie-yis,tie-tis,k1e-k1s,v1e-v1s,k2e-k2s,v2e-v2s

kne-kns,vne-vns,h1e-h1s,r1e-r1s,h2e-h2s,r2e-r2s

hme-hms,rme-rms),得到目标画布操作的diff数据(diffe1,diffx1,diffy1,difft1,diffe2,diffx2,diffy2,difft3

diffei,diffxi,diffyi,diffti,diffk1,diffv1,diffk2,diffv2

diffkn,diffvn

diffh1,diffr1,diffh2,diffr2

diffhm,diffrm)。
63.在一种可能的实施例中,上述目标画布操作的diff数据中的0值可以通过占位符进行表示,上述目标画布操作的diff数据可以通过函数diffx(mun#0)进行表示,其中,diffx为diff数据的结构化数据(diffe1,diffx1,diffy1,difft1,diffe2,diffx2,diffy2,difft3

diffei,diffxi,diffyi,diffti,diffk1,diffv1,diffk2,diffv2

diffkn,diffvn,diffh1,diffr1,diffh2,diffr2

diffhm,diffrm)的名称函数,diffx(mun0)表示
diffx之前有mun个为0的数据,即有mun个占位符,通过diffx(mun0)可以表示diffx在diff数据的位置。
64.当diff数据中只存在diffe2,diffx2,diffy2,difft3,diffei,diffxi,diffyi,diffti,diffkn,diffvn,diffh2,diffr2,diffhm,diffrm为非零数值时,则diff数据则可以通过(diffe2(4#0),diffx2(0#0),diffy2(0#0),difft3(0#0),diffei(i-4#0),diffxi(0#0),diffyi(0#0),diffti(0#0),diffkn(n-1#0),diffvn(0#0),diffh2(2#0),diffr2(0#0),diffhm(m-4#0),diffrm(0#0))进行表示。通过上述方法得到目标画布操作的diff数据,可以极大减少数据的存储量。
65.202、将第一画布数据的第一哈希值、第二画布数据的第二哈希值以及目标画布操作的diff数据进行打包,得到目标画布操作的目标打包数据,并根据目标画布操作的时序对目标打包数据进行存储。
66.在本技术实施例中,在步骤202之前,还对第一画布数据进行哈希计算,得到第一画布数据的第一哈希值,对第二画布数据进行哈希计算,得到第二画布数据的第二哈希值。
67.将第一画布数据的第一哈希值、第二画布数据的第二哈希值以及目标画布操作的diff数据进行打包,得到目标画布操作的目标打包数据,目标打包数据可以是一个patch补丁数据包。打包的数据结构为(hash1,hash2,diff),其中,hash1为第一哈希值,hash2为第二哈希值,diff为目标画布操作的diff数据。
68.将目标打包数据按目标画布操作的时序进行存储,这样,可以按时序得到每个画布操作对应的目标打包数据。可以将每个画布操作对应的目标打包数据按画布操作的发生时序在saas平台中进行实时的存储。
69.203、接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及指定时刻对应的目标打包数据。
70.在本技术实施例中,用户通过画布编辑工具进行回退操作,产生对应的画布操作回退指令,用户可以选择回退到指定时刻,比如,回退到上一个画布操作的时刻或者回退到上j个画布操作的时刻。
71.上述当前时刻画布数据n=(e1n,x1n,y1n,t1n,e2n,x2n,y2n,t3n

ein,xin,yin,tin,k1n,v1n,k2n,v2n

knn,vnn,h1n,r1n,h2n,r2n

hmn,rmn)。
72.通过上述指定时刻,在存储好的目标打包数据中,查找与指定时刻对应的目标打包数据,与指定时刻对应的目标打包数据包括第一哈希值、第二哈希值以及目标画布操作的diff数据。
73.在指定时刻为上一个画布操作的时刻时,通过上述指定时刻,在存储好的目标打包数据中,查找与指定时刻对应的一个目标打包数据。在指定时刻为上j个画布操作的时刻时,通过上述上j个画布操作的时刻,在存储好的目标打包数据中,查找与指定时刻对应的j个目标打包数据。
74.204、当当前时刻画布数据的第三哈希值与指定时刻对应的目标打包数据中的第二哈希值相同时,则通过指定时刻对应的目标打包数据中的目标画布操作的diff数据对所述当前时刻画布数据进行回退。
75.在本技术实施例中,可以在获取到当前时刻画布数据后,计算当前时刻画布数据的第三哈希值。若当前时刻画布数据的第三哈希值与指定时刻对应的目标打包数据中的第
二哈希值相同,则说明当前时刻画布数据与指定时刻对应的目标打包数据对应的第二画布数据是相同。若当前时刻画布数据的第三哈希值与指定时刻对应的目标打包数据中的第二哈希值不相同,则说明当前时刻画布数据与指定时刻对应的目标打包数据对应的第二画布数据是不相同的,无法通过指定时刻对应的目标打包数据中的目标画布操作的diff数据对所述当前时刻画布数据进行回退,就算回退也得不到指定时刻对应的目标打包数据对应的第一画布数据。
76.进一步的,在指定时刻为上一个画布操作的时刻时,通过上述指定时刻,在存储好的目标打包数据中,查找与指定时刻对应的一个目标打包数据。可以在获取到当前时刻画布数据后,计算当前时刻画布数据的第三哈希值,通过第三哈希值与指定时刻对应的目标打包数据中的第二哈希值进行比较,若第三哈希值与指定时刻对应的目标打包数据中的第二哈希值相同,则说明当前时刻画布数据是完成上一个画布操作得到的第二画布数据,则可以回退到上一个画布操作前的第一画布数据。若第三哈希值与指定时刻对应的目标打包数据中的第二哈希值不相同,则说明当前时刻画布数据不是完成上一个画布操作得到的第二画布数据,数据校验不通过。
77.举例来说,当前时刻为t时刻,指定时刻为t

1时刻,则可以获取到t

1时刻的目标打包数据,计算当前时刻画布数据的第三哈希值hash3
t
,t

1时刻的目标打包数据包括第二哈希值hash2
t-1
。若hash3
t
=hash2
t-1
,则确定与该某个第二哈希值hash2
t-1
对应的t

1时刻的目标打包数据对应的第二画布数据为当前时刻画布数据,可以通过t

1时刻的目标打包数据中目标画布操作的diff数据将t时刻的画布数据回退到t

1时刻的目标打包数据对应的第一画布数据。
78.进一步的,在指定时刻为上j个画布操作的时刻时,通过上述上j个画布操作的时刻,在存储好的目标打包数据中,查找与指定时刻对应的j个目标打包数据。可以在获取到当前时刻画布数据后,计算当前时刻画布数据的第三哈希值,通过第三哈希值与指定时刻对应的j个目标打包数据中的第二哈希值分别进行比较,若第三哈希值与指定时刻对应的j个目标打包数据中的某个第二哈希值相同,则确定与该某个第二哈希值对应的目标打包数据对应的第二画布数据为当前时刻画布数据,可以回退到该某个第二哈希值对应的目标打包数据对应的第一画布数据,并依次回退到指定时刻对应第一画布数据。
79.举例来说,当前时刻为t时刻,指定时刻为t

3时刻,则可以获取到t

3时刻的目标打包数据,t

2时刻的目标打包数据,t

1时刻的目标打包数据,计算当前时刻画布数据的第三哈希值hash3
t
,t

3时刻的目标打包数据包括第二哈希值hash2
t-3
,t

2时刻的目标打包数据包括第二哈希值hash2
t-2
,t

1时刻的目标打包数据包括第二哈希值hash2
t-1
。若hash3
t
=hash2
t-2
,则确定与该某个第二哈希值hash2
t-2
对应的t

2时刻的目标打包数据对应的第二画布数据为当前时刻画布数据,可以通过t

2时刻的目标打包数据中目标画布操作的diff数据将t时刻的画布数据回退到t

2时刻的目标打包数据对应的第一画布数据,再通过t

2时刻的目标打包数据中目标画布操作的diff数据将t

2时刻的目标打包数据对应的第一画布数据回退到t

3时刻的目标打包数据对应的第一画布数据,此时,不用处理t

1时刻的目标打包数据。若hash3
t
=hash2
t-1
,可以通过t

1时刻的目标打包数据中目标画布操作的diff数据将t时刻的画布数据回退到t

1时刻的目标打包数据对应的第一画布数据,再通过t

2时刻的目标打包数据中目标画布操作的diff数据将t

1时刻的目标打包数据对应的第
一画布数据回退到t

2时刻的目标打包数据对应的第一画布数据,最后通过t

2时刻的目标打包数据中目标画布操作的diff数据将t

2时刻的目标打包数据对应的第一画布数据回退到t

3时刻的目标打包数据对应的第一画布数据。
80.本技术实施例计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据;将所述第一画布数据的第一哈希值、所述第二画布数据的第二哈希值以及所述目标画布操作的diff数据进行打包,得到所述目标画布操作的目标打包数据,并根据所述目标画布操作的时序对所述目标打包数据进行存储;接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据;当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。实施本技术实施例主要有以下有益效果:在计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据后,得到对应于目标画布操作的diff数据;通过目标画布操作的diff数据表征一个目标画布操作前后的两个画布数据变化,并将该画布数据变化进行存储,在需要进行操作回退时,直接在当前画布数据中应用画布数据变化,解决直接对的所有的画布数据进行整体存储带来的存储量大的问题。
81.可选的,当上述当前时刻画布数据的第三哈希值与上述指定时刻对应的目标打包数据中的上述第二哈希值不相同时,则提示是否自动恢复默认时刻的画布数据;若用户选择自动恢复,则获取上述默认时刻对应的目标打包数据;当上述当前时刻画布数据的第三哈希值与上述默认时刻对应的目标打包数据中的上述第二哈希值相同时,则通过上述默认时刻对应的目标打包数据中的上述目标画布操作的diff数据对上述当前时刻画布数据进行回退。
82.进一步的,上述默认时刻对应的目标打包数据可以是一个或连续的多个,在默认时刻为上j个画布操作的时刻时,通过上述上j个画布操作的时刻,在存储好的目标打包数据中,查找与默认时刻对应的j个目标打包数据。可以在获取到当前时刻画布数据后,计算当前时刻画布数据的第三哈希值,通过第三哈希值与默认时刻对应的j个目标打包数据中的第二哈希值分别进行比较,若第三哈希值与默认时刻对应的j个目标打包数据中的某个第二哈希值相同,则确定与该某个第二哈希值对应的目标打包数据对应的第二画布数据为当前时刻画布数据,可以回退到该某个第二哈希值对应的目标打包数据对应的第一画布数据。这样,可以在指定时刻回退失败时,回退到默认时刻对应的第一画布数据,避免对画布进行重置。
83.可选的,当上述当前时刻画布数据的第三哈希值与上述指定时刻对应的目标打包数据中的上述第二哈希值不相同时,则获取与预设的时间段对应的目标打包数据;若上述与预设的时间段对应的目标打包数据中存在与上述第三哈希值相同的第二哈希值,则通过与上述第三哈希值相同的第二哈希值所对应的目标画布操作的diff数据对上述当前时刻画布数据进行回退。
84.上述预设的时间段由用户进行确定,比如用户在收到指定时刻回退失败提示时,可以通过画布编辑工具的界面确定预设的时间段。
85.进一步的,上述预设的时间段对应的目标打包数据可以是一个或连续的多个,在
预设的时间段为上j个画布操作的时刻时,通过上述上j个画布操作的时刻,在存储好的目标打包数据中,查找与预设的时间段对应的j个目标打包数据。可以在获取到当前时刻画布数据后,计算当前时刻画布数据的第三哈希值,通过第三哈希值与预设的时间段对应的j个目标打包数据中的第二哈希值分别进行比较,若第三哈希值与预设的时间段对应的j个目标打包数据中的某个第二哈希值相同,则确定与该某个第二哈希值对应的目标打包数据对应的第二画布数据为当前时刻画布数据,可以回退到该某个第二哈希值对应的目标打包数据对应的第一画布数据。这样,可以在指定时刻回退失败时,回退到预设的时间段对应的第一画布数据,避免对画布进行重置。
86.可选的,可以在当前时刻画布数据的第三哈希值与指定时刻对应的目标打包数据中的第二哈希值不相同时,则提示历史画布数据已损坏。或者,可以在当前时刻画布数据的第三哈希值与默认时刻对应的目标打包数据中的第二哈希值不相同时,则提示历史画布数据已损坏。或者,当前时刻画布数据的第三哈希值与预设的时间段对应的目标打包数据中的第二哈希值不相同时,则提示历史画布数据已损坏。
87.可选的,在获取回退后的画布数据后;当回退后的画面数据的第四哈希值与对应的目标打包数据中的上述第一哈希值不相同时,计算上述回退后的画布数据与上述第一哈希值对应的第一画布数据之间的第二差异数据;将上述上述回退后的画布数据、上述第一哈希值对应的第一画布数据以及上述第二差异数据进行预览,并提示用户是否接受回退结果。在回退后的画面数据的第四哈希值与对应的目标打包数据中的上述第一哈希值不相同时,可以通过预览第二差异数据使用户直观发现回退后的不同,方便用户在接受后进行修正。
88.可选的,可以选判断用户的操作类型,操作类型可以包括工具调用的操作和图像画面的操作,若用户的操作类型为对图像画面的操作,比如在图像画面中增加或删除部分画面。此时,可以将目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据输入预训练的差异模型中,通过上述预训练的差异模型输出上述目标画布操作的第一差异数据,将上述第一差异数据作为上述目标画布操作的diff数据,上述第一差异数据包括局部差异数据以及对齐点位置。
89.预训练的差异模型的输出包括局部差异数据以及对齐点位置,在训练过程中,以局部差异数据以及对齐点位置为标签,使用一个操作下的第一画布数据和第二画布数据为样本数据对差异模型进行训练,以使差异模型学习正确的局部差异数据以及对齐点位置进行输出。通过预训练的差异模型,可以在只图像画面进行操作的情况下,快速准确得到局部差异数据以及对齐点位置。
90.可选的,若用户的操作类型为对图像画面的操作,则可以通过上述指定时刻对应的目标打包数据中的对齐点位置,在上述当前时刻画布数据中确定局部差异数据的回退区域;通过上述局部差异数据对上述回退区域内的数据进行回退。可以在只图像画面进行操作的情况下,通过局部差异数据以及对齐点位置对画布数据进行回退,可以提高画布数据的回退速度。
91.进一步参考图3,作为对上述图2所示方法的实现,本技术提供了一种画布操作回退装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
92.如图3所示,本实施例所述的画布操作回退装置包括:
93.第一计算模块301,用于计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据,得到所述目标画布操作的diff数据;
94.打包存储模块302,用于将所述第一画布数据的第一哈希值、所述第二画布数据的第二哈希值以及所述目标画布操作的diff数据进行打包,得到所述目标画布操作的目标打包数据,并根据所述目标画布操作的时序对所述目标打包数据进行存储;
95.第一获取模块303,用于接收到包含回退到的指定时刻的画布操作回退指令时,获取当前时刻画布数据以及所述指定时刻对应的目标打包数据;
96.第一回退模块304,用于当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述指定时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。
97.进一步的,所述装置还包括:
98.第一提示模块,用于当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则提示是否自动恢复默认时刻的画布数据;
99.第二获取模块,用于若用户选择自动恢复,则获取所述默认时刻对应的目标打包数据;
100.第二回退模块,用于当所述当前时刻画布数据的第三哈希值与所述默认时刻对应的目标打包数据中的所述第二哈希值相同时,则通过所述默认时刻对应的目标打包数据中的所述目标画布操作的diff数据对所述当前时刻画布数据进行回退。
101.进一步的,所述装置还包括:
102.第三获取模块,用于当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则获取与预设的时间段对应的目标打包数据;
103.第三回退模块,用于若所述与预设的时间段对应的目标打包数据中存在与所述第三哈希值相同的第二哈希值,则通过与所述第三哈希值相同的第二哈希值所对应的目标画布操作的diff数据对所述当前时刻画布数据进行回退。
104.进一步的,所述装置还包括:
105.第二提示模块,用于当所述当前时刻画布数据的第三哈希值与所述指定时刻对应的目标打包数据中的所述第二哈希值不相同时,则提示历史画布数据已损坏。
106.进一步的,所述装置还包括:
107.第四获取模块,用于获取回退后的画布数据;
108.当回退后的画面数据的第四哈希值与对应的目标打包数据中的所述第一哈希值不相同时,计算所述回退后的画布数据与所述第一哈希值对应的第一画布数据之间的第二差异数据;
109.将所述所述回退后的画布数据、所述第一哈希值对应的第一画布数据以及所述第二差异数据进行预览,并提示用户是否接受回退结果。
110.进一步的,所述第一计算模块还用于将目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据输入预训练的差异模型中,通过所述预训练的差异模型
输出所述目标画布操作的第一差异数据,将所述第一差异数据作为所述目标画布操作的diff数据,所述第一差异数据包括局部差异数据以及对齐点位置。
111.进一步的,所述第一回退模块包括:
112.区域确定单元,用于通过所述指定时刻对应的目标打包数据中的对齐点位置,在所述当前时刻画布数据中确定局部差异数据的回退区域;
113.回退单元,用于通过所述局部差异数据对所述回退区域内的数据进行回退。
114.本技术实施例在计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据后,得到对应于目标画布操作的diff数据;通过目标画布操作的diff数据表征一个目标画布操作前后的两个画布数据变化,并将该画布数据变化进行存储,在需要进行操作回退时,直接在当前画布数据中应用画布数据变化,解决直接对的所有的画布数据进行整体存储带来的存储量大的问题。
115.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
116.所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41

43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
117.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
118.所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如画布操作回退方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
119.所述处理器42在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述画布操作回退方法的计算机可读指令。
120.所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在
所述计算机设备4与其他电子设备之间建立通信连接。
121.本实施例中提供的计算机设备可以执行上述画布操作回退方法的步骤。此处画布操作回退方法的步骤可以是上述各个实施例的画布操作回退方法中的步骤。
122.本技术实施例在计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据后,得到对应于目标画布操作的diff数据;通过目标画布操作的diff数据表征一个目标画布操作前后的两个画布数据变化,并将该画布数据变化进行存储,在需要进行操作回退时,直接在当前画布数据中应用画布数据变化,解决直接对的所有的画布数据进行整体存储带来的存储量大的问题。
123.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的画布操作回退方法的步骤。
124.本技术实施例在计算目标画布操作在开始状态下的第一画布数据与在结束状态下的第二画布数据之间的第一差异数据后,得到对应于目标画布操作的diff数据;通过目标画布操作的diff数据表征一个目标画布操作前后的两个画布数据变化,并将该画布数据变化进行存储,在需要进行操作回退时,直接在当前画布数据中应用画布数据变化,解决直接对的所有的画布数据进行整体存储带来的存储量大的问题。
125.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
126.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1