对显示设备的显示图像进行截屏的方法及装置的制造方法
【技术领域】
[0001]本申请涉及显示设备技术领域,具体涉及对显示设备的显示图像进行截屏的方法及装置。
【背景技术】
[0002]随着智能终端的发展,人们经常会使用智能终端进行工作、学习、娱乐等活动。如,通过智能终端浏览资料、邮件、视频等。而这些被浏览的内容通常会通过智能终端的显示设备展现给用户。在浏览上述内容的过程中,人们经常希望保存显示设备当前显示的信息,以便于可以存储或分享该信息。为了实现该功能,现有技术提供了多种截屏方法。这些截屏方法可以将显示设备当前显示的信息,以截屏图片的形式保存下来,从而便于用户保存显示设备显示的信息。
[0003]其中,Android系统中的一种截屏实现方法为,从巾贞缓冲设备(Framebuffer)中读取出截屏时显示设备显示的图像数据,再将该图像数据生成截屏图片,从而实现保存截屏时显示设备显示的信息。
[0004]所谓帧缓冲设备,是一种模仿显卡功能的显示缓冲机制,在该机制下显卡硬件结构被抽象化,可以通过对帧缓冲设备的读写操作实现对显存的操作。用户可以将帧缓冲设备视为显示内存在内存中的一个映像,在将显示内存映射到进程地址空间之后,就可以直接对其进行读写操作,而写操作可以立即反应在显示屏幕上。因此,理论上,当对显示设备的显示图像进行截屏时,只需将显示图像的图像数据从帧缓冲设备中读取出来,即可获得当前显示屏幕的截屏图片。
[0005]但在使用上述截屏方法进行截屏时,经常会生成花屏的截屏图片,这种截屏图片无法展现显示设备的显示信息,导致用户无法保存所需信息。
[0006]此外,在使用上述的截屏方法进行截屏时,有时还会生成红屏、蓝屏等图像色彩失真的截屏图片,这种截屏图片同样无法展现显示设备提供的显示信息,导致用户无法保存所需息。
[0007]综上所述,现有技术下使用Framebuffer实现截屏的方案,由于会出现花屏、红屏等图像失真的问题,导致截屏图片无法显示截屏时显示设备的显示信息,使用户难以正确保存显示设备的显示信息,给用户带来使用上的不便。
【发明内容】
[0008]本申请提供一种对显示设备的显示图像进行截屏的方法及装置,以解决截屏图片出现图像失真的问题。
[0009]本申请提供一种对显示设备的显示图像进行截屏的方法,包括:
[0010]接收截屏指令;
[0011]获取屏幕参数,根据所述屏幕参数获取所述屏幕的行像素值;
[0012]获取帧缓冲设备参数,所述帧缓冲设备参数包括所述帧缓冲设备的行像素值;
[0013]判断所述帧缓冲设备的行像素值与所述屏幕的行像素值是否相等;
[0014]若否,则根据所述屏幕的行像素值对从所述帧缓冲设备中读取的截屏图像数据进行分行处理,所述截屏图像数据为接收所述截屏指令时所述屏幕显示的图像数据;
[0015]将处理后的所述截屏图像数据形成截屏图片文件。
[0016]优选的,所述屏幕参数包括所述屏幕的RGB通道分布顺序;所述帧缓冲设备参数还包括所述帧缓冲设备的RGB通道分布顺序;该对显示设备的显示图像进行截屏的方法还包括:
[0017]判断所述帧缓冲设备的RGB通道分布顺序与所述屏幕的RGB通道分布顺序是否一致;
[0018]若否,根据所述屏幕的RGB通道分布顺序对所述截屏图像数据的RGB值的排列顺序进彳T调整。
[0019]优选的,所述将处理后的所述截屏图像数据形成截屏图片文件包括:
[0020]根据压缩算法所需要的文件格式,对所述处理后的所述截屏图像数据进行格式转换,形成中间图片文件;
[0021]调用所述压缩算法对所述中间图片文件进行图像压缩;
[0022]将压缩后的所述中间图片文件作为所述截屏图片文件。
[0023]优选的,所述压缩算法为哈夫曼压缩算法。
[0024]优选的,所述获取屏幕参数,根据所述屏幕参数获取所述屏幕的行像素值,具体方法为:
[0025]获取屏幕参数,所述屏幕参数包括所述屏幕的分辨率;
[0026]根据所述屏幕的分辨率,获得所述屏幕的行像素值。
[0027]相应的,本申请还提供一种对显示设备的显示图像进行截屏的装置,包括:
[0028]截屏指令接收单元,用于接收截屏指令;
[0029]屏幕参数获取单元,用于获取屏幕参数,根据所述屏幕参数获取所述屏幕的行像素值;
[0030]帧缓冲设备参数获取单元,用于获取帧缓冲设备参数,所述帧缓冲设备参数包括所述帧缓冲设备的行像素值;
[0031]行像素判断单元,用于读取所述帧缓冲设备参数获取单元提供的所述帧缓冲设备的行像素值,读取所述屏幕参数获取单元提供的所述屏幕的行像素值,判断所述帧缓冲设备的行像素值与所述屏幕的行像素值是否相等;
[0032]截屏图像数据分行处理单元,用于接收所述行像素判断单元的判断结果,若结果为否,则读取所述屏幕参数获取单元提供的所述屏幕的行像素值,根据所述屏幕的行像素值对从所述帧缓冲设备中读取的截屏图像数据进行分行处理,所述截屏图像数据为接收所述截屏指令时所述屏幕显示的图像数据;
[0033]截屏图片文件形成单元,用于接收所述截屏图像数据分行处理单元处理后的所述截屏图像数据,并将所述处理后的所述截屏图像数据形成截屏图片文件。
[0034]优选的,所述屏幕参数包括所述屏幕的RGB通道分布顺序;所述帧缓冲设备参数还包括所述帧缓冲设备的RGB通道分布顺序;该对显示设备的显示图像进行截屏的方法还包括:
[0035]RGB通道判断单元,用于读取所述帧缓冲设备参数获取单元提供的所述帧缓冲设备的RGB通道分布顺序,读取所述屏幕参数获取单元提供的所述屏幕的RGB通道分布顺序,判断所述帧缓冲设备的RGB通道分布顺序与所述屏幕的RGB通道分布顺序是否一致;
[0036]截屏图像数据的RGB值调整单元,用于接收所述RGB通道判断单元的判断结果,若结果为否,读取所述屏幕参数获取单元提供的所述屏幕的RGB通道分布顺序,根据所述屏幕的RGB通道分布顺序对所述截屏图像数据的RGB值的排列顺序进行调整。
[0037]优选的,所述将处理后的所述截屏图像数据形成截屏图片文件包括:
[0038]根据压缩算法所需要的文件格式,对所述处理后的所述截屏图像数据进行格式转换,形成中间图片文件;
[0039]调用所述压缩算法对所述中间图片文件进行图像压缩;
[0040]将压缩后的所述中间图片文件作为所述截屏图片文件。
[0041 ] 优选的,所述压缩算法为哈夫曼压缩算法。
[0042]优选的,所述获取屏幕参数,根据所述屏幕参数获取所述屏幕的行像素值,具体方法为:
[0043]获取屏幕参数,所述屏幕参数包括所述屏幕的分辨率;
[0044]根据所述屏幕的分辨率,获得所述屏幕的行像素值。
[0045]此外,本申请还提供一种对显示设备的显示图像进行截屏的方法,包括:
[0046]接收截屏指令;
[0047]获取屏幕的RGB通道分布顺序;
[0048]获取帧缓冲设备参数,所述帧缓冲设备参数包括所述帧缓冲设备的RGB通道分布顺序;
[0049]判断所述帧缓冲设备的RGB通道分布顺序与所述屏幕的RGB通道分布顺序是否一致;
[0050]若否,根据所述屏幕的RGB通道分布顺序对从所述帧缓冲设备中读取的截屏图像数据的RGB值的排列顺序进行调整,所述截屏图像数据为接收所述截屏指令时所述屏幕显示的图像数据;
[0051 ] 将调整后的所述截屏图像数据形成截屏图片文件。
[0052]相应的,本申请还提供一种对显示设备的显示图像进行截屏的装置,包括:
[0053]截屏指令接收单元,用于接收截屏指令;
[0054]屏幕的RGB通道分布顺序获取单元,用于获取屏幕的RGB通道分布顺序;
[0055]帧缓冲设备参数获取单元,用于获取帧缓冲设备参数,所述帧缓冲设备参数包括所述帧缓冲设备的RGB通道分布顺序;