一种获取屏幕截图的方法及装置的制造方法_2

文档序号:9471152阅读:来源:国知局
息进行个性化设计,以及,通过设计图像信息提取函数, 可以提取矩阵内存中绘制的全部或部分图像信息,从而能够实现局部截图。
[0029] 本发明实施例中,OpenGLES基于Android原生开发工具包(NDK,Native DevelopmentKit)。由于Android应用程序运行在Dalvik虚拟机中,NDK允许用户使用类 似C/C++之类的原生代码语言执行部分程序,例如,操作底层或操作内存,通过使用C/C++ 之类的原生代码语言,较容易实现操作功能。而发明中,矩阵内存属于操作内存的功能,因 而,引入OpenGLES,可以实现对矩阵内存中绘制的图像信息的访问、提取和修改。
[0030] AndroidNDK包括了 :
[0031] 1,从C/C++生成原生代码库所需要的工具和buildfiles。
[0032] 2,将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(APK, Application Packages files,艮P?apk 文件)中。
[0033] 3,支持所有未来Android平台的一些列原生系统头文件和库。
[0034] 关于引入OpenGLES为公知技术,详情可以参考AndroidNDK自带例子(NDK目录 \samples\hello_gl2),在此略去详述。
[0035] 本步骤中,作为一可选实施例,接收局部截图指令,获取屏幕截图指令在屏幕上对 应的局部截图坐标参数包括:
[0036] All,接收局部截图指令,获取用户操作轨迹;
[0037] 本步骤中,如果用户在游戏过程中需要将炫酷的游戏界面的一部分进行截图,以 与好友分享,则通过触发游戏界面中预先设置的局部截图功能,对当前游戏界面进行局部 截图。
[0038] 本发明实施例中,作为一可选实施例,接收局部截图指令包括:
[0039] B11,暂停应用程序界面;
[0040] 本步骤中,在当前屏幕对应的应用程序界面出现用户期望截取的图片时,可以通 过功能菜单、热键等方式暂停应用程序界面。
[0041] B12,点击功能菜单中的局部截图控件,发出局部截图指令以使OpenGLES接收。
[0042]本步骤中,由于用户可能在应用程序界面,例如,游戏界面随时截取图片,因而,可 以设置一较为方便快捷方式以启动或关闭局部截图功能。较佳地,功能菜单可以设置于屏 幕下拉菜单中,即以下拉方式显示。
[0043] 本发明实施例中,用户操作轨迹包括但不限于:手势操作轨迹、鼠标操作轨迹、触 摸屏操作轨迹以及用户输入的操作轨迹等。对于用户输入的操作轨迹,用户可以直接输入 局部截图坐标参数。
[0044] 以鼠标操作轨迹为例,获取用户操作轨迹包括:
[0045] C11,监测到用户与屏幕接触,得到用户操作轨迹的起始坐标点;
[0046] 本步骤中,对于台式电脑,用户与屏幕接触即用户在屏幕上按下鼠标按键,对于移 动设备,用户与屏幕接触即用户触摸屏幕。
[0047] C12,监测到用户与屏幕脱离接触,得到用户操作轨迹的终止坐标点;
[0048] 本步骤中,还可以设置一时间阈值,当按下鼠标按键至松开鼠标按键的时间小于 该时间阈值时,表示用户可能是误操作,则结束流程。
[0049] C13,将所述用户操作轨迹的起始坐标点至终止坐标点覆盖的范围作为用户操作 轨迹。
[0050] A12,计算用户操作轨迹对应的局部截图坐标参数。
[0051] 本步骤中,局部截图坐标参数以第一横坐标信息、第二横坐标信息、第一纵坐标信 息以及第二纵坐标信息进行表征,即包括:第一横坐标信息、第二横坐标信息、第一纵坐标 信息以及第二纵坐标信息。作为另一可选实施例,局部截图坐标参数也可以横坐标信息、长 度信息、纵坐标信息以及宽度信息进行表征。以鼠标操作轨迹为例,其中,
[0052] 横坐标信息为起始坐标点的横坐标值与终止坐标点的横坐标值之和的一半;
[0053] 长度信息为起始坐标点的横坐标值与终止坐标点的横坐标值之差的绝对值的一 半;
[0054] 纵坐标信息为起始坐标点的纵坐标值与终止坐标点的纵坐标值之和的一半;
[0055] 宽度信息为起始坐标点的纵坐标值与终止坐标点的纵坐标值之差的绝对值的一 半。
[0056] 本发明实施例中,对于用户操作轨迹为不规则形状的情形,可以根据实际需要,设 置更多个参数用以表征局部截图坐标参数。
[0057] 作为另一可选实施例,利用嵌入式系统的开放图形程序库的双缓冲矩阵内存进行 加载包括:
[0058] A21,嵌入式系统的开放图形程序库依据屏幕大小设置与所述屏幕大小相同的第 一内存矩阵以及第二内存矩阵;
[0059] A22,提取当前屏幕中待加载的所有控件的各像素点的像素颜色值信息,将提取的 各像素点的像素颜色值信息写入第一矩阵内存中相应像素点以进行绘制;
[0060] A23,在第一矩阵内存完成绘制后,将该绘制好的第一矩阵内存中的像素点信息传 送给物理屏幕进行加载;同时,提取下一屏幕中待加载的所有控件的各像素点的像素颜色 值信息,将提取的各像素点的像素颜色值信息写入第二矩阵内存中相应像素点以进行绘 制,以在接收到屏幕切换指令后,将该绘制好的第二矩阵内存中的像素点信息传送给物理 屏幕进行加载。
[0061] 本步骤中,嵌入式系统的开放图形程序库将该绘制好的第二矩阵内存中的像素点 信息传送给物理屏幕进行加载的同时,清空第一矩阵内存,提取下下一屏幕中待加载的所 有控件的各像素点的像素颜色值信息,将提取的各像素点的像素颜色值信息写入第一矩阵 内存中相应像素点以进行绘制,如此循环,使得嵌入式系统的开放图形程序库可以基于双 缓冲矩阵内存进行屏幕图像信息的加载。
[0062] 步骤102,调用GL系统线程,在当前屏幕对应的内存矩阵中,读取所述局部截图坐 标参数形成的区域内包含的图像信息;
[0063] 本步骤中,在OpenGLES中,图形程序库(GL,GraphicsLibrary)系统线程用于绘 制待加载的屏幕图像信息,可以避免多线程的干扰。
[0064] 本发明实施例中,作为一可选实施例,局部截图坐标参数包括:横坐标信息、长度 信息、纵坐标信息以及宽度信息,在当前屏幕对应的内存矩阵中,读取所述局部截图坐标参 数形成的区域内包含的图像信息包括:
[0065] 在GL系统线程中调用函数SetChildrenDrawingCacheEnabled()开启当前屏幕对 应的内存矩阵;
[0066] 调用函数getDrawingCacheO在所述当前屏幕对应的内存矩阵中,获取所述局部 截图坐标参数形成的区域内的各像素点的像素颜色值。
[0067] 本步骤中,以横坐标信息以及纵坐标信息为中心,在长度方向上延伸长度信息对 应的长度,以及,在宽度方向上延伸宽度信息对应的宽度,获取坐标信息在该区域内的各像 素点的像素颜色值。
[0068] 本发明实施例中,矩阵内存大小(像素点数)与屏幕大小(像素点数)相匹配。作 为一可选实施例,设置内存矩阵中保存的图像内容的像素位,即图像内容以8位像素进行 保存。
[0069] 本发明实施例中,读
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1