本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種圖像展示區(qū)域的形狀設(shè)置方法及裝置。
背景技術(shù):
一般情況下,手機(jī)或電腦客戶端程序中,窗口組件的展示區(qū)域?yàn)橹苯蔷匦螀^(qū)域,計(jì)算機(jī)程序可通過(guò)定義矩形區(qū)域的頂點(diǎn)或長(zhǎng)寬即可確定直角矩形的展示區(qū)域,但在一些應(yīng)用場(chǎng)景中,為了適配操作系統(tǒng)或應(yīng)用頁(yè)面的主題風(fēng)格,如圖1所示,視頻展示區(qū)域需要被設(shè)計(jì)為圓角矩形的外觀,現(xiàn)有技術(shù)中的常見(jiàn)做法就是使用cpu對(duì)視頻幀進(jìn)行邊角的裁減。
參考圖2所示,對(duì)于圓角區(qū)域,需要先在圓角區(qū)域生成n個(gè)三角形,通過(guò)這n個(gè)三角形的底邊來(lái)逼近圓角,三角形n的數(shù)量若較少,則視覺(jué)觀感上就會(huì)出現(xiàn)鋸齒狀的邊緣紋路,而三角形n的數(shù)量越多,則圓角越平滑,視覺(jué)觀感上則越不會(huì)出現(xiàn)鋸齒狀的紋路。
為此,為了防止圓角矩形的圓角區(qū)域不會(huì)出現(xiàn)鋸齒狀的紋路,從而達(dá)到較好的視覺(jué)效果,傳統(tǒng)技術(shù)中通常需要使用cpu資源生成較多的三角形,這樣就非常消耗cpu的使用率。
技術(shù)實(shí)現(xiàn)要素:
基于此,為了實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域,或者實(shí)現(xiàn)任意形狀的圖像展示區(qū)域,并保證較低的處理器和內(nèi)存的使用率,提高計(jì)算機(jī)資源的利用率,特提出了一種圖像展示區(qū)域的形狀設(shè)置方法。
一種圖像展示區(qū)域的形狀設(shè)置方法,包括:
獲取圖像待展示區(qū)域的紋理區(qū)域和頂點(diǎn)坐標(biāo);
調(diào)用圖形程序接口,將所述頂點(diǎn)坐標(biāo)輸入至圖形處理器gpu的頂點(diǎn)著色器中;
獲取與所述頂點(diǎn)著色器對(duì)應(yīng)的像素著色器;
采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
此外,為了實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域,或者實(shí)現(xiàn)任意形狀的圖像展示區(qū)域,并保證較低的處理器和內(nèi)存的使用率,提高計(jì)算機(jī)資源的利用率,還特提出了一種圖像展示區(qū)域的形狀設(shè)置裝置。
一種圖像展示區(qū)域的形狀設(shè)置裝置,包括:
紋理區(qū)域確定模塊,用于獲取圖像待展示區(qū)域的紋理區(qū)域和頂點(diǎn)坐標(biāo);
頂點(diǎn)著色器處理模塊,用于調(diào)用圖形程序接口,將所述頂點(diǎn)坐標(biāo)輸入至圖形處理器gpu的頂點(diǎn)著色器中;
像素著色器獲取模塊,用于獲取與所述頂點(diǎn)著色器對(duì)應(yīng)的像素著色器;
圖像渲染模塊,用于采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
實(shí)施本發(fā)明實(shí)施例,將具有如下有益效果:
采用了上述圖像展示區(qū)域的形狀設(shè)置方法及裝置之后,可通過(guò)調(diào)用圖形處理接口使得cpu向gpu發(fā)出指令,指示gpu利用頂點(diǎn)著色器和相應(yīng)的像素著色器,在頂點(diǎn)坐標(biāo)限定的區(qū)域中按照預(yù)輸入的紋理區(qū)域?qū)δ繕?biāo)圖像進(jìn)行繪制,這樣就使的gpu通過(guò)圖形處理接口返回的圖像具有與紋理區(qū)域?qū)?yīng)的形狀,從而對(duì)圖像展示區(qū)域的形狀進(jìn)行了設(shè)置。上述過(guò)程中,圖像處理過(guò)程由gpu分擔(dān),而不需要cpu生成多個(gè)三角形來(lái)逼近圓弧的曲線,因此降低了cpu的使用率,節(jié)省了計(jì)算資源。
另外,上述圖像展示區(qū)域的形狀設(shè)置方法也可適用于定義成任意形狀的紋理區(qū)域,由于設(shè)置形狀的方式并不是采用的多邊形的直邊近似的方式,因此抗鋸齒的效果更加明顯。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
其中:
圖1為一個(gè)實(shí)施例中圓角矩陣視頻播放界面的示意圖;
圖2為一個(gè)實(shí)施例中cpu在矩陣直角處生成三角形逼近圓弧的原理示意圖;
圖3為一個(gè)實(shí)施例中一種圖像展示區(qū)域的形狀設(shè)置方法的流程示意圖;
圖4為一個(gè)實(shí)施例中內(nèi)切于頂點(diǎn)限定的矩形的圓形的紋理區(qū)域的示意圖;
圖5為一個(gè)實(shí)施例中cpu通過(guò)調(diào)用opengl指示gpu工作的示意圖;
圖6為一個(gè)實(shí)施例中opengl中的渲染管線的執(zhí)行過(guò)程示意圖;
圖7為一個(gè)實(shí)施例中像素著色點(diǎn)根據(jù)目標(biāo)圖像繪制紋理區(qū)域的原理示意圖;
圖8為一個(gè)實(shí)施例中像素著色點(diǎn)根據(jù)目標(biāo)圖像繪制紋理區(qū)域的流程圖;
圖9為一個(gè)實(shí)施例中對(duì)邊緣區(qū)域進(jìn)行原色到透明的漸變處理的示意圖;
圖10為一個(gè)實(shí)施例中一種圖像展示區(qū)域的形狀設(shè)置裝置的結(jié)構(gòu)示意圖;
圖11為一個(gè)實(shí)施例中運(yùn)行前述圖像展示區(qū)域的形狀設(shè)置方法的計(jì)算機(jī)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域,或者實(shí)現(xiàn)任意形狀的圖像展示區(qū)域,并保證較低的處理器和內(nèi)存的使用率,提高計(jì)算機(jī)資源的利用率,在本實(shí)施例中,特提出了一種圖像展示區(qū)域的形狀設(shè)置方法,該方法的實(shí)現(xiàn)可依賴于計(jì)算機(jī)程序,該計(jì)算機(jī)程序可運(yùn)行于基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)之上,該計(jì)算機(jī)系統(tǒng)包括中央處理器cpu和圖形處理器gpu,該計(jì)算機(jī)程序可以是圖片管理程序、視頻播放器程序或視頻播放器的插件程序,該計(jì)算機(jī)程序可由中央處理器cpu執(zhí)行,該計(jì)算機(jī)程序可通過(guò)調(diào)用圖形處理接口opengl(opengraphicslibrary)控制cpu向gpu發(fā)送計(jì)算機(jī)指令,以指示圖形處理器gpu執(zhí)行相應(yīng)的圖形處理業(yè)務(wù)。
本發(fā)明實(shí)施例在實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域時(shí),不需要使用cpu在矩形角處生成多個(gè)三角形,而是通過(guò)調(diào)用圖形處理接口opengl,將繪制圓角矩陣的圖像的任務(wù)交給gpu來(lái)實(shí)現(xiàn),這樣就使的gpu分擔(dān)了cpu的處理任務(wù),從而降低了cpu的使用率。另外,本方法并不限于實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域,還可實(shí)現(xiàn)任意形狀的圖像展示區(qū)域。
具體的,如圖3所示,在一個(gè)實(shí)施例中,以圓形的圖像展示區(qū)域?yàn)槔敿?xì)闡述上述圖像展示區(qū)域的形狀設(shè)置方法,該包括:
步驟s102:獲取圖像待展示區(qū)域的紋理區(qū)域和頂點(diǎn)坐標(biāo)。
為了設(shè)置圓形的圖像展示區(qū)域,先需要確定包含該圓形的圖像展示區(qū)域的矩形區(qū)域。如圖4所示,需要設(shè)置的圖像展示區(qū)域?yàn)閳A形,則需要先確定包含圖像展示區(qū)域的矩形abcd的位置,然后再在矩形abcd中確定圓形的紋理區(qū)域。
也就是說(shuō),可先通過(guò)頂點(diǎn)坐標(biāo)確定一個(gè)矩形區(qū)域,然后再在該矩形區(qū)域中定義它的內(nèi)切圓為紋理區(qū)域,該內(nèi)切圓的紋理區(qū)域即為作為圖像展示區(qū)域的圓形區(qū)域。需要說(shuō)明的是,在其他實(shí)施例中,紋理區(qū)域也可以是該頂點(diǎn)坐標(biāo)確定的2區(qū)域中包含的任意子區(qū)域,并不限定于內(nèi)切的子區(qū)域。
在本實(shí)施例中,頂點(diǎn)坐標(biāo)可由執(zhí)行本方法的計(jì)算機(jī)程序根據(jù)程序中定義的像素坐標(biāo)、配置文件中定義的像素坐標(biāo)或用戶輸入的像素坐標(biāo)獲得。例如,開(kāi)發(fā)人員可預(yù)先通過(guò)頂點(diǎn)坐標(biāo)定義矩形區(qū)域或其他多邊形區(qū)域,并記錄在程序文件或配置文件中,當(dāng)執(zhí)行本方法的計(jì)算機(jī)程序在運(yùn)行時(shí),通過(guò)讀取程序文件或配置文件即可得到頂點(diǎn)的位置。頂點(diǎn)坐標(biāo)的作用是用于指示gpu對(duì)頂點(diǎn)坐標(biāo)限定的區(qū)域進(jìn)行坐標(biāo)轉(zhuǎn)換和像素渲染。
頂點(diǎn)坐標(biāo)確定的矩形區(qū)域中的紋理區(qū)域也可由坐標(biāo)來(lái)定義,如上例中,對(duì)于圓形的像素展示區(qū)域,可定義原點(diǎn)的坐標(biāo)和半徑,執(zhí)行本方法的計(jì)算機(jī)程序通過(guò)該原點(diǎn)的坐標(biāo)和半徑即可確定紋理區(qū)域。
步驟s104:調(diào)用圖形程序接口,將頂點(diǎn)坐標(biāo)輸入至圖形處理器gpu的頂點(diǎn)著色器中。
步驟s106:獲取與頂點(diǎn)著色器對(duì)應(yīng)的像素著色器。
圖形程序接口opengl(opengraphicslibrary)被當(dāng)作客戶端-服務(wù)器系統(tǒng)來(lái)實(shí)現(xiàn)的,應(yīng)用程序是客戶端,圖形硬件廠商提供的opengl實(shí)現(xiàn)是服務(wù)器。如圖5所示,客戶端程序需要調(diào)用opengl的接口實(shí)現(xiàn)圖形的渲染,那么opengl命令和數(shù)據(jù)會(huì)緩存在內(nèi)存ram(randomaccessmemory)中,在一定條件下,會(huì)將這些命令和數(shù)據(jù)通過(guò)cpu時(shí)鐘發(fā)送到顯存vram(videorandomaccessmemory),在gpu的控制下,使用vram中的數(shù)據(jù)和命令,完成圖形的渲染,并將結(jié)果存入幀緩沖區(qū)中,幀緩沖區(qū)中的幀最終會(huì)被發(fā)送到顯示器上,顯示出結(jié)果。也就是說(shuō),opengl為應(yīng)用程序訪問(wèn)gpu資源的調(diào)用接口。
著色器(shader)為opengl中定義的概念,主要包括頂點(diǎn)著色器(vertexshader)和像素著色器(pixelshader)。頂點(diǎn)著色器可以理解為如何處理頂點(diǎn)、法線等的數(shù)據(jù)的小程序;像素著色器可以理解為為如何處理光、陰影、遮擋、環(huán)境等等對(duì)物體表面的影響,最終生成一副圖像的小程序。若需要渲染某個(gè)區(qū)域的圖像,則需要先創(chuàng)建頂點(diǎn)著色器程序來(lái)確定渲染的區(qū)域的范圍和空間變換后的形狀(3d轉(zhuǎn)2d),然后再創(chuàng)建與該頂點(diǎn)著色器對(duì)應(yīng)的像素著色器來(lái)對(duì)該區(qū)域中的光、陰影、遮擋、環(huán)境等紋理特征進(jìn)行渲染。開(kāi)發(fā)人員可通過(guò)opengl著色器語(yǔ)言glsl(openglshadinglanguage)來(lái)定義頂點(diǎn)著色器程序和像素著色器程序。
具體的參考圖6所示,圖6展示了調(diào)用opengl的渲染管線(graphicspipeline)的全過(guò)程,渲染管線為gpu進(jìn)行圖像渲染的一個(gè)流程,當(dāng)gpu對(duì)顯示界面上的一個(gè)獨(dú)立區(qū)域進(jìn)行圖像渲染時(shí),需要先將頂點(diǎn)坐標(biāo)輸入到頂點(diǎn)著色器中,確定圖像渲染的范圍,期間會(huì)經(jīng)過(guò)圖元裝配(primitiveassembly)和光柵化(或稱像素化,rasterization)的過(guò)程,然后生成與該渲染范圍的像素著色器。然后再將紋理特征texture輸入到像素著色器中,使得像素著色器根據(jù)該紋理特征對(duì)該渲染范圍內(nèi)的像素點(diǎn)進(jìn)行渲染,最終生成圖像幀,通過(guò)opengl接口返回給調(diào)用的應(yīng)用程序。
也就是說(shuō),執(zhí)行本方法的計(jì)算機(jī)程序可先調(diào)用opengl的頂點(diǎn)著色器程序確定需要gpu處理進(jìn)行渲染的背景區(qū)域(可以是矩形的也可以是多邊形的),然后再通過(guò)調(diào)用與該頂點(diǎn)著色器對(duì)應(yīng)的像素著色器程序根據(jù)前述確定的紋理區(qū)域進(jìn)行渲染,而渲染的內(nèi)容即為需要展示的圖像。
步驟s108:采樣目標(biāo)圖像中位置屬于紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)像素著色器將像素值渲染到紋理區(qū)域中相應(yīng)的位置。
參考圖4和圖7所示,也就是說(shuō),先確定了需要對(duì)矩形abcd進(jìn)行渲染,矩形abcd中有圓形的紋理區(qū)域,那么像素著色器在渲染矩形abcd中的像素點(diǎn)時(shí),若像素點(diǎn)屬于紋理區(qū)域,則將需要展示的目標(biāo)圖像中對(duì)應(yīng)的像素點(diǎn)的像素值設(shè)置到該紋理區(qū)域中相應(yīng)的位置處。而對(duì)于頂點(diǎn)坐標(biāo)限定的區(qū)域中除了紋理區(qū)域以外的像素位置,可將其設(shè)置為透明。
具體的,可參考圖8所示,通過(guò)像素著色器遍歷頂點(diǎn)坐標(biāo)劃定的區(qū)域中的像素點(diǎn),在遍歷到的像素點(diǎn)屬于紋理區(qū)域時(shí),采集目標(biāo)圖像在該像素點(diǎn)的位置的像素值,將像素點(diǎn)的顏色設(shè)置為該像素值;在遍歷到的像素點(diǎn)不屬于紋理區(qū)域時(shí),將遍歷到的像素點(diǎn)設(shè)置為透明。
也就是說(shuō),在前例中,頂點(diǎn)坐標(biāo)劃定的區(qū)域?yàn)榫匦蝍bcd(正方形),紋理區(qū)域?yàn)橐跃匦蝍bcd的中點(diǎn)為圓心的內(nèi)切圓,則著色器遍歷矩形abcd中的像素點(diǎn),當(dāng)遍歷到的像素點(diǎn)的位置屬于內(nèi)切圓時(shí),則獲取目標(biāo)圖像中相同的位置的像素值。如圖7中,當(dāng)遍歷到像素位置e時(shí),由于e位于內(nèi)切圓的圓內(nèi),因此,可將目標(biāo)圖像對(duì)應(yīng)位置e’的像素值設(shè)置到像素位置e處。當(dāng)遍歷到像素位置f時(shí),由于f位于內(nèi)切圓的圓外,因此,對(duì)于像素位置f,并不會(huì)將目標(biāo)圖像對(duì)應(yīng)的f’的像素值設(shè)置到f處,像素位置f處即為透明的顏色。
按照上述方式渲染圖像后,像素著色器只根據(jù)目標(biāo)圖像填充了頂點(diǎn)坐標(biāo)限定的區(qū)域中的圓形的紋理區(qū)域,而對(duì)于頂點(diǎn)坐標(biāo)限定的其他區(qū)域均為透明,視覺(jué)效果上即為圓形的圖像展示區(qū)域。
進(jìn)一步的,圖像展示區(qū)域的形狀還可以設(shè)置成任意形狀,具體的,可獲取輸入的紋理圖片,獲取紋理圖片的中的紋理區(qū)域,根據(jù)紋理區(qū)域確定頂點(diǎn)坐標(biāo)。也就是說(shuō),若希望圖像展示區(qū)域的形狀為不規(guī)則圖形,例如娃娃頭形狀,則可先輸入一副具有娃娃頭形狀紋理的圖片,例如背景為白色,娃娃頭形狀部分為黑色的圖片,然后通過(guò)邊緣檢測(cè)或輪廓檢測(cè)提取到該娃娃頭形狀的紋理區(qū)域,再根據(jù)該娃娃頭形狀的紋理區(qū)域確定頂點(diǎn)坐標(biāo),只需要該頂點(diǎn)坐標(biāo)限定的矩形包含該娃娃頭形狀的紋理區(qū)域即可。優(yōu)選的,在確定頂點(diǎn)坐標(biāo)時(shí),盡量使得娃娃頭形狀的紋理區(qū)域內(nèi)切于頂點(diǎn)坐標(biāo)限定的區(qū)域,這樣可減少像素著色器遍歷的像素點(diǎn)的數(shù)量。
進(jìn)一步的,在對(duì)目標(biāo)圖像進(jìn)行拉伸或縮放處理,以使目標(biāo)圖像覆蓋頂點(diǎn)坐標(biāo)確定的區(qū)域。
也就是說(shuō),若目標(biāo)圖像較小,則將其放大或拉伸,使得紋理區(qū)域能夠充分展示目標(biāo)圖像,而不會(huì)出現(xiàn)像素著色器遍歷像素點(diǎn)時(shí),像素點(diǎn)位置超出了目標(biāo)圖像的情況,相應(yīng)的,若目標(biāo)圖像較大,則將其縮小或拉伸,使得紋理區(qū)域能夠展示目標(biāo)圖像中更多的內(nèi)容。
進(jìn)一步的,為了更好的減少圖像展示區(qū)域邊緣的鋸齒效果,在通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置之后還可確定與紋理區(qū)域?qū)?yīng)的邊緣區(qū)域;對(duì)所述邊緣區(qū)域進(jìn)行原色到透明的漸變處理。
參考圖9所示,在上例的圓形的圖像展示區(qū)域中,紋理區(qū)域定義為以abcd的中心為圓心,半徑為r1的圓,在本實(shí)施例中,還可設(shè)置以abcd的中心為圓心,半徑為r2的圓,r2和r1之間的環(huán)形區(qū)域即為于紋理區(qū)域r1對(duì)應(yīng)的邊緣區(qū)域,對(duì)該邊緣區(qū)域進(jìn)行原色到透明的漸變處理,即可將圖像展示區(qū)域的邊緣輪廓模糊化,從而使得鋸齒效果變得不明顯。漸變處理的方法可具體為alpha漸變采樣處理,這樣的實(shí)現(xiàn)帶來(lái)的性能開(kāi)銷最低。
進(jìn)一步的,在一個(gè)應(yīng)用場(chǎng)景中,圖像展示區(qū)域可用于展示視頻幀,則在設(shè)置了頂點(diǎn)著色器和像素著色器之后,可依次提取目標(biāo)視頻中的視頻幀,將提取的視頻幀作為目標(biāo)圖像,對(duì)于一目標(biāo)圖像,執(zhí)行采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
也就是說(shuō),在圖像展示區(qū)域展示每一幀圖像時(shí),均可使用像素著色器提取圖像與紋理區(qū)域映射的部分的像素點(diǎn)的像素值進(jìn)行渲染,這樣就實(shí)現(xiàn)了在不規(guī)則的圖像展示區(qū)域中播放視頻的功能。
此外,為了實(shí)現(xiàn)圓角矩陣的圖像展示區(qū)域,或者實(shí)現(xiàn)任意形狀的圖像展示區(qū)域,并保證較低的處理器和內(nèi)存的使用率,提高計(jì)算機(jī)資源的利用率,在一個(gè)實(shí)施例中,如圖10所示,還提出了一種圖像展示區(qū)域的形狀設(shè)置裝置,包括紋理區(qū)域確定模塊102、頂點(diǎn)著色器處理模塊104、像素著色器獲取模塊106以及圖像渲染模塊108,其中:
紋理區(qū)域確定模塊102,用于獲取圖像待展示區(qū)域的紋理區(qū)域和頂點(diǎn)坐標(biāo);
頂點(diǎn)著色器處理模塊104,用于調(diào)用圖形程序接口,將所述頂點(diǎn)坐標(biāo)輸入至圖形處理器gpu的頂點(diǎn)著色器中;
像素著色器獲取模塊106,用于獲取與所述頂點(diǎn)著色器對(duì)應(yīng)的像素著色器;
圖像渲染模塊108,用于采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
可選的,在一個(gè)實(shí)施例中,圖像渲染模塊108還用于通過(guò)所述像素著色器遍歷所述頂點(diǎn)坐標(biāo)劃定的區(qū)域中的像素點(diǎn),在遍歷到的像素點(diǎn)屬于所述紋理區(qū)域時(shí),采集目標(biāo)圖像在該像素點(diǎn)的位置的像素值,將所述像素點(diǎn)的顏色設(shè)置為該像素值。
可選的,在一個(gè)實(shí)施例中,圖像渲染模塊108還用于對(duì)所述目標(biāo)圖像進(jìn)行拉伸或縮放處理,以使所述目標(biāo)圖像覆蓋所述頂點(diǎn)坐標(biāo)確定的區(qū)域。
可選的,在一個(gè)實(shí)施例中,如圖10所示,上述裝置還包括邊緣區(qū)域處理模塊110,用于確定與所述紋理區(qū)域?qū)?yīng)的邊緣區(qū)域;對(duì)所述邊緣區(qū)域進(jìn)行原色到透明的漸變處理。
可選的,在一個(gè)實(shí)施例中,紋理區(qū)域確定模塊102還用于獲取輸入的紋理圖片,獲取所述紋理圖片的中的紋理區(qū)域,根據(jù)所述紋理區(qū)域確定頂點(diǎn)坐標(biāo)。
實(shí)施本發(fā)明實(shí)施例,將具有如下有益效果:
采用了上述圖像展示區(qū)域的形狀設(shè)置方法及裝置之后,可通過(guò)調(diào)用圖形處理接口使得cpu向gpu發(fā)出指令,指示gpu利用頂點(diǎn)著色器和相應(yīng)的像素著色器,在頂點(diǎn)坐標(biāo)限定的區(qū)域中按照預(yù)輸入的紋理區(qū)域?qū)δ繕?biāo)圖像進(jìn)行繪制,這樣就使的gpu通過(guò)圖形處理接口返回的圖像具有與紋理區(qū)域?qū)?yīng)的形狀,從而對(duì)圖像展示區(qū)域的形狀進(jìn)行了設(shè)置。上述過(guò)程中,圖像處理過(guò)程由gpu分擔(dān),而不需要cpu生成多個(gè)三角形來(lái)逼近圓弧的曲線,因此降低了cpu的使用率,節(jié)省了計(jì)算資源。
另外,上述圖像展示區(qū)域的形狀設(shè)置方法也可適用于定義成任意形狀的紋理區(qū)域,由于設(shè)置形狀的方式并不是采用的多邊形的直邊近似的方式,因此抗鋸齒的效果更加明顯。
在上述實(shí)施例中,可以全部或部分的通過(guò)軟件、硬件、固件或者其任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件程序?qū)崿F(xiàn)時(shí),可以全部或部分地以計(jì)算機(jī)程序產(chǎn)品的形式實(shí)現(xiàn)。所述計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè)計(jì)算機(jī)指令。在計(jì)算機(jī)上加載和執(zhí)行所述計(jì)算機(jī)程序指令時(shí),全部或部分地產(chǎn)生按照本發(fā)明實(shí)施例所述的流程或功能。所述計(jì)算機(jī)可以是通用計(jì)算機(jī)、專用計(jì)算機(jī)、計(jì)算機(jī)網(wǎng)絡(luò)、或者其他可編程裝置。所述計(jì)算機(jī)指令可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,或者從一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)向另一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)傳輸,例如,所述計(jì)算機(jī)指令可以從一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或者數(shù)據(jù)中心通過(guò)有線(例如同軸電纜、光纖、數(shù)字用戶線(dsl))或無(wú)線(例如紅外、無(wú)線、微波等)方式向另一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或者數(shù)據(jù)中心進(jìn)行傳輸。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)能夠存取的任何可用介質(zhì)或者是包含一個(gè)或多個(gè)可用介質(zhì)集成的服務(wù)器、數(shù)據(jù)中心等數(shù)據(jù)存儲(chǔ)設(shè)備。所述可用介質(zhì)可以是磁性介質(zhì),(例如,軟盤、硬盤、磁帶)、光介質(zhì)(例如,dvd)、或半導(dǎo)體介質(zhì)(例如固態(tài)硬盤solidstatedisk(ssd))等。
在一個(gè)實(shí)施例中,如圖11所示,圖11展示了一種運(yùn)行上述圖像展示區(qū)域的形狀設(shè)置方法的基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)的終端。該計(jì)算機(jī)系統(tǒng)可以是智能手機(jī)、平板電腦、掌上電腦、筆記本電腦或個(gè)人電腦等終端設(shè)備。具體的,可包括通過(guò)系統(tǒng)總線連接的外部輸入接口1001、處理器1002、存儲(chǔ)器1003和輸出接口1004。其中,外部輸入接口1001可選的可至少包括網(wǎng)絡(luò)接口10012。存儲(chǔ)器1003可包括外存儲(chǔ)器10032(例如硬盤、光盤或軟盤等)和內(nèi)存儲(chǔ)器10034。輸出接口1004可至少包括顯示屏10042等設(shè)備。
在本實(shí)施例中,本方法的運(yùn)行基于計(jì)算機(jī)程序,該計(jì)算機(jī)程序的程序文件存儲(chǔ)于前述基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)的外存儲(chǔ)器10032中,在運(yùn)行時(shí)被加載到內(nèi)存儲(chǔ)器10034中,然后被編譯為機(jī)器碼之后傳遞至處理器1002中執(zhí)行,從而使得基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)中形成邏輯上的紋理區(qū)域確定模塊102、頂點(diǎn)著色器處理模塊104、像素著色器獲取模塊106、圖像渲染模塊108邊緣區(qū)域處理模塊110。且在上述圖像展示區(qū)域的形狀設(shè)置方法執(zhí)行過(guò)程中,輸入的參數(shù)均通過(guò)外部輸入接口1001接收,并傳遞至存儲(chǔ)器1003中緩存,然后輸入到處理器1002中進(jìn)行處理,處理的結(jié)果數(shù)據(jù)或緩存于存儲(chǔ)器1003中進(jìn)行后續(xù)地處理,或被傳遞至輸出接口1004進(jìn)行輸出。
具體的,上述處理器1002還用戶執(zhí)行如下操作:
獲取圖像待展示區(qū)域的紋理區(qū)域和頂點(diǎn)坐標(biāo);
調(diào)用圖形程序接口,將所述頂點(diǎn)坐標(biāo)輸入至圖形處理器gpu的頂點(diǎn)著色器中;
獲取與所述頂點(diǎn)著色器對(duì)應(yīng)的像素著色器;
采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
可選的,處理器1002還用于通過(guò)所述像素著色器遍歷所述頂點(diǎn)坐標(biāo)劃定的區(qū)域中的像素點(diǎn),在遍歷到的像素點(diǎn)屬于所述紋理區(qū)域時(shí),采集目標(biāo)圖像在該像素點(diǎn)的位置的像素值,將所述像素點(diǎn)的顏色設(shè)置為該像素值。
可選的,處理器1002還用于對(duì)所述目標(biāo)圖像進(jìn)行拉伸或縮放處理,以使所述目標(biāo)圖像覆蓋所述頂點(diǎn)坐標(biāo)確定的區(qū)域。
可選的,處理器1002還用于確定與所述紋理區(qū)域?qū)?yīng)的邊緣區(qū)域;
對(duì)所述邊緣區(qū)域進(jìn)行原色到透明的漸變處理。
可選的,處理器1002還用于獲取輸入的紋理圖片,獲取所述紋理圖片的中的紋理區(qū)域,根據(jù)所述紋理區(qū)域確定頂點(diǎn)坐標(biāo)。
可選的,處理器1002還用于依次提取目標(biāo)視頻中的視頻幀,將提取的視頻幀作為目標(biāo)圖像,對(duì)于一目標(biāo)圖像,執(zhí)行所述:采樣目標(biāo)圖像中位置屬于所述紋理區(qū)域的像素點(diǎn)的像素值,通過(guò)所述像素著色器將所述像素值渲染到所述紋理區(qū)域中相應(yīng)的位置。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。