一種獲取屏幕截圖的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機圖形處理技術(shù),尤其涉及一種獲取屏幕截圖的方法及裝置。
【背景技術(shù)】
[0002] 目前,安卓(Android)操作系統(tǒng)以其操作簡單且方便快捷的特性,越來越為用戶 所接受,已普遍應(yīng)用于用戶的工作以及生活中。隨著Android操作系統(tǒng)的日益普及,用于界 面設(shè)計的科庫斯(Cocos)跨平臺框架也廣泛應(yīng)用于游戲以及Android操作系統(tǒng)的各應(yīng)用 中,例如,基于Cocos跨平臺框架,可以在游戲中實現(xiàn)類似于"炫耀一下"的屏幕截圖功能, 并可以將屏幕截圖得到的圖片發(fā)送給好友進行分享。
[0003] 目前,終端設(shè)備,例如,移動電話、平板電腦、筆記本電腦、臺式機電腦以及個人數(shù) 字助理等,都提供有無損截取當(dāng)前整個屏幕的全屏幕截圖功能,其中,實現(xiàn)全屏幕截圖的截 屏方法主要包括:基于Android軟件開發(fā)工具包(SDK,SoftwareDevelopmentKit)的無損 截屏方法以及讀取FBO的方法。
[0004] 其中,基于AndroidSDK的無損截屏方法,是利用作為控件基類的視窗(View)自 帶的雙緩沖機制,獲取內(nèi)部的屏幕效果。讀取FBO的方法是利用讀取/dev/graphics/fbO 文件,通過獲取ROOT權(quán)限,利用流的方式讀取/dev/graphics/fbO文件的內(nèi)容,然后將讀取 的內(nèi)容轉(zhuǎn)換成為RBG(像素點信息),并將轉(zhuǎn)換的像素點信息轉(zhuǎn)換成為圖片,從而得到全屏 幕截圖。
[0005] 但上述獲取全屏幕截圖的方法,只能實現(xiàn)全屏截取,當(dāng)用戶希望分享的只是全屏 截圖中的部分圖像時,用戶需要對全屏截圖進行二次操作,才能獲得想要的圖像,這個流程 增加了獲取屏幕截圖所需的時間,使得獲取屏幕截圖的效率較低。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明實施例提供一種獲取屏幕截圖的方法及裝置,解決局部截圖處 理流程復(fù)雜、局部截圖效率較低的技術(shù)問題。
[0007] 為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0008] -方面,本發(fā)明實施例提供一種獲取屏幕截圖的方法,包括:
[0009] 接收局部截圖指令,獲取屏幕截圖指令在屏幕上對應(yīng)的局部截圖坐標(biāo)參數(shù),所述 屏幕上的圖像利用嵌入式系統(tǒng)的開放圖形程序庫的雙緩沖矩陣內(nèi)存進行加載;
[0010] 調(diào)用圖形程序庫GL系統(tǒng)線程,在當(dāng)前屏幕對應(yīng)的內(nèi)存矩陣中,讀取所述局部截圖 坐標(biāo)參數(shù)形成的區(qū)域內(nèi)包含的圖像信息;
[0011] 對讀取的圖像信息進行倒轉(zhuǎn)處理,并將倒轉(zhuǎn)處理的圖像信息轉(zhuǎn)換為圖片。
[0012] 本發(fā)明實施例提供的獲取屏幕截圖的方法,通過利用嵌入式系統(tǒng)的開放圖形程序 庫的雙緩沖矩陣內(nèi)存進行屏幕圖像信息的加載,在需要進行局部截圖時,調(diào)用GL系統(tǒng)線 程,在當(dāng)前屏幕對應(yīng)的內(nèi)存矩陣中,讀取用戶指定的局部截圖坐標(biāo)參數(shù)形成的區(qū)域內(nèi)包含 的圖像信息,然后,對讀取的圖像信息進行倒轉(zhuǎn)處理,并將倒轉(zhuǎn)處理的圖像信息轉(zhuǎn)換為圖 片,得到局部截圖,由于可以直接讀取矩陣內(nèi)存中用戶指定的局部截圖坐標(biāo)參數(shù)形成的區(qū) 域內(nèi)包含的圖像信息,能夠?qū)崿F(xiàn)一次性的局部截圖,簡化了局部截圖處理流程,從而有效提 升了局部截圖的效率。
[0013] 另一方面,本發(fā)明實施例提供一種獲取屏幕截圖的裝置,包括:局部截圖指令處理 模塊、調(diào)用模塊以及圖像獲取模塊,其中,
[0014] 局部截圖指令處理模塊,用于接收局部截圖指令,獲取屏幕截圖指令在屏幕上對 應(yīng)的局部截圖坐標(biāo)參數(shù),所述屏幕上的圖像利用嵌入式系統(tǒng)的開放圖形程序庫的雙緩沖矩 陣內(nèi)存進行加載;
[0015] 調(diào)用模塊,用于調(diào)用GL系統(tǒng)線程,在當(dāng)前屏幕對應(yīng)的內(nèi)存矩陣中,讀取所述局部 截圖坐標(biāo)參數(shù)形成的區(qū)域內(nèi)包含的圖像信息;
[0016] 圖像獲取模塊,用于對讀取的圖像信息進行倒轉(zhuǎn)處理,并將倒轉(zhuǎn)處理的圖像信息 轉(zhuǎn)換為圖片。
[0017] 本發(fā)明實施例提供的獲取屏幕截圖的裝置,局部截圖指令處理模塊通過利用嵌入 式系統(tǒng)的開放圖形程序庫的雙緩沖矩陣內(nèi)存進行屏幕圖像信息的加載,在需要進行局部截 圖時,調(diào)用模塊調(diào)用GL系統(tǒng)線程,在當(dāng)前屏幕對應(yīng)的內(nèi)存矩陣中,讀取用戶指定的局部截 圖坐標(biāo)參數(shù)形成的區(qū)域內(nèi)包含的圖像信息,圖像獲取模塊對讀取的圖像信息進行倒轉(zhuǎn)處 理,并將倒轉(zhuǎn)處理的圖像信息轉(zhuǎn)換為圖片,得到局部截圖,由于可以直接讀取矩陣內(nèi)存中用 戶指定的局部截圖坐標(biāo)參數(shù)形成的區(qū)域內(nèi)包含的圖像信息,能夠?qū)崿F(xiàn)一次性的局部截圖, 簡化了局部截圖處理流程,從而有效提升了局部截圖的效率。
【附圖說明】
[0018] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其它的附圖。
[0019] 圖1為本發(fā)明實施例獲取屏幕截圖的方法流程示意圖;
[0020] 圖2為本發(fā)明實施例獲取屏幕截圖的裝置結(jié)構(gòu)示意圖;
[0021] 圖3為本發(fā)明實施例獲取屏幕截圖的裝置具體結(jié)構(gòu)示意圖。
【具體實施方式】
[0022] 下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
[0023] 應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其 它實施例,都屬于本發(fā)明保護的范圍。
[0024] 圖1為本發(fā)明實施例獲取屏幕截圖的方法流程示意圖。參見圖1,該方法包括:
[0025] 步驟101,接收局部截圖指令,獲取屏幕截圖指令在屏幕上對應(yīng)的局部截圖坐標(biāo)參 數(shù),所述屏幕上的圖像利用嵌入式系統(tǒng)的開放圖形程序庫的雙緩沖矩陣內(nèi)存進行加載;
[0026] 本步驟中,嵌入式系統(tǒng)的開放圖形程序庫(OpenGLES,OpenGraphicsLibrary forEmbeddedSystems)是Android操作系統(tǒng)自帶的一個庫,是OpenGL三維圖形應(yīng)用程序 接口(API,ApplicationProgrammingInterface)的子集,針對移動電話、個人數(shù)字助理 (PDA,PersonalDigitalAssistant)以及游戲主機等嵌入式終端設(shè)備而設(shè)計。
[0027]OpenGLES是跨平臺的、功能完善的二維(2D)以及三維(3D)圖形API,是 從OpenGL裁剪的定制而來,去除了glBegin/glEnd、四邊形(GL_QUADS)、多邊形(GL_ POLYGONS)等復(fù)雜圖元等許多非絕對必要的特性,廣泛應(yīng)用于圖形繪制以及特效處理,用戶 利用OpenGLES繪圖時,可以通過修改OpenGLES繪圖中的參數(shù)信息,對繪圖進行個性化設(shè) 計。
[0028] 本發(fā)明實施例中,考慮到可以修改OpenGLES繪圖中的參數(shù)信息,在實現(xiàn)局部截 圖時引入OpenGLES,替換Android操作系統(tǒng),一方面,用于對屏幕圖像進行加載,即利用 OpenGLES管理和維護用于屏幕圖像加載的雙緩沖機制的兩個矩陣內(nèi)存,另一方面,可以通 過訪問并提取OpenGLES繪圖中的參數(shù)信息,實現(xiàn)局部信息提取。這樣,用戶可以根據(jù)實際 需要,對矩陣內(nèi)存中繪制的圖像信