发明内容
本发明针对现有技术中的不足,提供一种通过图形设备接口(GDI,Graphics Device Interface)实现图片动画显示,可以将需要显示的各类文件以图片的形式动态显示,给用户提供了很好的体验。
本发明提供的一种图片动画显示方法,包括:
通过图形设备接口,对加载的多张图片的尺寸进行标准化处理;
通过图形设备接口,对于每一张图片,计算该图片的最终状态对应的图形形状;
通过图形设备接口,对于每一张图片,在其滑动过程中,计算该图片在滑动路径中的多张图形形状并逐一呈现直至显示所述最终状态对应的图形形状。
其中,所述方法还包括:
在滑动过程中,计算所述每一张图片每一次滑动的距离,所述每一次滑动的距离为当前位置到目的位置之间的距离的1/n;n为正整数;所述目的位置为所述最终状态的图形形状所在的位置。
其中,所述方法还包括:
当图片的当前位置与目的位置的距离小于A时,显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述A为正数。
其中,所述方法还包括:
在滑动过程中,计算所述每一张图片每一次从前一当前位置滑动到当前位置的变化角度,所述变化角度为前一当前角度到目标角度的角度差的1/m;m为正整数;所述目标角度为所述最终状态的图形形状的角度。
其中,所述方法还包括:
当图片的当前角度与目标角度的角度差小于B时,显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述B为正数。
相应的,本发明还提供一种图片动画显示装置,包括:
标准化模块,用于通过图形设备接口,对对加载的多张图片的尺寸进行标准化处理;
最终状态计算模块,用于通过图形设备接口,对于每一张图片,计算该图片的最终状态对应的图形形状;
动画处理模块,用于通过图形设备接口,对于每一张图片,在其滑动过程中,计算该图片在滑动路径中的多张图形形状并逐一呈现直至显示所述最终状态计算模块计算得到的最终状态对应的图形形状。
其中,所述动画处理模块,包括:
位置计算单元,用于在滑动过程中,计算所述每一张图片每一次滑动的距离,所述每一次滑动的距离为所述图片当前位置到目的位置之间的距离的1/n;n为正整数;所述目的位置为所述最终状态的图形形状所在的位置;
图形计算单元,用于计算图片在所述位置计算单元计算的每一个位置上的图形形状;
动画显示单元,用于在所述位置计算单元计算的每一个位置上呈现所述图形计算单元计算所得的图形形状。
其中,当所述位置计算单元计算得到图片的当前位置与目的位置的距离小于A时,所述动画显示单元显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述A为正数。
其中,动画处理模块,还包括:
角度计算单元,用于在所述每一张图片每一次从所述位置计算单元计算所得前一当前位置滑动到当前位置,计算其变化的角度,所述变化的角度为前一当前角度到目标角度的角度差的1/m;m为正整数;所述目标角度为所述最终状态的图形形状的角度。
其中,当所述角度计算单元计算得到图片的当前角度与目标角度的角度差小于B时,所述动画显示单元显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述B为正数。
实施本发明提供的图片动画显示方法和装置,可以以动画的形式连续显示多张图片,使得图片显示生动有趣,提高了用户的体验。
具体实施方式
本发明实施例提供一种通过图形设备接口实现图片动画显示,可以将需要显示的各类文件以图片的形式动态显示,给用户提供了很好的体验。
参见图1,为本发明提供的一种图片动画显示方法实施例一的流程示意图。
本实施例一提供的方法,包括:
步骤100,通过图形设备接口,对加载的多张图片的尺寸进行标准化处理。
具体的,图形设备接口(GDI,Graphics Device Interface),它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。通过该GDI,可以对多张照片进行标准化处理,具体的处理方式是,将多张图片的尺寸统一化,对于较大的图片,获取其缩略图,保证图片不至于过大,提高图片绘制的效率。
需要说明的是,这里的图片可以是普通的图片,或者是唱片封面的图片,或者是电子书封面的图片。
步骤101,通过图形设备接口,对于每一张图片,计算该图片的最终状态对应的图形形状。
需要说明的是,多张图片在显示的时候,会从左到右排布,对于每一张图片来讲,其动画实现可能是从左到右移动,或者是从右到左移动,但无论怎么样移动,其都会有一个最终的状态。本步骤在计算其最终状态的时候,会预先计算好每一张图片在最左边时候的图形形状,以及在最右边的时候的图形形状。
例如图2所示,图片A从中间的位置移动到最左边,最左边的图形形状为A0,或者从中间的位置移动到最右边,最右边的图形形状为An。当然,图片也可以从最左边移动到最右边,此时最终状态为最右的图形形状,反之,最终状态为最左的图形形状。
本发明实施例中,预先计算好最终状态的图形形状,可以有效的提高运算速度,减少运算次数,并且为之后计算滑动过程中的图形形状提供了基础。
步骤102,通过图形设备接口,对于每一张图片,在其滑动过程中,计算该图片在滑动路径中的多张图形形状并逐一呈现直至显示所述最终状态对应的图形形状。
具体的,每一张图片在滑动过程中,会经过不同的位置,本发明实施例采取的方法是当图片滑动到不同的位置时,实时计算该位置上对应的图形形状并呈现,如此一来,当图片滑动到不同位置时,立即呈现不同的图形形状,整个过程看起来就是动态连续的图片显示。
同一个图片在不同位置的图形形状如图3所示,其中,实线部分为图片A当前所在的位置显示的效果,虚线部分代表图片A滑动过程中所展现的各个图形形状。在实际实现过程中,虚线部分实际上是被其他图片占据的,具体如图4所示,例如图片A1此时位于图片A的左边,而图片A2位于图片A的右边。
在一些实施例中,每一张图片每一次滑动的距离是逐渐衰减的,以下将详细描述。
图5为本发明提供的图片动画显示方法实施例二的流程示意图。
本实施例二将详细描述在滑动过程中,计算所述每一张图片每一次滑动的距离,所述每一次滑动的距离为当前位置到目的位置之间的距离的1/n;n为正整数;所述目的位置为所述最终状态的图形形状所在的位置,当图片的当前位置与目的位置的距离小于A时,显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述A为正数。
具体来讲包括:
步骤200,记录图片A当前位置为S0,记录其最终滑到的目的位置Sn。Sn也是其最终状态的图形形状对应的位置。
步骤201,计算Sn与S0之间的距离,设为D1,则图片A向右第一次滑动的距离为D1/n,滑动到的位置为S1;
步骤202,将位置S1记为当前位置;
步骤203,计算当前位置S1与目的位置Sn之间的距离,设为D2,那么图片第二次滑动的距离则为D2/n,滑动到的位置为S2;
步骤204,将位置S2记为当前位置;
步骤205,计算当前位置S2与目的位置Sn之间的距离,设为D3,那么图片第二次滑动的距离则为D3/n,滑动到的位置为S3;
……
步骤206,当图片的当前位置S(n-1)与目的位置Sn的距离小于A时,显示该图片对应的最终状态的图形形状,所述图片停止滑动。
需要说明的是,n的取值范围是5≤n≤8,优选的实施方式中,n=8。A的取值范围是0.3≤n≤0.6,优选的实施方式中,A=0.5。
本发明实施例提供的图片动画显示方法,图片在滑动过程中每一次滑动的位置如上述方式类推,在每一个位置上,图片的呈现角度不同,也就是图形形状有所不同,该计算方式在以下的实施例中详细描述。
参见图6,为本发明提供的图片动画显示方法实施例三的流程示意图。
本实施例三提供的方法,将详细描述在图片滑动过程中,计算所述每一张图片每一次从前一当前位置滑动到当前位置的变化角度,所述变化角度为前一当前角度到目标角度的角度差的1/m;m为正整数;所述目标角度为所述最终状态的图形形状的角度。当图片的当前角度与目标角度的角度差小于B时,显示该图片对应的最终状态的图形形状,所述图片停止滑动。
具体包括以下步骤:
步骤300,记录图片A在当前位置为S0的角度X0,记录其最终滑到的目的位置Sn时的角度Xn。
步骤301,当图片A从S0滑动到的位置S1时,计算当前角度X0与目标角度Xn之间的角度差,设为Y1,那么图片从位置S0滑动到位置S1,其变化的角度为Y1/m,此时图片的角度记为X1;
步骤302,将角度X1记为当前角度;
步骤303,当图片A从S1滑动到的位置S2时,计算当前角度X1与目标角度Xn之间的角度差,设为Y2,那么图片从位置S1滑动到位置S2,其变化的角度为Y2/m,此时图片的角度记为X2;
步骤304,将角度X2记为当前角度;
步骤305,当图片A从S2滑动到的位置S3时,计算当前角度X2与目标角度Xn之间的角度差,设为Y3,那么图片从位置S2滑动到位置S3,其变化的角度为Y3/m,此时图片的角度记为X3;
……
步骤306,当图片的当前角度X(n-1)与目标角度Xn的角度差小于B时,显示该图片对应的最终状态的图形形状,所述图片停止滑动。
需要说明的是,m的取值范围是5≤m≤8,优选的实施方式中,m=5。B的取值范围是0.3≤n≤0.6,优选的实施方式中,B=0.5。
实施本发明实施例二和实施例三提供的图片动画显示方法,在图片滑动过程中实时计算其滑动的位置和图形变化的角度,其效果即是多张图形形状构成了图片的移动轨迹,图片滑动过渡平滑无缝,使得图片显示生动有趣。
参见图7,为本发明提供的一种图片动画显示装置实施例一的结构示意图。
本实施例一提供的装置,包括:
标准化模块10,用于通过图形设备接口,对加载的多张图片的尺寸进行标准化处理。
具体的,图形设备接口(GDI,Graphics Device Interface),它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。标准化模块10通过调用GDI,可以对多张照片进行标准化处理,具体的处理方式是,将多张图片的尺寸统一化,对于较大的图片,获取其缩略图,保证图片不至于过大,提高图片绘制的效率。
需要说明的是,这里的图片可以是普通的图片,或者是唱片封面的图片,或者是电子书封面的图片。
最终状态计算模块11,通过图形设备接口,对于每一张图片,计算该图片的最终状态对应的图形形状。
需要说明的是,多张图片在显示的时候,会从左到右排布,对于每一张图片来讲,其动画实现可能是从左到右移动,或者是从右到左移动,但无论怎么样移动,其都会有一个最终的状态。本步骤在计算其最终状态的时候,会预先计算好每一张图片在最左边时候的图形形状,以及在最右边的时候的图形形状。
例如图2所示,图片A从中间的位置移动到最左边,最左边的图形形状为A0,或者从中间的位置移动到最右边,最右边的图形形状为An。当然,图片也可以从最左边移动到最右边,此时最终状态为最右的图形形状,反之,最终状态为最左的图形形状。
本发明实施例中,最终状态计算模块11预先计算好最终状态的图形形状,可以有效的提高运算速度,减少运算次数,并且为之后计算滑动过程中的图形形状提供了基础。
动画处理模块12,用于通过图形设备接口,对于每一张图片,在其滑动过程中,计算该图片在滑动路径中的多张图形形状并逐一呈现直至显示所述最终状态对应的图形形状。
具体的,每一张图片在滑动过程中,会经过不同的位置,本发明实施例采取的方法是当图片滑动到不同的位置时,动画处理模块12实时计算该位置上对应的图形形状并呈现,如此一来,当图片滑动到不同位置时,立即呈现不同的图形形状,整个过程看起来就是动态连续的图片显示。
同一个图片在不同位置的图形形状如图3所示,其中,实线部分为图片A当前所在的位置显示的效果,虚线部分代表图片A滑动过程中所展现的各个图形形状。在实际实现过程中,虚线部分实际上是被其他图片占据的,具体如图4所示,例如图片A1此时位于图片A的左边,而图片A2位于图片A的右边。
在一些实施例中,每一张图片每一次滑动的距离是逐渐衰减的,以下将详细描述。
图8为本发明提供的图片动画显示装置实施例二的结构示意图。
本实施例二将详细描述动画处理模块的功能和结构,其包括:
位置计算单元120,用于在滑动过程中,计算所述每一张图片每一次滑动的距离,所述每一次滑动的距离为所述图片当前位置到目的位置之间的距离的1/n;n为正整数;所述目的位置为所述最终状态的图形形状所在的位置;
图形计算单元121,用于计算图片在所述位置计算单元计算的每一个位置上的图形形状;
动画显示单元122,用于在所述位置计算单元计算的每一个位置上呈现所述图形计算单元计算所得的图形形状。
其中,当所述位置计算单元120计算得到图片的当前位置与目的位置的距离小于A时,所述动画显示单元122显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述A为正数。
具体请参见图9所示:
假设图片A当前位置为S0,位置计算单元120首先记录其最终滑到的目的位置Sn。Sn也是其最终状态的图形形状对应的位置,然后计算Sn与S0之间的距离,设为D1,则图片A向右第一次滑动的距离为D1/n,滑动到的位置为S1;然后将位置S1记为当前位置,再计算当前位置S1与目的位置Sn之间的距离,设为D2,那么图片第二次滑动的距离则为D2/n,滑动到的位置为S2;然后将位置S2记为当前位置,再计算当前位置S2与目的位置Sn之间的距离,设为D3,那么图片第二次滑动的距离则为D3/n,滑动到的位置为S3;
……
当图片的当前位置S(n-1)与目的位置Sn的距离小于A时,动画显示单元122显示该图片对应的最终状态的图形形状,所述图片停止滑动。
需要说明的是,n的取值范围是5≤n≤8,优选的实施方式中,n=8。A的取值范围是0.3≤n≤0.6,优选的实施方式中,A=0.5。
并且,在每一个位置上显示的图形形状,都是由图形计算单元121计算得到的。
本发明实施例提供的图片动画显示装置,图片在滑动过程中每一次滑动的位置如上述方式类推,在每一个位置上,图片的呈现角度不同,也就是图形形状有所不同,该计算方式在以下的实施例中详细描述。
参见图10,为本发明提供的图片动画显示装置实施例三的结构示意图。
本实施例三提供的装置,将详细描述动画处理模块计算变换角度的具体实现过程。
本实施例三种提供的动画处理模块,除包括实施例二中的各个功能模块之外,还包括:
角度计算单元123,用于在所述每一张图片每一次从所述位置计算单元计算所得前一当前位置滑动到当前位置,计算其变化的角度,所述变化的角度为前一当前角度到目标角度的角度差的1/m;m为正整数;所述目标角度为所述最终状态的图形形状的角度。
当所述角度计算单元123计算得到图片的当前角度与目标角度的角度差小于B时,所述动画显示单元122显示该图片对应的最终状态的图形形状,所述图片停止滑动;所述B为正数。
具体参见图11:
角度计算单元123首先记录图片A在当前位置为S0的角度X0,记录其最终滑到的目的位置Sn时的角度Xn。当图片A从S0滑动到的位置S1时,计算当前角度X0与目标角度Xn之间的角度差,设为Y1,那么图片从位置S0滑动到位置S1,其变化的角度为Y1/m,此时图片的角度记为X1;然后将角度X1记为当前角度;当图片A从S1滑动到的位置S2时,计算当前角度X1与目标角度Xn之间的角度差,设为Y2,那么图片从位置S1滑动到位置S2,其变化的角度为Y2/m,此时图片的角度记为X2;然后将角度X2记为当前角度;当图片A从S2滑动到的位置S3时,计算当前角度X2与目标角度Xn之间的角度差,设为Y3,那么图片从位置S2滑动到位置S3,其变化的角度为Y3/m,此时图片的角度记为X3;
……
当角度计算单元123计算得到的图片的当前角度X(n-1)与目标角度Xn的角度差小于B时,动画显示单元122显示该图片对应的最终状态的图形形状,所述图片停止滑动。
需要说明的是,m的取值范围是5≤m≤8,优选的实施方式中,m=5。B的取值范围是0.3≤n≤0.6,优选的实施方式中,B=0.5。
实施本发明实施例二和实施例三提供的图片动画显示装置,在图片滑动过程中实时计算其滑动的位置和图形变化的角度,其效果即是多张图形形状构成了图片的移动轨迹,图片滑动过渡平滑无缝,使得图片显示生动有趣。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。