一种基于矢量图元的画法实现方法及装置转让专利

申请号 : CN202211629593.9

文献号 : CN115630622B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翟晨辉

申请人 : 西安葡萄城软件有限公司

摘要 :

本申请公开了一种基于矢量图元的画法实现方法及装置,属于电子表格信息处理技术领域。具体包括:获取输出区域中的业务对象并确定业务对象的类型;识别业务对象中的基础对象;将基础对象中的基本元素抽象为基本图元;其中,不同基本图元位于不同图层;根据业务对象、基础对象与基本元素构建输出区域的图元树;确定显示设备类型并调用相应函数将图元树输出。解决了现有技术中对于不同的输出设备整个输出界面需要写不同的函数,且函数无法通用的问题。还解决了在现有方法中进行输出界面渲染时必须一次处理到位,后期无法单独修改,任何一个图层发生修改整张画布都必须重新绘制的问题。

权利要求 :

1.一种基于矢量图元的画法实现方法,其特征在于,包括:创建可用于获取输出区域中业务对象的第一函数;其中,所述输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域;

根据所述第一函数获取所述输出区域中的所述业务对象并确定所述业务对象的类型;

识别所述业务对象中的基础对象;

为所述基础对象创建第二函数;其中,所述第一函数可以调用所述第二函数;

利用所述第二函数识别所述基础对象中的基本元素;

根据所述基本元素数据创建画法函数;

利用所述画法函数生成基本图元;其中,不同所述基本图元位于不同图层;

以所述输出区域为根节点,所述业务对象为子节点,所述基础对象为孙节点构建图元树;其中,所述业务对象与所述基础对象为多层树形结构,所述业务对象包括所述基础对象和/或图元组和/或所述基本图元,所述图元组包括所述基本图元;

遍历所述图元树查找所述业务对象和/或所述基础对象和/或所述基本元素信息;

通过修改所述图元树和/或所述图元树中每个节点的子节点的属性,对所述输出区域和/或所述输出区域中的部分对象进行缩放或位置调整;

在所述图元树中删除或加入所述业务对象和/或所述基础对象和/或所述基本元素;

确定显示设备类型并调用相应函数将所述图元树输出。

2.根据权利要求1所述的方法,其特征在于,所述基本元素包括文字元素、线段元素、多边形元素、曲线元素、填色元素和图片元素。

3.根据权利要求1所述的方法,其特征在于,所述确定显示设备类型并调用相应函数将所述图元树输出,包括:确定所述显示设备的类型;其中,所述显示设备类型包括:显示屏、打印机、PDF、HTML、图片和SVG;

遍历所述图元树确定所述图元树中的所述基本图元;

调用所述显示设备对应的画法函数与API,并在所述显示设备中画出所述图元树。

4.一种基于矢量图元的画法实现装置,其特征在于,包括:第一函数模块,用于创建可用于获取输出区域中业务对象的第一函数;其中,所述输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域;

确定模块,用于根据所述第一函数获取所述输出区域中的所述业务对象并确定所述业务对象的类型;

第一识别模块,用于识别所述业务对象中的基础对象;

第二函数模块,为所述基础对象创建第二函数;其中,所述第一函数可以调用所述第二函数;

第二识别模块,用于利用所述第二函数识别所述基础对象中的基本元素;

画法函数模块,用于根据所述基本元素数据创建画法函数;

生成模块,用于利用所述画法函数生成基本图元;其中,不同所述基本图元位于不同图层;

图元树模块,用于以所述输出区域为根节点,所述业务对象为子节点,所述基础对象为孙节点构建图元树;其中,所述业务对象与所述基础对象为多层树形结构,所述业务对象包括所述基础对象和/或图元组和/或所述基本图元,所述图元组包括所述基本图元;

遍历模块,用于遍历所述图元树查找所述业务对象和/或所述基础对象和/或所述基本元素信息;

调整模块,用于通过修改所述图元树和/或所述图元树中每个节点的子节点的属性,对所述输出区域和/或所述输出区域中的部分对象进行缩放或位置调整;

加入模块,用于在所述图元树中删除或加入所述业务对象和/或所述基础对象和/或所述基本元素;

输出模块,用于确定显示设备类型并调用相应函数将所述图元树输出。

5.一种设备,其特征在于,包括:

处理器;

用于存储处理器可执行指令的存储器;

所述处理器执行所述可执行指令时,实现如权利要求1至3中任意一项所述的方法。

6.一种非易失性计算机可读存储介质,其特征在于,包括用于存储计算机程序或指令,当该计算机程序或指令被执行时,使如权利要求1至3中任一项所述的方法被实现。

说明书 :

一种基于矢量图元的画法实现方法及装置

技术领域

[0001] 本申请涉及电子表格信息处理技术领域,尤其涉及一种基于矢量图元的画法实现方法及装置。

背景技术

[0002] 电子表格软件具有多种形式的可视化分析图表,较大自由度的布局方式以及丰富的组件与接口,常被应用于财务统计、数据分析、企业报表等方面。电子表格所具有图形界面,在显示、打印或导出时需要做图形渲染,这时就需要考虑电子表格图形渲染对于不同的显示器屏幕以及不同的导出格式之间的适配性。这些不同的显示设备之间有的处理方式相近,有的则存在很大的差异。
[0003] 对于处理方式相近的显示设备,例如渲染到屏幕与导出为PDF,可以看作是在画布上绘画,只是两者调用的API不同。在现有技术中是通过制定一些标准的API,让各个设备实现这些API,然后统一调用,就可以屏蔽差异,减少工作量。但这种输出形式是把所有元素以图层形式画在一张画布上,必须一次处理到位,不能分阶段处理,后期也无法再进行调整,任何一个图层发生修改,整张画布都必须重新绘制。
[0004] 对于处理方式差异较大的显示设备,例如导出PDF和导出Html,PDF可以看作是在画布上绘画,而Html是用多种元素组合来表示的,因此两者很难实现一套画布的API。对于这些差异很大的显示设备只能通过对不同的显示设备编写不同的画法函数来实现导出,但是由于电子表格中图形界面元素繁多复杂且存在多种输出形式,使得最终的画法函数也很复杂且不能通用,这些画法函数之间可以共享一部分内容,工作量仍然很大。

发明内容

[0005] 本申请实施例通过提供一种基于矢量图元的画法实现方法及装置,解决了现有技术中电子表格对于不同显示设备之间的输出方法不通用,工作量大且复杂,同时后期无法单独调整,任何一层发生变化其他层都必须全部重绘的问题。
[0006] 第一方面,本申请实施例提供了一种基于矢量图元的画法实现方法,包括:创建可用于获取输出区域中业务对象的第一函数;其中,所述输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域;根据所述第一函数获取所述输出区域中的所述业务对象并确定所述业务对象的类型;识别所述业务对象中的基础对象;为所述基础对象创建第二函数;其中,所述第一函数可以调用所述第二函数;利用所述第二函数识别所述基础对象中的基本元素;根据所述基本元素数据创建画法函数;利用所述画法函数生成所述基本图元;其中,不同所述基本图元位于不同图层;以所述输出区域为根节点,所述业务对象为子节点,所述基础对象为孙节点构建图元树;其中,所述业务对象与所述基础对象为多层树形结构,所述业务对象包括所述基础对象和/或图元组和/或所述基本图元,所述图元组包括所述基本图元;遍历所述图元树查找所述业务对象和/或所述基础对象和/或所述基本元素信息;通过修改所述图元树和/或所述图元树中每个节点的子节点的属性,对所述输出区域和/或所述输出区域中的部分对象进行缩放或位置调整;在所述图元树中删除或加入所述业务对象和/或所述基础对象和/或所述基本元素;确定显示设备类型并调用相应函数将所述图元树输出。
[0007] 结合第一方面,在第一种可能的实现方式中,所述基本元素包括文字元素、线段元素、多边形元素、曲线元素、填色元素和图片元素;根据所述基本元素数据创建画法函数;利用所述画法函数生成所述基本图元。
[0008] 结合第一方面,在第二种可能的实现方式中,所述确定显示设备类型并调用相应函数将所述图元树输出,包括:确定所述显示设备的类型;其中,所述显示设备类型包括:显示屏、打印机、PDF、HTML、图片和SVG;遍历所述图元树确定所述图元树中的所述基本图元;调用所述显示设备对应的画法函数与API,并在所述显示设备中画出所述图元树。
[0009] 第二方面,本申请实施例提供了一种基于矢量图元的画法实现装置,包括:第一函数模块,用于创建可用于获取输出区域中业务对象的第一函数;其中,所述输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域;确定模块,用于根据所述第一函数获取所述输出区域中的所述业务对象并确定所述业务对象的类型;第一识别模块,用于识别所述业务对象中的基础对象;第二函数模块,为所述基础对象创建第二函数;其中,所述第一函数可以调用所述第二函数;第二识别模块,用于利用所述第二函数识别所述基础对象中的基本元素;画法函数模块,用于根据所述基本元素数据创建画法函数;生成模块,用于利用所述画法函数生成所述基本图元;其中,不同所述基本图元位于不同图层;图元树模块,用于以所述输出区域为根节点,所述业务对象为子节点,所述基础对象为孙节点构建图元树;其中,所述业务对象与所述基础对象为多层树形结构,所述业务对象包括所述基础对象和/或图元组和/或所述基本图元,所述图元组包括所述基本图元;遍历模块,用于遍历所述图元树查找所述业务对象和/或所述基础对象和/或所述基本元素信息;调整模块,用于通过修改所述图元树和/或所述图元树中每个节点的子节点的属性,对所述输出区域和/或所述输出区域中的部分对象进行缩放或位置调整;加入模块,用于在所述图元树中删除或加入所述业务对象和/或所述基础对象和/或所述基本元素;输出模块,用于确定显示设备类型并调用相应函数将所述图元树输出。。
[0010] 结合第二方面,在第一种可能的实现方式中,所述基本元素包括文字元素、线段元素、多边形元素、曲线元素、填色元素和图片元素;根据所述基本元素数据创建画法函数;利用所述画法函数生成所述基本图元。
[0011] 结合第二方面,在第二种可能的实现方式中,所述确定显示设备类型并调用相应函数将所述图元树输出,包括:确定所述显示设备的类型;其中,所述显示设备类型包括:显示屏、打印机、PDF、HTML、图片和SVG;遍历所述图元树确定所述图元树中的所述基本图元;调用所述显示设备对应的画法函数与API,并在所述显示设备中画出所述图元树。
[0012] 第三方面,本申请实施例提供了一种设备,所述设备包括:处理器;用于存储处理器可执行指令的存储器;所述处理器执行所述可执行指令时,实现如第一方面或第一方面任一种可能实现的方式所述的方法。
[0013] 第四方面,本申请实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包括用于存储计算机程序或指令,当该计算机程序或指令被执行时,使如第一方面或第一方面任一种可能实现的方式所述的方法被实现。
[0014] 本申请实施例通过采用了一种基于矢量图元的画法实现方法及装置,首先,先将电子表格输出区域中的业务对象进行层层分解,将组成业务对象的基本元素抽象为基本图元,不同基本图元位于不同图层,再将业务对象的外观封装为图元树,最后才对接显示设备,能够有效解决现有技术中不同显示设备需要写不同函数,函数不能通用,工作量大的问题。其次,将不同的元素画在不同图层,可以单独对各元素进行缩放或调整以及在图元树中添加或删除元素,进而实现了可以自由修改图形界面的元素而不需要重新绘制,能够节省大量的时间与精力。

附图说明

[0015] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1为本申请实施例提供的基于矢量图元的画法实现方法的流程图;
[0017] 图2为本申请实施例提供的将基础对象中的基本元素抽象为基本图元的流程图;
[0018] 图3为本申请实施例提供的基于矢量图元的画法实现装置的示意图;
[0019] 图4为本申请实施例提供的图元树结构示例图;
[0020] 图5为本申请实施例提供的一种输出区域的图元树示例图;
[0021] 图6为本申请实施例提供的部分显示设备示例图;
[0022] 图7为本申请实施例提供的设备结构示意图。

具体实施方式

[0023] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 以下对本申请实施例涉及的部分技术做出说明,以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了部分对公知功能和结构的描述。
[0025] 图1是本申请实施例提供的基于矢量图元的画法实现方法的流程图,包括步骤101至步骤105。其中,图1仅为本申请实施例示出的一种执行顺序,并不代表基于矢量图元的画法实现方法的唯一执行顺序,在可实现最终结果的情况下,图1所示出的步骤可以被并列或颠倒执行。
[0026] 步骤101:获取输出区域中的业务对象并确定业务对象的类型。具体为,创建可用于获取输出区域中业务对象的第一函数;其中,输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域。在本申请实施例中,使用IRange range = worksheet.Range[“A1:D10”]获取输出区域,即获取A1:D10这片输出区域;再利用GetRangeDrawing()函数,在该函数内部会获取输出区域A1:D10中的各业务对象。业务对象的类型包括但不限于:表格、图表、切片、图片、图形。其中,GetRangeDrawing()为本申请实施例所描述的第一函数,GetRangeDrawing()仅为对本申请实施例中方法的一种命名,不作为对本申请实施例保护范围的限制。
[0027] 步骤102:识别业务对象中的基础对象。具体为,在本申请实施例中,图表中的基础对象包括:单元格、填充、文字、曲线等。表格中的基础对象包括:单元格、填充、文字等。
[0028] 步骤103:将基础对象中的基本元素抽象为基本图元。其中,不同基本图元位于不同图层。
[0029] 步骤103的具体实现方式及所带来的技术效果可以参考图2所示的实施例,包括步骤201至204,详细说明如下。
[0030] 步骤201:为基础对象创建第二函数。其中,第一函数可以调用第二函数。具体为,在本申请实施例中,第二函数为GetCellDrawing(),其能够被第一函数GetRangeDrawing()调用;其中,GetCellDrawin()仅为对本申请实施例中的一种命名,不作为对本申请保护范围的限制。
[0031] 步骤202:利用第二函数识别基础对象中的基本元素。具体为,在本申请实施例中,当基础对象为表格时,第二函数能够遍历表格中的每一个单元格,获取单元格的行宽、列高等信息,从而计算出单元格的位置和大小。当基础对象为图形、图片、图表等时,第二函数通过获取其左上角的坐标及宽高信息,找出该基础对象的最佳外接矩形,并判断该基础对象的最佳外接矩形与输出区域是否存在交集,若存在交集则继续获取该基础对象的基本元素,否则不做处理。获取其他基础对象的位置与大小的方法与获取单元格或图形的位置和大小的方法相似,本领域技术人员亦可使用其他方式获取基础对象的位置与大小,在此不做详细描述。
[0032] 步骤203:根据基本元素数据创建画法函数。具体为,根据获取的基础对象数据为基础对象中的基本元素创建画法函数。
[0033] 步骤204:利用画法函数生成基本图元。具体为,步骤203中所创建的画法函数可以用来画矢量图元,矢量图元在本申请中简称为图元。在本申请实施例中,若基础对象为单元格,基础对象单元格中的基本元素包括:文字元素、填充元素、边框元素。第二函数会根据单元格的数据创建画法函数,包括:文字的画法函数:CreateTextDrawing(),表示生成文字图元,用来画文字元素;边框的画法函数:CreateLineDrawing(),表示生成线段图元,一个单元格的边框或折线段可以用多个线段图元表示;填充的画法函数:CreateFillDrawing(),表示生成填充图元,用于填充线段图元所构成的封闭区域。本申请实施例中还包括第二函数为其他基本对象所创建的画法,包括:CreatePolygonDrawing(),表示生成多边形图元,用于画多边形图形并能指定填充色;CreatePathDrawing(),表示生成路径图元,用于画任意曲线;CreateImageDrawing(),表示生成图片图元,用于画图片元素。
[0034] 步骤104:根据业务对象、基础对象与基本元素构建输出区域的图元树。具体为,以输出区域为根节点,业务对象为子节点,基础对象为孙节点构建图元树;其中,业务对象与基础对象可为多层树形结构。所述业务对象包括基础对象和/或图元组和/或基本图元;图元组包括基本图元。经过步骤101至步骤103,输出区域中的业务对象被层层分解,并构建为如图4所示的图元树,其中的基本元素由抽象后的基本图元代替,404中的基本图元可以构成图元组,403中的基础对象可由图元组构成,基本图元也可以作为子节点单独和/或基础对象构成业务对象。在本申请实施例中,如图5所示,其中501为该输出区域图元树的根节点,502为该图元树的子节点,503为该图元树的孙节点,503中基础对象的基本元素所抽象的基本图元可以构成图元组如505,在本申请实施例中,图元组可用DrawingGroup表示,505图元组可以表示单元格图元,506图元组可以表示文字框图元,508图元组可以表示图形图元。
[0035] 步骤105:确定显示设备类型并调用相应函数将图元树输出。具体为,确定所述显示设备的类型;其中,所述显示设备类型包括:显示屏、打印机、PDF、HTML、图片和SVG;遍历所述图元树确定所述图元树中的所述基本图元;调用所述显示设备对应的画法函数与API,并在所述显示设备中画出所述图元树。在本申请实施例中,若显示设备为图6所示的显示器604,604由主机603控制并连接到网络601,此时显示设备为显示器604的屏幕,在输出时调用API中的PaintToScreen()方法将图元树画在显示器上。与604输入方式相同的还包括平板电脑602与便携式电脑606。此外,还可以通过操作603与604的组合、606或602将图元树输出为Html格式、PDF格式或SVG格式,只需分别调用API中的不同函数PaintToHtml()、PaintToPDF()与PaintToSVG()即可将图元树按照要求画出。由于每个输出设备有自己固定的画法函数,在输出本申请中的图元树时,需要遍历图元树中的每一个基本图元,调用预先编写的转换层函数,将本申请中的基本图元进行转换,使输出设备的画法画出图元树中的各基本图元。
[0036] 同时还可以连接打印机,打印不同格式的文件。本申请实施例所使用的设备至少包括如图7所示的设备或模块。
[0037] 不仅如此,本申请实施例中,不同基本图元位于不同图层,还可以通过遍历图元树查找业务对象和/或基础对象和/或基本元素信息;或通过修改图元树和/或图元树中每个节点的子节点的属性,对输出区域和/或输出区域中的部分对象进行缩放或位置调整;或在图元树中删除或加入业务对象和/或基础对象和/或基本元素。
[0038] 需要注意,本申请实施例中所提及的业务对象、基础对象、基本元素、基本图元、文字图元、GetRangeDrawing()、GetCellDrawing()、图元组、DrawingGroup()、PaintToHtml()、PaintToPDF()、PaintToSVG()等,本领域技术人员均可理解为一种命名,本申请实施例的思想在于将电子表格中的复杂对象层层分解,将底层对象抽象为一种画法(本申请实施例中称为:图元、基本图元或矢量图元)增加一个中间层,隔离电子表格和最终的显示设备,将电子表格渲染为一种统一且可调整的形式(本申请实施例中称为:图元树),最后不同的设备只对接最基本的基本元素。在输出时只需调用提前写好的转换函数与包含各类输出设备类型的API。
[0039] 虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。本实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照本实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
[0040] 如图3所示,本申请实施例还提供了一种基于矢量图元的画法实现装置300。该装置包括:确定模块301、识别模块302、抽象模块303、构建模块304与输出模块305。
[0041] 确定模块301用于获取输出区域中的业务对象并确定所述业务对象的类型。确定模块301具体用于,创建用于获取输出区域中业务对象的第一函数;其中,输出区域包括整张电子表格、被选中的一片区域或显示的可视界面区域。
[0042] 识别模块302用于识别所述业务对象中的基础对象。识别模块302具体用于,在本申请实施例中,图表中的基础对象包括:单元格,填充,文字,曲线等。表格中的基础对象包括:单元格、填充、文字等。
[0043] 抽象模块303用于将所述基础对象中的基本元素抽象为基本图元;其中,不同所述基本图元位于不同图层。抽象模块303具体用于,为基础对象创建第二函数;其中,第一函数可以调用所述第二函数;利用第二函数识别基础对象中的基本元素;根据基本元素数据创建画法函数。具体地,利用第二函数识别基础对象中的基本元素,当基础对象为表格时,第二函数能够遍历表格中的每一个单元格,获取单元格的行宽、列高等信息,从而计算出单元格的位置和大小。当基础对象为图形、图片、图表等时,第二函数通过获取其左上角的坐标及宽高信息,找出该基础对象的最佳外接矩形,并判断该基础对象的最佳外接矩形与输出区域是否存在交集,若存在交集则继续获取该基础对象的基本元素,否则不做处理。获取其他基础对象的位置与大小的方法与获取单元格或图形的位置和大小的方法相似,本领域技术人员亦可使用其他方式获取基础对象的位置与大小,在此不做详细描述。根据获取的基础对象数据为基础对象中的基本元素创建画法函数可以用来画矢量图元,矢量图元在本申请中简称为图元。
[0044] 构建模块304用于根据所述业务对象、所述基础对象与所述基本元素构建所述输出区域的图元树。构建模块304具体用于,根据业务对象、基础对象与基本元素构建输出区域的图元树。具体为,以输出区域为根节点,业务对象为子节点,基础对象为孙节点构建所述图元树;其中,业务对象与基础对象可为多层树形结构。所述业务对象包括基础对象和/或图元组和/或基本图元;图元组包括基本图元。
[0045] 输出模块305用于确定显示设备类型并调用相应函数将所述图元树输出。输出模块305具体用于,确定显示设备的类型;其中,显示设备类型包括:显示屏、打印机、PDF、HTML、图片和SVG;调用显示设备对应的API,并在显示设备中画出图元树。不同基本图元位于不同图层,还可以通过遍历图元树查找业务对象和/或基础对象和/或基本元素信息;或通过修改图元树和/或图元树中每个节点的子节点的属性,对输出区域和/或输出区域中的部分对象进行缩放或位置调整;或在图元树中删除或加入业务对象和/或基础对象和/或基本元素。
[0046] 上述存储介质包括但不限于随机存取存储器(英文:Random Access Memory;简称:RAM)、只读存储器(英文:Read‑Only Memory;简称:ROM)、缓存(英文:Cache)、硬盘(英文:Hard Disk Drive;简称:HDD)或者存储卡(英文:Memory Card)。所述存储器可以用于存储计算机程序指令。
[0047] 上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
[0048] 本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(英文:ApplicationSpecific Integrated Circuit;简称:ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0049] 本申请实施例还提供了一种设备,所述设备包括:处理器;用于存储处理器可执行指令的存储器;所述处理器执行所述可执行指令时,实现如本申请实施例所述的方法。
[0050] 本申请实施例还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使如本申请实施例中所述的方法被实现。
[0051] 此外,在本发明的各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独存在,也可以两个或两个以上模块集成在一个模块中。
[0052] 上述存储介质包括但不限于随机存取存储器(英文:Random Access Memory;简称:RAM)、只读存储器(英文:Read‑Only Memory;简称:ROM)、缓存(英文:Cache)、硬盘(英文:Hard Disk Drive;简称:HDD)或者存储卡(英文:Memory Card)。所述存储器可以用于存储计算机程序指令。
[0053] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0054] 本说明书中的各个实施方式采用递进的方式描述,各个实施方式之间相同或相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0055] 以上实施例仅用以说明本申请的技术方案,而非对本申请限制;尽管参照前述实施例对本申请进行了详细的说明,本领域普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请技术方案的范围。