欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種滾動顯示圖片的方法及裝置的制作方法

文檔序號:2612376閱讀:190來源:國知局
專利名稱:一種滾動顯示圖片的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖像顯示領(lǐng)域,特別是涉及一種滾動顯示圖片的方法及裝置。
背景技術(shù)
目前,靜止的瀏覽方式已經(jīng)不能滿足人們欣賞圖片的體驗需求,越來越多的軟件提供滾動顯示圖片的方式。滾動顯示圖片是指將一組圖片按照一定的順序排列后,沿水平或垂直方向滾動顯示。
其實現(xiàn)方式為將一組排列好的圖片沿排列方向按照一定頻率遞增或遞減其在窗口中的顯示坐標(biāo)值即可得到滾動效果。例如若干張水平排列的圖片,每20毫秒將其在窗口中的顯示坐標(biāo)左移一列像素(即繪制窗口畫面的頻率為50幀/秒),可以得到自右向左的滾動顯示效果。一幅圖片在窗口中的顯示尺寸如果不等于實際尺寸,在顯示時就需要對圖片進(jìn)行放大或縮小操作。當(dāng)窗口以每秒30幀的頻率滾動10張顯示尺寸為100*75像素大小的圖片時,每一秒鐘就需要縮放30*10=300張圖片,計算量非常大。這些計算全部由CPU完成,則會大量消耗CPU的計算能力。
為解決滾動顯示圖片會大量消耗CPU的計算能力的問題,現(xiàn)有技術(shù)預(yù)先將原始圖片縮放為符合顯示的大小,將其作為中間圖片存儲,滾動圖片時將預(yù)處理后的圖片利用圖形設(shè)備接口GDI顯示于窗口中。
顯然,現(xiàn)有技術(shù)對所有滾動顯示的圖片進(jìn)行了預(yù)處理,生成了中間圖片,并且由于滾動顯示的是預(yù)先生成的中間圖片,所以用戶無法在瀏覽過程中調(diào)整滾動顯示的圖片的大小。

發(fā)明內(nèi)容
本發(fā)明提供一種滾動顯示圖片的方法及裝置,用以解決現(xiàn)有技術(shù)生成了中間圖片,并且用戶無法在瀏覽過程中調(diào)整滾動顯示的圖片大小的問題。
本發(fā)明方法包括下列步驟A、為圖片滾動區(qū)域創(chuàng)建表面;B、按照滾動方向及滾動速率,將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖,并映射到所述表面,以完成圖片的滾動顯示。
進(jìn)一步,所述步驟B包括下列步驟B1、獲取當(dāng)前幀應(yīng)顯示的一張圖片,創(chuàng)建紋理貼圖,并按照該圖片的相關(guān)信息,映射到所述表面的對應(yīng)區(qū)域;B2、判斷所述表面是否已被紋理貼圖全部覆蓋,若是則轉(zhuǎn)入B3;否則返回B1;B3、顯示當(dāng)前幀圖像。
更進(jìn)一步,所述步驟B1中,比較所述表面橫向長度和縱向長度,若橫向長度大于縱向長度,則以所述表面縱向長度與紋理貼圖縱向長度的比例縮放該紋理貼圖,以完成映射;若橫向長度小于縱向長度,則以所述表面橫向長度與紋理貼圖橫向長度的比例縮放該紋理貼圖,以完成映射。
所述步驟B1中,當(dāng)前幀應(yīng)顯示的各個圖片生成的紋理貼圖映射到所述表面的對應(yīng)區(qū)域,以前一幀中該紋理貼圖的映射區(qū)域,以及滾動方向和滾動速率而定。
所述步驟B2中,若所述表面已被紋理貼圖全部覆蓋,則以與所述表面橫向長度和縱向長度相同的截取窗口,截取覆蓋在所述表面上的紋理貼圖。
進(jìn)一步,所述步驟B之前還包括步驟以鏈表形式存儲欲滾動顯示的圖片的相關(guān)信息;確定滾動方向和滾動速率。所述圖片的相關(guān)信息包括各個圖片的前后順序,各個圖片的實際橫向長度和縱向長度,以及像素區(qū)地址。
上述創(chuàng)建表面、生成紋理貼圖,以及映射操作均通過顯卡以DirectX技術(shù)完成。
本發(fā)明的滾動顯示圖片的裝置,包括顯示單元;表面創(chuàng)建單元,用于根據(jù)圖片滾動區(qū)域?qū)?yīng)創(chuàng)建表面;
紋理貼圖生成單元,用于將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖;映射單元,用于將所述紋理貼圖生成單元生成的紋理貼圖映射到所述表面創(chuàng)建單元創(chuàng)建的表面上,以備所述顯示單元完成圖片的滾動顯示。
進(jìn)一步,所述裝置還包括鏈表存儲單元,用于以鏈表形式存儲欲滾動顯示的圖片的相關(guān)信息,以使所述紋理貼圖生成單元生成相應(yīng)的紋理貼圖;定時器,用于設(shè)定滾動速率;滾動方向設(shè)定單元,用于設(shè)定滾動方向。
本發(fā)明有益效果如下本發(fā)明不對欲滾動顯示的圖片生成中間圖片,并利用GDI顯示于窗口中,而是通過顯卡以DirectX技術(shù)為圖片滾動區(qū)域創(chuàng)建表面;之后,按照滾動方向及滾動速率,將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖,并映射到所述表面,以完成圖片的滾動顯示。
為了支撐本發(fā)明方法,本發(fā)明還提供了一種滾動顯示圖片的裝置。
本發(fā)明無須生成中間圖片,進(jìn)而用戶可以在瀏覽過程中隨時調(diào)整顯示的圖片的大小,使用戶獲得更好的體驗。


圖1為本發(fā)明裝置的結(jié)構(gòu)示意圖;圖2為本發(fā)明方法步驟流程圖;圖3為生成一幀圖像的步驟流程圖。
具體實施例方式
為了繼承現(xiàn)有技術(shù)節(jié)省了CPU資源消耗的優(yōu)點,而且為了無須生成中間圖片,進(jìn)而實現(xiàn)在瀏覽過程中可隨時調(diào)整顯示的圖片的大小,本發(fā)明提供了一種滾動顯示圖片的裝置,參見圖1所示,其包括與映射單元1相連的表面創(chuàng)建單元2、紋理貼圖生成單元3和顯示單元4;所述裝置進(jìn)一步包括與所述紋理貼圖生成單元3相連的鏈表存儲單元5,以及與所述映射單元1相連的定時器6和滾動方向設(shè)定單元7。
所述表面創(chuàng)建單元2,采用DirectX技術(shù)(不限于DirectX技術(shù),還可采用其它3D引擎,如OpenGL技術(shù)等),根據(jù)圖片滾動區(qū)域?qū)?yīng)創(chuàng)建與之形狀和大小相同的表面(Surface)。
所述鏈表存儲單元5,用于以鏈表形式存儲欲滾動顯示的圖片的相關(guān)信息,所述相關(guān)信息包括各個圖片的前后順序,各個圖片的實際橫向長度和縱向長度,以及像素區(qū)地址等。
所述紋理貼圖生成單元3,其根據(jù)鏈表存儲單元5存儲的圖片滾動順序,確定當(dāng)前幀應(yīng)顯示的圖片,并利用DirectX技術(shù),根據(jù)圖片的橫向長度、縱向長度及像素區(qū)地址,將當(dāng)前幀應(yīng)顯示的圖片依次生成紋理貼圖(Texture),輸出到所述映射單元1。
所述定時器6,用于設(shè)定滾動速率。
所述滾動方向設(shè)定單元7,用于設(shè)定滾動方向。
所述映射單元1,比較所述表面創(chuàng)建單元2創(chuàng)建的表面的橫向長度和縱向長度,若橫向長度大于縱向長度,則以所述表面的縱向長度與紋理貼圖生成單元3輸出的紋理貼圖的縱向長度的比例縮放該紋理貼圖;若橫向長度小于縱向長度,則以所述表面的橫向長度與紋理貼圖生成單元3輸出的紋理貼圖的橫向長度的比例縮放該紋理貼圖。之后,根據(jù)前一幀中該紋理貼圖的映射區(qū)域,以及滾動方向設(shè)定單元7確定的滾動方向和定時器6確定的滾動速率,確定當(dāng)前幀中該紋理貼圖映射到所述表面的對應(yīng)區(qū)域,并據(jù)此將該紋理貼圖映射到所述表面上。
所述顯示單元4,用于顯示映射單元1映射完成的表面紋理貼圖,即顯示當(dāng)前幀圖像。
應(yīng)用上述裝置,本發(fā)明提供了一種滾動顯示圖片的方法,為了描述方便,假定圖片滾動區(qū)域為800*100像素;滾動顯示3張圖片均為1200*400像素;滾動方向為從右向左;滾動速率為20ms/幀(即每20ms左移一列像素)。
參見圖2所示,包括下列主要步驟(步驟S1和S2之間的順序不限)S1、為圖片滾動區(qū)域創(chuàng)建表面。
本發(fā)明采用DirectX技術(shù)(不限于DirectX技術(shù),還可采用其它3D引擎,如OpenGL技術(shù)等)為圖片滾動區(qū)域(即窗口的繪制區(qū)域)創(chuàng)建一個與之形狀和大小相同的表面(Surface)。即創(chuàng)建一個800*100像素的表面,并設(shè)定為圖片滾動區(qū)域的上一層。
S2、建立圖片信息鏈表,并確定滾動方向和滾動速率。
以鏈表形式(不限于鏈表,也可采用數(shù)組等形式)存儲欲滾動顯示的圖片的前后順序,本例中滾動順序為圖片1、圖片2和圖片3。并且按所述滾動順序依次存儲3張圖片的橫向長度、縱向長度和像素區(qū)地址等信息;即圖片1為1200*400像素,像素區(qū)地址為0至1199列;圖片2為1200*400像素,像素區(qū)地址為1200至2399列;圖片3為1200*400像素,像素區(qū)地址為2400至3599列。
根據(jù)上述假定,滾動速率為20ms/幀;滾動方向為從右向左。
S3、按照滾動方向及滾動速率,將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖,并映射到所述表面。參見圖3所示,本步驟包括下列子步驟301、獲取當(dāng)前幀應(yīng)顯示的一張圖片,創(chuàng)建紋理貼圖。
以當(dāng)前幀為第二幀為例,從圖片信息鏈表中獲取圖片1的信息,并通過顯卡,以DirectX技術(shù)(不限于DirectX技術(shù)),為圖片1創(chuàng)建相應(yīng)的紋理貼圖1,所述紋理貼圖1的相關(guān)信息與圖片1相同。
302、映射到所述表面的對應(yīng)區(qū)域。
比較所述表面的橫向長度和縱向長度,若橫向長度大于縱向長度,則以所述表面的縱向長度與紋理貼圖的縱向長度的比例縮放該紋理貼圖;若橫向長度小于縱向長度,則以所述表面的橫向長度與紋理貼圖的橫向長度的比例縮放該紋理貼圖。
根據(jù)上述假定所述表面的橫向長度大于縱向長度,所以在顯卡中通過DirectX技術(shù)(不限于DirectX技術(shù)),以所述表面的縱向長度(100像素)與紋理貼圖1的縱向長度(400像素)的比例縮放紋理貼圖1,即縮放后的紋理貼圖1為300*100像素;像素區(qū)地址為0至299列。
由于前一幀(第一幀)中紋理貼圖1的映射區(qū)域為0至299列像素,且滾動方向為從右向左,滾動速率為20ms/幀,所以當(dāng)前幀中紋理貼圖1的映射區(qū)域為-1至298列像素。
303、判斷所述表面是否已被全部覆蓋,若是,則轉(zhuǎn)入步驟S4;否則返回子步驟301。
根據(jù)上述假定,所述表面的的橫向長度為800像素;滾動顯示的3張圖片的橫向長度均為1200像素,進(jìn)行映射縮放后的橫向長度均為300像素,所以返回子步驟301,并循環(huán)映射到圖片3的紋理貼圖才能全部覆蓋所述表面。
當(dāng)所述表面被紋理貼圖全部覆蓋后,采用DirectX技術(shù)(不限于DirectX技術(shù)),以與所述表面的橫向長度和縱向長度相同的截取窗口,截取覆蓋在所述表面上的紋理貼圖。之后,轉(zhuǎn)入步驟S4。
S4、顯示當(dāng)前幀圖像。
S5、判斷是否繼續(xù)瀏覽,若是,則返回步驟S3;否則結(jié)束流程。
根據(jù)用戶的需求,判斷是否繼續(xù)瀏覽,若是,則返回步驟S3,以進(jìn)行下一幀圖像的生成,并在20ms后顯示下一幀圖像;否則結(jié)束流程。
若用戶修改了滾動區(qū)域的大小,即調(diào)整了實際顯示的圖片的大小,則須返回步驟S1,重新創(chuàng)建表面,以適應(yīng)調(diào)整后應(yīng)顯示的圖片大小。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種滾動顯示圖片的方法,其特征在于,包括下列步驟A、為圖片滾動區(qū)域創(chuàng)建表面;B、按照滾動方向及滾動速率,將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖,并映射到所述表面,以完成圖片的滾動顯示。
2.如權(quán)利要求1所述滾動顯示圖片的方法,其特征在于,所述步驟B進(jìn)一步包括下列步驟B1、獲取當(dāng)前幀應(yīng)顯示的一張圖片,創(chuàng)建紋理貼圖,并按照該圖片的相關(guān)信息,映射到所述表面的對應(yīng)區(qū)域;B2、判斷所述表面是否已被紋理貼圖全部覆蓋,若是則轉(zhuǎn)入B3;否則返回B1;B3、顯示當(dāng)前幀圖像。
3.如權(quán)利要求2所述滾動顯示圖片的方法,其特征在于,所述步驟B1中,比較所述表面的橫向長度和縱向長度,若橫向長度大于縱向長度,則以所述表面的縱向長度與紋理貼圖的縱向長度的比例縮放該紋理貼圖,以完成映射;若橫向長度小于縱向長度,則以所述表面的橫向長度與紋理貼圖的橫向長度的比例縮放該紋理貼圖,以完成映射。
4.如權(quán)利要求2所述滾動顯示圖片的方法,其特征在于,所述步驟B1中,當(dāng)前幀應(yīng)顯示的各個圖片生成的紋理貼圖映射到所述表面的對應(yīng)區(qū)域,以前一幀中該紋理貼圖的映射區(qū)域,以及滾動方向和滾動速率而定。
5.如權(quán)利要求2所述滾動顯示圖片的方法,其特征在于,所述步驟B2中,若所述表面已被紋理貼圖全部覆蓋,則以與所述表面橫向長度和縱向長度相同的截取窗口,截取覆蓋在所述表面上的紋理貼圖。
6.如權(quán)利要求1所述滾動顯示圖片的方法,其特征在于,所述步驟B之前還包括步驟-以鏈表形式存儲欲滾動顯示的圖片的相關(guān)信息;-確定滾動方向和滾動速率。
7.如權(quán)利要求6所述滾動顯示圖片的方法,其特征在于,所述圖片的相關(guān)信息包括各個圖片的前后順序,各個圖片的實際橫向長度和縱向長度,以及像素區(qū)地址。
8.如權(quán)利要求1至7任一項所述滾動顯示圖片的方法,其特征在于,所述創(chuàng)建表面、生成紋理貼圖,以及映射操作均通過顯卡以DirectX技術(shù)完成。
9.一種滾動顯示圖片的裝置,包括顯示單元,其特征在于,所述裝置還包括表面創(chuàng)建單元,用于根據(jù)圖片滾動區(qū)域?qū)?yīng)創(chuàng)建表面;紋理貼圖生成單元,用于將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖;映射單元,用于將所述紋理貼圖生成單元生成的紋理貼圖映射到所述表面創(chuàng)建單元創(chuàng)建的表面上,以備所述顯示單元完成圖片的滾動顯示。
10.如權(quán)利要求9所述滾動顯示圖片的裝置,其特征在于,所述裝置還包括鏈表存儲單元,用于以鏈表形式存儲欲滾動顯示的圖片的相關(guān)信息,以使所述紋理貼圖生成單元生成相應(yīng)的紋理貼圖;定時器,用于設(shè)定滾動速率;滾動方向設(shè)定單元,用于設(shè)定滾動方向。
全文摘要
本發(fā)明公開了一種滾動顯示圖片的方法及裝置。本發(fā)明所述方法包括下列步驟A.為圖片滾動區(qū)域創(chuàng)建表面;B.按照滾動方向及滾動速率,將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖,并映射到所述表面,以完成圖片的滾動顯示。本發(fā)明所述裝置,包括顯示單元,還包括表面創(chuàng)建單元,用于根據(jù)圖片滾動區(qū)域?qū)?yīng)創(chuàng)建表面;紋理貼圖生成單元,用于將當(dāng)前幀應(yīng)顯示的圖片生成紋理貼圖;映射單元,用于將所述紋理貼圖生成單元生成的紋理貼圖映射到所述表面創(chuàng)建單元創(chuàng)建的表面上,以備所述顯示單元完成圖片的滾動顯示。本發(fā)明無須生成中間圖片,用戶可以在瀏覽過程中隨時調(diào)整所顯示圖片的大小,用戶體驗較好。
文檔編號G09G5/34GK101086835SQ200610083910
公開日2007年12月12日 申請日期2006年6月6日 優(yōu)先權(quán)日2006年6月6日
發(fā)明者梁峰, 梁柱, 張寶和 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
无棣县| 金华市| 晋州市| 东乌珠穆沁旗| 望谟县| 四川省| 鄯善县| 海盐县| 廊坊市| 金阳县| 哈密市| 惠东县| 镇沅| 即墨市| 利辛县| 平阳县| 绥芬河市| 奎屯市| 民乐县| 纳雍县| 永仁县| 保靖县| 福安市| 上蔡县| 徐水县| 时尚| 梧州市| 喀喇沁旗| 比如县| 纳雍县| 班戈县| 武隆县| 彭水| 万盛区| 上林县| 漠河县| 盈江县| 卓尼县| 濮阳县| 福贡县| 兴业县|