圖片處理方法及裝置的制造方法
【專(zhuān)利摘要】本公開(kāi)是關(guān)于一種圖片處理方法及裝置。該方法包括:獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大??;根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。該技術(shù)方案能夠避免在虛擬內(nèi)存中解碼圖片時(shí)產(chǎn)生內(nèi)存碎片的情況,同時(shí)減少在應(yīng)用程序的虛擬內(nèi)存中申請(qǐng)內(nèi)存塊的次數(shù),從而減少垃圾回收機(jī)制的發(fā)生次數(shù),避免應(yīng)用程序卡頓,使應(yīng)用程序的運(yùn)行更加流暢。
【專(zhuān)利說(shuō)明】
圖片處理方法及裝置
技術(shù)領(lǐng)域
[0001]本公開(kāi)涉及圖片處理技術(shù)領(lǐng)域,尤其涉及一種圖片處理方法及裝置。
【背景技術(shù)】
[0002]相關(guān)技術(shù)中,基于安卓平臺(tái)的應(yīng)用程序開(kāi)發(fā)中,圖片始終是占用內(nèi)存的最大因素之一。當(dāng)應(yīng)用程序界面上的某個(gè)區(qū)域需要顯示圖片時(shí),大多數(shù)情況下,該顯示區(qū)域的尺寸大小與圖片不一致,這就需要應(yīng)用程序在內(nèi)存中生成符合尺寸要求的圖片。在生成符合尺寸要求的圖片時(shí),首先需要在應(yīng)用程序內(nèi)存中申請(qǐng)一份臨時(shí)內(nèi)存塊,用以解碼原始圖片,然后再申請(qǐng)一份新的內(nèi)存塊,將解碼后的原始圖片縮放至新的內(nèi)存塊中,最終得到符合尺寸要求的圖片,并在應(yīng)用程序的顯示區(qū)域上顯示。然而,當(dāng)申請(qǐng)的臨時(shí)內(nèi)存塊較多時(shí),就會(huì)造成應(yīng)用程序所在的虛擬內(nèi)存中含有大量的內(nèi)存碎片,進(jìn)而導(dǎo)致虛擬內(nèi)存增長(zhǎng)較快而利用率下降。
【發(fā)明內(nèi)容】
[0003]本公開(kāi)實(shí)施例提供一種圖片處理方法及裝置。所述技術(shù)方案如下:
[0004]根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種圖片處理方法,包括:
[0005]獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;
[0006]計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大??;
[0007]根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;
[0008]按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
[0009]本公開(kāi)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0010]上述技術(shù)方案,通過(guò)在應(yīng)用程序的非虛擬內(nèi)存中解碼原始圖片,并將原始圖片縮放到應(yīng)用程序的虛擬內(nèi)存中,能夠避免在虛擬內(nèi)存中解碼圖片時(shí)產(chǎn)生內(nèi)存碎片的情況,同時(shí)減少在應(yīng)用程序的虛擬內(nèi)存中申請(qǐng)內(nèi)存塊的次數(shù),從而減少垃圾回收機(jī)制的發(fā)生次數(shù),避免應(yīng)用程序卡頓,使應(yīng)用程序的運(yùn)行更加流暢。
[0011]在一個(gè)實(shí)施例中,所述方法還包括:
[0012]判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊;
[0013]當(dāng)所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟;
[0014]當(dāng)所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。
[0015]該實(shí)施例中,在縮放原始圖片之前,需首先判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊,并僅在虛擬內(nèi)存中不包含符合目標(biāo)大小的第二內(nèi)存塊時(shí)才申請(qǐng)用于縮放原始圖片的內(nèi)存塊,使得縮放圖片時(shí)無(wú)需每次都申請(qǐng)?zhí)摂M內(nèi)存,從而減少終端的工作量。
[0016]在一個(gè)實(shí)施例中,所述方法還包括:
[0017]判斷所述虛擬內(nèi)存中是否存在剩余空間;
[0018]當(dāng)所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。
[0019]該實(shí)施例中,通過(guò)保留第二內(nèi)存塊,使得應(yīng)用程序再次縮放圖片時(shí),如果該圖片的目標(biāo)大小與第二內(nèi)存塊相匹配,則無(wú)需再在虛擬內(nèi)存中申請(qǐng)新的內(nèi)存塊,從而減少終端的工作量,同時(shí)避免虛擬內(nèi)存中重復(fù)申請(qǐng)相同大小的內(nèi)存塊。
[0020]在一個(gè)實(shí)施例中,所述方法還包括:
[0021]當(dāng)所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊;
[0022 ]釋放所述第三內(nèi)存塊,并保留所述第二內(nèi)存塊;
[0023]所述預(yù)設(shè)條件包括以下至少一種:
[0024]使用次數(shù)低于預(yù)設(shè)閾值;
[0025]使用頻率低于預(yù)設(shè)頻率;
[0026]最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0027]該實(shí)施例中,在虛擬內(nèi)存中沒(méi)有剩余空間的情況下,通過(guò)釋放第三內(nèi)存塊來(lái)保留第二內(nèi)存塊,使得虛擬內(nèi)存中使用率較低的內(nèi)存塊能夠及時(shí)被釋放,從而避免無(wú)用的內(nèi)存塊占用虛擬內(nèi)存的情況,提高虛擬內(nèi)存的利用率。
[0028]在一個(gè)實(shí)施例中,所述判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊,包括:
[0029]將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配;
[0030]根據(jù)所述匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。
[0031]該實(shí)施例使得終端能夠準(zhǔn)確地判斷虛擬內(nèi)存中是否包含第二內(nèi)存塊,從而避免在虛擬內(nèi)存中重復(fù)申請(qǐng)相同大小的內(nèi)存塊。
[0032]在一個(gè)實(shí)施例中,所述方法還包括:
[0033]將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0034]根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種圖片處理裝置,包括:
[0035]第一獲取模塊,用于獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;
[0036]計(jì)算模塊,用于計(jì)算所述第一獲取模塊獲取的原始圖片的原始大小和縮放后的目標(biāo)大??;
[0037]解碼模塊,用于根據(jù)所述計(jì)算模塊計(jì)算的原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;
[0038]縮放模塊,用于按照所述目標(biāo)大小,將所述解碼模塊解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
[0039]在一個(gè)實(shí)施例中,所述裝置還包括:
[0040]第一判斷模塊,用于判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊;
[0041 ]執(zhí)行模塊,用于當(dāng)所述第一判斷模塊判定所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟;
[0042]申請(qǐng)模塊,用于當(dāng)所述判斷模塊判定所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。
[0043]在一個(gè)實(shí)施例中,所述裝置還包括:
[0044]第二判斷模塊,用于判斷所述虛擬內(nèi)存中是否存在剩余空間;
[0045]保留模塊,用于當(dāng)所述第二判斷模塊判定所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。
[0046]在一個(gè)實(shí)施例中,所述裝置還包括:
[0047]第二獲取模塊,用于當(dāng)所述第二判斷模塊判定所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊;
[0048]釋放/保留模塊,用于釋放所述第二獲取模塊獲取的第三內(nèi)存塊,并保留所述第二內(nèi)存塊;
[0049]所述預(yù)設(shè)條件包括以下至少一種:
[0050]使用次數(shù)低于預(yù)設(shè)閾值;
[0051 ]使用頻率低于預(yù)設(shè)頻率;
[0052]最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0053]在一個(gè)實(shí)施例中,所述第一判斷模塊包括:
[0054]匹配子模塊,用于將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配;
[0055]判斷子模塊,用于根據(jù)所述匹配子模塊的匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。
[0056]在一個(gè)實(shí)施例中,所述裝置還包括:
[0057]顯示模塊,用于將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0058]根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種圖片處理裝置,包括:
[0059]處理器;
[0060]用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0061 ]其中,所述處理器被配置為:
[0062]獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;
[0063]計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大小;
[0064]根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;
[0065]按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
[0066]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開(kāi)。
【附圖說(shuō)明】
[0067]此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本公開(kāi)的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本公開(kāi)的原理。
[0068]圖1是根據(jù)一示例性實(shí)施例示出的一種圖片處理方法的流程圖。
[0069]圖2是根據(jù)一示例性實(shí)施例示出的一種圖片處理方法的流程圖。
[0070]圖3是根據(jù)一示例性實(shí)施例示出的一種圖片處理方法的流程圖。
[0071]圖4是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置的框圖。
[0072]圖5是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置的框圖。
[0073]圖6是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置的框圖。
[0074]圖7是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置的框圖。
[0075]圖8是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置中第一判斷模塊的框圖。
[0076]圖9是根據(jù)一示例性實(shí)施例示出的一種適用于圖片處理的裝置的框圖。
【具體實(shí)施方式】
[0077]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開(kāi)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本公開(kāi)的一些方面相一致的裝置和方法的例子。
[0078]圖1是根據(jù)一示例性實(shí)施例示出的一種圖片處理方法的流程圖,該圖片處理方法用于終端中,其中,終端可以是移動(dòng)電話(huà)、計(jì)算機(jī)、數(shù)字廣播終端、消息收發(fā)設(shè)備、游戲控制臺(tái)、平板設(shè)備、醫(yī)療設(shè)備、健身設(shè)備、個(gè)人數(shù)字助理等。如圖1所示,該方法包括以下步驟Si1-S14。
[0079]在步驟Sll中,獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片。
[0080]在步驟S12中,計(jì)算原始圖片的原始大小和縮放后的目標(biāo)大小。
[0081]其中,縮放后的目標(biāo)圖片可根據(jù)預(yù)定區(qū)域的大小來(lái)計(jì)算。在一個(gè)實(shí)施例中,預(yù)定區(qū)域的大小即為原始圖片縮放后的目標(biāo)大小。
[0082]在步驟S13中,根據(jù)原始大小在應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將原始圖片解碼到第一內(nèi)存塊中。
[0083]在一個(gè)實(shí)施例中,第一內(nèi)存塊的內(nèi)存容量應(yīng)符合原始圖片的原始大小,即,第一內(nèi)存塊的內(nèi)存容量應(yīng)至少等于原始圖片的原始大小。將原始圖片解碼到第一內(nèi)存塊中的解碼方式可采用現(xiàn)有的圖片解碼方式,在此不再贅述。
[0084]在步驟S14中,按照目標(biāo)大小,將解碼后的原始圖片縮放至應(yīng)用程序的虛擬內(nèi)存中符合目標(biāo)大小的第二內(nèi)存塊中,獲得符合目標(biāo)大小的目標(biāo)圖片。
[0085]在一個(gè)實(shí)施例中,執(zhí)行步驟S14之后,上述方法還包括以下步驟:將目標(biāo)圖片顯示在應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0086]采用本公開(kāi)實(shí)施例提供的技術(shù)方案,通過(guò)在應(yīng)用程序的非虛擬內(nèi)存中解碼原始圖片,并將原始圖片縮放到應(yīng)用程序的虛擬內(nèi)存中,能夠避免在虛擬內(nèi)存中解碼圖片時(shí)產(chǎn)生內(nèi)存碎片的情況,同時(shí)減少在應(yīng)用程序的虛擬內(nèi)存中申請(qǐng)內(nèi)存塊的次數(shù),從而減少垃圾回收機(jī)制的發(fā)生次數(shù),避免應(yīng)用程序卡頓,使應(yīng)用程序的運(yùn)行更加流暢。
[0087]在一個(gè)實(shí)施例中,如圖2所示,上述方法還可實(shí)施為以下步驟S21-S27:
[0088]在步驟S21中,獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片。
[0089]在步驟S22中,計(jì)算原始圖片的原始大小和縮放后的目標(biāo)大小。
[0090]在步驟S23中,根據(jù)原始大小在應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將原始圖片解碼到第一內(nèi)存塊中。
[0091]在步驟S24中,判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊。如果虛擬內(nèi)存中包含符合目標(biāo)大小的第二內(nèi)存塊,則執(zhí)行步驟S25;如果虛擬內(nèi)存中不包含符合目標(biāo)大小的第二內(nèi)存塊,則執(zhí)行步驟S27。
[0092]執(zhí)行該步驟時(shí),可按照如下方式判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊:將虛擬內(nèi)存中的所有內(nèi)存塊與目標(biāo)大小進(jìn)行匹配;根據(jù)匹配結(jié)果,判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊。如果在虛擬內(nèi)存中能夠匹配出符合目標(biāo)大小的內(nèi)存塊,則可確定虛擬內(nèi)存中包含第二內(nèi)存塊,否則,確定虛擬內(nèi)存中不包含第二內(nèi)存塊。
[0093]在步驟S25中,按照目標(biāo)大小,將解碼后的原始圖片縮放至應(yīng)用程序的虛擬內(nèi)存中符合目標(biāo)大小的第二內(nèi)存塊中,獲得符合目標(biāo)大小的目標(biāo)圖片。
[0094]在步驟S26中,將目標(biāo)圖片顯示在應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0095]在步驟S27中,在虛擬內(nèi)存中申請(qǐng)符合目標(biāo)大小的第二內(nèi)存塊。返回步驟S25。
[0096]該實(shí)施例中,在縮放原始圖片之前,需首先判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊,并僅在虛擬內(nèi)存中不包含符合目標(biāo)大小的第二內(nèi)存塊時(shí)才申請(qǐng)用于縮放原始圖片的內(nèi)存塊,使得縮放圖片時(shí)無(wú)需每次都申請(qǐng)?zhí)摂M內(nèi)存,從而減少終端的工作量。
[0097]在一個(gè)實(shí)施例中,在執(zhí)行步驟S25之后,如圖3所示,上述方法還包括以下步驟S31-S34。
[0098]在步驟S31中,判斷虛擬內(nèi)存中是否存在剩余;??間。如果虛擬內(nèi)存中存在剩余空間,則執(zhí)行步驟S32;如果虛擬內(nèi)存中不存在剩余空間,則執(zhí)行步驟S33。
[0099]在步驟S32中,保留第二內(nèi)存塊。
[0100]在步驟S33中,獲取虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊。
[0101]其中,預(yù)設(shè)條件包括以下至少一種:使用次數(shù)低于預(yù)設(shè)閾值、使用頻率低于預(yù)設(shè)頻率、最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0102]在步驟S34中,釋放第三內(nèi)存塊,并保留第二內(nèi)存塊。
[0103]該實(shí)施例中,通過(guò)保留第二內(nèi)存塊,使得應(yīng)用程序再次縮放圖片時(shí),如果該圖片的目標(biāo)大小與第二內(nèi)存塊相匹配,則無(wú)需再在虛擬內(nèi)存中申請(qǐng)新的內(nèi)存塊,從而減少終端的工作量,同時(shí)避免虛擬內(nèi)存中重復(fù)申請(qǐng)相同大小的內(nèi)存塊。此外,在虛擬內(nèi)存中沒(méi)有剩余空間的情況下,通過(guò)釋放第三內(nèi)存塊來(lái)保留第二內(nèi)存塊,使得虛擬內(nèi)存中使用率較低的內(nèi)存塊能夠及時(shí)被釋放,從而避免無(wú)用的內(nèi)存塊占用虛擬內(nèi)存的情況,提高虛擬內(nèi)存的利用率。
[0104]在上述任一實(shí)施例中,將原始圖片縮放至虛擬內(nèi)存中之后,可釋放非虛擬內(nèi)存中用于解碼原始圖片的第一內(nèi)存塊,從而使非虛擬內(nèi)存中的第一內(nèi)存塊能夠被及時(shí)清理,避免無(wú)用的內(nèi)存塊占用非虛擬內(nèi)存的情況。
[0105]下述為本公開(kāi)裝置實(shí)施例,可以用于執(zhí)行本公開(kāi)方法實(shí)施例。
[0106]圖4是根據(jù)一示例性實(shí)施例示出的一種圖片處理裝置的框圖,該裝置可以通過(guò)軟件、硬件或者兩者的結(jié)合實(shí)現(xiàn)成為電子設(shè)備的部分或者全部。參照?qǐng)D4,該圖片處理裝置包括第一獲取模塊401、計(jì)算模塊402、解碼模塊403和縮放模塊404;其中:
[0107]第一獲取模塊401被配置為獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片。
[0108]計(jì)算模塊402被配置為計(jì)算第一獲取模塊401獲取的原始圖片的原始大小和縮放后的目標(biāo)大小。
[0109]其中,縮放后的目標(biāo)圖片可根據(jù)預(yù)定區(qū)域的大小來(lái)計(jì)算。在一個(gè)實(shí)施例中,預(yù)定區(qū)域的大小即為原始圖片縮放后的目標(biāo)大小。
[0110]解碼模塊403被配置為根據(jù)計(jì)算模塊402計(jì)算的原始大小在應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將原始圖片解碼到第一內(nèi)存塊中。
[0111]在一個(gè)實(shí)施例中,第一內(nèi)存塊的內(nèi)存容量應(yīng)符合原始圖片的原始大小,S卩,第一內(nèi)存塊的內(nèi)存容量應(yīng)至少等于原始圖片的原始大小。解碼模塊403將原始圖片解碼到第一內(nèi)存塊中的解碼方式可采用現(xiàn)有的圖片解碼方式,在此不再贅述。
[0112]縮放模塊404被配置為按照目標(biāo)大小,將解碼模塊403解碼后的原始圖片縮放至應(yīng)用程序的虛擬內(nèi)存中符合目標(biāo)大小的第二內(nèi)存塊中,獲得符合目標(biāo)大小的目標(biāo)圖片。
[0113]采用本公開(kāi)實(shí)施例提供的裝置,通過(guò)解碼模塊403在應(yīng)用程序的非虛擬內(nèi)存中解碼原始圖片,并通過(guò)縮放模塊404將原始圖片縮放到應(yīng)用程序的虛擬內(nèi)存中,能夠避免在虛擬內(nèi)存中解碼圖片時(shí)產(chǎn)生內(nèi)存碎片的情況,同時(shí)減少在應(yīng)用程序的虛擬內(nèi)存中申請(qǐng)內(nèi)存塊的次數(shù),從而減少垃圾回收機(jī)制的發(fā)生次數(shù),避免應(yīng)用程序卡頓,使應(yīng)用程序的運(yùn)行更加流暢。
[0114]在一個(gè)實(shí)施例中,如圖5所示,上述裝置還包括第一判斷模塊405、執(zhí)行模塊406和申請(qǐng)模塊407;其中:
[0115]第一判斷模塊405被配置為判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊。
[0116]執(zhí)行模塊406被配置為當(dāng)?shù)谝慌袛嗄K405判定虛擬內(nèi)存中包含符合目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將解碼后的原始圖片縮放至應(yīng)用程序的虛擬內(nèi)存中符合目標(biāo)大小的第二內(nèi)存塊中的步驟。
[0117]申請(qǐng)模塊407被配置為當(dāng)?shù)谝慌袛嗄K405判定虛擬內(nèi)存中不包含符合目標(biāo)大小的第二內(nèi)存塊時(shí),在虛擬內(nèi)存中申請(qǐng)符合目標(biāo)大小的第二內(nèi)存塊。
[0118]該實(shí)施例中,在縮放原始圖片之前,第一判斷模塊405需首先判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊,并僅在虛擬內(nèi)存中不包含符合目標(biāo)大小的第二內(nèi)存塊時(shí)才由申請(qǐng)模塊407申請(qǐng)用于縮放原始圖片的內(nèi)存塊,使得縮放圖片時(shí)無(wú)需每次都申請(qǐng)?zhí)摂M內(nèi)存,從而減少終端的工作量。
[0119]在一個(gè)實(shí)施例中,如圖6所示,上述裝置還包括第二判斷模塊408和保留模塊409;其中:
[0120]第二判斷模塊408被配置為判斷虛擬內(nèi)存中是否存在剩余空間。
[0121]保留模塊409被配置為當(dāng)?shù)诙袛嗄K408判定虛擬內(nèi)存中存在剩余空間時(shí),保留第二內(nèi)存塊。
[0122]該實(shí)施例中,通過(guò)保留模塊409保留第二內(nèi)存塊,使得應(yīng)用程序再次縮放圖片時(shí),如果該圖片的目標(biāo)大小與第二內(nèi)存塊相匹配,則無(wú)需再在虛擬內(nèi)存中申請(qǐng)新的內(nèi)存塊,從而減少終端的工作量,同時(shí)避免虛擬內(nèi)存中重復(fù)申請(qǐng)相同大小的內(nèi)存塊。
[0123]在一個(gè)實(shí)施例中,如圖7所示,上述裝置還包括第二獲取模塊410和釋放/保留模塊411;其中:
[0124]第二獲取模塊410被配置為當(dāng)?shù)诙袛嗄K408判定虛擬內(nèi)存中不存在剩余空間時(shí),獲取虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊。
[0125]釋放/保留模塊411被配置為釋放第二獲取模塊410獲取的第三內(nèi)存塊,并保留第二內(nèi)存塊;
[0126]其中,預(yù)設(shè)條件包括以下至少一種:
[0127]使用次數(shù)低于預(yù)設(shè)閾值;
[0128]使用頻率低于預(yù)設(shè)頻率;
[0129]最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0130]該實(shí)施例中,在虛擬內(nèi)存中沒(méi)有剩余空間的情況下,通過(guò)釋放/保留模塊411釋放第三內(nèi)存塊來(lái)保留第二內(nèi)存塊,使得虛擬內(nèi)存中使用率較低的內(nèi)存塊能夠及時(shí)被釋放,從而避免無(wú)用的內(nèi)存塊占用虛擬內(nèi)存的情況,提高虛擬內(nèi)存的利用率。
[0131]在一個(gè)實(shí)施例中,如圖8所示,第一判斷模塊405包括匹配子模塊4051和判斷子模塊4052;其中:
[0132]匹配子模塊4051被配置為將虛擬內(nèi)存中的所有內(nèi)存塊與目標(biāo)大小進(jìn)行匹配。
[0133]判斷子模塊4052被配置為根據(jù)匹配子模塊4051的匹配結(jié)果,判斷虛擬內(nèi)存中是否包含符合目標(biāo)大小的第二內(nèi)存塊。
[0134]如果匹配子模塊4051在虛擬內(nèi)存中能夠匹配出符合目標(biāo)大小的內(nèi)存塊,則可確定虛擬內(nèi)存中包含第二內(nèi)存塊,否則,確定虛擬內(nèi)存中不包含第二內(nèi)存塊。
[0135]在一個(gè)實(shí)施例中,上述裝置還包括顯示模塊,該顯示模塊被配置為將目標(biāo)圖片顯示在應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0136]在示例性實(shí)施例中,提供一種圖片處理裝置,包括:
[0137]處理器;
[0138]用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0139]其中,處理器被配置為:
[0140]獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;
[0141]計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大??;
[0142]根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;
[0143]按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
[0144]上述處理器還可被配置為:
[0145]判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊;
[0146]當(dāng)所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟;
[0147]當(dāng)所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。
[0148]上述處理器還可被配置為:
[0149]判斷所述虛擬內(nèi)存中是否存在剩余空間;
[0150]當(dāng)所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。
[0151]上述處理器還可被配置為:
[0152]當(dāng)所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊;
[0153 ]釋放所述第三內(nèi)存塊,并保留所述第二內(nèi)存塊;
[0154]所述預(yù)設(shè)條件包括以下至少一種:
[0155]使用次數(shù)低于預(yù)設(shè)閾值;
[0156]使用頻率低于預(yù)設(shè)頻率;
[0157]最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0158]上述處理器還可被配置為:
[0159]將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配;
[0160]根據(jù)所述匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。
[0161]上述處理器還可被配置為:
[0162]將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0163]關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
[0164]圖9是根據(jù)一示例性實(shí)施例示出的一種用于圖片處理的裝置的框圖。例如,裝置1200可以是移動(dòng)電話(huà),計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個(gè)人數(shù)字助理等。
[0165]裝置1200可以包括以下一個(gè)或多個(gè)組件:處理組件1202,存儲(chǔ)器1204,電源組件1206,多媒體組件1208,音頻組件1210,輸入/輸出(I/0)的接口 1212,傳感器組件1214,以及通信組件1216。
[0166]處理組件1202通??刂蒲b置1200的整體操作,諸如與顯示,電話(huà)呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件1202可以包括一個(gè)或多個(gè)處理器1220來(lái)執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1202可以包括一個(gè)或多個(gè)模塊,便于處理組件1202和其他組件之間的交互。例如,處理組件1202可以包括多媒體模塊,以方便多媒體組件1208和處理組件1202之間的交互。
[0167]存儲(chǔ)器1204被配置為存儲(chǔ)各種類(lèi)型的數(shù)據(jù)以支持在裝置1200的操作。這些數(shù)據(jù)的示例包括用于在裝置1200上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話(huà)簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器1204可以由任何類(lèi)型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),電可擦除可編程只讀存儲(chǔ)器(EEPROM),可擦除可編程只讀存儲(chǔ)器(EPR0M),可編程只讀存儲(chǔ)器(PROM),只讀存儲(chǔ)器(ROM),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤(pán)或光盤(pán)。
[0168]電源組件1206為裝置1200的各種組件提供電力。電源組件1206可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置1200生成、管理和分配電力相關(guān)聯(lián)的組件。
[0169]多媒體組件1208包括在所述裝置1200和用戶(hù)之間的提供一個(gè)輸出接口的屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來(lái)自用戶(hù)的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件1208包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)裝置1200處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
[0170]音頻組件1210被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件1210包括一個(gè)麥克風(fēng)(MIC),當(dāng)裝置1200處于操作模式,如呼叫模式、記錄模式和語(yǔ)音識(shí)別模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器1204或經(jīng)由通信組件1216發(fā)送。在一些實(shí)施例中,音頻組件1210還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。
[0171]I/O接口 1212為處理組件1202和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤(pán),點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁(yè)按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。
[0172]傳感器組件1214包括一個(gè)或多個(gè)傳感器,用于為裝置1200提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件1214可以檢測(cè)到裝置1200的打開(kāi)/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置1200的顯示器和小鍵盤(pán),傳感器組件1214還可以檢測(cè)裝置1200或裝置1200—個(gè)組件的位置改變,用戶(hù)與裝置1200接觸的存在或不存在,裝置1200方位或加速/減速和裝置1200的溫度變化。傳感器組件1214可以包括接近傳感器,被配置用來(lái)在沒(méi)有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件1214還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件1214還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0173]通信組件1216被配置為便于裝置1200和其他設(shè)備之間有線(xiàn)或無(wú)線(xiàn)方式的通信。裝置1200可以接入基于通信標(biāo)準(zhǔn)的無(wú)線(xiàn)網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個(gè)示例性實(shí)施例中,通信組件1216經(jīng)由廣播信道接收來(lái)自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件1216還包括近場(chǎng)通信(NFC)模塊,以促進(jìn)短程通信。例如,在NFC模塊可基于射頻識(shí)別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來(lái)實(shí)現(xiàn)。
[0174]在示例性實(shí)施例中,裝置1200可以被一個(gè)或多個(gè)應(yīng)用專(zhuān)用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。
[0175]在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器1204,上述指令可由裝置1200的處理器1220執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是R0M、隨機(jī)存取存儲(chǔ)器(RAM)、CD-R0M、磁帶、軟盤(pán)和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
[0176]—種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由裝置1200的處理器執(zhí)行時(shí),使得裝置1200能夠執(zhí)行上述的圖片處理方法,所述方法包括:
[0177]獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片;
[0178]計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大小;
[0179]根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中;
[0180]按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
[0181]所述方法還包括:
[0182]判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊;
[0183]當(dāng)所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟;
[0184]當(dāng)所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。
[0185]所述方法還包括:
[0186]判斷所述虛擬內(nèi)存中是否存在剩余空間;
[0187]當(dāng)所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。
[0188]所述方法還包括:
[0189]當(dāng)所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊;
[0190]釋放所述第三內(nèi)存塊,并保留所述第二內(nèi)存塊;
[0191]所述預(yù)設(shè)條件包括以下至少一種:
[0192]使用次數(shù)低于預(yù)設(shè)閾值;
[0193]使用頻率低于預(yù)設(shè)頻率;
[0194]最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。
[0195]所述判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊,包括:
[0196]將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配;
[0197]根據(jù)所述匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。
[0198]所述方法還包括:
[0199]將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。
[0200]本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里的公開(kāi)后,將容易想到本公開(kāi)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開(kāi)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開(kāi)的一般性原理并包括本公開(kāi)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本公開(kāi)的真正范圍和精神由下面的權(quán)利要求指出。
[0201]應(yīng)當(dāng)理解的是,本公開(kāi)并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開(kāi)的范圍僅由所附的權(quán)利要求來(lái)限制。
【主權(quán)項(xiàng)】
1.一種圖片處理方法,其特征在于,包括: 獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片; 計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大?。?根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中; 按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊; 當(dāng)所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟; 當(dāng)所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 判斷所述虛擬內(nèi)存中是否存在剩余空間; 當(dāng)所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 當(dāng)所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊; 釋放所述第三內(nèi)存塊,并保留所述第二內(nèi)存塊; 所述預(yù)設(shè)條件包括以下至少一種: 使用次數(shù)低于預(yù)設(shè)閾值; 使用頻率低于預(yù)設(shè)頻率; 最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊,包括: 將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配; 根據(jù)所述匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。6.根據(jù)權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。7.—種圖片處理裝置,其特征在于,包括: 第一獲取模塊,用于獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片; 計(jì)算模塊,用于計(jì)算所述第一獲取模塊獲取的原始圖片的原始大小和縮放后的目標(biāo)大??; 解碼模塊,用于根據(jù)所述計(jì)算模塊計(jì)算的原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中; 縮放模塊,用于按照所述目標(biāo)大小,將所述解碼模塊解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 第一判斷模塊,用于判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊; 執(zhí)行模塊,用于當(dāng)所述第一判斷模塊判定所述虛擬內(nèi)存中包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),執(zhí)行將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中的步驟; 申請(qǐng)模塊,用于當(dāng)所述判斷模塊判定所述虛擬內(nèi)存中不包含符合所述目標(biāo)大小的第二內(nèi)存塊時(shí),在所述虛擬內(nèi)存中申請(qǐng)符合所述目標(biāo)大小的第二內(nèi)存塊。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 第二判斷模塊,用于判斷所述虛擬內(nèi)存中是否存在剩余空間; 保留模塊,用于當(dāng)所述第二判斷模塊判定所述虛擬內(nèi)存中存在剩余空間時(shí),保留所述第二內(nèi)存塊。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 第二獲取模塊,用于當(dāng)所述第二判斷模塊判定所述虛擬內(nèi)存中不存在剩余空間時(shí),獲取所述虛擬內(nèi)存中滿(mǎn)足預(yù)設(shè)條件的第三內(nèi)存塊; 釋放/保留模塊,用于釋放所述第二獲取模塊獲取的第三內(nèi)存塊,并保留所述第二內(nèi)存塊; 所述預(yù)設(shè)條件包括以下至少一種: 使用次數(shù)低于預(yù)設(shè)閾值; 使用頻率低于預(yù)設(shè)頻率; 最近一次使用的時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)。11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一判斷模塊包括: 匹配子模塊,用于將所述虛擬內(nèi)存中的所有內(nèi)存塊與所述目標(biāo)大小進(jìn)行匹配; 判斷子模塊,用于根據(jù)所述匹配子模塊的匹配結(jié)果,判斷所述虛擬內(nèi)存中是否包含符合所述目標(biāo)大小的第二內(nèi)存塊。12.根據(jù)權(quán)利要求7-11任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 顯示模塊,用于將所述目標(biāo)圖片顯示在所述應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)。13.—種圖片處理裝置,其特征在于,包括: 處理器; 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器; 其中,所述處理器被配置為: 獲取應(yīng)用程序界面上的預(yù)定區(qū)域內(nèi)所要顯示的原始圖片; 計(jì)算所述原始圖片的原始大小和縮放后的目標(biāo)大?。?根據(jù)所述原始大小在所述應(yīng)用程序的非虛擬內(nèi)存中獲取第一內(nèi)存塊,將所述原始圖片解碼到所述第一內(nèi)存塊中; 按照所述目標(biāo)大小,將所述解碼后的原始圖片縮放至所述應(yīng)用程序的虛擬內(nèi)存中符合所述目標(biāo)大小的第二內(nèi)存塊中,獲得符合所述目標(biāo)大小的目標(biāo)圖片。
【文檔編號(hào)】G06T3/40GK105957011SQ201610355530
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年5月25日
【發(fā)明人】王亞輝, 霍東海, 劉小桐
【申請(qǐng)人】北京小米移動(dòng)軟件有限公司