本申請(qǐng)涉及圖像處理,尤其涉及一種圖像顯示方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、opengles(open?graphics?library?for?embedded?systems,嵌入式操作系統(tǒng)開放圖像庫)是嵌入式平臺(tái)的一個(gè)標(biāo)準(zhǔn)圖像渲染接口,它允許開發(fā)人員利用gpu(graphicsprocessing?unit,圖形處理單元)的強(qiáng)大性能來創(chuàng)建和渲染復(fù)雜的圖形效果。
2、在相關(guān)技術(shù)中,使用opengles時(shí),依賴系統(tǒng)提供egl(embedded?graphicslibrary,嵌入式圖形庫)接口的實(shí)現(xiàn)和提供一個(gè)surface(繪制表面)。egl是opengles的標(biāo)準(zhǔn)接口,在不同平臺(tái),不同操作系統(tǒng)上由系統(tǒng)廠商實(shí)現(xiàn);surface則可以是一段緩沖區(qū)內(nèi)存,也可以是表示屏幕窗口的結(jié)構(gòu)體。通過opengles,能夠?qū)崿F(xiàn)活動(dòng)頁面中的圖像顯示,但在進(jìn)入活動(dòng)頁面時(shí),還存在圖像顯示加載延遲等問題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本申請(qǐng)公開了一種圖像顯示方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì),用于解決現(xiàn)有技術(shù)中進(jìn)入活動(dòng)頁面時(shí)圖像顯示加載延遲的技術(shù)問題。
2、第一方面,本申請(qǐng)?zhí)峁┝艘环N圖像顯示方法,所述方法包括:獲取繪制表面并進(jìn)行部署,所述繪制表面基于安卓原生系統(tǒng)中的圖像讀取類創(chuàng)建;將所述繪制表面作為圖像渲染表面,構(gòu)建圖像渲染環(huán)境;基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù);響應(yīng)于前端的圖像顯示請(qǐng)求,發(fā)送所述圖像數(shù)據(jù),以使所述前端的表面視圖控件將所述圖像數(shù)據(jù)渲染在活動(dòng)頁面上。
3、于本申請(qǐng)一實(shí)施例中,所述將所述繪制表面作為圖像渲染表面,構(gòu)建圖像渲染環(huán)境,包括:創(chuàng)建管理線程,在所述管理線程中調(diào)用嵌入式圖形庫接口,并通過所述嵌入式圖形庫接口與操作系統(tǒng)顯示服務(wù)建立連接;創(chuàng)建渲染上下文,并創(chuàng)建圖像渲染表面創(chuàng)建類,將所述繪制表面設(shè)置為所述圖像渲染表面;將所述操作系統(tǒng)顯示服務(wù)、所述渲染上下文與所述圖像渲染表面進(jìn)行綁定,生成所述圖像渲染環(huán)境。
4、于本申請(qǐng)一實(shí)施例中,所述創(chuàng)建圖像渲染表面創(chuàng)建類,將所述繪制表面設(shè)置為所述圖像渲染表面,包括:調(diào)用所述圖像渲染表面創(chuàng)建類,定義所述繪制表面對(duì)應(yīng)的繪制表面接口,所述繪制表面接口包含表面創(chuàng)建方法;調(diào)用所述繪制表面接口,執(zhí)行所述表面創(chuàng)建方法,將所述繪制表面設(shè)置為所述圖像渲染表面。
5、于本申請(qǐng)一實(shí)施例中,所述基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù),包括:設(shè)置算法渲染器,并創(chuàng)建后端渲染進(jìn)程,所述算法渲染器中配置有第一繪制函數(shù);在所述后端渲染進(jìn)程中,執(zhí)行所述第一繪制函數(shù),在當(dāng)前緩沖區(qū)中對(duì)所述相機(jī)數(shù)據(jù)流進(jìn)行處理;調(diào)用所述圖像渲染環(huán)境中預(yù)先設(shè)置的緩沖區(qū)交換函數(shù),將所述當(dāng)前緩沖區(qū)中處理后的所述相機(jī)數(shù)據(jù)流提交至所述繪制表面,獲得所述圖像數(shù)據(jù)。
6、于本申請(qǐng)一實(shí)施例中所述基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù)之后,還包括:在預(yù)先創(chuàng)建的調(diào)度線程中,若檢測(cè)到所述繪制表面中存在所述圖像數(shù)據(jù),則觸發(fā)回調(diào)函數(shù),向圖像數(shù)據(jù)對(duì)象上報(bào)所述圖像數(shù)據(jù),所述圖像數(shù)據(jù)對(duì)象由所述圖像讀取類創(chuàng)建,所述圖像數(shù)據(jù)對(duì)象包含硬件緩沖區(qū)獲取函數(shù);調(diào)用所述硬件緩沖區(qū)獲取函數(shù),獲取硬件緩沖區(qū),并將所述圖像數(shù)據(jù)寫入所述硬件緩沖區(qū),以及將所述硬件緩沖區(qū)與紋理內(nèi)存進(jìn)行綁定,以在接收到所述圖像顯示請(qǐng)求時(shí),使得所述表面視圖控件從所述紋理內(nèi)存中讀取所述圖像數(shù)據(jù);若未接收到所述圖像顯示請(qǐng)求,則持續(xù)進(jìn)行圖像數(shù)據(jù)合成操作,直至接收到所述圖像數(shù)據(jù)合成操作的退出指令。
7、于本申請(qǐng)一實(shí)施例中,所述以使所述前端的表面視圖控件將所述圖像數(shù)據(jù)渲染在活動(dòng)頁面上,包括:調(diào)用所述表面視圖控件,從所述紋理內(nèi)存中獲取所述圖像數(shù)據(jù),所述表面視圖控件中設(shè)置有圖像渲染器,所述圖像渲染器中配置有第二繪制函數(shù);創(chuàng)建前端渲染進(jìn)程,并在所述前端渲染進(jìn)程中,執(zhí)行所述第二繪制函數(shù),獲取所述活動(dòng)頁面上顯示窗口的窗口信息;根據(jù)所述窗口信息,將所述圖像數(shù)據(jù)渲染到所述顯示窗口上。
8、于本申請(qǐng)一實(shí)施例中,所述繪制表面的創(chuàng)建方式,包括:調(diào)用所述圖像讀取類創(chuàng)建圖像讀取實(shí)例,并設(shè)置所述圖像讀取實(shí)例的圖像數(shù)據(jù)參數(shù),所述圖像數(shù)據(jù)參數(shù)包括圖像寬度、圖像高度、圖像格式與最大圖像數(shù)量;根據(jù)所述圖像數(shù)據(jù)參數(shù)設(shè)置繪制緩沖區(qū),獲得所述繪制表面。
9、第二方面,本申請(qǐng)?zhí)峁┝艘环N圖像顯示系統(tǒng),所述系統(tǒng)包括:獲取模塊,用于獲取繪制表面并進(jìn)行部署,所述繪制表面基于安卓原生系統(tǒng)中的圖像讀取類創(chuàng)建;構(gòu)建模塊,用于將所述繪制表面作為圖像渲染表面,構(gòu)建圖像渲染環(huán)境;合成模塊,用于基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù);顯示模塊,用于響應(yīng)于前端的圖像顯示請(qǐng)求,發(fā)送所述圖像數(shù)據(jù),以使所述前端的表面視圖控件將所述圖像數(shù)據(jù)渲染在活動(dòng)頁面上。
10、第三方面,本申請(qǐng)?zhí)峁┝艘环N電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得電子設(shè)備實(shí)現(xiàn)如第一方面描述的圖像顯示方法。
11、第四方面,本申請(qǐng)?zhí)峁┝艘环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被計(jì)算機(jī)的處理器執(zhí)行時(shí),使計(jì)算機(jī)執(zhí)行如第一方面描述的圖像顯示方法。
12、如上所述,本申請(qǐng)實(shí)施例提供的一種圖像顯示方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì),具有以下有益效果:
13、首先獲取繪制表面并進(jìn)行部署,該繪制表面基于安卓原生系統(tǒng)中的圖像讀取類創(chuàng)建,接著將繪制表面作為圖像渲染表面,構(gòu)建圖像渲染環(huán)境,然后基于圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù),最后響應(yīng)于前端的圖像顯示請(qǐng)求,發(fā)送圖像數(shù)據(jù),以使前端的表面視圖控件將圖像數(shù)據(jù)渲染在活動(dòng)頁面上,通過圖像讀取類創(chuàng)建提供繪制表面,將該繪制表面綁定到圖像渲染環(huán)境作為圖像渲染表面,使得該圖像渲染表面不依賴于業(yè)務(wù)活動(dòng)頁面,從而使得圖像渲染環(huán)境能夠在后端運(yùn)行,即在后端部署算法、合成圖像,當(dāng)業(yè)務(wù)活動(dòng)頁面啟動(dòng)時(shí),即需要對(duì)圖像數(shù)據(jù)進(jìn)行消費(fèi)顯示時(shí),可以直接觸發(fā)表面視圖控件讀取后端合成的圖像數(shù)據(jù),直接渲染到頁面上,高性能地完成圖像顯示,而不需要在活動(dòng)頁面啟動(dòng)后,才通過表面視圖控件創(chuàng)建繪制表面進(jìn)行圖像繪制、渲染,這樣,在后端完成計(jì)算任務(wù),在前端直接進(jìn)行渲染,避免加載延遲,提升了業(yè)務(wù)性能,也提升了用戶體驗(yàn)。
14、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
1.一種圖像顯示方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的圖像顯示方法,其特征在于,所述將所述繪制表面作為圖像渲染表面,構(gòu)建圖像渲染環(huán)境,包括:
3.根據(jù)權(quán)利要求2所述的圖像顯示方法,其特征在于,所述創(chuàng)建圖像渲染表面創(chuàng)建類,將所述繪制表面設(shè)置為所述圖像渲染表面,包括:
4.根據(jù)權(quán)利要求1所述的圖像顯示方法,其特征在于,所述基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù),包括:
5.根據(jù)權(quán)利要求4所述的圖像顯示方法,其特征在于,所述基于所述圖像渲染環(huán)境將接收到的相機(jī)數(shù)據(jù)流合成圖像數(shù)據(jù)之后,還包括:
6.根據(jù)權(quán)利要求5所述的圖像顯示方法,其特征在于,所述以使所述前端的表面視圖控件將所述圖像數(shù)據(jù)渲染在活動(dòng)頁面上,包括:
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的圖像顯示方法,其特征在于,所述繪制表面的創(chuàng)建方式,包括:
8.一種圖像顯示系統(tǒng),其特征在于,所述系統(tǒng)包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被計(jì)算機(jī)的處理器執(zhí)行時(shí),使計(jì)算機(jī)執(zhí)行如權(quán)利要求1至7任一項(xiàng)所述的圖像顯示方法。