一種png圖片逐行解壓的系統(tǒng)及方法【專利摘要】本發(fā)明公開了一種PNG圖片逐行解壓的系統(tǒng)及方法,其申請解壓縮空間的時(shí)候只申請解壓縮圖片的一行需要的內(nèi)存空間,這樣就節(jié)省了大量內(nèi)存空間,一般是原來的1%以下;另外,提前計(jì)算好縮放比例,在解壓完成一行后就根據(jù)計(jì)算好的縮放比例來確定該行數(shù)據(jù)是否使用,如果需要使用再縮放好該行,然后再解壓縮下一行數(shù)據(jù),從而解決了顯示大尺寸圖片時(shí)的內(nèi)存不足問題。【專利說明】—種PNG圖片逐行解壓的系統(tǒng)及方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及圖像壓縮【
技術(shù)領(lǐng)域:
】,特別涉及一種PNG圖片逐行解壓的系統(tǒng)及方法?!?br>背景技術(shù):
】[0002]PNG(PortableNetworkGraphicFormat可移植網(wǎng)絡(luò)圖形格式)是一種圖像文件存儲格式,其目的是試圖替代GIF和TIFF文件格式,同時(shí)增加一些GIF文件格式所不具備的特性。[0003]目前,機(jī)頂盒顯示一張PNG圖片時(shí),通常做法依次包括以下步驟:首先,讀取圖片尺寸信息,然后,根據(jù)圖片尺寸申請解壓內(nèi)存,解壓后再根據(jù)圖片原始尺寸和屏幕尺寸計(jì)算出縮放比例,最后根據(jù)縮放比例縮放到屏幕適合的大小進(jìn)行顯示。[0004]通常解壓一張圖片需要的內(nèi)存計(jì)算方法為:圖片長度X圖片寬度X3=解壓整張圖片需要的內(nèi)存。[0005]由上面的公式可以看出,目前解壓整張圖片需要的內(nèi)存大小需要滿足圖片長度X圖片寬度X3。對于一般機(jī)頂盒而言,顯示大尺寸PNG圖片時(shí),經(jīng)常會受到機(jī)頂盒內(nèi)存大小的限制,無法顯示很大尺寸的圖片:當(dāng)需要顯示的圖片原始尺寸很大的時(shí)候,通常解壓需要的內(nèi)存很大,機(jī)頂盒無法分配到足夠內(nèi)存,于是導(dǎo)致圖片顯示失敗。[0006]有鑒于此,現(xiàn)有技術(shù)有待改進(jìn)和提聞?!?br/>發(fā)明內(nèi)容】[0007]鑒于上述現(xiàn)有技術(shù)的不足之處,本發(fā)明的目的在于提供一種PNG圖片逐行解壓的系統(tǒng)及方法,以解決現(xiàn)有技術(shù)中機(jī)頂盒解決顯示大尺寸圖片時(shí)的內(nèi)存不足的問題。[0008]為了達(dá)到上述目的,本發(fā)明采取了以下技術(shù)方案:一種PNG圖片逐行解壓的方法,用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示,其中,包括:A、讀取圖片原始尺寸信息;B、向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;C、根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;D、根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;E、讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,重復(fù)步驟D直至完成圖片的全部解壓縮。[0009]所述的PNG圖片逐行解壓的方法,其中,所述步驟D中當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。[0010]所述的PNG圖片逐行解壓的方法,其中,所述步驟B中解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。[0011]一種PNG圖片逐行解壓的系統(tǒng),用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示,其中,包括:讀取單元,用于讀取圖片原始尺寸信息;申請單元,用于向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;計(jì)算單元,用于根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;顯示單元,用于根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;重復(fù)單元,用于讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,發(fā)送至顯示單元中直至完成圖片的全部解壓縮。[0012]所述的PNG圖片逐行解壓的系統(tǒng),其中,所述顯示單元中當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。[0013]所述的PNG圖片逐行解壓的系統(tǒng),其中,所述申請單元中解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。[0014]相較于現(xiàn)有技術(shù),本發(fā)明提供的PNG圖片逐行解壓的系統(tǒng)及方法,申請解壓縮空間的時(shí)候只申請解壓縮圖片的一行需要的內(nèi)存空間,這樣就節(jié)省了大量內(nèi)存空間,一般是原來的1%以下;另外,提前計(jì)算好縮放比例,在解壓完成一行后就根據(jù)計(jì)算好的縮放比例來確定該行數(shù)據(jù)是否使用,如果需要使用再縮放好該行,然后再解壓縮下一行數(shù)據(jù),從而解決了顯示大尺寸圖片時(shí)的內(nèi)存不足問題?!緦@綀D】【附圖說明】[0015]圖1為本發(fā)明提供的PNG圖片逐行解壓的方法的流程圖。[0016]圖2為本發(fā)明提供的PNG圖片逐行解壓的系統(tǒng)的結(jié)構(gòu)框圖?!揪唧w實(shí)施方式】[0017]本發(fā)明提供一種PNG圖片逐行解壓的系統(tǒng)及方法,為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0018]本發(fā)明提供的PNG圖片逐行解壓的方法,用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示。請參閱圖1,其為本發(fā)明提供的PNG圖片逐行解壓的方法的流程圖。如圖1所示,本發(fā)明的PNG圖片逐行解壓的方法包括:51、讀取圖片原始尺寸信息;52、向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;53、根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;54、根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;55、讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,重復(fù)步驟S4直至完成圖片的全部解壓縮。[0019]下面分別針對上述步驟進(jìn)行詳細(xì)描述。[0020]所述步驟SI為讀取圖片原始尺寸信息。即判斷索要解壓縮并顯示的圖片的原始尺寸信息。圖像尺寸的像素是以長度與寬度為單位的,也有的是以厘米為單位。像素與分辨率像素是數(shù)碼影像最基本的單位,每個(gè)像素就是一個(gè)小點(diǎn),而不同顏色的點(diǎn)(像素)聚集起來就變成一幅照片。[0021]所述步驟S2為向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間。與現(xiàn)有技術(shù)不同,本發(fā)明的PNG圖片逐行解壓的方法只申請解壓縮圖片的一行需要的內(nèi)存空間,這樣就節(jié)省了大量內(nèi)存空間,一般是原來的1%以下。[0022]所述步驟S3為根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中。其中,根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例為現(xiàn)有技術(shù),這里就不多做贅述。計(jì)算出圖片縮放比例后,再讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中(上述內(nèi)存空間為申請的一行需要的內(nèi)存空間)。在本實(shí)施例中,解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。[0023]所述步驟S4為根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放。本發(fā)明提前計(jì)算好縮放比例,在解壓完成一行后就根據(jù)計(jì)算好的縮放比例來確定該行數(shù)據(jù)是否使用,如果需要使用再縮放好該行,然后再解壓縮下一行數(shù)據(jù)。[0024]所述步驟S5為讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,重復(fù)步驟S4直至完成圖片的全部解壓縮。簡單來說,當(dāng)解壓縮一行數(shù)據(jù)后,按照上述步驟S4中的步驟讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放。直至完成圖片的全部解壓縮。[0025]需要注意的是,當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。[0026]本發(fā)明還相應(yīng)提供一種PNG圖片逐行解壓的系統(tǒng),用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示,如圖2所示,包括:讀取單元100,用于讀取圖片原始尺寸信息;申請單元200,用于向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;計(jì)算單元300,用于根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;顯示單元400,用于根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;重復(fù)單元500,用于讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,發(fā)送至顯示單元中直至完成圖片的全部解壓縮。[0027]優(yōu)選地,所述的PNG圖片逐行解壓的系統(tǒng)中,所述顯示單元中當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。[0028]優(yōu)選地,所述的PNG圖片逐行解壓的系統(tǒng)中,所述申請單元中解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。[0029]上述PNG圖片逐行解壓的系統(tǒng)中的各個(gè)模塊,都已經(jīng)在上述方法中進(jìn)行了介紹,這里不多做描述。[0030]綜上所述,本發(fā)明提供的PNG圖片逐行解壓的系統(tǒng)及方法,其申請解壓縮空間的時(shí)候只申請解壓縮圖片的一行需要的內(nèi)存空間,這樣就節(jié)省了大量內(nèi)存空間,一般是原來的1%以下;另外,提前計(jì)算好縮放比例,在解壓完成一行后就根據(jù)計(jì)算好的縮放比例來確定該行數(shù)據(jù)是否使用,如果需要使用再縮放好該行,然后再解壓縮下一行數(shù)據(jù),從而解決了顯示大尺寸圖片時(shí)的內(nèi)存不足問題。[0031]可以理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,而所有這些改變或替換都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍?!緳?quán)利要求】1.一種PNG圖片逐行解壓的方法,用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示,其特征在于,包括:A、讀取圖片原始尺寸信息;B、向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;C、根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;D、根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;E、讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,重復(fù)步驟D直至完成圖片的全部解壓縮。2.根據(jù)權(quán)利要求1所述的PNG圖片逐行解壓的方法,其特征在于,所述步驟D中當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的PNG圖片逐行解壓的方法,其特征在于,所述步驟B中解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。4.一種PNG圖片逐行解壓的系統(tǒng),用于機(jī)頂盒對PNG圖片進(jìn)行解壓并顯示,其特征在于,包括:讀取單元,用于讀取圖片原始尺寸信息;申請單元,用于向機(jī)頂盒申請解壓圖片的一行需要的內(nèi)存空間;計(jì)算單元,用于根據(jù)圖片原始尺寸和最終的顯示尺寸計(jì)算出圖片縮放比例,讀取圖片的一行的壓縮數(shù)據(jù)解壓到上述的內(nèi)存空間中;顯示單元,用于根據(jù)縮放比例確定該行是否需要顯示,若是則根據(jù)縮放比例進(jìn)行寬度的縮放;重復(fù)單元,用于讀取圖片的下一行的壓縮數(shù)據(jù),并放入到上述的內(nèi)存空間中后,發(fā)送至顯示單元中直至完成圖片的全部解壓縮。5.根據(jù)權(quán)利要求4所述的PNG圖片逐行解壓的系統(tǒng),其特征在于,所述顯示單元中當(dāng)確定該行不需要顯示時(shí),則丟棄改行數(shù)據(jù)。6.根據(jù)權(quán)利要求4所述的PNG圖片逐行解壓的系統(tǒng),其特征在于,所述申請單元中解壓圖片的一行需要的內(nèi)存空間大小=圖片寬度值X3。【文檔編號】G06F17/30GK103678543SQ201310639992【公開日】2014年3月26日申請日期:2013年12月4日優(yōu)先權(quán)日:2013年12月4日【發(fā)明者】于海波申請人:康佳集團(tuán)股份有限公司