基于Android系统的屏幕截图方法及终端的制作方法_4

文档序号:9524042阅读:来源:国知局
据当前具体场景,由终端用户自定义设置,此处不作具体限定。
[0117]需要说明的是,所述Framebuffer中的提供的信息可以根据现有进行具体确定,实施例中仅为举例而列举一部分信息,另外,从所述Framebuffer读取屏幕数据的过程,可以根据现有技术进行实现,此处不作具体描述。
[0118]由上述可知,本实施例提供的基于Android系统的屏幕截图方法应用于安装Android系统的终端,本实施例获取终端的版本信息和存储路径信息,并将所述版本信息与预设版本进行比较,若所述版本信息为4.0以上且所述终端中存在Screencap存储路径,则依照所述Screencap存储路径读取所述终端的屏幕数据,将屏幕数据压缩保存为本地图片。本发明实施例中,通过对终端的版本信息和存储路径信息进行分析,保证优先从Screencap读取数据,保证生成的截屏图片不失真。进一步的,对于版本信息不在4.0以上的情况,通过RGB通道排序修正的方式,解决从Framebuffer读取数据而导致截屏图片存在失真的问题;进一步的,通过对屏幕数据进行压缩以提高整个截图过程的效率。
[0119]请参阅图5,图5是本发明第四实施例提供的基于Android系统的屏幕截图方法的流程示意图。
[0120]在该实施例中,终端根据版本信息和存储路径信息,确定出所述终端依照帧缓冲Framebuffer存储路径读取所述终端的屏幕数据。即所述终端的版本信息不在所述终端的预设版本以上,或者,所述终端不存在Screencap存储路径,其中所述预设版本为Android系统4.0以上版本。
[0121]其中,区别于第三实施例,不同的是依照巾贞缓冲Framebuffer存储路径读取所述终端的屏幕数据后,对屏幕数据的修正处理不一样,所述方法包括:
[0122]在步骤S501中,接收输入指令,所述输入指令用于向安装Android系统的终端请求屏幕截图。
[0123]在步骤S502中,获取所述终端的版本信息和存储路径信息。
[0124]在步骤S503中,根据所述终端的版本信息和存储路径信息,确定依照帧缓冲Framebuffer存储路径读取所述终端的屏幕数据。
[0125]可以理解的是,所述步骤S501至步骤S503可以参考上述第三实施例的步骤S401至步骤S403的相关描述进行具体实现,此处不再赘述。
[0126]在步骤S504中,对读取的所述屏幕数据进行行像素修正处理,生成修正后的屏幕数据。
[0127]可以理解的是,在依照Framebuffer存储路径读取所述终端的屏幕数据的过程中,对读取的所述屏幕数据进行修正处理,以避免采用读取的屏幕数据而压缩的图片产生失真,如,避免由于屏幕图片像素点排列混乱而造成的花屏现象。
[0128]优选的,由于在Framebuffer中,其本身设置的行像素和终端实际的行像素不一致,导致屏幕图片像素点排列混乱,屏幕截图后的图片会出现花屏等失真现象。基于这种情况,对实际读取的行像素进行检测和调整,可具体的:
[0129]若检测到依照所述Framebuffer存储路径读取所述屏幕数据时,获取的行像素宽度不等于所述终端的屏幕的X分辨率,则以所述Framebuffer存储路径的行像素宽度作为实际行宽度读取所述屏幕数据,生成行像素修正后的屏幕数据;以及
[0130]将所述行像素修正后的屏幕数据作为修正后的屏幕数据。
[0131]可以理解的是,在获取Framebuffer的信息时,若检测到Framebuffer的行像素宽度不等于所述终端的屏幕的X分辨率,则采用Framebuffer (即fbO)的行像素宽度作为实际的行宽度来获取原始屏幕数据的行数据,以避免采用终端的X分辨率来获取行数据而出现花屏现象的问题。
[0132]在步骤S505中,对所述修正后的屏幕数据进行压缩,生成所述屏幕数据对应的屏幕截图。
[0133]可以理解的是,所述步骤S505可以参考上述第三实施例的步骤S405的相关描述进行具体实现,此处不再赘述。
[0134]需要说明的是,从所述Framebuffer读取屏幕数据的过程,可以根据现有技术进行实现,此处不作具体描述。
[0135]由上述可知,本实施例提供的基于Android系统的屏幕截图方法应用于安装Android系统的终端,本实施例获取终端的版本信息和存储路径信息,并将所述版本信息与预设版本进行比较,若所述版本信息为4.0以上且所述终端中存在Screencap存储路径,则依照所述Screencap存储路径读取所述终端的屏幕数据,将屏幕数据压缩保存为本地图片。本发明实施例中,通过对终端的版本信息和存储路径信息进行分析,保证优先从Screencap读取数据,保证生成的截屏图片不失真。进一步的,对于版本信息不在4.0以上的情况,通过行像素修正的方式,解决从Framebuffer读取数据而导致截屏图片存在失真的问题;进一步的,通过对屏幕数据进行压缩以提高整个截图过程的效率。
[0136]请参阅图6,图6是本发明第五实施例提供的基于Android系统的屏幕截图方法的流程示意图。
[0137]在该实施例中,终端根据版本信息和存储路径信息,确定出所述终端依照帧缓冲Framebuffer存储路径读取所述终端的屏幕数据。即所述终端的版本信息不在所述终端的预设版本以上,或者,所述终端不存在Screencap存储路径,其中所述预设版本为Android系统4.0以上版本。
[0138]其中,区别于第三实施例和第四实施例,不同的是依照巾贞缓冲Framebuffer存储路径读取所述终端的屏幕数据后,对屏幕数据的修正处理不一样,所述方法包括:
[0139]在步骤S601中,接收输入指令,所述输入指令用于向安装Android系统的终端请求屏幕截图。
[0140]在步骤S602中,获取所述终端的版本信息和存储路径信息。
[0141]在步骤S603中,根据所述终端的版本信息和存储路径信息,确定依照帧缓冲Framebuffer存储路径读取所述终端的屏幕数据。
[0142]可以理解的是,所述步骤S601至步骤S603可以参考上述第三实施例的步骤S401至步骤S403的相关描述进行具体实现,此处不再赘述。
[0143]在步骤S604中,对读取的所述屏幕数据进行RGB通道排序修正和行像素修正处理,生成修正后的屏幕数据。
[0144]可以理解的是,在依照Framebuffer存储路径读取所述终端的屏幕数据的过程中,对读取的所述屏幕数据进行修正处理,以避免采用读取的屏幕数据而压缩的图片产生失真,如,避免由于屏幕图片RGB通道混乱而造成的红屏现象以及由于屏幕图片像素点排列混乱而造成的花屏现象。
[0145]优选的,由于在Framebuffer中,第一,正常情况下的RGB通道分布从高到低为BGR,如果不是这个顺序,则屏幕截图后的图片会出现红屏等失真现象。第二,Framebuffer本身设置的行像素和终端实际的行像素不一致,导致屏幕图片像素点排列混乱,屏幕截图后的图片会出现花屏等失真现象。基于这两种情况,对RGB通道顺序和实际读取的行像素进行检测和调整,可具体的:
[0146]若检测到依照所述Framebuffer存储路径所读取的屏幕数据,其当前的红绿蓝RGB通道顺序不是BGR排列,则将所述RGB通道顺序调整为BGR排列;
[0147]若检测到依照所述Framebuffer存储路径读取所述屏幕数据时,获取的行像素宽度不等于所述终端的屏幕的X分辨率,则以所述Framebuffer存储路径的行像素宽度作为实际行宽度读取所述屏幕数据;
[0148]将经过RGB通道排序修正和行像素修正后的屏幕数据作为修正后的屏幕数据。
[0149]在步骤S605中,对所述修正后的屏幕数据进行压缩,生成所述屏幕数据对应的屏幕截图。
[0150]可以理解的是,所述步骤S605可以参考上述第三实施例的步骤S405的相关描述进行具体实现,此处不再赘述。
[0151]需要说明的是,从所述Framebuffer读取屏幕数据的过程,可以根据现有技术进行实现,此处不作具体描述。
[0152]由上述可知,本实施例提供的基于Android系统的屏幕截图方法应用于安装Android系统的终端,本实施例获取终端的版本信息和存储路径信息,并将所述版本信息与预设版本进行比较,若所述版本信息在所述预设版本以上且所述终端中存在Screencap存储路径,则依照所述Screencap存储路径读取所述终端的屏幕数据,将屏幕数据压缩保存为本地图片。本发明实施例中,通过对终端的版本信息和存储路径信息进行分析,保证优先从Screencap读取数据,保证生成的截屏图片不失真。进一步的,对于版本信息不在预设版本以上的情况,通过RGB通道排序修正和行像素修正的方式,解决从Framebuffer读取数据而导致截屏图片存在失真的问题;进一步的,通过对屏幕数据进行压缩以提高整个截图过程的效率。
[0153]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见相关实施例中的详细描述,此处不再赘述。
[0154]为便于更好的实施本发明实施例提供的基于Android系统的屏幕截图方法,本发明实施例还提供一种基于所述屏幕截图方法的安装Android系统的终端。其中名词的含义与上述基于Android系统的屏幕截图方法中相同,具体实现细节可以参考方法实施例中的说明。请参阅图7,图7为本发明实施例提供的安装Android系统的终端的结构示意图,其中所述终端包括接收模块71、获取模块72、判断模块73、第一读取模块74以及压缩生成模块75。
[0155]其中所述接收模块71接收输入指令,所述输入指令用于向安装Android系统的终端请求屏幕截图;所述获取模块72,获取所述终端的版本信息和存储路径信息,并将所述版本信息与预设版本进行比较。
[0156]所述终端可以包括平板PC、个人数字助理、连网板、可携式电话等具备储存单元并安装有微处理器而具有运算能力的终端机。所述终端的版本信息具体指安装的Android系统的版本号信息,所述终端的存储路径信息具体是指所述终端内存在有哪些存储路径。
[0157]本发明实施例中所述存储路径包括屏幕截图Screencap存储路径和巾贞缓冲Framebuffer存储路径,其中,在Android系统中,Screencap的存储路径为“/system/bin/screencap”,Framebuffer 的存储路径为 “/dev/graphics/fbO”。
[0158]所述判断模块73若所述版本信息在所述预设版本以上,则进一步判断所述终端是否存在屏幕截图Screencap存储
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1