專利名稱:顯示圖片的方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,特別涉及一種顯示圖片的方法及裝置。
背景技術:
手機終端,尤其是低端的Java手機終端中應用程序可使用的內存非常有限,而圖片是消耗內存的主要因素。因此,在顯示圖片過程中,如何減少圖片在顯示過程中所占用的內存,就顯得非常重要?,F(xiàn)有技術在顯示圖片時,首先通過創(chuàng)建圖片對象獲取圖片標簽排版所需的寬高信息,并在獲取完寬高信息后釋放該圖片對象,并根據獲取到的寬高信息對標簽進行網頁排版,然后獲取圖片對象,在標簽所在的排版位置繪制圖片對象,完成對圖片的顯示。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺點:在獲取圖片的寬高信息時,現(xiàn)有技術使用創(chuàng)建圖片對象的方式會占用大量內存,雖然獲取完寬高信息后釋放了圖片對象,但釋放后的內存并不會立刻被虛擬機回收,導致內存峰值較大,造成內存不足,從而影響顯示圖片的性能。
發(fā)明內容
為了在減少圖片占用內存的同時,提升顯示圖片的性能,本發(fā)明實施例提供了一種顯示圖片的方法及裝置。所述技術方案如下:—方面,提供了一種顯示圖片的方法,所述方法包括:解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取所述圖片的寬高信息;根據所述圖片的寬高信息對所述圖片的標簽進行網頁排版;獲取所述圖片的圖片對象,并在所述標簽的排版位置繪制所述圖片對象。其中,如果所述圖片為首次繪制,則所述獲取所述圖片的圖片對象之前,還包括:根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象。具體地,所述根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象之后,還包括:存儲創(chuàng)建的所述圖片對象。進一步地,所述在所述標簽的排版位置繪制所述圖片對象之前,還包括:判斷所述標簽的排版位置是否在顯示區(qū)域;如果是,則執(zhí)行在所述標簽的排版位置繪制所述圖片對象的步驟。優(yōu)選地,在所述標簽的排版位置繪制所述圖片對象之后,還包括:判斷所述標簽的排版位置是否在顯示區(qū)域;如果否,則刪除存儲的所述圖片的圖片對象。另一方面,還提供了一種顯示圖片的裝置,所述裝置包括:第一獲取模塊,用于解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取所述圖片的寬高信息;排版模塊,用于根據所述圖片的寬高信息對所述圖片的標簽進行網頁排版;
第二獲取模塊,用于獲取所述圖片的圖片對象;繪制模塊,用于在所述標簽的排版位置繪制所述圖片對象。所述裝置還包括:創(chuàng)建模塊,具體用于如果所述圖片為首次繪制,則根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象。所述裝置還包括:存儲模塊,用于存儲所述創(chuàng)建模塊創(chuàng)建的圖片對象。所述裝置還包括:第一判斷模塊,用于在所述繪制模塊繪制所述圖片對象之前,判斷所述標簽的排版位置是否在顯示區(qū)域;所述繪制模塊,用于在所述第一判斷模塊判斷所述標簽的排版位置在顯示區(qū)域之后,在所述標簽的排版位置繪制所述圖片對象。所述裝置還包括:第二判斷模塊,用于在所述繪制模塊繪制所述圖片對象之后,判斷所述標簽的排版位置是否在顯示區(qū)域;清除模塊,用于在所述第二判斷模塊判斷所述標簽的排版位置不在顯示區(qū)域之后,刪除存儲的所述圖片的圖片對象。本發(fā)明實施例提供的技術方案的有益效果是:通過解析圖片原始數(shù)據的頭信息來獲取圖片寬高信息,避免了通過創(chuàng)建圖片對象來獲取圖片寬高信息時占用過多內存的問題,進而提升顯示圖片的性能;另外,在標簽排版位置不在顯示區(qū)域時,通過刪除已經創(chuàng)建的圖片對象,從而減少圖片對象占用的內存,進一步提升顯示圖片的性能。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發(fā)明實施例一提供的一種顯示圖片的方法流程圖;圖2是本發(fā)明實施例二提供的一種顯示圖片的方法流程圖;圖3是本發(fā)明實施例三提供的一種顯示圖片的裝置結構示意圖;圖4是本發(fā)明實施例三提供的另一種顯示圖片的裝置結構示意圖;圖5是本發(fā)明實施例三提供的又一種顯示圖片的裝置結構示意圖;圖6是本發(fā)明實施例三提供的再一種顯示圖片的裝置結構示意圖;圖7是本發(fā)明實施例三提供的再一種顯示圖片的裝置結構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例一參見圖1,本實施例提供了一種顯示圖片的方法,該方法流程具體如下:101:解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取圖片的寬高信息。102:根據圖片的寬高信息對圖片的標簽進行網頁排版。103:獲取圖片的圖片對象,并在標簽的排版位置繪制圖片對象。其中,如果圖片為首次繪制,則獲取圖片的圖片對象之前,還包括:根據圖片原始數(shù)據創(chuàng)建圖片的圖片對象。具體地,根據圖片原始數(shù)據創(chuàng)建圖片的圖片對象之后,還包括:存儲創(chuàng)建的圖片對象。進一步地,在標簽的排版位置繪制圖片對象之前,還包括:判斷標簽的排版位置是否在顯示區(qū)域;如果是,則執(zhí)行在標簽的排版位置繪制圖片對象的步驟。優(yōu)選地,在標簽的排版位置繪制圖片對象之后,還包括:判斷標簽的排版位置是否在顯示區(qū)域; 如果否,則刪除存儲的圖片的圖片對象。本實施例提供的方法,通過解析圖片原始數(shù)據的頭信息來獲取圖片寬高信息,避免了通過創(chuàng)建圖片對象來獲取圖片寬高信息時占用過多內存的問題,進而提升顯示圖片的性能;另外,在標簽排版位置不在顯示區(qū)域時,通過刪除已經創(chuàng)建的圖片對象,從而減少圖片對象占用的內存,進一步提升顯示圖片的性能。為了更加詳細的闡述本實施例提供的方法,下面,結合上述內容,通過下面的實施例二的內容對本實施例提供的方法進行具體描述,詳見如下實施例:實施例二參見圖2,本實施例提供了一種顯示圖片的方法,為了便于說明,以顯示圖片的裝置為瀏覽器為例,對本實施例提供的方法進行舉例說明。該方法流程具體如下:201:判斷網頁中是否設置了圖片的寬高信息,如果是,執(zhí)行203 ;否則執(zhí)行202。瀏覽器輸入網址時,先獲取網頁的框架,對網頁中的元素(圖片和文字等)進行排版,然后再對具體的元素進行繪制。其中,圖片的數(shù)據量比較大,為了能快速完成網頁排版,我們通常用圖片的標簽替代圖片進行排版。而在對標簽進行排版時,需要為圖片預留足夠的空間來繪制圖片。因此,瀏覽器在網頁排版的過程中,需要判斷網頁中是否設置了圖片的寬高信息,如果是,執(zhí)行步驟203 ;如果否,則執(zhí)行步驟202。具體地,瀏覽器判斷網頁中是否設置了圖片的寬高的方法有很多種,例如,可以在網頁中添加標志位,標志位用于標識網頁中是否設置了圖片的寬高信息,例如,將標志位設置為空,用于標識網頁中沒有設置寬高信息,將標志位設置為非空,用于標識網頁中設置了寬高信息,或者將標志位的值設置為0,用于標識網頁中沒有設置寬高信息,將標志位的值設置為1,用于標識網頁中設置了寬高信息,或是采用其他方式來通過標志位標識網頁中是否設置了圖片的寬高信息,本實施例不對標志位標識網頁中是否設置了圖片的寬高信息的方式進行限定。202:解析圖片原始數(shù)據的頭信息,獲取寬高信息,并根據寬高信息對圖片的標簽進行網頁排版,執(zhí)行步驟204。
步驟201判斷出網頁中沒有設置圖片的寬高信息,瀏覽器需要向服務器發(fā)起圖片原始數(shù)據請求,并接收服務器返回的圖片原始數(shù)據。其中,圖片原始數(shù)據包括頭信息和數(shù)據信息。頭信息用來存放圖片寬高等基本信息,數(shù)據信息則用來存放該圖片的位圖數(shù)據壓縮之后的信息。本步驟中瀏覽器僅需獲取圖片的寬高信息以完成網頁排版,因此,瀏覽器僅需解析圖片原始數(shù)據的頭信息,獲取寬高信息。瀏覽器獲取到該圖片的寬高信息后,即可將圖片的標簽按照圖片的寬高實際大小完成對網頁的排版。203:獲取寬高信息,根據寬高信息對標簽進行網頁排版。由于步驟201判斷出網頁中設置了圖片的寬高信息,瀏覽器直接從網頁中獲取該圖片的寬高信息即可。瀏覽器獲取到該圖片的寬高信息后,即可將圖片的標簽按照圖片的寬高實際大小完成對網頁的排版,具體排版方式可通過現(xiàn)有的排版方式實現(xiàn),此處不再贅述。204:判斷標簽的排版位置是否在顯示區(qū)域內,如果是,執(zhí)行205 ;否則執(zhí)行208。具體地,判斷標簽的排版位置是否在顯示區(qū)域內的方法有很多種,例如,瀏覽器在對網頁排版的過程中,還生成一個位置文件,用來存放各個標簽的中心點的二維位置坐標。瀏覽器通過比較標簽的位置坐標與顯示區(qū)域的坐標判斷標簽是否在顯示區(qū)域內。以顯示區(qū)域的左上角、右上角、左下角和右下角的坐標分別為(Xci, Yci)、(Xci, Yn)、(X1^Yci)和(Xn,Yn),圖片的中心點坐標為(X,Y)為例,若比較結果為X0 < X土width/2 <父 或Y0 < Y±height/2< Yn時,則判斷標簽在顯示區(qū)域內,瀏覽器根據標簽向服務器請求圖片數(shù)據,即執(zhí)行步驟205 ;若比較結果為XiwidthACXc^X土¥1(1讓/2>父11或者¥±1^^8吐/2<¥。、¥±1^^81^/2> Yn時,則判斷標簽在顯示區(qū)域外,即執(zhí)行步驟208。其中,width和height分別為標簽的寬度和高度。本實施例不對瀏覽器判斷標簽的排版位置是否在顯示區(qū)域的方式進行限定。205:判斷圖片是否創(chuàng)建了圖片對象,如果是,執(zhí)行207 ;否則執(zhí)行206。為了避免在切換頁面焦點和頁面滾動顯示過程中多次創(chuàng)建圖片對象,瀏覽器對在顯示區(qū)域內的圖片創(chuàng)建圖片對象,并存儲在緩存中,保證了重復調用圖片時頁面的繪制效率。其中,圖片對象存儲了圖片解壓后的原始位圖數(shù)據以及圖片的一些基本信息。瀏覽器在判斷出標簽的排版位置在顯示區(qū)域內之后,還要對圖片是否創(chuàng)建了圖片對象進行判斷,如果圖片已經創(chuàng)建了圖片對象,并存儲在緩存中,則瀏覽器直接繪制緩存中的圖片對象即可,即執(zhí)行步驟207 ;如果圖片是首次繪制,沒有創(chuàng)建圖片對象,則瀏覽器執(zhí)行步驟206。具體地,瀏覽器判斷圖片是否創(chuàng)建了圖片對象,可以通過判斷緩存中是否有圖片對象的方式來實現(xiàn)。而瀏覽器判斷緩存中是否有圖片對象的方法有很多種,例如,圖片對象的頭信息還包括圖片的標識信息。瀏覽器在判斷圖片是否有圖片對象時,將該圖片頭信息中的標識信息與緩存中所有圖片對象的頭信息中的標識信息進行比較,若相等,則該圖片在緩存中存有圖片對象;否則該圖片在緩 存中無圖片對象。本實施例不對瀏覽器判斷緩存中是否有該圖片的圖片對象的方式進行限定。206:創(chuàng)建并存儲圖片的圖片對象,并獲取該創(chuàng)建的圖片對象,在標簽的排版位置繪制該圖片對象,流程結束。瀏覽器判斷出圖片的標簽在顯示區(qū)域內,且緩存中沒有該圖片的圖片對象,則瀏覽器根據標簽向服務器發(fā)起圖片數(shù)據請求,根據服務器返回的圖片原始數(shù)據創(chuàng)建圖片對象,并存儲該圖片對象,以避免在切換頁面焦點和頁面滾動顯示過程中多次創(chuàng)建圖片對象。最后,瀏覽器獲取該創(chuàng)建的圖片對象,在標簽的排版位置繪制該圖片對象。207:獲取存儲的圖片對象,在標簽的排版位置繪制該圖片對象,流程結束。瀏覽器判斷出圖片的標簽在顯示區(qū)域內,且緩存中有該圖片的圖片對象,則瀏覽器直接從緩存中獲取該圖片對象,并在標簽的排版位置繪制該圖片對象,而無需再執(zhí)行創(chuàng)建圖片對象的步驟,從而提高繪制效率。208:判斷圖片是否創(chuàng)建了圖片對象,如果是,執(zhí)行209 ;否則流程結束。為了最大程度地減少圖片所占內存,瀏覽器在判斷出標簽的排版位置在顯示區(qū)域外之后,還要判斷該圖片是否創(chuàng)建了圖片對象,如果是執(zhí)行步驟209 ;如果否,流程結束。具體地,瀏覽器判斷圖片是否創(chuàng)建了圖片對象,可以通過判斷緩存中是否有圖片對象的方式來實現(xiàn)。而瀏覽器判斷緩存中是否有圖片對象的方法有很多種,例如,圖片對象的頭信息還包括圖 片的標識信息。瀏覽器在判斷圖片是否有圖片對象時,將該圖片頭信息中的標識信息與緩存中所有圖片對象的頭信息中的標識信息進行比較,若相等,則該圖片在緩存中存有圖片對象;否則該圖片在緩存中無圖片對象。本實施例不對瀏覽器判斷緩存中是否有該圖片的圖片對象的方式進行限定。209:清除存儲的圖片對象。對于標簽的排版位置在顯示區(qū)域外的圖片,瀏覽器釋放該圖片的圖片對象,節(jié)省不必要的內存占用,提高瀏覽器運行速度。本實施例提供的方法,通過解析圖片原始數(shù)據的頭信息來獲取圖片寬高信息,避免了通過創(chuàng)建圖片對象來獲取圖片寬高信息時占用過多內存的問題,進而提升顯示圖片的性能;另外,在標簽排版位置不在顯示區(qū)域時,通過刪除已經創(chuàng)建的圖片對象,從而減少圖片對象占用的內存,進一步提升顯示圖片的性能。實施例三參見圖3,本實施例提供了一種顯示圖片的裝置,該裝置用于執(zhí)行上述實施例一和實施例二所提供的圖片顯示的方法,該裝置包括:第一獲取模塊301,用于解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取圖片的寬聞 目息;排版模塊302,用于根據圖片的寬高信息對圖片的標簽進行網頁排版;第二獲取模塊303,用于獲取圖片的圖片對象;繪制模塊304,用于在標簽的排版位置繪制圖片對象。其中,第一獲取模塊301獲取圖片的寬高信息的具體方式可參見上述實施例二中步驟202的相關描述,此處暫不贅述。針對首次繪制圖片的情況,參見圖4,該裝置還包括:創(chuàng)建模塊305,具體用于如果圖片為首次繪制,則根據圖片原始數(shù)據創(chuàng)建圖片的圖片對象。在首次繪制圖片之后,針對已經為該圖片創(chuàng)建了圖片對象的情況,為了避免重繪該圖片時,重復執(zhí)行創(chuàng)建圖片對象的過程,參見圖5,該裝置還包括:存儲模塊306,用于存儲創(chuàng)建模塊305創(chuàng)建的圖片對象。如上,通過存儲模塊306存儲創(chuàng)建模塊305創(chuàng)建的圖片對象,從而再下次繪制該圖片對象所對應的圖片時,可由第二獲取模塊303直接獲取存儲模塊306存儲的圖片對象,而無需再次進行創(chuàng)建圖片對象的過程,從而可以提高繪制效率。參見圖6,裝置還包括:第一判斷模塊307,用于在繪制模塊304繪制圖片對象之前,判斷標簽的排版位置是否在顯示區(qū)域;繪制模塊304,用于在第一判斷模塊307判斷標簽的排版位置在顯示區(qū)域之后,在標簽的排版位置繪制圖片對象。參見圖7,裝置還包括:第二判斷模塊308,用于在繪制模塊304繪制圖片對象之后,判斷標簽的排版位置是否在顯示區(qū)域;清除模塊309,用于在第二判斷模塊308判斷標簽的排版位置不在顯示區(qū)域之后,刪除存儲的圖片的圖片對象。本實施例提供的裝置,通過解析圖片原始數(shù)據的頭信息來獲取圖片寬高信息,避免了通過創(chuàng)建圖片對象來獲取圖片寬高信息時占用過多內存的問題,進而提升顯示圖片的性能;另外,在標簽排版位置不在顯示區(qū)域時,通過刪除已經創(chuàng)建的圖片對象,從而減少圖片對象占用的內存,進一步提升顯示圖片的性能。需要說明的是:上述實施例提供的顯示圖片的裝置在顯示圖片時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的顯示圖片的裝置與顯示圖片的方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。本發(fā)明實施例中的全部或部分步驟,可以利用軟件實現(xiàn),相應的軟件程序可以存儲在可讀取的存儲介質中,如光盤或硬盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種顯示圖片的方法,其特征在于,所述方法包括: 解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取所述圖片的寬高信息; 根據所述圖片的寬高信息對所述圖片的標簽進行網頁排版; 獲取所述圖片的圖片對象,并在所述標簽的排版位置繪制所述圖片對象。
2.根據權利要求1所述的方法,其特征在于,如果所述圖片為首次繪制,則所述獲取所述圖片的圖片對象之前,還包括: 根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象。
3.根據權利要求2所述的方法,其特征在于,所述根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象之后,還包括: 存儲創(chuàng)建的所述圖片對象。
4.根據權利要求1至3中任一權利要求所述的方法,其特征在于,所述在所述標簽的排版位置繪制所述圖片對象之前,還包括: 判斷所述標簽的排版位置是否在顯示區(qū)域; 如果是,則執(zhí)行在所述標簽的排版位置繪制所述圖片對象的步驟。
5.根據權利要求3所述的方法,其特征在于,所述在所述標簽的排版位置繪制所述圖片對象之后,還包括: 判斷所述標簽的排版位置是否在顯示區(qū)域; 如果否,則刪除存儲的所述圖片的圖片對象。
6.一種顯示圖片的裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取所述圖片的寬高信息; 排版模塊,用于根據所述圖片的寬高信息對所述圖片的標簽進行網頁排版; 第二獲取模塊,用于獲取所述圖片的圖片對象; 繪制模塊,用于在所述標簽的排版位置繪制所述圖片對象。
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 創(chuàng)建模塊,具體用于如果所述圖片為首次繪制,則根據所述圖片原始數(shù)據創(chuàng)建所述圖片的圖片對象。
8.根據權利要求7所述的裝置,其特征在于,所述裝置還包括: 存儲模塊,用于存儲所述創(chuàng)建模塊創(chuàng)建的圖片對象。
9.根據權利要求6至8中任一權利要求所述的裝置,其特征在于,所述裝置還包括: 第一判斷模塊,用于在所述繪制模塊繪制所述圖片對象之前,判斷所述標簽的排版位置是否在顯示區(qū)域; 所述繪制模塊,用于在所述第一判斷模塊判斷所述標簽的排版位置在顯示區(qū)域之后,在所述標簽的排版位置繪制所述圖片對象。
10.根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 第二判斷模塊,用于在所述繪制模塊繪制所述圖片對象之后,判斷所述標簽的排版位置是否在顯示區(qū)域; 清除模塊,用于在所述第二判斷模塊判斷所述標簽的排版位置不在顯示區(qū)域之后,刪除存儲的所述圖片的圖片對象。
全文摘要
本發(fā)明公開了一種顯示圖片的方法及裝置,屬于計算機技術領域。所述方法包括解析圖片原始數(shù)據的頭信息,從解析得到的頭信息中獲取所述圖片的寬高信息;根據所述圖片的寬高信息對所述圖片的標簽進行網頁排版;獲取所述圖片的圖片對象,并在所述標簽的排版位置繪制所述圖片對象。所述裝置包括第一獲取模塊、排版模塊、第二獲取模塊和繪制模塊。本發(fā)明通過解析圖片原始數(shù)據的頭信息來獲取圖片寬高信息,避免了通過創(chuàng)建圖片對象來獲取圖片寬高信息時占用過多內存的問題,進而提升顯示圖片的性能;另外,在標簽排版位置不在顯示區(qū)域時,通過刪除已經創(chuàng)建的圖片對象,從而減少圖片對象占用的內存,進一步提升顯示圖片的性能。
文檔編號G06T11/60GK103208128SQ20121001282
公開日2013年7月17日 申請日期2012年1月16日 優(yōu)先權日2012年1月16日
發(fā)明者劉彥良, 李雪峰 申請人:騰訊科技(深圳)有限公司