亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種嵌入式系統(tǒng)中圖片資源加載的方法及裝置的制作方法

文檔序號(hào):6460213閱讀:136來源:國(guó)知局
專利名稱:一種嵌入式系統(tǒng)中圖片資源加載的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)中圖片資源加載的 方法和裝置。
背景技術(shù)
眾所周知,嵌入式系統(tǒng)中圖片資源的加載是非常重要的一環(huán),目前該系統(tǒng) 主要有兩種圖片資源加載方式。第一種圖片資源加載方式將圖片資源存儲(chǔ)于內(nèi)存中。其實(shí)現(xiàn)基本機(jī)制是將圖片資源轉(zhuǎn)換成一個(gè)全局結(jié)構(gòu),其中包含圖片的高、 寬、每個(gè)像素所占字節(jié)數(shù)、描述圖片每個(gè)像素顏色值的點(diǎn)陣數(shù)組等。在顯示圖 片時(shí)直接從結(jié)構(gòu)中取出點(diǎn)陣數(shù)組就可以輸出到屏幕了。本方法的優(yōu)點(diǎn)是訪問速 度快,接口簡(jiǎn)單。但是,由于圖片數(shù)據(jù)是直接存儲(chǔ)于全局變量中的,所以需要 占用一定的內(nèi)存空間。而圖片分辨率越高,所占用的內(nèi)存空間就越大。由于嵌 入式系統(tǒng)的內(nèi)存空間是有限的,當(dāng)系統(tǒng)中同時(shí)存在較多分辨率高的圖片時(shí),圖 片資源所占用的內(nèi)存空間就會(huì)相當(dāng)龐大,這樣就會(huì)出現(xiàn)系統(tǒng)內(nèi)存空間不足的情 況,限制了應(yīng)用的靈活性。第二種圖片資源加載方式將圖片資源存儲(chǔ)于文件系統(tǒng)中。其實(shí)現(xiàn)基本機(jī)制是將圖片資源存儲(chǔ)于文件系統(tǒng)中,并給每個(gè)圖片配一個(gè)資 源ID,當(dāng)需要使用該圖片時(shí),再將其從文件系統(tǒng)中加載到內(nèi)存中,其優(yōu)點(diǎn)是 節(jié)省內(nèi)存空間。但是,由于從文件系統(tǒng)中讀數(shù)據(jù)相比從內(nèi)存中讀數(shù)據(jù)要慢的多, 當(dāng)僅需要獲取圖片高、寬等基本圖片信息時(shí)也需從文件系統(tǒng)中加載圖片數(shù)據(jù), 因此該方法效率較低。同時(shí)還要頻繁的進(jìn)行內(nèi)存分配和釋放,會(huì)造成內(nèi)存碎片。 而為避免內(nèi)存碎片又需要分配一塊固定的空間專門進(jìn)行圖片加載和釋放。綜上可知,現(xiàn)有嵌入式系統(tǒng)中圖片資源加載技術(shù),在實(shí)際使用上顯然存在 不便與缺陷,所以有必要加以改進(jìn)。發(fā)明內(nèi)容針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種嵌入式系統(tǒng)中圖片資源加載 的方法和裝置,其實(shí)現(xiàn)了圖片資源的靈活加載,最大地優(yōu)化了圖片資源的訪問 速度和內(nèi)存開銷。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種嵌入式系統(tǒng)中圖片資源加載的方法, 所述方法包括A、 根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資源分為小圖片和大圖片;B、 在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中;c、在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。根據(jù)本發(fā)明的方法,所述歩驟B中進(jìn)一步包括Bl、在存儲(chǔ)一圖片資源時(shí),先判斷該圖片資源的類別,若是小圖片則執(zhí) 行步驟B2,若是大圖片則執(zhí)行歩驟B3;B2、將小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第一位圖結(jié)構(gòu)和第一點(diǎn)陣數(shù)組,并將該 第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所述第一位圖結(jié)構(gòu)中設(shè)有一非空的第一點(diǎn)陣指 針,該第一點(diǎn)陣指針指向內(nèi)存中的第一點(diǎn)陣數(shù)組;B3、將大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第二位圖結(jié)構(gòu)和第二點(diǎn)陣數(shù)組,并將該 第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng)中,且所述第二位圖結(jié)構(gòu)中設(shè)有一置空的第二 點(diǎn)陣指針以及一指向該文件系統(tǒng)中的圖片資源映射表的圖片指針,并把該圖片 指針和資源ID的映射關(guān)系加入該圖片資源映射表中。根據(jù)本發(fā)明的方法,所述步驟C進(jìn)一步包括Cl、在訪問一圖片資源時(shí)則需要加載該圖片資源,先判斷該圖片資源的 位圖結(jié)構(gòu)中的點(diǎn)陣指針是否為空,若不為空則代表圖片資源為小圖片并執(zhí)行步 驟C2,若為空則代表圖片資源為大圖片并執(zhí)行步驟C3;C2、根據(jù)該小圖片的第一位圖結(jié)構(gòu)中第一點(diǎn)陣指針訪問內(nèi)存,直接從內(nèi) 存中加載該第一點(diǎn)陣指針?biāo)赶虻牡谝稽c(diǎn)陣數(shù)組;C3、根據(jù)大圖片的第二位圖結(jié)構(gòu)中的圖片指針訪問圖片資源映射表以找 到對(duì)應(yīng)的資源ID,再根據(jù)該資源ID從文件系統(tǒng)中加載該第二點(diǎn)陣數(shù)組。根據(jù)本發(fā)明的方法,所述步驟C之后還包括D、當(dāng)對(duì)所述大圖片的訪問結(jié)束時(shí),將所述內(nèi)存中從該文件系統(tǒng)加載的大 圖片的圖片數(shù)據(jù)予以釋放。根據(jù)本發(fā)明的方法,所述步驟C還包括訪問基本圖片信息的步驟,在訪 問一圖片資源時(shí),如果僅需要該圖片資源的基本圖片信息,則直接從所述圖片 資源的位圖結(jié)構(gòu)中取得基本圖片信息。本發(fā)明還提供一種嵌入式系統(tǒng)中圖片資源加載的裝置,該裝置包括圖片資源分類模塊,用于根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資 源分為小圖片和大圖片;圖片資源存儲(chǔ)模塊,用于在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于 內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中;圖片資源加載模塊,用于在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中 加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。根據(jù)本發(fā)明的裝置,所述圖片資源存儲(chǔ)模塊進(jìn)一步用于在存儲(chǔ)一 圖片資源時(shí),先判斷該圖片資源的類別若是小圖片,所述圖片資源存儲(chǔ)模塊則用于將該小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成 第一位圖結(jié)構(gòu)和第一點(diǎn)陣數(shù)組,并將該第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所述第 一位圖結(jié)構(gòu)中設(shè)有一非空的第一點(diǎn)陣指針,該第一點(diǎn)陣指針指向內(nèi)存中的第一 點(diǎn)陣數(shù)組;若是大圖片,所述圖片資源存儲(chǔ)模塊則用于將該大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成 第二位圖結(jié)構(gòu)和第二點(diǎn)陣數(shù)組,并將該第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng)中,且 所述第二位圖結(jié)構(gòu)中設(shè)有一置空的第二點(diǎn)陣指針以及一指向該文件系統(tǒng)中的 圖片資源映射表的圖片指針,并把該圖片指針和資源ID的映射關(guān)系加入該圖片資源映射表中。根據(jù)本發(fā)明的裝置,所述圖片資源加載模塊進(jìn)一步用于在訪問一圖片資源時(shí)加載該圖片資源,并先判斷該圖片資源的位圖結(jié)構(gòu)中的點(diǎn)陣指針是否為空 若該點(diǎn)陣指針非空,所述圖片資源加載模塊則用于根據(jù)該小圖片的第一位 圖結(jié)構(gòu)中第一點(diǎn)陣指針訪問內(nèi)存,直接該從內(nèi)存中加載該第一點(diǎn)陣指針?biāo)赶?的第一點(diǎn)陣數(shù)組;若該點(diǎn)陣指針為空,所述圖片資源加載模塊則用于根據(jù)該大圖片的第二位圖結(jié)構(gòu)中的圖片指針訪問該圖片資源映射表以找到對(duì)應(yīng)的資源ID,再根據(jù)該 資源ID從該文件系統(tǒng)中加載該第二點(diǎn)陣數(shù)組。根據(jù)本發(fā)明的裝置,所述裝置還包括圖片資源釋放模塊,用于在對(duì)所述大 圖片的訪問結(jié)束時(shí),將所述內(nèi)存中從該文件系統(tǒng)加載的大圖片的圖片數(shù)據(jù)予以 釋放。根據(jù)本發(fā)明的裝置,所述圖片資源加載模塊還用于在訪問一圖片資源時(shí), 若僅需要該圖片資源的基本圖片信息,則直接從所述圖片資源的位圖結(jié)構(gòu)中取 得基本圖片信息。本發(fā)明通過將圖片資源分為大圖片和小圖片兩類,其在存儲(chǔ)圖片資源時(shí), 將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng) 中;在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載其圖片數(shù)據(jù),而對(duì)于 大圖片則從文件系統(tǒng)中加載其圖片數(shù)據(jù)。借此,本發(fā)明實(shí)現(xiàn)了圖片資源的靈活 加載,相比于將所有圖片資源全部存儲(chǔ)于內(nèi)存的方式,可以有效地節(jié)省內(nèi)存空 間;相比于將所有圖片資源全部存儲(chǔ)于文件系統(tǒng)的方式,則可以提高訪問速度, 從而最大地優(yōu)化了圖片資源的訪問速度和內(nèi)存開銷。


圖1是本發(fā)明嵌入式系統(tǒng)中圖片資源加載的裝置結(jié)構(gòu)圖;圖2是本發(fā)明的圖片指針和圖片資源映射表的映射關(guān)系實(shí)例圖;圖3是本發(fā)明嵌入式系統(tǒng)中圖片資源加載的方法流程圖;圖4是本發(fā)明優(yōu)選的嵌入式系統(tǒng)中圖片資源加載的方法流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的基本思想是根據(jù)圖片分辨率的多少和/或系統(tǒng)內(nèi)存空間的限制, 分為兩種情況考慮。對(duì)于小圖片,由于其分辨率低,轉(zhuǎn)換成點(diǎn)陣數(shù)組后占用的 內(nèi)存空間小,可以將其直接以點(diǎn)陣數(shù)組的方式存儲(chǔ)于內(nèi)存中;而對(duì)于大圖片, 由于其分辨率高,轉(zhuǎn)換成點(diǎn)陣數(shù)組后所占用的內(nèi)存空間大,因此可以將其存儲(chǔ)于文件系統(tǒng)中,在需要顯示時(shí)再將其讀出來。另外,為了實(shí)現(xiàn)接口的統(tǒng)一處理, 訪問所有的圖片資源都優(yōu)選通過位圖結(jié)構(gòu)來實(shí)現(xiàn)。圖1示出了本發(fā)明嵌入式系統(tǒng)中圖片資源加載的裝置結(jié)構(gòu),該圖片資源加 載的裝置IO至少包括圖片資源分類模塊11、圖片資源存儲(chǔ)模塊12、圖片資源 加載模塊13,其中圖片資源分類模塊ll,用于根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片 資源分為小圖片和大圖片。所謂小圖片是指圖片分辨率相對(duì)小和/或系統(tǒng)內(nèi)存 限制相對(duì)少的圖片,例如一些小圖標(biāo)等;所謂大圖片是指圖片分辨率相對(duì)大和 /或系統(tǒng)內(nèi)存限制相對(duì)多的圖片,例如一些全屏圖片等。圖片資源存儲(chǔ)模塊12,用于在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中。其中,將圖片資源存 儲(chǔ)于內(nèi)存中的第一種加載方式,其實(shí)現(xiàn)原理是將圖片資源轉(zhuǎn)換成位圖結(jié)構(gòu)和點(diǎn) 陣數(shù)組直接存儲(chǔ)于內(nèi)存中,所述點(diǎn)陣數(shù)組一般用于描述圖片每個(gè)像素顏色值。 在顯示圖片時(shí)直接從內(nèi)存中取出點(diǎn)陣數(shù)組就可以輸出到屏幕了。第一種加載方式的優(yōu)點(diǎn)是訪問速度快,接口簡(jiǎn)單;其缺點(diǎn)是需要占用一定的內(nèi)存空間。將圖片資源存儲(chǔ)于文件系統(tǒng)的第二種加載方式,其實(shí)現(xiàn)原理是將圖片資源存儲(chǔ)于文件系統(tǒng)中,并給每個(gè)圖片配一個(gè)資源ID (標(biāo)識(shí)),當(dāng)需要使用該圖片時(shí),再 將其從文件系統(tǒng)中加載到內(nèi)存中。第二種加載方式的優(yōu)點(diǎn)是節(jié)省內(nèi)存空間;其 缺點(diǎn)是處理效率比較低。優(yōu)選的是,所述圖片資源存儲(chǔ)模塊12進(jìn)一步用于在存儲(chǔ)一圖片資源時(shí), 先判斷該圖片資源的類別,即該圖片資源是小圖片還是大圖片若是小圖片,所述圖片資源存儲(chǔ)模塊12則用于將該小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第一位圖結(jié)構(gòu)和第一點(diǎn)陣數(shù)組,并將該第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所 述第一位圖結(jié)構(gòu)中設(shè)有一非空的第一點(diǎn)陣指針,該第一點(diǎn)陣指針指向內(nèi)存中的 第一點(diǎn)陣數(shù)組。若是大圖片,所述圖片資源存儲(chǔ)模塊12則用于將該大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第二位圖結(jié)構(gòu)和第二點(diǎn)陣數(shù)組,并將該第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng) 中,例如計(jì)算機(jī)存儲(chǔ)器,且所述第二位圖結(jié)構(gòu)中設(shè)有一置空的第二點(diǎn)陣指針以 及一指向該文件系統(tǒng)中的圖片資源映射表的圖片指針,并把該圖片指針和資源ID的映射關(guān)系加入該圖片資源映射表中。在訪問到圖片資源映射表中圖片指針時(shí),再?gòu)奈募到y(tǒng)中讀取點(diǎn)陣數(shù)組。圖片資源加載模塊13,用于在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi) 存中加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的 圖片數(shù)據(jù)。所述圖片資源加載模塊B還用于在訪問一圖片資源時(shí),若僅需要 該圖片資源的基本圖片信息,則直接從所述圖片資源的位圖結(jié)構(gòu)中取得基本圖 片信息,所述基本圖片信息包含圖片的高、寬、透明色等。優(yōu)選的是,所述圖片資源加載模塊13進(jìn)一歩用于在訪問一圖片資源時(shí)加 載該圖片資源,并先判斷該圖片資源的位圖結(jié)構(gòu)中的點(diǎn)陣指針是否為空若該點(diǎn)陣指針非空,所述圖片資源加載模塊則用于根據(jù)該小圖片的第一位 圖結(jié)構(gòu)中第一點(diǎn)陣指針訪問內(nèi)存,直接該從內(nèi)存中加載該第一點(diǎn)陣指針?biāo)赶?的第一點(diǎn)陣數(shù)組。若該點(diǎn)陣指針為空,所述圖片資源加載模塊則用于根據(jù)該大圖片的第二位 圖結(jié)構(gòu)中的圖片指針訪問該圖片資源映射表以找到對(duì)應(yīng)的資源ID,再根據(jù)該 資源ID從該文件系統(tǒng)中加載第二點(diǎn)陣數(shù)組。圖2示出了本發(fā)明一實(shí)施例中圖片指針和圖片資源映射表的映射關(guān)系,該 圖片指針(ptr) 1 N和其對(duì)應(yīng)的資源ID1 N存儲(chǔ)于圖片資源映射表21中, 圖片指針1 N和資源ID1 N之間存在一一對(duì)應(yīng)的映射關(guān)系。所述圖片指針 訪問該圖片資源映射表21以查詢對(duì)應(yīng)的資源ID。若發(fā)現(xiàn)該圖片指針不在圖片 資源映射表21中,則返回到位圖結(jié)構(gòu)22另作處理,該位圖結(jié)構(gòu)22為上述的 第二位圖結(jié)構(gòu);而若該圖片指針在圖片資源映射表21中,則根據(jù)該資源ID從 本實(shí)施例中作為文件系統(tǒng)的FLASH (閃存)23中加載圖片數(shù)據(jù),也就是該大 圖片的第二點(diǎn)陣數(shù)組。所述裝置IO還可包括圖片資源釋放模塊14,用于在對(duì)所述大圖片的訪問 結(jié)束時(shí),將所述內(nèi)存中從該文件系統(tǒng)加載的大圖片的圖片數(shù)據(jù)予以統(tǒng)統(tǒng)釋放, 以提高內(nèi)存的空間及其使用率。圖3示出了本發(fā)明嵌入式系統(tǒng)中圖片資源加載的方法流程,其通過圖1 所示的裝置10來實(shí)現(xiàn),具體包括步驟有步驟S301,根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資源分為小圖片 和大圖片。本步驟通過裝置10的圖片資源分類模塊11來實(shí)現(xiàn)。步驟S302,在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中。本步驟通過裝置10的圖片資源存儲(chǔ)模塊12來實(shí)現(xiàn)。步驟S303,在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載該小圖 片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。本步 驟通過裝置10的圖片資源加載模塊13來實(shí)現(xiàn)。本步驟S303還包括訪問基本 圖片信息的步驟,在訪問一圖片資源時(shí),如果僅需要該圖片資源的基本圖片信 息,則可以直接從所述圖片資源的位圖結(jié)構(gòu)中取得基本圖片信息。圖4示出了本發(fā)明優(yōu)選的嵌入式系統(tǒng)中圖片資源加載的方法流程,其也通 過圖1所示的裝置10來實(shí)現(xiàn),具體包括步驟有步驟S401,圖片資源分類模塊ll根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將 圖片資源分為小圖片和大圖片。步驟S402,圖片資源存儲(chǔ)模塊12在存儲(chǔ)一圖片資源時(shí),先判斷該圖片資 源的類別,若是小圖片則執(zhí)行步驟S403,若是大圖片則執(zhí)行步驟S404。步驟S403,圖片資源存儲(chǔ)模塊12將小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第一位圖結(jié) 構(gòu)和第一點(diǎn)陣數(shù)組,并將該第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所述第一位圖結(jié)構(gòu) 中設(shè)有一非空的第一點(diǎn)陣指針,該第一點(diǎn)陣指針指向內(nèi)存中的第一點(diǎn)陣數(shù)組。步驟S404,圖片資源存儲(chǔ)模塊12將大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第二位圖結(jié) 構(gòu)和第二點(diǎn)陣數(shù)組,并將該第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng)中,且所述第二位 圖結(jié)構(gòu)中設(shè)有一置空的第二點(diǎn)陣指針以及一指向該文件系統(tǒng)中的圖片資源映 射表的圖片指針,并把該圖片指針和資源ID的映射關(guān)系加入該圖片資源映射 表中。步驟S405,在訪問一圖片資源時(shí)則需要加載該圖片資源,圖片資源加載 模塊13先判斷該圖片資源的位圖結(jié)構(gòu)中的點(diǎn)陣指針是否為空,若點(diǎn)陣指針不 為空,則代表圖片資源為小圖片且圖片數(shù)據(jù)已經(jīng)全部加載到內(nèi)存中,可以直接 在內(nèi)存中訪問相關(guān)數(shù)據(jù),并執(zhí)行步驟S406;若所述點(diǎn)陣指針為空,則代表圖 片資源為大圖片且說明該圖片數(shù)據(jù)的存儲(chǔ)于文件系統(tǒng)中,并執(zhí)行歩驟S407。步驟S406,圖片資源加載模塊13根據(jù)該小圖片的第一位圖結(jié)構(gòu)中第一點(diǎn) 陣指針訪問內(nèi)存,直接從內(nèi)存中加載該第一點(diǎn)陣指針?biāo)赶虻牡谝稽c(diǎn)陣數(shù)組。步驟S407,圖片資源加載模塊13根據(jù)大圖片的第二位圖結(jié)構(gòu)中的圖片指 針訪問圖片資源映射表以找到對(duì)應(yīng)的資源ID,再根據(jù)該資源ID從文件系統(tǒng)中加載該第二點(diǎn)陣數(shù)組。也就是說,首先在圖片資源映射表中以圖片指針為關(guān)鍵 字進(jìn)行匹配,找出相應(yīng)的資源ID,再?gòu)奈募到y(tǒng)中加載所述資源ID對(duì)應(yīng)的圖 片數(shù)據(jù)。步驟S408,當(dāng)對(duì)所述大圖片的訪問結(jié)束時(shí),圖片資源釋放模塊14將所述 內(nèi)存中從該文件系統(tǒng)加載的大圖片的圖片數(shù)據(jù)予以釋放,以提高內(nèi)存空間。綜上所述,本發(fā)明通過將圖片資源分為大圖片和小圖片兩類,其在存儲(chǔ)圖 片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于 文件系統(tǒng)中;在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載其圖片數(shù)據(jù), 而對(duì)于大圖片則從文件系統(tǒng)中加載其圖片數(shù)據(jù)。借此,本發(fā)明實(shí)現(xiàn)了圖片資源 的靈活加載,相比于將所有圖片資源全部存儲(chǔ)于內(nèi)存的方式,可以有效地節(jié)省 內(nèi)存空間;相比于將所有圖片資源全部存儲(chǔ)于文件系統(tǒng)的方式,則可以提高訪 問速度,從而最大地優(yōu)化了圖片資源的訪問速度和內(nèi)存開銷。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情 況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但 這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種嵌入式系統(tǒng)中圖片資源加載的方法,其特征在于,所述方法包括A、根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資源分為小圖片和大圖片;B、在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中;C、在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述歩驟B中進(jìn)一步包括:Bl、在存儲(chǔ)一圖片資源時(shí),先判斷該圖片資源的類別,若是小圖片則執(zhí) 行步驟B2,若是大圖片則執(zhí)行步驟B3;B2、將小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第一位圖結(jié)構(gòu)和第一點(diǎn)陣數(shù)組,并將該 第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所述第一位圖結(jié)構(gòu)中設(shè)有一非空的第一點(diǎn)陣指針,該第一點(diǎn)陣指針指向內(nèi)存中的第一點(diǎn)陣數(shù)組;B3、將大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成第二位圖結(jié)構(gòu)和第二點(diǎn)陣數(shù)組,并將該 第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng)中,且所述第二位圖結(jié)構(gòu)中設(shè)有一置空的第二 點(diǎn)陣指針以及一指向該文件系統(tǒng)中的圖片資源映射表的圖片指針,并把該圖片 指針和資源ID的映射關(guān)系加入該圖片資源映射表中。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述歩驟C進(jìn)一步包括 Cl、在訪問一圖片資源時(shí)則需要加載該圖片資源,先判斷該圖片資源的位圖結(jié)構(gòu)中的點(diǎn)陣指針是否為空,若不為空則代表圖片資源為小圖片并執(zhí)行步 驟C2,若為空則代表圖片資源為大圖片并執(zhí)行步驟C3;C2、根據(jù)該小圖片的第一位圖結(jié)構(gòu)中第一點(diǎn)陣指針訪問內(nèi)存,直接從內(nèi) 存中加載該第一點(diǎn)陣指針?biāo)赶虻牡谝稽c(diǎn)陣數(shù)組;C3、根據(jù)大圖片的第二位圖結(jié)構(gòu)中的圖片指針訪問圖片資源映射表以找 到對(duì)應(yīng)的資源ID,再根據(jù)該資源ID從文件系統(tǒng)中加載該第二點(diǎn)陣數(shù)組。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟C之后還包括D、 當(dāng)對(duì)所述大圖片的訪問結(jié)束時(shí),將所述內(nèi)存中從該文件系統(tǒng)加載的大 圖片的圖片數(shù)據(jù)予以釋放。
5、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟C還包括訪問基本圖片信息的步驟,在訪問一圖片資源時(shí),如果僅需要該圖片資源的基本圖片 信息,則直接從所述圖片資源的位圖結(jié)構(gòu)中取得基本圖片信息。
6、 一種嵌入式系統(tǒng)中圖片資源加載的裝置,其特征在于,該裝置包括 圖片資源分類模塊,用于根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資源分為小圖片和大圖片;圖片資源存儲(chǔ)模塊,用于在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于 內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中;圖片資源加載模塊,用于在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中 加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。
7、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述圖片資源存儲(chǔ)模塊進(jìn) 一步用于在存儲(chǔ)一圖片資源時(shí),先判斷該圖片資源的類別若是小圖片,所述圖片資源存儲(chǔ)模塊則用于將該小圖片的圖片數(shù)據(jù)轉(zhuǎn)換成 第一位圖結(jié)構(gòu)和第一點(diǎn)陣數(shù)組,并將該第一點(diǎn)陣數(shù)組存儲(chǔ)于內(nèi)存中,且所述第 一位圖結(jié)構(gòu)中設(shè)有一非空的第一點(diǎn)陣指針,該第一點(diǎn)陣指針指向內(nèi)存中的第一點(diǎn)陣數(shù)組;若是大圖片,所述圖片資源存儲(chǔ)模塊則用于將該大圖片的圖片數(shù)據(jù)轉(zhuǎn)換成 第二位圖結(jié)構(gòu)和第二點(diǎn)陣數(shù)組,并將該第二點(diǎn)陣數(shù)組存儲(chǔ)于一文件系統(tǒng)中,且 所述第二位圖結(jié)構(gòu)中設(shè)有一置空的第二點(diǎn)陣指針以及一指向該文件系統(tǒng)中的圖片資源映射表的圖片指針,并把該圖片指針和資源ID的映射關(guān)系加入該圖 片資源映射表中。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述圖片資源加載模塊進(jìn) 一步用于在訪問一圖片資源時(shí)加載該圖片資源,并先判斷該圖片資源的位圖結(jié) 構(gòu)中的點(diǎn)陣指針是否為空若該點(diǎn)陣指針非空,所述圖片資源加載模塊則用于根據(jù)該小圖片的第一位 圖結(jié)構(gòu)中第一點(diǎn)陣指針訪問內(nèi)存,直接該從內(nèi)存中加載該第一點(diǎn)陣指針?biāo)赶虻牡谝稽c(diǎn)陣數(shù)組;若該點(diǎn)陣指針為空,所述圖片資源加載模塊則用于根據(jù)該大圖片的第二位 圖結(jié)構(gòu)中的圖片指針訪問該圖片資源映射表以找到對(duì)應(yīng)的資源ID,再根據(jù)該 資源ID從該文件系統(tǒng)中加載該第二點(diǎn)陣數(shù)組。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括圖片資源 釋放模塊,用于在對(duì)所述大圖片的訪問結(jié)束時(shí),將所述內(nèi)存中從該文件系統(tǒng)加 載的大圖片的圖片數(shù)據(jù)予以釋放。
10、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述圖片資源加載模塊還用于在訪問一圖片資源時(shí),若僅需要該圖片資源的基本圖片信息,則直接從所 述圖片資源的位圖結(jié)構(gòu)中取得基本圖片信息。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)中圖片資源加載的方法,包括步驟有根據(jù)圖片分辨率和/或系統(tǒng)內(nèi)存限制,將圖片資源分為小圖片和大圖片;在存儲(chǔ)圖片資源時(shí),將小圖片的圖片數(shù)據(jù)存儲(chǔ)于內(nèi)存中,而將大圖片的圖片數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)中;在加載圖片資源時(shí),對(duì)于小圖片則直接從內(nèi)存中加載該小圖片的圖片數(shù)據(jù),而對(duì)于大圖片則從文件系統(tǒng)中加載該大圖片的圖片數(shù)據(jù)。相應(yīng)地,本發(fā)明還提供一種嵌入式系統(tǒng)中圖片資源加載的裝置。借此,本發(fā)明實(shí)現(xiàn)了圖片資源的靈活加載,最大地優(yōu)化了圖片資源的訪問速度和內(nèi)存開銷。
文檔編號(hào)G06F17/30GK101226549SQ20081005690
公開日2008年7月23日 申請(qǐng)日期2008年1月25日 優(yōu)先權(quán)日2008年1月25日
發(fā)明者飛 殷, 童曉演, 薛晨曦 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1