本發(fā)明涉及圖片處理技術(shù)領(lǐng)域,具體地說(shuō),涉及一種圖片合成方法、裝置及終端設(shè)備。
背景技術(shù):
圖片合成是指將一張主圖作為背景圖,在主圖上添加1個(gè)或多個(gè)貼紙的過(guò)程;圖片合成在用戶自定義圖片,發(fā)布圖片等場(chǎng)景下應(yīng)用較廣,是用戶較為經(jīng)常使用的圖片處理技術(shù)。
圖片合成主要涉及貼紙?jiān)谥鲌D上的編輯過(guò)程,與,編輯后的貼紙和主圖相合成的過(guò)程。目前,用戶主要是通過(guò)終端設(shè)備上裝載的具有圖片合成功能的應(yīng)用,來(lái)實(shí)現(xiàn)圖片合成;該應(yīng)用可提供編輯區(qū),用戶所選擇的主圖和貼紙可導(dǎo)入編輯區(qū)中,用戶可對(duì)編輯區(qū)中導(dǎo)入的貼紙進(jìn)行編輯,實(shí)現(xiàn)貼紙?jiān)谥鲌D上位置的調(diào)整,大小的改變等;在貼紙編輯完成后,將編輯完成的貼紙與主圖相合成,則可實(shí)現(xiàn)圖片合成。
本發(fā)明的發(fā)明人發(fā)現(xiàn),終端設(shè)備的系統(tǒng)內(nèi)存往往有限,編輯貼紙和貼紙與主圖相合成的過(guò)程,往往有可能出現(xiàn)占用過(guò)多內(nèi)存的情況,從而導(dǎo)致OOM(Out Of Memory,內(nèi)存溢出錯(cuò)誤)的發(fā)生,致使應(yīng)用崩潰的現(xiàn)象出現(xiàn),尤其是在主圖的數(shù)據(jù)量較大,需合成的貼紙數(shù)量較多的場(chǎng)景下,OOM的發(fā)生概率較大。因此,如何在合成圖片時(shí),減少OOM的發(fā)生,成為了本領(lǐng)域技術(shù)人員需要考慮的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供一種圖片合成方法、裝置及終端設(shè)備,以在合成圖片時(shí),減少OOM的發(fā)生。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
一種圖片合成方法,包括:
將選擇的主圖導(dǎo)入編輯區(qū),并將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
通過(guò)所述第一進(jìn)程根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息,并通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;其中,第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
通過(guò)所述第二進(jìn)程根據(jù)所述編輯區(qū)的圖片合成信息,將所述編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成。
本發(fā)明實(shí)施例還提供一種圖片合成裝置,包括:
主圖導(dǎo)入模塊,用于將選擇的主圖導(dǎo)入編輯區(qū);
貼紙導(dǎo)入模塊,用于將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
編輯模塊,用于檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
圖片合成信息確定模塊,用于通過(guò)所述第一進(jìn)程根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息;
圖片合成信息記錄模塊,用于通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
獲取模塊,用于在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;其中,第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
合成模塊,用于通過(guò)所述第二進(jìn)程根據(jù)所述編輯區(qū)的圖片合成信息,將所述編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成。
本發(fā)明實(shí)施例還提供一種終端設(shè)備,包括上述所述的圖片合成裝置。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的圖片合成方法中,通過(guò)第一進(jìn)程對(duì)編輯區(qū)顯示的主圖上的貼紙進(jìn)行編輯,并通過(guò)第一進(jìn)程記錄編輯區(qū)的圖片合成信息;在進(jìn)行圖片合成時(shí),本發(fā)明實(shí)施例通過(guò)調(diào)用與第一進(jìn)程不同的第二進(jìn)程,根據(jù)進(jìn)程間通信獲取第一進(jìn)程所記錄的編輯區(qū)的圖片合成信息,從而通過(guò)第二進(jìn)程根據(jù)所獲取的編輯區(qū)的圖片合成信息,將編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成,實(shí)現(xiàn)圖片合成的目的。由于第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用,且第二進(jìn)程根據(jù)進(jìn)程間通信獲取第一進(jìn)程記錄的編輯區(qū)的圖片合成信息,實(shí)現(xiàn)圖片的合成,因此本發(fā)明實(shí)施例進(jìn)行貼紙編輯所占用的內(nèi)存,與將主圖和貼紙相合成所占用的內(nèi)存互不干擾,即貼紙的編輯、貼紙與主圖的合成可以通過(guò)不同的進(jìn)程實(shí)現(xiàn),使得第二進(jìn)程的內(nèi)存得以專用于進(jìn)行貼紙與主圖的合成,避免了進(jìn)程內(nèi)存被其他不必要工作所占用,減少了OOM發(fā)生的情況,降低了應(yīng)用崩潰的現(xiàn)象。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的圖片合成方法的流程圖;
圖2為編輯頁(yè)面的示意圖;
圖3為編輯頁(yè)面的另一示意圖;
圖4為第一進(jìn)程和第二進(jìn)程間的信令流程圖;
圖5為本發(fā)明實(shí)施例提供的圖片合成方法的另一流程圖;
圖6為第一進(jìn)程進(jìn)行貼紙編輯、主圖尺寸轉(zhuǎn)換的示意圖;
圖7為本發(fā)明實(shí)施例提供的第二進(jìn)程合成主圖與編輯后貼紙的方法流程圖;
圖8為本發(fā)明實(shí)施例提供的第二進(jìn)程合成圖片的示意圖;
圖9為本發(fā)明實(shí)施例提供的進(jìn)程間交互的信令示意圖;
圖10為貼紙的編輯示意圖;
圖11為本發(fā)明實(shí)施例提供的圖片合成裝置的結(jié)構(gòu)框圖;
圖12為本發(fā)明實(shí)施例提供的主圖導(dǎo)入模塊的結(jié)構(gòu)框圖;
圖13為本發(fā)明實(shí)施例提供的圖片合成信息確定模塊的結(jié)構(gòu)框圖;
圖14為本發(fā)明實(shí)施例提供的合成模塊的結(jié)構(gòu)框圖;
圖15為本發(fā)明實(shí)施例提供的終端設(shè)備的硬件結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例提供的圖片合成方法的流程圖,該方法可應(yīng)用于終端設(shè)備,該終端設(shè)備可以裝載有具有圖片合成功能的應(yīng)用(APP),本發(fā)明實(shí)施例提供的圖片合成方法主要是在該應(yīng)用中實(shí)現(xiàn);
該應(yīng)用可以在用戶發(fā)布圖片時(shí),提供圖片合成服務(wù),從而發(fā)布出合成后的圖片;該應(yīng)用也可以是用戶在自定義圖片時(shí),提供圖片合成服務(wù);
參照?qǐng)D1,該方法可以包括:
步驟S100、將選擇的主圖導(dǎo)入編輯區(qū),并將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
可選的,用戶可以通過(guò)該具有圖片合成功能的應(yīng)用,進(jìn)行主圖的選擇,和在該主圖上添加選擇的貼紙;本發(fā)明實(shí)施例可以確定用戶從相冊(cè)等圖片數(shù)據(jù)庫(kù)中選擇的作為背景圖的主圖,并將用戶所選擇的主圖導(dǎo)入到編輯區(qū);
本發(fā)明實(shí)施例可以僅有一個(gè)編輯區(qū),也可以有多個(gè)編輯區(qū);而一個(gè)編輯區(qū)只能導(dǎo)入一張用戶選擇的主圖;
可選的,編輯區(qū)可以存在于編輯頁(yè)面等編輯界面中,一個(gè)編輯頁(yè)面對(duì)應(yīng)有多個(gè)編輯區(qū)的情況下,圖2示出了相應(yīng)的示意圖;編輯頁(yè)面可以具有多個(gè)編輯區(qū),且終端設(shè)備單屏僅顯示一個(gè)編輯區(qū),編輯區(qū)間的切換可通過(guò)用戶的編輯區(qū)切換操作實(shí)現(xiàn),編輯區(qū)切換操作如左右滑動(dòng)、左右方向鍵控制等,具體可根據(jù)實(shí)際情況設(shè)定;
本發(fā)明實(shí)施例也可以在編輯頁(yè)面中新建編輯區(qū),如圖3所示,編輯頁(yè)面可以對(duì)應(yīng)有多個(gè)編輯區(qū),且可通過(guò)編輯頁(yè)面中的編輯區(qū)新建按鈕來(lái)新建編輯區(qū);顯然,本發(fā)明實(shí)施例也可以設(shè)置其他的新建編輯區(qū)的快捷操作方式;圖3還示出了編輯頁(yè)面中其他指令的按鈕,可參照;
在單編輯區(qū)或多編輯區(qū)場(chǎng)景下,用戶選擇的某一主圖導(dǎo)入編輯頁(yè)面的一個(gè)編輯區(qū)后,用戶可在編輯頁(yè)面的貼紙選擇區(qū),選擇需要添加在該編輯區(qū)的主圖上的至少一張貼紙,并將所選擇的貼紙?zhí)砑拥皆摼庉媴^(qū)顯示的主圖上,從而實(shí)現(xiàn)將用戶選擇的一張主圖導(dǎo)入編輯頁(yè)面的一編輯區(qū)中,并將選擇的貼紙?zhí)砑釉谠摼庉媴^(qū)所導(dǎo)入顯示的主圖上;貼紙選擇區(qū)可如圖2、3相應(yīng)指示,貼紙選擇區(qū)可導(dǎo)入有貼紙數(shù)據(jù)庫(kù)中存儲(chǔ)的貼紙圖片。
步驟S110、檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
可選的,在將用戶選擇的貼紙?zhí)砑拥骄庉媴^(qū)顯示的主圖上后,用戶可對(duì)編輯區(qū)的主圖上添加的貼紙進(jìn)行編輯(可對(duì)編輯區(qū)中所有的貼紙進(jìn)行編輯,也可是對(duì)編輯區(qū)中部分的貼紙進(jìn)行編輯);當(dāng)編輯區(qū)的數(shù)量為多個(gè)的情況下,用戶可逐一的對(duì)各編輯區(qū)或者部分編輯區(qū)的主圖上添加的貼紙進(jìn)行編輯;
貼紙的編輯主要通過(guò)用戶的編輯操作觸發(fā),且由第一進(jìn)程執(zhí)行;用戶可操作調(diào)整貼紙的大小、方向、貼紙?jiān)谥鲌D上的位置等,實(shí)現(xiàn)編輯操作的輸入;在檢測(cè)到用戶的編輯操作后,第一進(jìn)程對(duì)用戶所操作的貼紙進(jìn)行編輯,使得編輯后的貼紙?jiān)谥鲌D上的顯示狀態(tài),與用戶的編輯操作相應(yīng);
如用戶調(diào)整貼紙?jiān)谥鲌D上向左移動(dòng),則第一進(jìn)程可相應(yīng)的調(diào)整該貼紙向左移動(dòng),實(shí)現(xiàn)對(duì)該貼紙的編輯;編輯后的貼紙?jiān)谥鲌D上的顯示狀態(tài)信息,為編輯后的貼紙?jiān)谥鲌D上的顯示狀態(tài)的信息表示;
可選的,第一進(jìn)程可以是系統(tǒng)的主進(jìn)程,本發(fā)明實(shí)施例可通過(guò)主進(jìn)程實(shí)現(xiàn)貼紙?jiān)谥鲌D上的編輯,從而調(diào)整貼紙?jiān)谥鲌D上的顯示狀態(tài)(如方向、大小、位置等);可選的,步驟S100可通過(guò)圖片選擇器和貼紙選擇器執(zhí)行,圖片選擇器可以是從相冊(cè)等數(shù)據(jù)庫(kù)中選擇圖片的進(jìn)程、貼紙選擇器可以是從貼紙數(shù)據(jù)庫(kù)中選擇貼紙的進(jìn)程,圖片選擇器和貼紙選擇器可以占用主進(jìn)程的內(nèi)存,也可以是不占用主進(jìn)程內(nèi)存的獨(dú)立進(jìn)程;
可選的,在編輯區(qū)的數(shù)量為多個(gè)時(shí),本發(fā)明實(shí)施例可分別的對(duì)各編輯區(qū)的主圖上的貼紙進(jìn)行編輯,后續(xù)在將主圖與貼紙相合成時(shí),也可依次的合成各編輯區(qū)對(duì)應(yīng)的主圖和貼紙。
步驟S120、通過(guò)所述第一進(jìn)程根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息,并通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
可選的,本發(fā)明實(shí)施例可以調(diào)用第一進(jìn)程確定編輯區(qū)的圖片合成信息,且在確定編輯區(qū)的圖片合成信息時(shí),第一進(jìn)程是根據(jù)編輯后的貼紙的顯示狀態(tài)信息實(shí)現(xiàn)的;即本發(fā)明實(shí)施例可以執(zhí)行第一進(jìn)程,第一進(jìn)程可以根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息;
可選的,圖片合成信息是記錄編輯區(qū)的圖片合成關(guān)鍵數(shù)據(jù)項(xiàng)的信息,如編輯區(qū)中的主圖信息,貼紙信息,貼紙編輯后的顯示狀態(tài)信息等;在編輯區(qū)的數(shù)量為多個(gè)時(shí),本發(fā)明實(shí)施例可逐一記錄各編輯區(qū)的圖片合成信息;
編輯區(qū)的圖片合成信息通過(guò)第一進(jìn)程記錄,占用第一進(jìn)程的內(nèi)存。
步驟S130、在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;
第二進(jìn)程是本發(fā)明實(shí)施例設(shè)置的獨(dú)立于第一進(jìn)程,用于將編輯區(qū)對(duì)應(yīng)的主圖和貼紙相合成的進(jìn)程;第二進(jìn)程所占用的內(nèi)存與第一進(jìn)程占用的內(nèi)存不同,即第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
可選的,在編輯區(qū)的貼紙編輯完成后,用戶可觸發(fā)進(jìn)行編輯區(qū)對(duì)應(yīng)的主圖和貼紙的合成(如通過(guò)編輯頁(yè)面的合成按鈕,或者其他快捷方式觸發(fā)),用戶觸發(fā)將編輯區(qū)對(duì)應(yīng)的主圖和貼紙相合成時(shí),將產(chǎn)生圖片合成指令;本發(fā)明實(shí)施例在檢測(cè)到該圖片合成指令時(shí),可調(diào)用第二進(jìn)程,通過(guò)第二進(jìn)程實(shí)現(xiàn)編輯區(qū)對(duì)應(yīng)的主圖和貼紙的合成;
由于第二進(jìn)程不涉及前期主圖選擇、貼紙選擇、及貼紙的編輯工作,因此第二進(jìn)程需要通過(guò)進(jìn)程間通信,獲取第一進(jìn)程所記錄的編輯區(qū)的圖片合成信息,從而通過(guò)所獲取的編輯區(qū)的圖片合成信息,確定編輯區(qū)用于進(jìn)行圖片合成的圖片合成關(guān)鍵數(shù)據(jù)項(xiàng),實(shí)現(xiàn)編輯區(qū)對(duì)應(yīng)的圖片和編輯后貼紙的合成;
可選的,第二進(jìn)程根據(jù)進(jìn)程間通信獲取編輯區(qū)的圖片合成信息的方式,可以是第二進(jìn)程根據(jù)進(jìn)程間通信,獲取第一進(jìn)程傳遞的編輯區(qū)的圖片合成信息,也可以是第二進(jìn)程根據(jù)進(jìn)程間通信,讀取第一進(jìn)程記錄的編輯區(qū)的圖片合成信息。
步驟S140、通過(guò)所述第二進(jìn)程根據(jù)所述編輯區(qū)的圖片合成信息,將所述編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成。
可選的,編輯區(qū)對(duì)應(yīng)的主圖可以是編輯區(qū)中顯示的主圖,或者,編輯區(qū)中顯示的主圖的原圖。
可以看出,本發(fā)明實(shí)施例提供的圖片合成方法中,通過(guò)第一進(jìn)程對(duì)編輯區(qū)顯示的主圖上的貼紙進(jìn)行編輯,并通過(guò)第一進(jìn)程記錄編輯區(qū)的圖片合成信息;在進(jìn)行圖片合成時(shí),本發(fā)明實(shí)施例通過(guò)調(diào)用與第一進(jìn)程不同的第二進(jìn)程,根據(jù)進(jìn)程間通信獲取第一進(jìn)程所記錄的編輯區(qū)的圖片合成信息,從而通過(guò)第二進(jìn)程根據(jù)所獲取的編輯區(qū)的圖片合成信息,將編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成,實(shí)現(xiàn)圖片合成的目的。由于第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用,且第二進(jìn)程根據(jù)進(jìn)程間通信獲取第一進(jìn)程記錄的編輯區(qū)的圖片合成信息,實(shí)現(xiàn)圖片的合成,因此本發(fā)明實(shí)施例進(jìn)行貼紙編輯所占用的內(nèi)存,與將主圖和貼紙相合成所占用的內(nèi)存互不干擾,即貼紙的編輯、貼紙與主圖的合成通過(guò)不同的進(jìn)程實(shí)現(xiàn),使得第二進(jìn)程的內(nèi)存得以專用于進(jìn)行貼紙與主圖的合成,避免了進(jìn)程內(nèi)存被其他不必要工作所占用,減少了OOM發(fā)生的情況,降低了應(yīng)用崩潰的現(xiàn)象。
為便于理解圖4示出了第一進(jìn)程和第二進(jìn)程間的信令流程,可參照;從圖4可以看出,第一進(jìn)程負(fù)責(zé)貼紙?jiān)谥鲌D上編輯,及編輯區(qū)相應(yīng)的圖片合成信息的記錄,第二進(jìn)程負(fù)責(zé)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙的合成,兩者所占用的內(nèi)存互不干擾,避免了進(jìn)程內(nèi)存被其他不必要工作所占用的情況。
可選的,第一進(jìn)程可以是系統(tǒng)的主進(jìn)程,第二進(jìn)程可以是獨(dú)立于主進(jìn)程的獨(dú)立進(jìn)程;需要說(shuō)明的是,本發(fā)明的發(fā)明人在研究本發(fā)明的過(guò)程中發(fā)現(xiàn),目前圖片合成涉及的貼紙編輯,和,編輯后貼紙與主圖的合成均是通過(guò)主進(jìn)程執(zhí)行,而主進(jìn)程中往往運(yùn)行著大量的核心業(yè)務(wù)及用戶頁(yè)面,主進(jìn)程能夠分配給貼紙編輯、編輯后貼紙與主圖的合成的內(nèi)存往往是有限的,這就導(dǎo)致圖片合成過(guò)程中經(jīng)常發(fā)生OOM,應(yīng)用也經(jīng)常崩潰;
而本發(fā)明實(shí)施例將貼紙編輯,編輯后貼紙與主圖的合成所負(fù)責(zé)進(jìn)程相分離,通過(guò)設(shè)置與主進(jìn)程相獨(dú)立的第二進(jìn)程,實(shí)現(xiàn)編輯后貼紙與主圖的合成,可使得編輯后貼紙與主圖的合成獨(dú)享一個(gè)進(jìn)程所占用的內(nèi)存,大大降低了OOM發(fā)生的概率,降低了應(yīng)用崩潰發(fā)生的現(xiàn)象。
可選的,由于選擇的主圖需要在編輯區(qū)中顯示,而從相冊(cè)等圖片數(shù)據(jù)庫(kù)中選擇的主圖的尺寸往往與編輯區(qū)的尺寸不匹配,因此本發(fā)明實(shí)施例可對(duì)從圖片數(shù)據(jù)庫(kù)中選擇的主圖的原圖,進(jìn)行與編輯區(qū)適配的尺寸轉(zhuǎn)換后,再將尺寸轉(zhuǎn)換后的主圖導(dǎo)入在編輯區(qū)中顯示;相應(yīng)的,在貼紙編輯后,可將編輯后后貼紙?jiān)诰庉媴^(qū)顯示的主圖的原圖上進(jìn)行添加,實(shí)現(xiàn)圖片合成,從而保障合成圖片的清晰度;
可選的,圖5示出了本發(fā)明實(shí)施例提供的圖片合成方法的另一流程圖,參照?qǐng)D5,該方法可以包括:
步驟S200、從圖片數(shù)據(jù)庫(kù)中選擇主圖原圖;
可選的,在進(jìn)行圖片合成時(shí),用戶可從相冊(cè)等圖片數(shù)據(jù)庫(kù)中選擇合成時(shí)作為背景圖的主圖,此時(shí)所選擇的主圖未經(jīng)過(guò)尺寸轉(zhuǎn)換,是主圖的原始圖片。
步驟S210、根據(jù)所述編輯區(qū)的尺寸,對(duì)所選擇的主圖原圖的原始尺寸進(jìn)行轉(zhuǎn)換,得到尺寸轉(zhuǎn)換后的主圖,其中,尺寸轉(zhuǎn)換后的主圖的尺寸與所述編輯區(qū)的尺寸相應(yīng);
為使得主圖在編輯區(qū)中顯示時(shí),能夠與編輯區(qū)的尺寸相適配,本發(fā)明實(shí)施例可根據(jù)所述編輯區(qū)的尺寸,對(duì)所選擇的主圖原圖進(jìn)行尺寸轉(zhuǎn)換,使得尺寸轉(zhuǎn)換后的主圖與編輯區(qū)的尺寸相應(yīng);
具體的,在從圖片數(shù)據(jù)庫(kù)選擇主圖原圖后,本發(fā)明實(shí)施例可解碼所選擇主圖原圖的原始尺寸(此處僅解碼主圖原圖的尺寸,不解碼主圖原圖的內(nèi)容像素),如果所選擇的主圖原圖的原始尺寸大于編輯區(qū)的尺寸,則可根據(jù)編輯區(qū)的尺寸,對(duì)所選擇的主圖原圖的原始尺寸進(jìn)行壓縮(如取編輯區(qū)的寬高作為主圖壓縮后的寬高,從而對(duì)圖片原圖的寬高進(jìn)行壓縮),使得尺寸壓縮后的主圖的尺寸與編輯區(qū)的尺寸相應(yīng);此處,通過(guò)對(duì)所選擇主圖原圖的尺寸進(jìn)行壓縮,除使得尺寸壓縮后的主圖能夠在編輯區(qū)中適配顯示,還能夠進(jìn)一步降低主圖的數(shù)據(jù)量,從而減小第一進(jìn)程進(jìn)行編輯工作所需占用的內(nèi)存,進(jìn)一步減小OOM的發(fā)生概率;
可選的,如果所選擇的主圖原圖的原始尺寸小于編輯區(qū)的尺寸,則本發(fā)明實(shí)施例可根據(jù)編輯區(qū)的尺寸,對(duì)所選擇的主圖原圖的尺寸進(jìn)行擴(kuò)展,使得主圖擴(kuò)展后的尺寸與編輯區(qū)的尺寸相應(yīng)。
步驟S220、將尺寸轉(zhuǎn)換后的主圖導(dǎo)入所述編輯區(qū),并將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
在對(duì)所選擇的主圖原圖的原始尺寸進(jìn)行轉(zhuǎn)換后,可使得尺寸轉(zhuǎn)換后的主圖能夠?qū)刖庉媴^(qū)中適配顯示;同時(shí),用戶可選擇至少一個(gè)貼紙?zhí)砑釉诰庉媴^(qū)顯示的主圖上。
步驟S230、檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
步驟S240、通過(guò)所述第一進(jìn)程確定編輯區(qū)中主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),所述主圖的尺寸轉(zhuǎn)換比例,及編輯后的貼紙的顯示狀態(tài)信息;所述主圖的尺寸轉(zhuǎn)換比例為,所述主圖對(duì)應(yīng)的原始尺寸與所述編輯區(qū)的尺寸的比值;
可選的,在通過(guò)第一進(jìn)程對(duì)貼紙進(jìn)行編輯后,第一進(jìn)程可確定編輯后貼紙?jiān)谥鲌D上的顯示狀態(tài)信息,同時(shí),確定編輯區(qū)中主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),及主圖的尺寸轉(zhuǎn)換比例;其中,一個(gè)主圖對(duì)應(yīng)一個(gè)主圖的標(biāo)識(shí),主圖的標(biāo)識(shí)為從多個(gè)主圖中區(qū)分主圖的依據(jù),基于主圖的標(biāo)識(shí),可從圖片數(shù)據(jù)庫(kù)中尋找到相應(yīng)的主圖;一個(gè)貼紙對(duì)應(yīng)一個(gè)貼紙的標(biāo)識(shí),基于貼紙的標(biāo)識(shí),可從貼紙數(shù)據(jù)庫(kù)中尋找到相應(yīng)的貼紙;主圖的尺寸轉(zhuǎn)換比例表示的是,主圖原圖的原始尺寸與轉(zhuǎn)換后尺寸的比值,即主圖原圖的原始尺寸與編輯區(qū)的尺寸的比值。
步驟S250、通過(guò)所述第一進(jìn)程根據(jù)所述編輯區(qū)中主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),所述主圖的尺寸轉(zhuǎn)換比例,及編輯后的貼紙的顯示狀態(tài)信息,生成所述編輯區(qū)的圖片合成信息;
可選的,第一進(jìn)程可基于編輯區(qū)中,貼紙編輯后的顯示狀態(tài)信息,主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),及所述主圖的尺寸轉(zhuǎn)換比例,生成該編輯區(qū)相應(yīng)的圖片合成信息;
如果編輯區(qū)的數(shù)量為多個(gè),則第一進(jìn)程可逐一的確定各編輯區(qū)中貼紙編輯后的顯示狀態(tài)信息、主圖的標(biāo)識(shí)、貼紙的標(biāo)識(shí)、及主圖的尺寸轉(zhuǎn)換比例,從而得到各編輯區(qū)相應(yīng)的圖片合成信息;
可以看出,一個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息至少可以包含如下內(nèi)容:貼紙編輯后顯示狀態(tài)信息(如貼紙的旋轉(zhuǎn)角度、位置、大小等),主圖的標(biāo)識(shí)(可從圖片數(shù)據(jù)庫(kù)中定位主圖),貼紙的標(biāo)識(shí)(可從貼紙數(shù)據(jù)庫(kù)中定位貼紙),及主圖的尺寸轉(zhuǎn)換比例;可選的,貼紙的標(biāo)識(shí)還可以用貼紙對(duì)應(yīng)的圖片bitmap(位圖文件)替換。
步驟S260、通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
可選的,如果編輯區(qū)的數(shù)量為多個(gè),第一進(jìn)程可逐一的記錄各編輯區(qū)相應(yīng)的圖片合成信息;
可選的,編輯區(qū)中導(dǎo)入的主圖、貼紙的選擇也可由第一進(jìn)程實(shí)現(xiàn),相應(yīng)的,圖6示出了第一進(jìn)程進(jìn)行貼紙編輯、主圖尺寸轉(zhuǎn)換的可選示意圖,可參照。
步驟S270、在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;其中,第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
第二進(jìn)程所獲取的編輯區(qū)的圖片合成信息,至少包括上述相應(yīng)的內(nèi)容。
步驟S280、通過(guò)所述第二進(jìn)程根據(jù)所述主圖的標(biāo)識(shí)從圖片數(shù)據(jù)庫(kù)中獲取相應(yīng)的主圖原圖,及根據(jù)所述貼紙的標(biāo)識(shí)從貼紙數(shù)據(jù)庫(kù)中獲取相應(yīng)的貼紙;通過(guò)所述第二進(jìn)程根據(jù)所述尺寸轉(zhuǎn)換比例,將所獲取的貼紙進(jìn)行尺寸轉(zhuǎn)換;通過(guò)所述第二進(jìn)程根據(jù)所述顯示狀態(tài)信息,將尺寸轉(zhuǎn)換后的貼紙?zhí)砑釉谒@取的主圖原圖上。
可見(jiàn),第二進(jìn)程在獲取編輯區(qū)的圖片合成信息后,可直接獲取出主圖原圖及貼紙,并按照前期主圖為導(dǎo)入編輯區(qū)所使用的尺寸轉(zhuǎn)換比例,將獲取的貼紙還原到主圖原圖上,并根據(jù)貼紙編輯后相應(yīng)的顯示狀態(tài)信息,調(diào)整貼紙?jiān)谥鲌D原圖上的顯示狀態(tài);
可選的,如果假設(shè)主圖的尺寸轉(zhuǎn)換比例(如尺寸壓縮比例)為x,由于變換是按比例變換的,相對(duì)于主圖原圖,貼紙?jiān)谥鲌D原圖上的大小應(yīng)為:貼紙的原始大小*x;進(jìn)一步,如果假定貼紙編輯后的顯示狀態(tài)信息包含了貼紙的旋轉(zhuǎn)角度為r,則同時(shí)通過(guò)Matrix矩陣類對(duì)貼紙進(jìn)行r角度旋轉(zhuǎn)后,將角度旋轉(zhuǎn)后的貼紙繪制到包含有主圖原圖的畫(huà)布上。
可見(jiàn),本發(fā)明實(shí)施例在進(jìn)行貼紙編輯時(shí),是將尺寸轉(zhuǎn)換后的主圖導(dǎo)入編輯區(qū)中,而通過(guò)合理的設(shè)置編輯區(qū)的尺寸,可使得尺寸轉(zhuǎn)換后的主圖相比于原始主圖進(jìn)行大幅度的壓縮,減小第一進(jìn)程編輯時(shí)的內(nèi)存占用;
而通過(guò)與貼紙編輯所用的第一進(jìn)程不同的第二進(jìn)程,獨(dú)立的進(jìn)行編輯后貼紙與主圖的合成,可使得輯后貼紙與主圖的合成獨(dú)享一個(gè)進(jìn)程的內(nèi)存;
進(jìn)一步,本發(fā)明實(shí)施例是將編輯后貼紙與主圖原圖進(jìn)行合成,而不是將編輯后貼紙與編輯區(qū)中尺寸轉(zhuǎn)換后的主圖進(jìn)行合成;主圖經(jīng)過(guò)尺寸轉(zhuǎn)換后,相比主圖原圖,必然存在圖片失真模糊等情況,因此如果將編輯后貼紙與編輯區(qū)中尺寸轉(zhuǎn)換后的主圖直接進(jìn)行合成,則可能使得合成圖片的清晰度較差,甚至存在失真模糊的情況;而本發(fā)明實(shí)施例通過(guò)第二進(jìn)程獲取第一進(jìn)程記錄的編輯區(qū)的圖片合成信息,來(lái)獲取主圖原圖和貼紙,并基于編輯后貼紙的顯示狀態(tài)信息,主圖在編輯區(qū)時(shí)對(duì)應(yīng)的尺寸轉(zhuǎn)換比例,將編輯后的貼紙還原顯示在主圖原圖上,實(shí)現(xiàn)編輯后貼紙與主圖原圖的合成,可保證合成圖片的質(zhì)量和清晰度。
可選的,第一進(jìn)程所記錄的編輯區(qū)的圖片合成信息可保存在內(nèi)存中;進(jìn)一步,第一進(jìn)程可在內(nèi)存中維持一個(gè)隊(duì)列,通過(guò)該隊(duì)列記錄編輯區(qū)的圖片合成信息;可選的,編輯區(qū)的數(shù)量可以為至少一個(gè),相應(yīng)的,第一進(jìn)程所維持的隊(duì)列中可以記錄各個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息;
相應(yīng)的,第二進(jìn)程在獲取第一進(jìn)程記錄的編輯區(qū)的圖片合成信息,實(shí)現(xiàn)主圖和編輯后貼紙的合成可以是:第二進(jìn)程根據(jù)進(jìn)程間通信獲取第一進(jìn)程所維持的隊(duì)列,并依次遍歷隊(duì)列所記錄的各編輯區(qū)對(duì)應(yīng)的圖片合成信息,從而實(shí)現(xiàn)第一進(jìn)程所記錄的編輯區(qū)的圖片合成信息的獲取;當(dāng)?shù)诙M(jìn)程每遍歷到一個(gè)編輯區(qū)的圖片合成信息時(shí),可將當(dāng)前遍歷的編輯區(qū)對(duì)應(yīng)的圖片和編輯后的貼紙進(jìn)行合成;合成方式可以如圖5步驟S280所示,也可以是直接將編輯區(qū)中顯示的尺寸轉(zhuǎn)換后的主圖與編輯后的貼紙進(jìn)行合成;
可選的,圖7示出了第二進(jìn)程合成主圖與編輯后貼紙的方法流程圖,參照?qǐng)D7,該流程可以包括:
步驟S300、通過(guò)所述第二進(jìn)程,根據(jù)進(jìn)程間通信獲取所述第一進(jìn)程所維持的隊(duì)列;
步驟S310、通過(guò)所述第二進(jìn)程依次遍歷所述隊(duì)列所記錄的各編輯區(qū)對(duì)應(yīng)的圖片合成信息;
步驟S320、在所述第二進(jìn)程每遍歷到一個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息時(shí),通過(guò)所述第二進(jìn)程將所遍歷的編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成,直至所述隊(duì)列中記錄的各編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙均合成完成。
可選的,每一個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息可以記錄有,該編輯區(qū)對(duì)應(yīng)的主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),主圖的尺寸轉(zhuǎn)換比例,及貼紙編輯后的顯示狀態(tài)信息;第二進(jìn)程每遍歷到一個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息時(shí),可以獲取所遍歷的編輯區(qū)的主圖原圖及貼紙,從而根據(jù)所遍歷到的圖片合成中的尺寸轉(zhuǎn)換比例,將所獲取的貼紙進(jìn)行尺寸轉(zhuǎn)換,并將尺寸轉(zhuǎn)換后的貼紙,根據(jù)所遍歷到的圖片合成中的顯示狀態(tài)信息添加在所獲取的主圖原圖上,實(shí)現(xiàn)在主圖原圖上合成編輯后的貼紙;
可選的,第二進(jìn)程也可以將編輯后的貼紙,與編輯區(qū)中顯示的尺寸轉(zhuǎn)換后的主圖相合成。
可選的,第二進(jìn)程在將編輯區(qū)對(duì)應(yīng)的主圖與編輯后貼紙相合成后,可將合成后圖片的地址傳遞給第一進(jìn)程,以便后續(xù)通過(guò)第一進(jìn)程實(shí)現(xiàn)合成后圖片的調(diào)取、顯示等。
可選的,如果編輯區(qū)的數(shù)量為多個(gè),第二進(jìn)程按照依次遍歷的編輯區(qū)的圖片合成信息,依次進(jìn)行各編輯區(qū)對(duì)應(yīng)的主圖與編輯后貼紙的合成時(shí),可先將上一已合成的編輯區(qū)對(duì)應(yīng)的主圖和貼紙所占用的內(nèi)存進(jìn)行回收,再對(duì)下一個(gè)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙進(jìn)行合成;
具體的,在通過(guò)第二進(jìn)程合成完一個(gè)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙后,將第二進(jìn)程合成該編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙所占用的內(nèi)存進(jìn)行回收,通過(guò)回收內(nèi)存后的第二進(jìn)程來(lái)合成下一個(gè)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙。
結(jié)合圖7所示流程,圖8示出了第二進(jìn)程合成圖片的示意圖,可參照。
可選的,第一進(jìn)程和第二進(jìn)程間的進(jìn)程間通信可通過(guò)AIDL接口實(shí)現(xiàn);AIDL為Android Interface Definition Language的縮寫(xiě),它是一種android內(nèi)部進(jìn)程通信接口的描述語(yǔ)言,通過(guò)它本發(fā)明實(shí)施例可以定義進(jìn)程間的通信接口。
可選的,主進(jìn)程可維持有線程池,該線程池中的線程占用主進(jìn)程的內(nèi)存,本發(fā)明實(shí)施例可通過(guò)線程池中的線程在編輯頁(yè)面進(jìn)行主圖及貼紙的編輯;并在第二進(jìn)程啟動(dòng)時(shí),線程池中的線程可通過(guò)AIDL接口將圖片合成信息傳輸給第二進(jìn)程,由第二進(jìn)程根據(jù)主圖的原圖bitmap創(chuàng)建畫(huà)布,并通過(guò)將編輯后的貼紙繪制在畫(huà)布上,實(shí)現(xiàn)貼紙與主圖原圖的合成;相應(yīng)的,圖9示出了相應(yīng)的信令示意圖,可參照。
可選的,本發(fā)明實(shí)施例還可采用LargeHeap(增大內(nèi)存技術(shù)),提升第一進(jìn)程,和/或,第二進(jìn)程所占用的內(nèi)存,從而為圖片合成分配更多的可使用的內(nèi)存;具體的,本發(fā)明實(shí)施例在AndroidManifest文件中設(shè)置largeHeap為true,使得一進(jìn)程和/或第二進(jìn)程分配到更多的內(nèi)存。
需要說(shuō)明的是,貼紙可以是表情圖片、氣泡(一種用來(lái)表示人物對(duì)話的可輸入文字的特殊貼紙)、字體(系統(tǒng)提供不同的字體供用戶選擇來(lái)輸入文字,屬于一種特殊類型的貼紙)等;
用戶在進(jìn)行貼紙編輯時(shí),可設(shè)定圖10中的矩形區(qū)域?yàn)橛脩籼砑拥馁N紙區(qū)域;矩形左上頂點(diǎn)有“刪除”按鈕,單擊該按鈕可將貼紙刪除;矩形右下頂點(diǎn)有“變形”按鈕,用戶單指按住該按鈕時(shí)做順時(shí)針或逆時(shí)針旋轉(zhuǎn)可將貼紙按同方向旋轉(zhuǎn);用戶單指按鈕“變形”按鈕時(shí)向貼紙中心內(nèi)移動(dòng)可將貼紙按移動(dòng)距離比例縮?。挥脩魡沃赴醋 白冃巍卑粹o時(shí)沿貼紙中心向外移動(dòng)可將貼紙按移動(dòng)距離比例放大;用戶單指按住藍(lán)色矩形內(nèi)的貼紙并移動(dòng)手指時(shí),貼紙將跟隨手指移動(dòng)位置移動(dòng);用戶雙指按在貼紙內(nèi)并同時(shí)向內(nèi)移動(dòng)手指可將貼紙按移動(dòng)比例縮??;雙指按在貼紙內(nèi)并同時(shí)向外移動(dòng)手指可將貼紙按移動(dòng)比例放大;顯然,上述的貼紙編輯操作僅是可選的,具體的編輯操作可根據(jù)實(shí)際情況設(shè)定。
本發(fā)明實(shí)施例將貼紙的編輯、貼紙與主圖的合成通過(guò)不同的進(jìn)程實(shí)現(xiàn),使得貼紙與主圖的合成可以獨(dú)享一個(gè)進(jìn)程的內(nèi)存,避免了進(jìn)程內(nèi)存被其他不必要工作所占用,減少了OOM發(fā)生的情況,降低了應(yīng)用崩潰的現(xiàn)象。進(jìn)一步,通過(guò)將編輯后的貼紙還原在主圖原圖上,并進(jìn)行合成,可保證合成后的圖片的清晰度和質(zhì)量。
下面對(duì)本發(fā)明實(shí)施例提供的圖片合成裝置進(jìn)行介紹,下文描述的圖片合成裝置可與上文描述的圖片合法方法相互對(duì)應(yīng)參照。
圖11為本發(fā)明實(shí)施例提供的圖片合成裝置的結(jié)構(gòu)框圖,該圖片合成裝置可以應(yīng)用于終端設(shè)備,具體可在終端設(shè)備裝載的具有圖片合成功能的應(yīng)用中,實(shí)現(xiàn)下述圖片合成裝置的功能模塊架構(gòu);
參照?qǐng)D11,該圖片合成裝置可以包括:
主圖導(dǎo)入模塊100,用于將選擇的主圖導(dǎo)入編輯區(qū);
貼紙導(dǎo)入模塊200,用于將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
編輯模塊300,用于檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
圖片合成信息確定模塊400,用于通過(guò)所述第一進(jìn)程根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息;
圖片合成信息記錄模塊500,用于通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
獲取模塊600,用于在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;其中,第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
合成模塊700,用于通過(guò)所述第二進(jìn)程根據(jù)所述編輯區(qū)的圖片合成信息,將所述編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成。
可選的,圖12示出了主圖導(dǎo)入模塊100的可選結(jié)構(gòu),參照?qǐng)D12,主圖導(dǎo)入模塊100可以包括:
原圖選擇單元110,用于從圖片數(shù)據(jù)庫(kù)中選擇主圖原圖;
尺寸轉(zhuǎn)換單元120,用于根據(jù)所述編輯區(qū)的尺寸,對(duì)所選擇的主圖原圖的原始尺寸進(jìn)行轉(zhuǎn)換,得到尺寸轉(zhuǎn)換后的主圖,其中,尺寸轉(zhuǎn)換后的主圖的尺寸與所述編輯區(qū)的尺寸相應(yīng);
導(dǎo)入執(zhí)行單元130,用于將尺寸轉(zhuǎn)換后的主圖導(dǎo)入所述編輯區(qū)。
可選的,圖13示出了圖片合成信息確定模塊400的可選結(jié)構(gòu),參照?qǐng)D13,圖片合成信息確定模塊400可以包括:
數(shù)據(jù)項(xiàng)確定單元410,用于通過(guò)所述第一進(jìn)程確定編輯區(qū)中主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),所述主圖的尺寸轉(zhuǎn)換比例,及編輯后的貼紙的顯示狀態(tài)信息;所述主圖的尺寸轉(zhuǎn)換比例為,所述主圖對(duì)應(yīng)的原始尺寸與所述編輯區(qū)的尺寸的比值;
生成單元420,用于通過(guò)所述第一進(jìn)程根據(jù)所述編輯區(qū)中主圖的標(biāo)識(shí),貼紙的標(biāo)識(shí),所述主圖的尺寸轉(zhuǎn)換比例,及編輯后的貼紙的顯示狀態(tài)信息,生成所述編輯區(qū)的圖片合成信息。
可選的,在獲取編輯區(qū)的圖片合成信息后,合成模塊700可通過(guò)下述方式實(shí)現(xiàn)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙的合成;相應(yīng)的,圖14示出了合成模塊700的可選結(jié)構(gòu),參照?qǐng)D14,合成模塊700可以包括:
原圖與貼紙獲取單元710,用于通過(guò)所述第二進(jìn)程根據(jù)所述主圖的標(biāo)識(shí)獲取相應(yīng)的主圖原圖,及根據(jù)所述貼紙的標(biāo)識(shí)獲取相應(yīng)的貼紙;
貼紙尺寸轉(zhuǎn)換單元720,用于通過(guò)所述第二進(jìn)程根據(jù)所述尺寸轉(zhuǎn)換比例,將所獲取的貼紙進(jìn)行尺寸轉(zhuǎn)換;
貼紙?zhí)砑訂卧?30,用于通過(guò)所述第二進(jìn)程根據(jù)所述顯示狀態(tài)信息,將尺寸轉(zhuǎn)換后的貼紙?zhí)砑釉谒@取的主圖原圖上。
可選的,編輯頁(yè)面對(duì)應(yīng)的編輯區(qū)的數(shù)量可以為至少一個(gè),且一個(gè)編輯區(qū)對(duì)應(yīng)導(dǎo)入一張所選擇主圖;
相應(yīng)的,圖片合成信息記錄模塊500具體可用于,在第一進(jìn)程所維持的隊(duì)列中記錄所述編輯區(qū)的圖片合成信息,所述隊(duì)列記錄有各個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息;
獲取模塊600具體可用于,通過(guò)所述第二進(jìn)程,根據(jù)進(jìn)程間通信獲取所述第一進(jìn)程所維持的隊(duì)列;通過(guò)所述第二進(jìn)程,依次遍歷所述隊(duì)列所記錄的各編輯區(qū)對(duì)應(yīng)的圖片合成信息。
可選的,合成模塊700可在所述第二進(jìn)程每遍歷到一個(gè)編輯區(qū)對(duì)應(yīng)的圖片合成信息時(shí),通過(guò)所述第二進(jìn)程將所遍歷的編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成,直至所述隊(duì)列中記錄的各編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙均合成完成。
可選的,本發(fā)明實(shí)施例提供的圖片合成裝置還可用于,在通過(guò)第二進(jìn)程合成完一個(gè)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙后,將第二進(jìn)程合成該編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙所占用的內(nèi)存進(jìn)行回收,通過(guò)回收內(nèi)存后的第二進(jìn)程合成下一個(gè)編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙。
可選的,本發(fā)明實(shí)施例提供的圖片合成裝置還可用于,采用LargeHeap,提升所述第一進(jìn)程和/或第二進(jìn)程所占用的內(nèi)存。
本發(fā)明實(shí)施例還提供一種終端設(shè)備,該終端設(shè)備可以包括上述所述的圖片合成裝置。
可選的,圖15示出了終端設(shè)備的硬件結(jié)構(gòu)框圖,參照?qǐng)D15,該終端設(shè)備可以包括:處理器1,通信接口2,存儲(chǔ)器3和通信總線4;
其中處理器1、通信接口2、存儲(chǔ)器3通過(guò)通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲(chǔ)器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
處理器1可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
存儲(chǔ)器3可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。
其中,程序可具體用于:
將選擇的主圖導(dǎo)入編輯區(qū),并將選擇的貼紙?zhí)砑釉谒鼍庉媴^(qū)顯示的主圖上;
檢測(cè)編輯操作,通過(guò)第一進(jìn)程編輯所述貼紙,使得編輯后的貼紙?jiān)谒鲋鲌D上的顯示狀態(tài)信息與所述編輯操作相應(yīng);
通過(guò)所述第一進(jìn)程根據(jù)編輯后的貼紙的顯示狀態(tài)信息,確定所述編輯區(qū)的圖片合成信息,并通過(guò)所述第一進(jìn)程記錄所述編輯區(qū)的圖片合成信息;
在檢測(cè)到圖片合成指令時(shí),調(diào)用第二進(jìn)程,通過(guò)所述第二進(jìn)程根據(jù)進(jìn)程間通信獲取所述編輯區(qū)的圖片合成信息;其中,第一進(jìn)程與第二進(jìn)程對(duì)應(yīng)的系統(tǒng)內(nèi)存互不占用;
通過(guò)所述第二進(jìn)程根據(jù)所述編輯區(qū)的圖片合成信息,將所述編輯區(qū)對(duì)應(yīng)的主圖和編輯后的貼紙相合成。
本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。