本發明涉及應用程序技術領域,尤其涉及一種應用程序視圖生成圖像的方法及裝置。
背景技術:
應用程序app應用中,用戶的使用和開發者開發過程中有時候會遇到使用界面快照或者視圖合成,需要將某一個或者某幾個app的視圖窗口,合成一張動態可變并且有效的圖像,便于用戶使用或者app自身應用。但是由于開發者針對圖像合成只是用于當前app或者當前的功能,而很多應用程序中要用到圖像合成的功能,但是沒有一個很好的應用程序接口api能完善這一功能,當其他應用要使用圖像合成功能時候,開發代碼的成本很高,這存在可拓展性差等缺陷。
對于將視圖生成圖像,目前來說常見的有微信中的頭像生成、美圖秀秀的拼圖等,微信的群頭像生成的地方應該在服務器端,通過服務器對群頭像進行圖片合成,然后將處理的圖片返給微信前端,微信前端缺少圖像生成機制。美圖秀秀只是針對于照片的合成,對于視圖的整體合成,沒有做出成熟的邏輯。
現有技術的圖片布局比較死板,用戶不能隨意的根據自己的需求修改圖像的展現形式,有的即使能改,也需要在某些邏輯規則內進行修改,不能完全動態(所謂動態,就是指開發者或者用戶針對自己的需求靈活多樣的選擇適合的圖像生成邏輯來生成所需圖像)的根據圖像或者視圖數目,來合成不同類型的所需要的圖像,并且現有技術對圖像的分辨率,清晰度以及存儲大小,不能做出很好的自定義。另外,對外接口使用上非常的復雜,可用性不是很好。不能滿足app開發中的大部分視圖的合成需求。
技術實現要素:
本發明要解決的技術問題是,提供一種應用程序視圖生成圖像的方法及裝置,以解決在應用程序中沒有統一的視圖合成邏輯和接口的問題。
本發明采用的技術方案是,所述應用程序視圖生成圖像的方法,應用于客戶端的圖像生成接口中,所述方法包括:
接收應用程序針對待合成的視圖調用所述圖像生成接口時傳入的所述視圖及圖像合成參數;
當判斷所述視圖符合合成條件時,判斷是否需要用戶手動編輯,若是,則基于應用程序傳入的第一用戶指令和所述圖像合成參數對所述視圖進行合成處理,否則根據所述圖像合成參數對所述視圖進行合成處理;
將合成處理的結果返回給所述應用程序。
進一步的,所述圖像合成參數包括:渲染參數、質量參數和視圖數目;所述質量參數包括:分辨率、清晰度和存儲大小;
所述視圖數目為一個或多個;
所述第一用戶指令包括:用戶對于視圖位置、大小和展現形式的設定指令。
進一步的,所述方法,還包括:
在判斷所述視圖是否符合合成條件之前,判斷接收到的所述圖像合成參數是否超出限定范圍,若是,則提示用戶對所述圖像合成參數進行修改并重新進行是否超出限定范圍的判斷,否則判斷所述視圖是否符合合成條件。
進一步的,所述根據所述圖像合成參數對所述視圖進行合成處理,包括:
根據視圖數目確定出適用的圖像合成模型;所述圖像合成模型中包含所述視圖的橫向和縱向的排版情況;
在CoreGraphics框架下,根據所述圖像合成參數和確定出的所述圖像合成模型對所述視圖進行合成處理。
進一步的,所述判斷所述視圖是否符合合成條件,包括:
解析所述視圖的層級以確定所述視圖的深度;
判斷所述視圖的深度是否達到設定的深度閾值,若是,則判定所述視圖符合合成條件,否則判定所述視圖不符合合成條件。
進一步的,所述方法,還包括:
當所述視圖不符合合成條件時,提示給用戶并根據應用程序傳入的第二用戶指令和所述圖像合成參數對所述視圖進行合成處理。
本發明還提供一種應用程序視圖生成圖像的裝置,應用于客戶端的圖像生成接口中,所述裝置包括:
啟動模塊,用于接收應用程序針對待合成的視圖調用所述圖像生成接口時傳入的所述視圖及圖像合成參數;
處理模塊,用于當判斷所述視圖符合合成條件時,判斷是否需要用戶手動編輯,若是,則基于應用程序傳入的第一用戶指令和所述圖像合成參數對所述視圖進行合成處理,否則根據所述圖像合成參數對所述視圖進行合成處理;
返回模塊,用于將合成處理的結果返回給所述應用程序。
進一步的,所述圖像合成參數包括:渲染參數、質量參數和視圖數目;所述質量參數包括:分辨率、清晰度和存儲大小;
所述視圖數目為一個或多個;
所述第一用戶指令包括:用戶對于視圖位置、大小和展現形式的設定指令。
進一步的,所述處理模塊,還用于:
在判斷所述視圖是否符合合成條件之前,判斷接收到的所述圖像合成參數是否超出限定范圍,若是,則提示用戶對所述圖像合成參數進行修改并重新進行是否超出限定范圍的判斷,否則判斷所述視圖是否符合合成條件。
進一步的,在不需要用戶手動編輯的情況下,所述處理模塊,具體用于:根據視圖數目確定出適用的圖像合成模型;所述圖像合成模型中包含所述視圖的橫向和縱向的排版情況;
在CoreGraphics框架下,根據所述圖像合成參數和確定出的所述圖像合成模型對所述視圖進行合成處理。
進一步的,所述處理模塊,具體用于:
解析所述視圖的層級以確定所述視圖的深度;
判斷所述視圖的深度是否達到設定的深度閾值,若是,則判定所述視圖符合合成條件,否則判定所述視圖不符合合成條件。
進一步的,所述處理模塊,還用于:當視圖不符合合成條件時,提示給用戶根據應用程序傳入的第二用戶指令和所述圖像合成參數對所述視圖進行合成處理。
采用上述技術方案,本發明至少具有下列優點:
本發明所述應用程序視圖生成圖像的方法及裝置,對app的合成功能進行了封裝,便于開發者的使用,為用戶提供更便捷的圖像處理功能。本發明通過動態處理、合理的參數配置,提供給使用者極大的靈活性和可操作性,APP開發者可以根據自己的需求對視圖的合成效果進行自定義,也可以簡單便捷的將自己想要處理的視圖生成圖像。由于本發明對內部邏輯進行了很好的封裝,只要使用者傳入相應的圖像合成參數,就可以很方便的調用接口,減少了使用的復雜度,程序的靈活性高。
附圖說明
圖1為本發明第一實施例的應用程序視圖生成圖像的方法流程圖;
圖2為本發明第二實施例的應用程序視圖生成圖像的方法流程圖;
圖3為本發明第三實施例的應用程序視圖生成圖像的方法流程圖;
圖4為本發明第四實施例的應用程序視圖生成圖像的裝置組成結構示意圖;
圖5為本發明第七實施例的圖像生成接口的組成結構示意圖。
具體實施方式
為更進一步闡述本發明為達成預定目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對本發明進行詳細說明如后。
本發明第一實施例,一種應用程序視圖生成圖像的方法,應用于客戶端的圖像生成接口中,如圖1所示,包括以下具體步驟:
步驟S101,接收應用程序針對待合成的視圖調用所述圖像生成接口時傳入的所述視圖及圖像合成參數;
具體的,所述圖像合成參數包括:渲染參數、質量參數和視圖數目;所述質量參數包括:分辨率、清晰度和存儲大小;所述待合成的視圖數目為一個或多個。
步驟S102,當判斷所述視圖符合合成條件時,判斷是否需要用戶手動編輯,若是,則基于應用程序傳入的第一用戶指令和所述圖像合成參數對所述視圖進行合成處理,否則根據所述圖像合成參數對所述視圖進行合成處理;
具體的,所述第一用戶指令包括:用戶對于視圖位置、大小和展現形式的設定指令。
在步驟S102中,判斷所述視圖是否符合合成條件,包括:
解析所述視圖的層級以確定所述視圖的深度;
判斷所述視圖的深度是否達到設定的深度閾值,若是,則判定所述視圖符合合成條件,否則判定所述視圖不符合合成條件。
進一步的,步驟S102中,所述根據所述圖像合成參數對所述視圖進行合成處理,包括:
根據視圖數目確定出適用的圖像合成模型;所述圖像合成模型中包含所述視圖的橫向和縱向的排版情況;
在CoreGraphics框架下,根據所述圖像合成參數和確定出的所述圖像合成模型對所述視圖進行合成處理。
步驟S103,將合成處理的結果返回給應用程序。
本發明第二實施例,一種應用程序視圖生成圖像的方法,本實施例所述方法與第一實施例大致相同,區別在于,如圖2所示,本實施例的所述方法,在步驟S102判斷所述視圖是否符合合成條件之前,還包括以下具體步驟:
步驟S102-A,判斷接收到的所述圖像合成參數是否超出限定范圍,若是,則提示用戶對所述圖像合成參數進行修改并重新進行是否超出限定范圍的判斷,否則執行步驟S102。
本發明第三實施例,一種應用程序視圖生成圖像的方法,本實施例所述方法與第一實施例大致相同,區別在于,如圖3所示,本實施例的所述方法中,步驟S102還包括:
當視圖不符合合成條件時,提示給用戶并根據應用程序傳入的第二用戶指令和所述圖像合成參數對所述視圖進行合成處理。
具體的,由于此時有視圖不符合合成條件,所以第二用戶指令需要指示不符合合成條件的視圖不參與合成,或者,指示所有視圖均參與合成。
本發明第四實施例,與第一實施例對應,本實施例介紹一種應用程序視圖生成圖像的裝置,應用于客戶端的圖像生成接口中,如圖4所示,所述裝置包括以下組成部分:
1)啟動模塊401,用于接收應用程序針對待合成的視圖調用所述圖像生成接口時傳入的所述視圖及圖像合成參數;
具體的,所述圖像合成參數包括:渲染參數、質量參數和視圖數目;所述質量參數包括:分辨率、清晰度和存儲大小;
所述視圖數目為一個或多個。
2)處理模塊402,用于當判斷所述視圖符合合成條件時,判斷是否需要用戶手動編輯,若是,則基于應用程序傳入的第一用戶指令和所述圖像合成參數對所述視圖進行合成處理,否則根據所述圖像合成參數對所述視圖進行合成處理;
具體的,所述第一用戶指令包括:用戶對于視圖位置、大小和展現形式的設定指令。
處理模塊402,具體用于:
解析所述視圖的層級以確定所述視圖的深度;
判斷所述視圖的深度是否達到設定的深度閾值,若是,則判定所述視圖符合合成條件,否則判定所述視圖不符合合成條件。
進一步的,在不需要用戶手動編輯的情況下,處理模塊402,具體用于:根據視圖數目確定出適用的圖像合成模型;所述圖像合成模型中包含所述視圖的橫向和縱向的排版情況。在CoreGraphics框架下,根據所述圖像合成參數和確定出的所述圖像合成模型對所述視圖進行合成處理。
3)返回模塊403,用于將合成處理的結果返回給所述應用程序。
本發明第五實施例,一種應用程序視圖生成圖像的裝置,本實施例所述裝置與第四實施例大致相同,區別在于,本實施例的所述裝置中,處理模塊402,還用于:在判斷所述視圖是否符合合成條件之前,判斷接收到的所述圖像合成參數是否超出限定范圍,若是,則提示用戶對所述圖像合成參數進行修改并重新進行是否超出限定范圍的判斷,否則判斷所述視圖是否符合合成條件。
本發明第六實施例,一種應用程序視圖生成圖像的裝置,本實施例所述裝置與第四實施例大致相同,區別在于,本實施例的所述裝置中,處理模塊402,還用于:當視圖不符合合成條件時,提示給用戶根據應用程序傳入的第二用戶指令和所述圖像合成參數對所述視圖進行合成處理。
本發明第七實施例,本實施例是在上述實施例的基礎上,結合附圖5介紹一個本發明的應用實例。
如圖5所示,本發明實施例的應用程序視圖生成圖像的圖像生成接口,設置于客戶端側,所述圖像生成接口包括:圖像合成模塊(類似于本發明第四實施例中的處理模塊)和圖像管理模塊(類似于本發明第四實施例中的啟動模塊和返回模塊)。外部應用程序只要調用圖像生成接口中的圖像管理模塊就能達到視圖處理,圖像合成的目的。
本發明實施例的所述圖像生成接口的執行流程如下:
步驟1,外部應用通過調用圖像生成接口時,圖像生成接口中的圖像管理模塊傳入需要處理的視圖和圖像合成參數。
步驟2,判斷視圖是否符合合成條件,若是,則執行步驟3,否則提示給用戶根據用戶的指令執行步驟3進行合成。此時,用戶可以通過指令選擇符合合成條件的視圖進行合成,也可以仍然選擇傳入的所有進行合成。
具體的,解析所述視圖的層級以確定所述視圖的深度;
判斷所述視圖的深度是否達到設定的深度閾值,若是,則判定所述視圖符合合成條件,否則判定所述視圖不符合合成條件。
視圖的深度能夠反映出該視圖是否已經加載完成,若加載完成,則該視圖的深度能夠達到設定的深度閾值,否則達不到設定的深度閾值。
步驟3,判斷傳入的圖像合成參數(包括:渲染參數、質量參數和視圖數目)是否符合合成規則(合成規則是開發者自定義的被用戶使用的規則,可以通過設定傳入的參數的最大數值范圍來確定合成規則),如果符合,則調用合成邏輯,在CoreGraphics框架下依據圖像模型對視圖進行合成處理,生成所需的圖像;如果不符合,則調用其他合成邏輯,即根據用戶的指令,來合成相關的視圖。
比如,用戶要合成一個有三張視圖的圖像,但是其中一個視圖的圖像加載未完成,在步驟2中進行視圖有效性判斷時就會發現未加載完成的視圖無效,則通過異常處理,給用戶提示,是否繼續進行,如果繼續進行是選擇合成一個已經加載完的兩個視圖的圖像還是選擇合成帶有未加載完的視圖的三個視圖的圖像。進行視圖合成時需要判斷傳入的圖像合成參數是否符合合成規則,若符合則繼續進行合成,生成用戶所需的圖像,如果不符合,則提示用戶對所述圖像合成參數進行修改并重新進行是否符合合成規則的判斷。
再比如:用戶要對改圖像進行質量壓縮,只要傳入相應的質量參數和分辨率參數就會生成相應的圖像,如果傳入的參數超出界限或者范圍,就判定不符合邏輯規則,就會報異常,告訴用戶參數錯誤。
通過這個流程,外部應用能夠很好的處理和得到所需要的視圖圖像,解決了開發中存在的開發上的工作量,并且能夠很容易的集成到應用中。
本發明實施例利用了CoreGraphics框架,將簡單或者復雜的視圖,通過一系列的圖像處理邏輯,生成所需要的圖像,并可以用于保存和使用。
本發明實施例實現了在客戶端生成所需圖像的功能,不需要服務器參與處理。
本發明實施例成功提出了視圖的整體合成的基本邏輯需求,能夠處理1張到九張等不同數目的圖片在界面上的動態布局和圖像生成,用戶可以根據自己的需求動態的編輯圖片位置及圖像的大小和展現形式。滿足了能夠app開發中的大部分視圖合成需求,完善了生成機制,減少了使用的復雜度。
本發明實施例可以在保證視圖分辨率的前提下,通過對視圖的壓縮,減小視圖的存儲大小,而且通過輸入分辨率的參數值,靈活改變分辨率大小。
本發明實施例對上述功能進行了完善加強和封裝,其他應用能夠很便捷簡單的移植該技術到應用中,減少了開發成本,并且提高了圖像合成和處理的能力。
通過具體實施方式的說明,應當可對本發明為達成預定目的所采取的技術手段及功效得以更加深入且具體的了解,然而所附圖示僅是提供參考與說明之用,并非用來對本發明加以限制。