圖片融合方法和裝置的制造方法
【技術領域】
[0001]本發明涉及圖片處理技術,特別是涉及一種圖片融合方法和裝置。
【背景技術】
[0002]OpenGL (Open Graphics Library)是個專業的圖形程序接口,是一個功能強大、調用方便的底層圖形庫,被用于二維或三維圖像的處理。它定義了跨編程語言、跨平臺的編程接口的規格,獨立于視窗操作系統或其它操作系統,亦是網絡透明的。因此,支持OpenGL的軟件具有很好的移植性。而OpenGL ES (OpenGL for Embedded Systems)是OpenGL三維圖形API的子集,其針對手機、PDA和游戲主機等嵌入式設備以及多種嵌入式系統專門設計,創造了軟件與圖形加速間靈活強大的底層交互接口。OpenGL ES2.0可以大大提高不同消費電子設備的3D圖形渲染速度,在嵌入式系統上實現了全面可編程的3D圖形。
[0003]在OpenGL中圖片融合是常用的一種技術,即按照不同的融合參數將圖片與圖片的像素數據進行融合計算,得到具有特定效果的融合圖片。
[0004]由于移動終端硬件性能的限制,移動終端上的應用不能像PC端的應用一樣使用大量高清圖片和flash動效。支持OpenGL的移動終端上的應用通常通過將圖片進行融合,然后加以一些幾何和顏色變換來實現炫麗的效果,并達到不會占用太多內存的目的。
[0005]在將兩幅圖片進行融合時,往往需要基于其中第一圖片的圖形輪廓,將其中的第二圖片的光亮效果融合到第一圖片中,第二圖片中圖形輪廓包圍范圍外部分則需要被過濾掉不再顯示。然而,現有技術對圖片的裁切是基于矩形的,無法將圖片按照不規則圖形進行裁切。從而在應用背景中,兩幅圖片進行融合后多余的不需要的部分與應用背景中的其它圖片疊加在一起時,在視覺上也產生了顏色混合的效果,從而可能影響融合圖片的效果顯
/Jn ο
[0006]如圖1所示,圖片a和圖片b屬于具有alpha通道的圖片格式,包含透明部分和非透明部分。圖片本身都是矩形的。圖片a中的非透明部分呈現橢圓形,具有高光亮效果。圖片b中的非透明部分則呈現出“胡”字的形狀。圖片a與圖片b的融合意在實現圖片b的“胡”字的高光亮效果,但是將圖片a與圖片b進行融合后,將融合圖片放置在應用背景中,如圖片c所示,圖片a的“胡”字以外的多余部分和應用背景中的其它圖片疊加在一起時,在視覺上也產生了顏色混合的效果,從而影響了“胡”字的高光高效果的顯示。
【發明內容】
[0007]基于此,有必要提供一種基于圖片中圖形輪廓進行圖片融合的圖片融合方法。
[0008]一種圖片融合方法,包括以下步驟:
[0009]創建裁切載體;
[0010]將第一圖片添加到裁切載體,并設置第一圖片為所述裁切載體上的裁減模板;
[0011]將第二圖片添加到裁切載體,設置所述第二圖片為所述裁切載體上的待裁減內容;
[0012]設置所述第一圖片與所述第二圖片的融合參數;
[0013]將所述裁切載體添加到應用背景的對應層上;
[0014]當接收到圖片融合指令時,沿著所述第一圖片中圖形的輪廓裁剪所述第二圖片,過濾所述第二圖片中所述輪廓包圍范圍外的部分,根據所述融合參數計算所述第二圖片的保留部分與所述第一圖片的融合圖片的像素數據。
[0015]此外,還有必要提供一種基于圖片中圖形輪廓進行圖片融合的圖片融合裝置。
[0016]一種圖片融合裝置,包括:
[0017]載體創建模塊,用于創建裁切載體;
[0018]裁減模板設置模塊,用于將第一圖片添加到所述裁切載體,并設置第一圖片為所述裁切載體上的裁減模板;
[0019]裁減對象設置模塊,用于將第二圖片添加到所述裁切載體,設置所述第二圖片為所述裁切載體上的待裁減內容;
[0020]融合參數設置模塊,用于設置所述第一圖片與所述第二圖片的融合參數;
[0021]載體添加模塊,用于將所述裁切載體添加到應用背景的對應層上;
[0022]融合模塊,用于當接收到圖片融合指令時,沿著所述第一圖片中圖形的輪廓裁剪所述第二圖片,過濾所述第二圖片中所述輪廓包圍范圍外的部分,根據所述融合參數計算所述第二圖片的保留部分與所述第一圖片的融合圖片的像素數據。
[0023]上述圖片融合方法和裝置,創建裁切載體,將第一圖片添加到裁切載體,并設置第一圖片為裁減模板,并將第二圖片添加到裁切載體,使得第二圖片成為待裁減的圖片,在進行第一圖片與第二圖片的融合時,沿著第一圖片中圖形的輪廓裁剪第二圖片,過濾第二圖片中上述輪廓包圍范圍外的部分,將第二圖片的保留部分與第一圖片進行融合。上述圖片融合方法和裝置在將第一圖片和第二圖片進行融合時,是基于第一圖片的圖形輪廓進行的,得到的融合圖片沒有第一圖片的圖形輪廓外的多余部分,從而不會發生多余的部分和應用背景中的其它圖片疊加在一起而產生視覺上顏色混合的效果,也避免了該顏色混合的效果影響融合圖片的效果顯示。
【附圖說明】
[0024]圖1為現有技術中的圖片融合效果示意圖;
[0025]圖2為一個實施例中的圖片融合方法的流程示意圖;
[0026]圖3為另一實施例中的圖片融合方法的流程示意圖;
[0027]圖4為將圖片I中圖片a與圖片b按照一個實施例中的圖片融合方法進行融合得到的融合圖片的效果示意圖;
[0028]圖5為一個實施例中的圖片融合裝置的結構示意圖;
[0029]圖6為另一實施例中的圖片融合裝置的結構示意圖;
[0030]圖7為又一實施例中的圖片融合裝置的結構示意圖。
【具體實施方式】
[0031]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0032]可以理解,本發明所使用的術語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術語限制。這些術語僅用于將第一個元件與另一個元件區分。舉例來說,在不脫離本發明的范圍的情況下,可以將第一圖片稱為第二圖片,且類似地,可將第二圖片稱為第一圖片。第一圖片和第二圖片兩者都是圖片,但其不是同一圖片。
[0033]本申請文件中的圖片融合方法和裝置可基于OpenGL實現。
[0034]如圖2所示,在一個實施例中,一種圖片融合方法,包括以下步驟:
[0035]步驟S201,創建裁切載體。
[0036]裁切載體作為裁減模板和待裁減內容的載體,可用于設置作為裁減模板的圖片和作為待裁減內容的圖片。
[0037]步驟S202,將第一圖片添加到裁切載體,并設置第一圖片為裁切載體上的裁減模板。
[0038]本申請文件中的第一圖片和第二圖片為具有alpha通道的圖片,例如png圖片,第一圖片和第二圖片都包含透明部分和非透明部分。設置第一圖片為裁切載體上的裁減模板,可觸發將第一圖片的非透明部分設置為裁剪區域的操作,從而上述圖片融合方法還包括步驟:在設置第一圖片為裁切載體上的裁減模板之后,將第一圖片的非透明部分設置為裁剪區域。裁減模板的裁剪區域用于作為待裁減內容的裁剪模具,待裁減內容根據裁剪模具的輪廓進行裁剪,可得到裁剪模具范圍內部分和裁剪模具范圍外部分。
[0039]步驟S203,將第二圖片添加到裁切載體,設置第二圖片為裁切載體上的待裁減內容。
[0040]步驟S204,設置第一圖片與第二圖片的融合參數。
[0041]融合參數用于限制第一圖片與第二圖片的像素數據的融合計算,根據不同的融合參數計算第一圖片與第二圖片的像素數據,可得到不同的融合值作為融合圖片的像素數據,從而可得到融合圖片的不同的融合效果。融合參數的數量由底層的渲染引擎決定,若底層的渲染引擎提供η種融合參數,則第一圖片與第二圖片的融合參數的組合共有nXn種,可根據需要的不同融合效果來設置第一圖片與第二圖片各自的η種融合參數。
[0042]步驟S205,將裁切載體添加到應用背景的對應層上。
[0043]應用背景中包括的多個圖片分屬于不同的層次,圖片按照對應的層次疊放。
[0044]步驟S206,當接收到圖片融合指令時,沿著第一圖片中圖形的輪廓裁剪第二圖片,過濾第二圖片中上述輪廓包圍范圍外的部分,根據融合參數計算第二圖片的保留部分與第一圖片的融合圖片的像素數據。
[0045]第一圖片中的非透明部分以圖形形式呈現,第一圖片中的圖形即為第一圖片中的非透明部分。
[0046]可根據融合參數計算第二圖片的保留部分與第一圖片的同一位置上的像素數據(即疊加在一起的像素的數據)的融合值,得到融合圖片的同一位置上的像素數據。
[0047]在一個實施例中,上述的裁切載體為CCClippingNode對象。如圖3所示,本實施例中的圖片融合方法中包括以下步驟:
[0048]步驟S301,創建 CCClippingNode 對象。
[0049]CCClippingNod