本發(fā)明涉及動(dòng)畫(huà)技術(shù)領(lǐng)域,尤其涉及一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法及裝置。
背景技術(shù):
動(dòng)畫(huà)是將連續(xù)漸變的靜態(tài)圖片的序列,沿時(shí)間軸順次更換顯示,基于人眼的視覺(jué)暫留原理而產(chǎn)生運(yùn)動(dòng)視覺(jué)感受的媒體形式。為了達(dá)到某種動(dòng)畫(huà)效果,需要逐幀漸進(jìn)修改圖片的屬性比如顏色、圖畫(huà)元素的位置以及圖畫(huà)元素和背景的對(duì)比等。色調(diào)變化是一種常見(jiàn)的動(dòng)畫(huà)效果,指畫(huà)面的整體顏色逐漸變化,比如天藍(lán)色漸漸轉(zhuǎn)為墨藍(lán)色以表示天黑,或者顏色變亮或變暗表示光線的變化等。
實(shí)現(xiàn)色調(diào)變化需要按一定的規(guī)則改變圖片像素的顏色值,使圖片像素趨向于某一個(gè)色調(diào),最常用的方式是使用底層的OpenGL來(lái)控制像素點(diǎn)顏色變化。OpenGL(Open Graphics Library,開(kāi)放圖形庫(kù))是一個(gè)跨編程語(yǔ)言和平臺(tái)的專(zhuān)業(yè)圖形程序接口和底層圖形庫(kù),但是對(duì)于一個(gè)靜態(tài)圖片,基于OpenGL實(shí)現(xiàn)色調(diào)變化動(dòng)畫(huà),需要技術(shù)員編寫(xiě)程序讀取圖片的像素值,再按照一定時(shí)間規(guī)律逐個(gè)修改圖片像素點(diǎn)的顏色值,這樣的方法程序復(fù)雜,代碼編寫(xiě)難度高,不易實(shí)現(xiàn)且執(zhí)行效率低。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法復(fù)雜度高、執(zhí)行效率低的問(wèn)題,本申請(qǐng)?zhí)峁┮环N基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法及裝置,能夠簡(jiǎn)單方便地由靜態(tài)圖片實(shí)現(xiàn)色調(diào)變化動(dòng)畫(huà)。
根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,包括:
獲取原始靜態(tài)圖片;
將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;以及,
以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
結(jié)合第一方面,在第一方面第一種可能的實(shí)現(xiàn)方式中,所述的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,在將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖之后,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn)之前,還包括:
根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放。
結(jié)合第一方面,在第一方面第二種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的時(shí)間分段規(guī)則為時(shí)間節(jié)點(diǎn)之間的間隔相同且小于0.1秒。
結(jié)合第一方面,在第一方面第三種可能的實(shí)現(xiàn)方式中,所述顏色矩陣包括紅色R分量、綠色G分量、藍(lán)色B分量、透明度Alpha分量和占位符分量。
結(jié)合第一方面,在第一方面第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值,包括:
若i=1,則以顏色矩陣初始值F為第1個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值M1;
若i=n,則以顏色矩陣結(jié)束值L為第n個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mn;否則,
對(duì)于第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mi中的第j個(gè)分量hj(Mi),當(dāng)hj(L)≥hj(F)時(shí),hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,當(dāng)hj(L)<hj(F)時(shí),hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n。
結(jié)合第一方面,在第一方面第五種可能的實(shí)現(xiàn)方式中,所述的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,在將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖之后,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn)之前,還包括:
獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L。
結(jié)合第一方面第五種可能的實(shí)現(xiàn)方式,在第一方面第六種可能的實(shí)現(xiàn)方式中,所述獲取所述原始靜態(tài)圖片的主色,包括:
將顏色值在預(yù)設(shè)偏差范圍以?xún)?nèi)的像素點(diǎn)歸為同一顏色的像素點(diǎn),統(tǒng)計(jì)各個(gè)預(yù)設(shè)偏差范圍內(nèi)的像素點(diǎn);
比較各個(gè)預(yù)設(shè)偏差范圍以?xún)?nèi)像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的預(yù)設(shè)偏差范圍為主色偏差范圍;
計(jì)算主色偏差范圍內(nèi)的顏色值的平均值,以所述平均值對(duì)應(yīng)的顏色為主色。
結(jié)合第一方面第五種或第六種可能的實(shí)現(xiàn)方式,在第一方面第七種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L,包括:
以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F;
以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍;
以所述主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L。
結(jié)合第一方面,在第一方面第八種可能的實(shí)現(xiàn)方式中,所述的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,
使用插值器根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
使用估值器計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
所述以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,包括:將畫(huà)筆的顏色過(guò)濾屬性的值設(shè)置為所述顏色矩陣值,并使用所述畫(huà)筆對(duì)所述位圖進(jìn)行繪制。
根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,包括:
獲取原始靜態(tài)圖片;
將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
在第i個(gè)時(shí)間節(jié)點(diǎn),以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
相應(yīng)于本申請(qǐng)實(shí)施例的第一方面,根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置,包括:
原始靜態(tài)圖片獲取單元,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
插值單元,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
第一顏色矩陣計(jì)算單元,用于在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
繪制單元,用于在第i個(gè)時(shí)間節(jié)點(diǎn),以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
結(jié)合第三方面,在第三方面第一種可能的實(shí)現(xiàn)方式中,所述的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置還包括縮放單元,所述縮放單元用于:在將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖之后,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn)之前,根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放。
結(jié)合第三方面,在第三方面第二種可能的實(shí)現(xiàn)方式中,,所述預(yù)設(shè)的時(shí)間分段規(guī)則為時(shí)間節(jié)點(diǎn)之間的間隔相同且小于0.1秒。
結(jié)合第三方面,在第三方面第三種可能的實(shí)現(xiàn)方式中,,所述顏色矩陣包括紅色R分量、綠色G分量、藍(lán)色B分量、透明度Alpha分量和占位符分量。
結(jié)合第三方面,在第三方面第四種可能的實(shí)現(xiàn)方式中,所述顏色矩陣計(jì)算單元,在計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值時(shí),具體用于:
若i=1,則以顏色矩陣初始值F為第1個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值M1;
若i=n,則以顏色矩陣結(jié)束值L為第n個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mn;否則,
計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mi中的第j個(gè)分量hj(Mi),當(dāng)hj(L)≥hj(F)時(shí),hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,當(dāng)hj(L)<hj(F)時(shí),hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n。
結(jié)合第三方面,在第三方面第五種可能的實(shí)現(xiàn)方式中,所述的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置,還包括:
主色獲取單元,用于在將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖之后,使用插值器根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn)之前,獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
預(yù)設(shè)顏色矩陣確定單元,用于根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L。
結(jié)合第三方面第五種可能的實(shí)現(xiàn)方式,在第三方面第六種可能的實(shí)現(xiàn)方式中,所述主色獲取單元,包括:
像素點(diǎn)統(tǒng)計(jì)模塊,用于將顏色值在預(yù)設(shè)偏差范圍以?xún)?nèi)的像素點(diǎn)歸為同一顏色的像素點(diǎn),統(tǒng)計(jì)各個(gè)預(yù)設(shè)偏差范圍內(nèi)的像素點(diǎn);
主色偏差范圍確定模塊,用于比較各個(gè)預(yù)設(shè)偏差范圍以?xún)?nèi)像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的預(yù)設(shè)偏差范圍為主色偏差范圍;
主色確定模塊,用于計(jì)算主色偏差范圍內(nèi)的顏色值的平均值,以所述平均值對(duì)應(yīng)的顏色為主色。
結(jié)合第三方面第五種或第六種可能的實(shí)現(xiàn)方式,在第三方面第七種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)顏色矩陣確定單元,包括:
顏色矩陣初始值確定模塊,用于以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F;
主色變化范圍設(shè)定模塊,用于以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍;
顏色矩陣結(jié)束值確定模塊,以所述主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L。
結(jié)合第三方面,在第三方面第八種可能的實(shí)現(xiàn)方式中,所述插值單元,用于使用插值器根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
所述第一顏色矩陣計(jì)算單元,用于在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,使用估值器計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
所述繪制單元,用于在第i個(gè)時(shí)間節(jié)點(diǎn),將畫(huà)筆的顏色過(guò)濾屬性的值設(shè)置為所述顏色矩陣值,并使用所述畫(huà)筆對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示。
相應(yīng)于本申請(qǐng)實(shí)施例的第二方面,根據(jù)本申請(qǐng)實(shí)施例的第四方面,提供另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置,包括:
原始靜態(tài)圖片獲取單元,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
第二顏色矩陣計(jì)算單元,根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
插值單元,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
繪制單元,用于在第i個(gè)時(shí)間節(jié)點(diǎn),以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
本申請(qǐng)實(shí)施例提供的技術(shù)方案,生成時(shí)間序列,并在時(shí)間序列的每個(gè)時(shí)間節(jié)點(diǎn)計(jì)算得到不同的顏色矩陣值、將畫(huà)筆的顏色過(guò)濾屬性值設(shè)置為當(dāng)前時(shí)間節(jié)點(diǎn)的顏色矩陣值,同時(shí)使用畫(huà)筆對(duì)圖片進(jìn)行繪制,在每個(gè)時(shí)間節(jié)點(diǎn)動(dòng)態(tài)改變圖片的整體顏色(色調(diào)),得到新圖片,隨著時(shí)間序列生成的新圖片序列即動(dòng)畫(huà)圖片序列。動(dòng)畫(huà)圖片序列是沿時(shí)間序列顯示的,從而在視覺(jué)上形成圖片色調(diào)變化動(dòng)畫(huà)。相比于現(xiàn)有技術(shù)基于OpenGL進(jìn)行復(fù)雜編程的方法不同,本申請(qǐng)實(shí)施例所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法簡(jiǎn)單易行,占用資源少,執(zhí)行效率高,更利于實(shí)時(shí)在線地實(shí)現(xiàn)圖片色調(diào)變化的動(dòng)畫(huà)效果。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請(qǐng)一示例性實(shí)施例示出的一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖;
圖2為本申請(qǐng)一示例性實(shí)施例示出的另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖;
圖3為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖;
圖4為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖;
圖5為本申請(qǐng)一示例性實(shí)施例示出的一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖;
圖6為本申請(qǐng)一示例性實(shí)施例示出的另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖;
圖7為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖;
圖8為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
為了全面理解本申請(qǐng),在以下詳細(xì)描述中提到了眾多具體的細(xì)節(jié),但是本領(lǐng)域技術(shù)人員應(yīng)該理解,本申請(qǐng)可以無(wú)需這些具體細(xì)節(jié)而實(shí)現(xiàn)。在其他實(shí)施例中,不詳細(xì)描述公知的方法、過(guò)程、組件和電路,以免不必要地導(dǎo)致實(shí)施例模糊。
為更好地理解本申請(qǐng),對(duì)本申請(qǐng)所涉及的概念做簡(jiǎn)單介紹如下。屬性動(dòng)畫(huà)是一種動(dòng)畫(huà)制作中對(duì)值進(jìn)行操作的機(jī)制,通過(guò)將值賦給對(duì)象的指定屬性來(lái)得到動(dòng)畫(huà)效果,其中對(duì)象可以是任意對(duì)象,屬性可以是對(duì)象的任意屬性。時(shí)間插值器(為方便描述,以下簡(jiǎn)稱(chēng)插值器)和估值器是屬性動(dòng)畫(huà)中兩個(gè)重要的工具,插值器本質(zhì)是時(shí)間的函數(shù),定義了動(dòng)畫(huà)在時(shí)間上的變化規(guī)律;估值器定義了屬性值的計(jì)算方式,有int、float和color等類(lèi)型,主要根據(jù)屬性的開(kāi)始值、結(jié)束值和插值一起計(jì)算出各個(gè)時(shí)間點(diǎn)的屬性值。在屬性動(dòng)畫(huà)實(shí)現(xiàn)過(guò)程中,插值器和估值器通常會(huì)聯(lián)合使用,插值器生成時(shí)間序列,估值器根據(jù)時(shí)間序列順序計(jì)算每個(gè)時(shí)刻屬性的值。插值器和估值器都可以由用戶(hù)自定義以實(shí)現(xiàn)更豐富的動(dòng)畫(huà)效果。
位圖(Bitmap,BMP文件格式)是一種廣泛使用的圖像文件格式,由于位圖可以不作任何變化地保存圖像像素域的數(shù)據(jù),因此成為取得RAW數(shù)據(jù)(原始數(shù)據(jù))的重要來(lái)源。畫(huà)筆是屬性動(dòng)畫(huà)中的繪制工具,可以根據(jù)設(shè)置的屬性對(duì)圖片進(jìn)行繪制。顏色過(guò)濾,指整體改變圖片的顏色,仿佛對(duì)圖片的顏色進(jìn)行了過(guò)濾一樣,故稱(chēng)之為顏色過(guò)濾。
圖1為本申請(qǐng)一示例性實(shí)施例示出的一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖,如圖1所示,所述方法包括:
步驟S101,獲取原始靜態(tài)圖片;
步驟S102,將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖。
其中,原始靜態(tài)圖片可以預(yù)存于某個(gè)文件或數(shù)據(jù)庫(kù)中,使用系統(tǒng)的圖片讀取函數(shù)來(lái)讀取,原始靜態(tài)圖片也可以為某個(gè)動(dòng)畫(huà)或者視頻的某一幀,使用幀抓取函數(shù)來(lái)獲取。原始靜態(tài)圖片可以為單獨(dú)的圖片,也可以是合成動(dòng)畫(huà)中的背景圖片。獲取到原始靜態(tài)圖片后,將圖片進(jìn)行格式轉(zhuǎn)換,得到位圖,后續(xù)以該位圖作為Bitmap對(duì)象,從該Bitmap對(duì)象中讀取圖片的像素?cái)?shù)據(jù)來(lái)進(jìn)行相關(guān)計(jì)算。
步驟S103,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn)。
其中,在屬性動(dòng)畫(huà)中,使用插值器生成n個(gè)時(shí)間節(jié)點(diǎn),所有時(shí)間節(jié)點(diǎn)組成一個(gè)時(shí)間序列,因此也可視為插值器生成包含n個(gè)時(shí)間節(jié)點(diǎn)的時(shí)間序列。所述時(shí)間序列決定了生成的圖片序列的顯示頻率,每個(gè)時(shí)間節(jié)點(diǎn)生成的圖片沿著時(shí)間序列依次顯示,形成動(dòng)畫(huà)效果,因此時(shí)間節(jié)點(diǎn)之間的時(shí)間間隔需滿足視覺(jué)暫留效果的要求。為滿足視覺(jué)暫留效果,時(shí)間間隔須在0.4s以下,優(yōu)選的是時(shí)間間隔在0.1s以下,這樣動(dòng)畫(huà)效果更好更為平滑。所述預(yù)設(shè)的時(shí)間分段規(guī)則可以為線性也可以為非線性,線性指時(shí)間節(jié)點(diǎn)之間的時(shí)間間隔相等,非線性指時(shí)間節(jié)點(diǎn)之間的時(shí)間間隔不相等,非線性可以為多種形式例如呈拋物線增加或減少。按線性的時(shí)間分段規(guī)則得到的時(shí)間序列顯示的動(dòng)畫(huà)平穩(wěn)漸進(jìn),比較符合人的視覺(jué)習(xí)慣,按非線性的時(shí)間分段規(guī)則得到的時(shí)間序列顯示的動(dòng)畫(huà)可以制造閃爍等視覺(jué)效果,但容易有雜亂之感。
步驟S104,在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;以及,
步驟S105,在第i個(gè)時(shí)間節(jié)點(diǎn),以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
其中,在插值器每生成一個(gè)時(shí)間節(jié)點(diǎn)時(shí),計(jì)算該時(shí)間節(jié)點(diǎn)對(duì)應(yīng)的顏色矩陣值,在屬性動(dòng)畫(huà)中,可以使用估值器計(jì)算時(shí)間節(jié)點(diǎn)對(duì)應(yīng)的顏色矩陣值。圖片像素的顏色都包含有紅色R分量、綠色G分量、藍(lán)色B分量和透明度Alpha分量這四個(gè)分量,顏色矩陣則將每個(gè)分量作為矩陣的一行,按R、G、B、A(Alpha,簡(jiǎn)寫(xiě)為A)的順序排列,每行默認(rèn)分為5列,也就是以4×5的矩陣來(lái)表示顏色矩陣,顏色矩陣規(guī)范式為:
其中V為偏移量。例如:
F為顏色矩陣。像素顏色計(jì)算公式為:
r=R*m11+G*m12+B*m13+A*m14+m15*255;
g=R*m21+G*m22+B*m23+A*m24+m25*255;
b=R*m31+G*m32+B*m33+A*m34+m35*255;
a=R*m41+G*m42+B*m43+A*m44+m45*255。
其中,大寫(xiě)的R、G、B和A為經(jīng)顏色矩陣計(jì)算前的原顏色分量值,小寫(xiě)的r、g、b和a為計(jì)算后的顏色分量值。顏色矩陣中的元素通常在0和1之間取值,0表示none,也就是顏色不可見(jiàn),1表示保持原值,用戶(hù)也可以根據(jù)圖片的情況和計(jì)算的需要自定義元素的取值范圍,也就是不限定于在0和1之間取值。通過(guò)將顏色矩陣值與像素的顏色值進(jìn)行計(jì)算,可以改變像素的顏色,將顏色矩陣值與圖片中的所有像素顏色值進(jìn)行計(jì)算,可以一致地改變圖片中所有像素的顏色,從而能夠整體上改變圖片的色調(diào)。
較常用的顏色矩陣為4×5的矩陣,為使計(jì)算更為方便,在顏色矩陣中引入占位符分量,以占位符分量為第5行,構(gòu)成5×5的對(duì)稱(chēng)矩陣,對(duì)稱(chēng)矩陣更方便計(jì)算,而且占位符分量有利于引入另外的偏移量,使顏色矩陣對(duì)像素顏色的控制更為靈活。
本申請(qǐng)的目的在于跟隨插值器生成的時(shí)間序列漸進(jìn)地修改圖片的顏色,因此每個(gè)時(shí)間節(jié)點(diǎn)都要計(jì)算得到新的顏色矩陣以改變圖片像素的顏色值,也就是要得到一個(gè)與時(shí)間序列對(duì)應(yīng)的顏色矩陣序列。為計(jì)算得到顏色矩陣序列,可以使用內(nèi)插法,預(yù)設(shè)一個(gè)顏色矩陣初始值F和顏色矩陣結(jié)束值L,然后插值得到中間一系列的值。F和L由用戶(hù)根據(jù)圖片原本的色調(diào)和希望達(dá)到的最終色調(diào)來(lái)設(shè)定,所述顏色矩陣計(jì)算規(guī)則由用戶(hù)根據(jù)希望達(dá)到的色調(diào)變化動(dòng)畫(huà)的中間效果來(lái)設(shè)定,顏色矩陣計(jì)算規(guī)則可以為線性也可以為非線性,線性顏色矩陣計(jì)算規(guī)則使顏色矩陣線性變化,非線性顏色矩陣計(jì)算規(guī)則使顏色矩陣非線性變化。顏色矩陣線性變化指顏色矩陣中的每個(gè)分量的值按線性規(guī)律變化,例如按等差規(guī)律變化,顏色矩陣非線性變化則指顏色矩陣中的每個(gè)分量的值按非線性規(guī)律變化,例如按等比規(guī)律變化。在線性變化的顏色矩陣序列作用下,圖片色調(diào)均勻變換,動(dòng)畫(huà)效果勻速漸進(jìn),視覺(jué)上較為平緩,非線性變化的顏色矩陣序列作用下,圖片色調(diào)變換不均勻,動(dòng)畫(huà)效果存在突變,視覺(jué)上較有沖擊感,但割裂感也較強(qiáng)。
在一種可能的實(shí)施方式中,線性計(jì)算顏色矩陣序列,可以包括:
若i=1,則以顏色矩陣初始值F為第1個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值M1;
若i=n,則以顏色矩陣結(jié)束值L為第n個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mn;否則,
對(duì)于第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mi中的第j個(gè)分量hj(Mi),當(dāng)hj(L)≥hj(F)時(shí),hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,當(dāng)hj(L)<hj(F)時(shí),hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n。
其中,在插值器生成第1個(gè)時(shí)間節(jié)點(diǎn)時(shí),以F為第1個(gè)顏色矩陣,在生成第n個(gè)時(shí)間節(jié)點(diǎn)時(shí),以L為第n個(gè)顏色矩陣,這中間,對(duì)于第i個(gè)時(shí)間節(jié)點(diǎn),以第1個(gè)顏色矩陣(即F)為基礎(chǔ),逐步按線性規(guī)律計(jì)算第i個(gè)顏色矩陣,具體地,將第i個(gè)顏色矩陣Mi的每個(gè)分量線性遞增或線性遞減,對(duì)于顏色矩陣的第j個(gè)分量,當(dāng)hj(L)≥hj(F),也就是L中第j個(gè)分量的值大于或等于F中第j個(gè)分量的值時(shí),第i個(gè)顏色矩陣的第j個(gè)分量hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,hj(Mi)依次遞增,其中hj(L)=hj(F)相當(dāng)于分量沒(méi)有變化,該分量的各個(gè)中間值也就保持不變;當(dāng)hj(L)<hj(F),也就是L中第j個(gè)分量的值小于F中第j個(gè)分量的值時(shí),第i個(gè)顏色矩陣的第j個(gè)分量hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n,hj(Mi)依次遞減。這種實(shí)施方式中,顏色矩陣序列中顏色矩陣的分量線性遞增或遞減,計(jì)算方法簡(jiǎn)單,動(dòng)畫(huà)效果漸進(jìn)平穩(wěn),占用計(jì)算資源也少。
顏色矩陣計(jì)算規(guī)則也可以為非線性的,例如使顏色矩陣的分量等比變化,也可以根據(jù)特效要求設(shè)計(jì)其他計(jì)算規(guī)則例如正弦變化規(guī)則,也可以不依據(jù)數(shù)學(xué)規(guī)則而在設(shè)定的范圍內(nèi)隨機(jī)為顏色矩陣中的分量賦值,設(shè)定的范圍由顏色矩陣初始值和顏色矩陣結(jié)束值決定。例如,希望讓綠色植物圖的綠色變深,可以將顏色矩陣中的G分量從初始值開(kāi)始增加,每次增加多少可以隨機(jī)指定,不超過(guò)最終值即可,例如:
增加G分量,
在第i個(gè)時(shí)間節(jié)點(diǎn),得到第i個(gè)顏色矩陣后,將畫(huà)筆(paint)的顏色過(guò)濾屬性設(shè)置為第i個(gè)顏色矩陣值,使用所述畫(huà)筆對(duì)所述位圖進(jìn)行繪制,得到第i個(gè)新圖片。生成的所有新圖片構(gòu)成動(dòng)畫(huà)圖片序列,沿時(shí)間序列顯示而實(shí)現(xiàn)色調(diào)變化動(dòng)畫(huà)。其中,畫(huà)筆為圖片繪制工具,本申請(qǐng)中畫(huà)筆對(duì)圖片進(jìn)行繪制即畫(huà)筆將顏色矩陣和圖片像素的顏色矩陣進(jìn)行計(jì)算,改變圖片像素的顏色值,從而改變圖片的顏色,顏色矩陣則作為畫(huà)筆的顏色過(guò)濾屬性由畫(huà)筆在繪制時(shí)調(diào)用。具體地,畫(huà)筆在繪制時(shí)可以調(diào)用繪制函數(shù)例如Android系統(tǒng)中的Ondraw函數(shù)來(lái)完成新圖片的繪制,更新原圖片像素。
本申請(qǐng)所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,與通常使用OpenGL進(jìn)行復(fù)雜編程實(shí)現(xiàn)的方法不同,只需在時(shí)間序列的每個(gè)時(shí)間節(jié)點(diǎn)生成不同的顏色矩陣,使用顏色矩陣改變顏色過(guò)濾屬性,根據(jù)顏色過(guò)濾屬性對(duì)圖片進(jìn)行繪制,從而在每個(gè)時(shí)間節(jié)點(diǎn)動(dòng)態(tài)改變圖片的整體顏色(色調(diào)),得到圖片色調(diào)變化動(dòng)畫(huà),本申請(qǐng)所提供的方法簡(jiǎn)單易行,占用資源少,執(zhí)行效率高,更利于實(shí)時(shí)在線地實(shí)現(xiàn)圖片色調(diào)變化的動(dòng)畫(huà)效果。另外,需要說(shuō)明的是,按照本申請(qǐng)所提供的方法生成的圖片色調(diào)變化動(dòng)畫(huà),不僅可以單獨(dú)顯示,也可以和其他動(dòng)畫(huà)例如圖片元素位置變化動(dòng)畫(huà)疊加在一起形成更豐富的動(dòng)畫(huà)效果。
本申請(qǐng)所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,可以應(yīng)用于具有屬性動(dòng)畫(huà)的系統(tǒng),包括但不限于Android(安卓)和iOS(蘋(píng)果移動(dòng)系統(tǒng))等。
圖2為本申請(qǐng)一示例性實(shí)施例示出的另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖,如圖2所示,所述方法包括:
步驟S201,獲取原始靜態(tài)圖片;
步驟S201,將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
步驟S203,根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放。
其中,步驟S201至步驟S202與步驟S101至步驟S102相同。在將靜態(tài)圖片轉(zhuǎn)為位圖后,為更準(zhǔn)確地獲取位圖像素,防止像素缺失(圖片大于顯示區(qū)域時(shí)),以及消除邊框的影響(圖片小于顯示區(qū)域時(shí)在圖片周?chē)赡軙?huì)出現(xiàn)邊框),對(duì)所述位圖進(jìn)行縮放以使位圖與顯示區(qū)域的大小一致。通常在圖像處理程序中,圖片為View(視圖)中的一個(gè)對(duì)象,為更方便地對(duì)圖片進(jìn)行縮放等處理,可以使圖片的View繼承于包含縮放功能函數(shù)的父視圖,例如安卓系統(tǒng)中的ImageView,將包含位圖的View繼承于ImageView,可以方便地調(diào)用父視圖中的縮放功能函數(shù)對(duì)位圖進(jìn)行縮放,使位圖和顯示區(qū)域一致。
步驟S204,獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
步驟S205,根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L。
圖片的色調(diào)通常由圖片的主要顏色決定,圖片的主色發(fā)生變化在視覺(jué)上也會(huì)形成色調(diào)變化的效果,在有些應(yīng)用場(chǎng)景下,需要從圖片本來(lái)具有的主色基調(diào)出發(fā)來(lái)設(shè)計(jì)動(dòng)畫(huà)效果,比如圖片中有多種顏色區(qū)別較大的色塊例如紅色塊、藍(lán)色塊和綠色塊,由于色塊顏色區(qū)別較大,難以直接確定整體色調(diào)變化的起始顏色值和結(jié)束顏色值,這種情況下便可以先獲取圖片的主色,從主色出發(fā)改變圖片的色調(diào)。主色即圖片中像素點(diǎn)最多的顏色,在得到原始靜態(tài)圖片的位圖后,讀取位圖的像素?cái)?shù)據(jù),根據(jù)像素?cái)?shù)據(jù)統(tǒng)計(jì)同顏色值的像素點(diǎn),哪種顏色值的像素點(diǎn)最多,則該顏色值對(duì)應(yīng)的顏色為主色。由于像素點(diǎn)的顏色值與標(biāo)準(zhǔn)顏色值之間可能存在誤差,因此也可以將顏色值在預(yù)設(shè)的偏差范圍內(nèi)的像素點(diǎn)歸為同一顏色,然后統(tǒng)計(jì)各個(gè)偏差范圍內(nèi)的像素點(diǎn),比較各個(gè)偏差范圍內(nèi)的像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的偏差范圍為主色偏差范圍,然后取該主色偏差范圍內(nèi)的顏色值的平均值,以該平均值對(duì)應(yīng)的顏色為主色。所述偏差范圍可以根據(jù)圖片顏色分布情況確定,如果圖片色塊顏色差別較大,則偏差范圍可以預(yù)設(shè)得較小,以使顏色歸類(lèi)更精確,若色塊很多,色塊顏色差別較小或者有大有小,則可以將偏差范圍預(yù)設(shè)得較大,以方便得到主色。
在獲取到位圖的主色后,可以以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F,具體地,若得到的主色與圖片中最大色塊的顏色值相同,則F為單位矩陣即可,若得到的主色如前面所述是根據(jù)主色偏差范圍內(nèi)的顏色值的平均值得到的,則主色的顏色值可能與圖片色塊的實(shí)際顏色值存在數(shù)學(xué)計(jì)算上的偏差,這種情況下,取最大色塊的某一像素點(diǎn)的顏色值,以能夠?qū)⒃擃伾蹈淖優(yōu)橹魃伾档念伾仃嚍镕。確定L后,再以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍,以主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L,其中主色變化值可以由用戶(hù)根據(jù)期望達(dá)到的色調(diào)變化程度在程序中預(yù)先設(shè)定,主色變化值即主色變化范圍兩個(gè)邊界值之差的絕對(duì)值?;蛘撸到y(tǒng)在獲取到位圖的主色后,通過(guò)用戶(hù)界面顯示主色信息,并在用戶(hù)界面上設(shè)置用于輸入F和L的輸入框,用戶(hù)在查看圖片的主色信息后,根據(jù)期望的效果自定義F和L,并通過(guò)F和L的輸入框進(jìn)行輸入,系統(tǒng)通過(guò)所述輸入框獲取F和L,完成F和L的確定。
步驟S206,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
步驟S207,在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;以及,
步驟S208,以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
其中,步驟S206至步驟S208與步驟S103至步驟S105相同。本實(shí)施例所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法,在得到位圖后,根據(jù)顯示區(qū)域的大小對(duì)位圖進(jìn)行縮放,以防止像素缺失以及消除邊框的影響,從而更精確地得到圖片的像素?cái)?shù)據(jù),并且本實(shí)施例所提供的方法先獲取圖片的主色,基于主色確定顏色矩陣初始值和顏色矩陣結(jié)束值,可以更方便地實(shí)現(xiàn)多色塊圖片的色調(diào)變化動(dòng)畫(huà)效果。
圖3為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖,如圖3所示,所述方法包括:
步驟S301,獲取原始靜態(tài)圖片;
步驟S302,將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
步驟S303,根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
步驟S304,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
步驟S305,在第i個(gè)時(shí)間節(jié)點(diǎn),以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
圖3所示實(shí)施例與圖1所示實(shí)施例的主要區(qū)別在于,圖1所示實(shí)施例是在每個(gè)時(shí)間節(jié)點(diǎn)實(shí)時(shí)計(jì)算顏色矩陣值,而圖3所示實(shí)施例是在生成時(shí)間節(jié)點(diǎn)之前先將各個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值計(jì)算好,然后使用插值器生成時(shí)間節(jié)點(diǎn),在生成每個(gè)時(shí)間節(jié)點(diǎn)的同時(shí),不必再計(jì)算顏色矩陣值,只需根據(jù)已生成的對(duì)應(yīng)于當(dāng)前時(shí)間節(jié)點(diǎn)的顏色矩陣值來(lái)設(shè)置顏色過(guò)濾屬性的值,具體地,在第i個(gè)時(shí)間節(jié)點(diǎn),將畫(huà)筆的顏色過(guò)濾屬性設(shè)置為已生成的第i個(gè)顏色矩陣值,再使用畫(huà)筆對(duì)位圖進(jìn)行繪制。本實(shí)施例由于先計(jì)算顏色矩陣值,因此時(shí)間序列生成過(guò)程及動(dòng)畫(huà)圖片序列生成過(guò)程中不需耗費(fèi)計(jì)算時(shí)間和資源,相比圖1所示的方法,時(shí)間序列中時(shí)間節(jié)點(diǎn)之間的間隔可以更小,程序執(zhí)行效率更高,不過(guò)圖3所示的方法中顏色矩陣值在計(jì)算完畢后需依次保存,而圖1中實(shí)時(shí)計(jì)算得到的顏色矩陣值可以只在當(dāng)前暫存,內(nèi)存消耗可以較少。
圖4為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法的流程示意圖,如圖4所示,所述方法包括:
步驟S401,獲取原始靜態(tài)圖片;
步驟S402,將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
步驟S403,根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放。
步驟S404,獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
步驟S405,根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L;
步驟S406,根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
步驟S407,根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
步驟S408,在第i個(gè)時(shí)間節(jié)點(diǎn),以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
其中,步驟S401至步驟S402與步驟S301至步驟S302相同,步驟S403至步驟S405與步驟S203至步驟S205相同,步驟S406至步驟S408與步驟S303至步驟S305相同。在本申請(qǐng)中,步驟S403與步驟S404至S405可以同時(shí)加入到圖1和圖3所示的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)方法中,也可以只加入步驟S403,或者只加入步驟S404和S405。
通過(guò)以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),并存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)智能設(shè)備執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)數(shù)據(jù)和程序代碼的介質(zhì)。
圖5為本申請(qǐng)一示例性實(shí)施例示出的一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖,如圖5所示,所述裝置包括:
原始靜態(tài)圖片獲取單元U501,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元U502,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
插值單元U503,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
第一顏色矩陣計(jì)算單元U504,用于在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
繪制單元U505,用于在第i個(gè)時(shí)間節(jié)點(diǎn),以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
其中,若原始靜態(tài)圖片預(yù)存于某個(gè)文件或數(shù)據(jù)庫(kù)中,則原始靜態(tài)圖片獲取單元U501可以使用系統(tǒng)的圖片讀取函數(shù)來(lái)獲取原始靜態(tài)圖片,若原始靜態(tài)圖片為某個(gè)動(dòng)畫(huà)或者視頻的某一幀,則原始靜態(tài)圖片獲取單元U501可以使用幀抓取函數(shù)來(lái)獲取原始靜態(tài)圖片。在U501獲取到原始靜態(tài)圖片后,圖片轉(zhuǎn)換單元U502將圖片進(jìn)行格式轉(zhuǎn)換,得到位圖,后續(xù)繪制單元U505以該位圖作為Bitmap對(duì)象,從該Bitmap對(duì)象中讀取圖片的像素?cái)?shù)據(jù)來(lái)進(jìn)行計(jì)算和繪制。
其中,插值單元U503使用插值器生成n個(gè)時(shí)間節(jié)點(diǎn),所有時(shí)間節(jié)點(diǎn)組成一個(gè)時(shí)間序列,每個(gè)時(shí)間節(jié)點(diǎn)生成的圖片沿著時(shí)間序列依次顯示,形成動(dòng)畫(huà)效果。為滿足視覺(jué)暫留效果,所述時(shí)間節(jié)點(diǎn)的時(shí)間間隔須在0.4s以下,優(yōu)選的是時(shí)間間隔在0.1s以下,這樣動(dòng)畫(huà)效果會(huì)更為平滑。插值單元U503所使用的預(yù)設(shè)的時(shí)間分段規(guī)則可以為線性也可以為非線性,線性指時(shí)間節(jié)點(diǎn)之間的時(shí)間間隔相等,非線性指時(shí)間節(jié)點(diǎn)之間的時(shí)間間隔不相等。按線性的時(shí)間分段規(guī)則得到的時(shí)間序列顯示的動(dòng)畫(huà)平穩(wěn)漸進(jìn),比較符合人的視覺(jué)習(xí)慣,按非線性的時(shí)間分段規(guī)則得到的時(shí)間序列顯示的動(dòng)畫(huà)可以制造閃爍等視覺(jué)效果,但容易有雜亂之感。
插值單元U503每生成一個(gè)時(shí)間節(jié)點(diǎn),第一顏色矩陣計(jì)算單元U504計(jì)算該時(shí)間節(jié)點(diǎn)對(duì)應(yīng)的顏色矩陣值,第一顏色矩陣計(jì)算單元可以使用屬性動(dòng)畫(huà)的估值器來(lái)計(jì)算顏色矩陣值。顏色矩陣規(guī)范式為:
其中V為偏移量。F為顏色矩陣。像素顏色計(jì)算公式為:
r=R*m11+G*m12+B*m13+A*m14+m15*255;
g=R*m21+G*m22+B*m23+A*m24+m25*255;
b=R*m31+G*m32+B*m33+A*m34+m35*255;
a=R*m41+G*m42+B*m43+A*m44+m45*255。
其中,大寫(xiě)的R、G、B和A為經(jīng)顏色矩陣計(jì)算前的原顏色分量值,小寫(xiě)的r、g、b和a為計(jì)算后的顏色分量值。較常用的顏色矩陣為4×5的矩陣,為使計(jì)算更為方便,在顏色矩陣中引入占位符分量,以占位符分量為第5行,構(gòu)成5×5的對(duì)稱(chēng)矩陣,對(duì)稱(chēng)矩陣更方便計(jì)算,而且占位符分量有利于引入另外的偏移量,使顏色矩陣對(duì)像素顏色的控制更為靈活。
繪制單元U505跟隨插值器生成的時(shí)間序列漸進(jìn)地使用第一顏色矩陣計(jì)算單元U504計(jì)算得到的顏色矩陣修改圖片的顏色,第一顏色矩陣計(jì)算單元U504每個(gè)時(shí)間節(jié)點(diǎn)計(jì)算得到新的顏色矩陣,從而得到與時(shí)間序列相對(duì)應(yīng)的顏色矩陣序列。第一顏色矩陣計(jì)算單元U504可以使用內(nèi)插法進(jìn)行計(jì)算,預(yù)設(shè)顏色矩陣初始值F和顏色矩陣結(jié)束值L,然后插值得到中間一系列的值。F和L由用戶(hù)根據(jù)圖片原本的色調(diào)和希望達(dá)到的最終色調(diào)來(lái)設(shè)定,所述顏色矩陣計(jì)算規(guī)則由用戶(hù)根據(jù)希望達(dá)到的色調(diào)變化動(dòng)畫(huà)的中間效果來(lái)設(shè)定,顏色矩陣計(jì)算規(guī)則可以為線性也可以為非線性,線性顏色矩陣計(jì)算規(guī)則使顏色矩陣線性變化,非線性顏色矩陣計(jì)算規(guī)則使顏色矩陣非線性變化。在線性變化的顏色矩陣序列作用下,圖片色調(diào)均勻變換,動(dòng)畫(huà)效果勻速漸進(jìn),非線性變化的顏色矩陣序列作用下,圖片色調(diào)變換不均勻,動(dòng)畫(huà)效果存在突變。
在一種可能的實(shí)施方式中,第一顏色矩陣計(jì)算單元U504線性計(jì)算顏色矩陣序列時(shí),具體用于:
若i=1,則以顏色矩陣初始值F為第1個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值M1;
若i=n,則以顏色矩陣結(jié)束值L為第n個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mn;否則,
對(duì)于第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值Mi中的第j個(gè)分量hj(Mi),當(dāng)hj(L)≥hj(F)時(shí),hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,當(dāng)hj(L)<hj(F)時(shí),hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n。
其中,在插值單元U503生成第1個(gè)時(shí)間節(jié)點(diǎn)時(shí),第一顏色矩陣計(jì)算單元U504以F為第1個(gè)顏色矩陣,在插值單元U503生成第n個(gè)時(shí)間節(jié)點(diǎn)時(shí),第一顏色矩陣計(jì)算單元U504以L為第n個(gè)顏色矩陣,這中間,對(duì)于第i個(gè)時(shí)間節(jié)點(diǎn),第一顏色矩陣計(jì)算單元U504以第1個(gè)顏色矩陣(即F)為基礎(chǔ),逐步按線性規(guī)律計(jì)算第i個(gè)顏色矩陣,具體地,將第i個(gè)顏色矩陣Mi的每個(gè)分量線性遞增或線性遞減,對(duì)于顏色矩陣的第j個(gè)分量,當(dāng)hj(L)≥hj(F)時(shí),第i個(gè)顏色矩陣的第j個(gè)分量hj(Mi)=hj(F)+[hj(L)-hj(F)]×i/n,hj(Mi)依次遞增,其中hj(L)=hj(F)相當(dāng)于分量沒(méi)有變化,該分量的各個(gè)中間值也就保持不變;當(dāng)hj(L)<hj(F)時(shí),第i個(gè)顏色矩陣的第j個(gè)分量hj(Mi)=hj(L)-[hj(F)-hj(L)]×i/n,hj(Mi)依次遞減。這種實(shí)施方式中,顏色矩陣序列中顏色矩陣的分量線性遞增或遞減,計(jì)算方法簡(jiǎn)單,動(dòng)畫(huà)效果漸進(jìn)平穩(wěn),占用計(jì)算資源少。
第一顏色矩陣計(jì)算單元U504使用的顏色矩陣計(jì)算規(guī)則也可以為非線性的,例如使顏色矩陣的分量等比變化,也可以根據(jù)特效要求設(shè)計(jì)其他顏色矩陣計(jì)算規(guī)則例如正弦變化規(guī)則,也可以不依據(jù)數(shù)學(xué)規(guī)則而在設(shè)定的范圍內(nèi)隨機(jī)為顏色矩陣中的分量賦值,設(shè)定的范圍由顏色矩陣初始值和顏色矩陣結(jié)束值決定。
在第i個(gè)時(shí)間節(jié)點(diǎn),第一顏色矩陣計(jì)算單元U504得到第i個(gè)顏色矩陣后,繪制單元U505將畫(huà)筆的顏色過(guò)濾屬性設(shè)置為第i個(gè)顏色矩陣值,使用所述畫(huà)筆對(duì)所述位圖進(jìn)行繪制改變圖片的色調(diào),得到第i個(gè)新圖片。生成的所有新圖片構(gòu)成動(dòng)畫(huà)圖片序列,沿時(shí)間序列顯示而實(shí)現(xiàn)色調(diào)變化動(dòng)畫(huà)。
本申請(qǐng)所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置,在時(shí)間序列的每個(gè)時(shí)間節(jié)點(diǎn)生成不同的顏色矩陣,通過(guò)畫(huà)筆使用顏色矩陣在每個(gè)時(shí)間節(jié)點(diǎn)動(dòng)態(tài)改變圖片的整體顏色,從而得到圖片色調(diào)變化動(dòng)畫(huà),所述裝置執(zhí)行時(shí)占用資源少,執(zhí)行效率高,更利于實(shí)時(shí)在線地實(shí)現(xiàn)圖片色調(diào)變化的動(dòng)畫(huà)效果。按照本申請(qǐng)所提供的裝置生成的圖片色調(diào)變化動(dòng)畫(huà),不僅可以單獨(dú)顯示,也可以和其他動(dòng)畫(huà)疊加在一起形成更豐富的動(dòng)畫(huà)效果。本申請(qǐng)所提供的基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置,可以應(yīng)用于具有屬性動(dòng)畫(huà)的系統(tǒng),包括但不限于Android(安卓)和iOS(蘋(píng)果移動(dòng)系統(tǒng))等。
圖6為本申請(qǐng)一示例性實(shí)施例示出的另一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖,如圖6所示,所述裝置包括:
原始靜態(tài)圖片獲取單元U601,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元U602,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
縮放單元U603,用于根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放;
主色獲取單元U604,用于獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
預(yù)設(shè)顏色矩陣確定單元U605,用于根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L;
插值單元U606,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
第一顏色矩陣計(jì)算單元U607,用于在第i個(gè)時(shí)間節(jié)點(diǎn),根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
繪制單元U608,用于在第i個(gè)時(shí)間節(jié)點(diǎn),以所述顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片并顯示;
其中i為自然數(shù),i=1,2……n。
其中,在圖片轉(zhuǎn)換單元U602將靜態(tài)圖片轉(zhuǎn)為位圖后,縮放單元U603對(duì)所述位圖進(jìn)行縮放以使位圖與顯示區(qū)域的大小一致,從而能夠更準(zhǔn)確地獲取位圖像素,防止像素缺失,以及消除邊框的影響。為更方便地對(duì)圖片進(jìn)行縮放等處理,圖片轉(zhuǎn)換單元U602將原始靜態(tài)圖片轉(zhuǎn)換為位圖后,可以使位圖對(duì)象的View繼承于包含縮放功能函數(shù)的父視圖,這樣縮放單元U603可以方便地調(diào)用父視圖中的縮放功能函數(shù)對(duì)位圖進(jìn)行縮放。
其中,所述主色獲取單元U604,可以包括:
像素點(diǎn)統(tǒng)計(jì)模塊,用于將顏色值在預(yù)設(shè)偏差范圍以?xún)?nèi)的像素點(diǎn)歸為同一顏色的像素點(diǎn),統(tǒng)計(jì)各個(gè)預(yù)設(shè)偏差范圍內(nèi)的像素點(diǎn);
主色偏差范圍確定模塊,用于比較各個(gè)預(yù)設(shè)偏差范圍以?xún)?nèi)像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的預(yù)設(shè)偏差范圍為主色偏差范圍;
主色確定模塊,用于計(jì)算主色偏差范圍內(nèi)的顏色值的平均值,以所述平均值對(duì)應(yīng)的顏色為主色。
主色即圖片中像素點(diǎn)最多的顏色,在縮放單元U603對(duì)位圖進(jìn)行縮放后,主色獲取單元U604讀取位圖的像素?cái)?shù)據(jù),根據(jù)像素?cái)?shù)據(jù)統(tǒng)計(jì)同顏色值的像素點(diǎn),哪種顏色值的像素點(diǎn)最多,則該顏色值對(duì)應(yīng)的顏色為主色。由于像素點(diǎn)的顏色值與標(biāo)準(zhǔn)顏色值之間可能存在誤差,因此可以由像素點(diǎn)統(tǒng)計(jì)模塊將顏色值在預(yù)設(shè)的偏差范圍內(nèi)的像素點(diǎn)歸為同一顏色,然后統(tǒng)計(jì)各個(gè)偏差范圍內(nèi)的像素點(diǎn),然后主色偏差范圍確定模塊比較各個(gè)偏差范圍內(nèi)的像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的偏差范圍為主色偏差范圍,主色確定模則取該主色偏差范圍內(nèi)的顏色值的平均值,以該平均值對(duì)應(yīng)的顏色為主色。所述偏差范圍可以根據(jù)圖片顏色分布情況確定,如果圖片色塊顏色差別較大,則偏差范圍可以預(yù)設(shè)得較小,以使顏色歸類(lèi)更精確,若色塊很多,色塊顏色差別較小或者有大有小,則可以將偏差范圍預(yù)設(shè)得較大,以方便得到主色。
其中,所述預(yù)設(shè)顏色矩陣確定單元U605,可以包括:
顏色矩陣初始值確定模塊,用于以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F;
主色變化范圍設(shè)定模塊,用于以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍;
顏色矩陣結(jié)束值確定模塊,以所述主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L。
在主色獲取單元U604獲取到位圖的主色后,預(yù)設(shè)顏色矩陣確定單元U605中的顏色矩陣初始值確定模塊以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F,若得到的主色與圖片中最大色塊的顏色值相同,則F為單位矩陣即可,若得到的主色是由主色確定模塊根據(jù)平均值得到的,則主色的顏色值可能與圖片色塊的實(shí)際顏色值存在數(shù)學(xué)計(jì)算上的偏差,這種情況下,顏色矩陣初始值確定模塊可以取最大色塊的某一像素點(diǎn)的顏色值,以能夠?qū)⒃擃伾蹈淖優(yōu)橹魃伾档念伾仃嚍镕。確定L后,主色變化范圍設(shè)定模塊再以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍,顏色矩陣結(jié)束值確定模塊以主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L,其中主色變化值可以由用戶(hù)根據(jù)期望達(dá)到的色調(diào)變化程度在程序中預(yù)先設(shè)定?;蛘哳A(yù)設(shè)顏色矩陣確定單元U605在主色獲取單元U604獲取到位圖的主色后,通過(guò)用戶(hù)界面顯示主色信息,并在用戶(hù)界面上設(shè)置用于輸入F和L的輸入框,用戶(hù)在查看圖片的主色信息后,根據(jù)期望的效果自定義F和L,并通過(guò)F和L的輸入框進(jìn)行輸入,預(yù)設(shè)顏色矩陣確定單元U605通過(guò)所述輸入框獲取F和L,完成F和L的確定。
圖7為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖,如圖7所示,所述裝置包括:
原始靜態(tài)圖片獲取單元U701,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元U702,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
第二顏色矩陣計(jì)算單元U703,根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
插值單元U704,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
繪制單元U705,用于在第i個(gè)時(shí)間節(jié)點(diǎn),將以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片;
其中i為自然數(shù),i=1,2……n。
圖7所示裝置與圖5所示裝置的主要區(qū)別在于,第二顏色矩陣計(jì)算單元U703在查找單元U704之前,先由第二顏色矩陣計(jì)算單元U703執(zhí)行顏色矩陣計(jì)算,再由插值單元U704生成各個(gè)時(shí)間節(jié)點(diǎn),圖5所示裝置則插值單元在先,由第一顏色矩陣計(jì)算單元跟隨插值單元時(shí)間節(jié)點(diǎn)的生成在每個(gè)時(shí)間節(jié)點(diǎn)實(shí)時(shí)計(jì)算顏色矩陣值。圖7所示裝置在生成時(shí)間節(jié)點(diǎn)之前先將各個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值計(jì)算好,這樣插值單元U704生成每個(gè)時(shí)間節(jié)點(diǎn)的同時(shí),不需要再計(jì)算顏色矩陣值,只需由繪制單元U705根據(jù)已生成的對(duì)應(yīng)于當(dāng)前時(shí)間節(jié)點(diǎn)的顏色矩陣值來(lái)設(shè)置畫(huà)筆的顏色過(guò)濾屬性,再使用畫(huà)筆對(duì)位圖進(jìn)行繪制,得到新的圖片并顯示。圖7所示裝置相比圖5所示裝置可以節(jié)省計(jì)算時(shí)間和資源,時(shí)間節(jié)點(diǎn)之間的間隔也可以更小,程序執(zhí)行效率更高,但圖5所示裝置中實(shí)時(shí)計(jì)算得到的顏色矩陣值可以只在當(dāng)前暫存,圖7所述裝置中顏色矩陣值在計(jì)算完畢后需依次保存,內(nèi)存消耗可能會(huì)較大。
圖8為本申請(qǐng)一示例性實(shí)施例示出的又一種基于屬性動(dòng)畫(huà)的色調(diào)變化動(dòng)畫(huà)實(shí)現(xiàn)裝置的框圖,如圖8所示,所述裝置包括:
原始靜態(tài)圖片獲取單元U801,用于獲取原始靜態(tài)圖片;
圖片轉(zhuǎn)換單元U802,用于將所述原始靜態(tài)圖片轉(zhuǎn)換為位圖;
縮放單元U803,用于根據(jù)顯示區(qū)域的大小對(duì)所述位圖進(jìn)行縮放;
主色獲取單元U804,用于獲取所述原始靜態(tài)圖片的主色,所述主色為所述原始靜態(tài)圖片中像素點(diǎn)最多的顏色;
預(yù)設(shè)顏色矩陣確定單元U805,用于根據(jù)所述主色確定預(yù)設(shè)的顏色矩陣初始值F和顏色矩陣結(jié)束值L;
第二顏色矩陣計(jì)算單元U806,根據(jù)預(yù)設(shè)的顏色矩陣初始值F、顏色矩陣結(jié)束值L、時(shí)間節(jié)點(diǎn)個(gè)數(shù)n以及顏色矩陣計(jì)算規(guī)則,計(jì)算第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值;
插值單元U807,用于根據(jù)預(yù)設(shè)的時(shí)間分段規(guī)則生成n個(gè)時(shí)間節(jié)點(diǎn);
繪制單元U808,用于在第i個(gè)時(shí)間節(jié)點(diǎn),以第i個(gè)時(shí)間節(jié)點(diǎn)的顏色矩陣值為顏色過(guò)濾屬性的值,根據(jù)所述顏色過(guò)濾屬性對(duì)所述位圖進(jìn)行繪制,得到新的圖片;
其中i為自然數(shù),i=1,2……n。
其中,所述主色獲取單元U804,可以包括:
像素點(diǎn)統(tǒng)計(jì)模塊,用于將顏色值在預(yù)設(shè)偏差范圍以?xún)?nèi)的像素點(diǎn)歸為同一顏色的像素點(diǎn),統(tǒng)計(jì)各個(gè)預(yù)設(shè)偏差范圍內(nèi)的像素點(diǎn);
主色偏差范圍確定模塊,用于比較各個(gè)預(yù)設(shè)偏差范圍以?xún)?nèi)像素點(diǎn)的個(gè)數(shù),以像素點(diǎn)最多的預(yù)設(shè)偏差范圍為主色偏差范圍;
主色確定模塊,用于計(jì)算主色偏差范圍內(nèi)的顏色值的平均值,以所述平均值對(duì)應(yīng)的顏色為主色。
其中,所述預(yù)設(shè)顏色矩陣確定單元U805,可以包括:
顏色矩陣初始值確定模塊,用于以保持主色的原顏色值的顏色矩陣值為顏色矩陣初始值F;
主色變化范圍設(shè)定模塊,用于以F為邊界值之一根據(jù)預(yù)設(shè)的主色變化值設(shè)定主色變化范圍;
顏色矩陣結(jié)束值確定模塊,以所述主色變化范圍的另一邊界值為顏色矩陣結(jié)束值L。
為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
需要說(shuō)明的是,在本文中,諸如“第一”和“第二”等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者逆序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、裝置或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、裝置或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、裝置或者設(shè)備中還存在另外的相同要素。
以上所述僅是本申請(qǐng)的具體實(shí)施方式,使本領(lǐng)域技術(shù)人員能夠理解或?qū)崿F(xiàn)本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。