本發(fā)明涉及圖像處理,尤其涉及矢量圖的圖像處理。
背景技術(shù):
計算機(jī)圖形學(xué)中,矢量圖指的是用點(diǎn)、直線或者多邊形等基于數(shù)學(xué)方程的幾何圖元所表示的圖像。與存儲像素陣列并對每個像素進(jìn)行操作的位圖相比,矢量圖采用了不同的保存方式,因而具有保存文件小的優(yōu)點(diǎn)。并且,由于矢量圖不受分辨率的影響,因而還具有在進(jìn)行任意放大時,不丟失細(xì)節(jié)、不影響清晰度的優(yōu)點(diǎn);以及,在進(jìn)行諸如縮放、旋轉(zhuǎn)、平移、拉伸、拖拽、擦除、填充等操作后,不降低繪制精度的優(yōu)點(diǎn)?;谏鲜鰞?yōu)點(diǎn),矢量圖被廣泛地應(yīng)用于計算機(jī)輔助設(shè)計、電子地圖等方面。
通常,生成矢量圖的方式有兩種。其中一種方法是將已有的圖片(即原始圖像)作為輸入,導(dǎo)出該圖片的矢量圖。這種方法常采用分段或者邊緣檢測算法來計算原始圖像上的邊緣輪廓點(diǎn),并將一系列連續(xù)的邊緣輪廓點(diǎn)構(gòu)成多邊形,從而對多邊形進(jìn)行曲線擬合,以及填充多邊形。這種方法一般適用于處理尺寸較大的自然圖像。然而,通過這種方法所生成的矢量圖中的所有對象將被保存在同一圖層,因而不適用于復(fù)雜拓?fù)鋱D形的編輯操作。
另外一種生成矢量圖的方法是采用交互的方式在繪制圖像時將其保存為矢量圖格式。這種方法常通過生成繪制路徑的方式,將矢量圖的繪制路徑以及線寬、顏色、圖層等屬性信息保存起來。通過這種方法生成的矢量圖能很好地支持縮放、旋轉(zhuǎn)、平移、拉伸、著色等編輯操作。但是,這種方法采用生成繪制路徑的方式,其不能很好地處理復(fù)雜拓?fù)涞膱D形。并且,采用這種方法的矢量圖在進(jìn)行擦除操作時也會出現(xiàn)問題,例如圖1所示,在對一個對象進(jìn)行擦除操作后,會使得該對象斷裂成兩部分或多個部分,而不能實(shí)現(xiàn)如圖2所示的部分擦除繪制路徑的效果。
另外,上述生成矢量圖的方法還存在以下技術(shù)問題:
針對上述將所有繪制對象存儲在同一圖層上的情況,雖然各個圖元被單獨(dú)繪制,但由于處于同一圖層,交叉的圖元之間會構(gòu)成一個連通圖,會被作為一個整體處理,不能被單獨(dú)編輯操作。例如,如圖3所示,當(dāng)分別針對矢量圖的兩次繪制對象進(jìn)行著色時,只能獲得如圖3左側(cè)的效果,而不是所期望的如圖3右側(cè)的效果。這會影響著色的效果,尤其是針對復(fù)雜拓?fù)浞謱犹幚淼那闆r,如圖4所示。
而針對上述生成繪制路徑的情況,由于保存的是繪制路徑,當(dāng)擦除操作沒有作用在路徑上時,對原圖形并不會產(chǎn)生影響;然而,如果擦除了路徑上的點(diǎn),則會導(dǎo)致路徑斷開為兩部分或者更多,從而使得一個對象變?yōu)閮蓚€或多個,如圖1所示。那么就不能實(shí)現(xiàn)如圖2中所期望的擦除效果。
技術(shù)實(shí)現(xiàn)要素:
因此,本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,提供一種生成多層次矢量圖的方法,包括:
1)確定圖像的填色區(qū)域的邊界輪廓;
2)存儲所述邊界輪廓和所述填色區(qū)域的圖像屬性;
其中,所述圖像屬性用于確定所述邊界輪廓內(nèi)的像素。
優(yōu)選地,根據(jù)所述的方法,其中步驟1)包括:
1-1)確定圖像的各個填色區(qū)域的邊界點(diǎn);
1-2)根據(jù)所述邊界點(diǎn)擬合出所述填色區(qū)域的邊界輪廓。
優(yōu)選地,根據(jù)所述的方法,其中采用八鄰域邊界跟蹤算法來確定所述填色區(qū)域的邊界點(diǎn)。
優(yōu)選地,根據(jù)所述的方法,其中步驟1-1)包括:
1-1-1)從所述填色區(qū)域的邊界中左上角的點(diǎn)的左下角方向開始八鄰域的逆時針?biāo)阉鳎?/p>
1-1-2)如果被搜索點(diǎn)為在搜索時遇到的第一個在所述填色區(qū)域中的邊界點(diǎn),將搜索方向沿順時針旋轉(zhuǎn)90°;否則,將搜索方向沿逆時針旋轉(zhuǎn)45°。
優(yōu)選地,根據(jù)所述的方法,其中步驟1-2)所述擬合的方法為曲線擬合。
優(yōu)選地,根據(jù)所述的方法,其中所述圖像屬性包括編號ID、顏色、線寬、有序的邊界點(diǎn)集中的至少一項(xiàng)。
并且,本發(fā)明還提供了一種對通過本發(fā)明的方法生成的矢量圖進(jìn)行修改的方法,包括:
1)根據(jù)所述邊界輪廓和所述圖像屬性,確定所述邊界輪廓內(nèi)的像素;
2)對所述邊界輪廓內(nèi)的像素進(jìn)行修改。
優(yōu)選地,根據(jù)所述的方法,還包括:
3)保存修改后的填色區(qū)域的邊界輪廓和圖像屬性。
此外,本發(fā)明還提供了一種對矢量圖進(jìn)行修改的方法,包括:
1)確定所述矢量圖中填色區(qū)域的邊界輪廓和圖像屬性;
2)根據(jù)所述邊界輪廓和所述圖像屬性,確定所述邊界輪廓內(nèi)的像素;
3)對所述邊界輪廓內(nèi)的像素進(jìn)行修改。
以及,一種生成多層次矢量圖的裝置,包括:
用于確定圖像的填色區(qū)域的邊界輪廓的模塊;
用于存儲所述邊界輪廓和所述填色區(qū)域的圖像屬性的模塊;
其中,所述圖像屬性用于確定所述邊界輪廓內(nèi)的像素。
以及,一種對矢量圖進(jìn)行修改的裝置,包括:
用于確定所述矢量圖中填色區(qū)域的邊界輪廓和圖像屬性的模塊;
用于根據(jù)所述邊界輪廓和所述圖像屬性,確定所述邊界輪廓內(nèi)的像素的模塊;
用于對所述邊界輪廓內(nèi)的像素進(jìn)行修改的模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
一、相較于將所有繪制對象存儲在同一圖層上的方法,本發(fā)明將每次的繪制圖元作為一個連通域單獨(dú)地保存為一個圖層,因此即便不同的圖元存在交叉的情況,也能夠?qū)Ω鱾€圖層上的不同圖元進(jìn)行單獨(dú)地編輯,例如縮放、旋轉(zhuǎn)、平移、拖拽、著色等;
二、相較于生成繪制路徑的方法,根據(jù)本發(fā)明的矢量圖存儲的是各個填色區(qū)域的輪廓和屬性,并在進(jìn)行例如擦除等操作時還原輪廓范圍內(nèi)的像素,因而能夠?qū)崿F(xiàn)基于像素進(jìn)行擦除,被擦除區(qū)域是橡皮擦實(shí)際擦除的結(jié)果,而不會存在例如由于擦除了路徑上的點(diǎn)而使得被擦除對象變?yōu)槎鄠€路徑或多個圖層的情況;
類似地,根據(jù)本發(fā)明的對矢量圖進(jìn)行擦除方法,通過確定需要被擦除的填色區(qū)域的輪廓還原該輪廓范圍內(nèi)的像素,達(dá)到對像素進(jìn)行擦除的效果,其更加有利于對圖像進(jìn)行準(zhǔn)確地修改;
三、由于根據(jù)本發(fā)明的矢量圖可以直接對像素進(jìn)行操作,因而能夠支持處理復(fù)雜的拓?fù)浣Y(jié)構(gòu)。
附圖說明
以下參照附圖對本發(fā)明實(shí)施例作進(jìn)一步說明,其中:
圖1是現(xiàn)有技術(shù)生成路徑方法的擦除效果;
圖2是期望的部分擦除效果圖示;
圖3是現(xiàn)有技術(shù)針對矢量圖的兩次繪制對象進(jìn)行著色時獲得的效果以及期望的效果的對比圖;
圖4是現(xiàn)有技術(shù)復(fù)雜拓?fù)浞謱犹幚淼男Ч?/p>
圖5a是根據(jù)本發(fā)明的一個實(shí)施例的生成矢量圖的流程示意圖;
圖5b是根據(jù)本發(fā)明的一個實(shí)施例在圖5a中進(jìn)行八鄰域邊界跟蹤的流程示意圖;
圖6是根據(jù)本發(fā)明的一個實(shí)施例的矢量圖的示意圖;
圖7是圖6所示矢量圖的連通域的示意圖;
圖8是根據(jù)本發(fā)明的一個實(shí)施例的像素點(diǎn)的八鄰域圖示;
圖9a是圖6所示矢量圖的像素外邊界點(diǎn)示意圖;
圖9b是圖6所示矢量圖的像素內(nèi)外邊界點(diǎn)示意圖;
圖10是圖6所示矢量圖的邊界輪廓示意圖;
圖11是圖6所示矢量圖基于掃描線種子填充算法的示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作詳細(xì)說明。
發(fā)明人在對采用生成繪制路徑的方法而生成的矢量圖進(jìn)行擦除操作時,發(fā)現(xiàn)當(dāng)希望擦除圖像中的一部分時,這一部分可能并沒有在圖像中消失,而只有當(dāng)橡皮擦作用在路徑上時才能獲得有效的擦除。然而,即便擦除操作被作用于路徑,也不一定能達(dá)到期望的效果;例如,擦除操作可能會令原有的路徑斷裂成多個部分從而形成多個圖層,使得無法再針對原有的區(qū)域在同一圖層上進(jìn)行操作;又例如,當(dāng)繪制路徑較粗時,無法實(shí)現(xiàn)在繪制路徑中擦出一個洞,或者將其擦除成特定形狀的效果。
發(fā)明人通過研究,以為造成上述缺陷的原因是:路徑通常并不能直接反應(yīng)出填色區(qū)域的范圍。而如果可以確定填色區(qū)域的范圍,那么就可以在這個范圍內(nèi)對填色區(qū)域進(jìn)行操作。
出于上述考慮,發(fā)明人認(rèn)為可以通過確定填色區(qū)域的輪廓來確定填色區(qū)域的范圍。然而,這仍然無法達(dá)到能夠擦除填色區(qū)域中任意部分的效果。發(fā)明人認(rèn)為這是由矢量圖的特性所造成的,相較于存儲像素的位圖而言,矢量圖存儲的是點(diǎn)、線等信息,其無法針對像素進(jìn)行諸如擦除等操作。然而,這又回到了位圖本身的問題,能夠?qū)ο袼剡M(jìn)行操作的位圖其不能像矢量圖那樣實(shí)現(xiàn)對數(shù)據(jù)壓縮存儲,以及實(shí)時快速實(shí)現(xiàn)縮放、拖拽、移動操作。
針對上述問題,發(fā)明人認(rèn)為可以在對矢量圖進(jìn)行擦除時確定填色區(qū)域的輪廓,并恢復(fù)該輪廓范圍內(nèi)的所有像素,從而實(shí)現(xiàn)直接對像素進(jìn)行擦除等操作。上述方案可以在擦除時進(jìn)行,然而考慮到圖像處理的實(shí)時性問題,還可以在生成矢量圖時確定并保存填色區(qū)域的輪廓,從而在進(jìn)行擦除等操作時直接對輪廓內(nèi)的像素進(jìn)行處理。雖然這樣做相較于第一種方案增加了需要進(jìn)行的工作量,然而由于對比矢量圖出現(xiàn)之初的50-80年代,現(xiàn)今的硬件速度已經(jīng)獲得了很大的提升,因而可以支持本發(fā)明的方案。發(fā)明人通過實(shí)驗(yàn)發(fā)現(xiàn),采用上述方案,即使是對1920*1080的像素進(jìn)行操作,也可獲得很快的處理速度,從而能夠?qū)崟r地生成矢量圖、以及實(shí)時地對矢量圖進(jìn)行擦除等的操作。
為了避免通過上述生成矢量圖的方案占用過多內(nèi)存,發(fā)明人認(rèn)為根據(jù)本發(fā)明中的矢量圖可以只存儲輪廓而不存儲所有元素和像素,僅在需要進(jìn)行例如擦除等修改時恢復(fù)輪廓范圍內(nèi)的像素即可。
下面將通過實(shí)施例來具體介紹本發(fā)明的方案。
實(shí)施例
<實(shí)施例1>
參考圖5a,根據(jù)本發(fā)明的一個實(shí)施例,生成多層次矢量圖的方法,包括:
1.根據(jù)繪制的區(qū)域,確定連通域(即連通的填色區(qū)域)。
以圖6所示出的矢量圖為例,對畫布上的每個像素點(diǎn)進(jìn)行檢測,得到如圖7所示的圖像連通域。
2.確定連通域的邊界點(diǎn)。
在考慮采用何種方法來確定連通域的邊界點(diǎn)時,發(fā)明人認(rèn)為為了能夠處理任意拓?fù)浣Y(jié)構(gòu)的圖像,可以采用八鄰域邊界跟蹤算法。這是由于八鄰域邊界跟蹤算法是針對每個像素點(diǎn)進(jìn)行處理,因而不受拓?fù)湎拗?。八鄰域邊界跟蹤算法具有算法簡單、直觀的優(yōu)點(diǎn)。然而應(yīng)當(dāng)理解,在本發(fā)明中還可以采用其他確定邊緣的算法,例如Canny、LoG邊緣檢測算法,以達(dá)到有效地處理噪聲的效果。
以圖7為例,八鄰域指的是除當(dāng)前像素本身之外,在該像素四周的8個鄰域點(diǎn)為當(dāng)前像素點(diǎn)的八鄰域。對于一張具有連通域的圖而言,如果點(diǎn)p是該圖的連通域中的一個邊界點(diǎn),那么必然可以從與點(diǎn)p相鄰的8個點(diǎn)中找出針對該連通域的下一個邊界點(diǎn)。因此,可以根據(jù)八鄰域信息進(jìn)行外邊界跟蹤,從而通過檢查連通區(qū)域中點(diǎn)的八鄰域來確定連通圖的邊界。
圖8示出了像素點(diǎn)的八鄰域示意圖,可以看出像素點(diǎn)的8個領(lǐng)域分別位于該像素點(diǎn)的八個方向上,并以45°相互間隔。盡管在以下實(shí)施例中采用了八鄰域邊界跟蹤算法,應(yīng)當(dāng)理解還可以采用其他方法來確定連通域的邊界點(diǎn)。
發(fā)明人研究了邊界的特點(diǎn),認(rèn)為可以采用以下方法來加快八鄰域邊界跟蹤算法的搜索過程。通過從四個角或者邊緣開始搜索,以避免回溯,并且通過下述轉(zhuǎn)向規(guī)則,達(dá)到有效搜索到所有邊緣點(diǎn)的效果。參考圖5b,根據(jù)本發(fā)明的一個實(shí)施例,采用八鄰域邊界跟蹤算法在圖像的連通區(qū)域內(nèi)跟蹤標(biāo)記連通域的邊界,所述方法包括:
2.1.首先,將搜索的起始點(diǎn)(即,起始搜索點(diǎn))設(shè)為連通圖的邊界中左上角的點(diǎn),從左下角方向開始逆時針?biāo)阉?。例如,以圖7所示出的連通區(qū)域的左上角像素點(diǎn)為起始點(diǎn),初始搜索方向?yàn)槠鹗键c(diǎn)的左下方(即圖8所示標(biāo)號為5的方向),并從該初始搜索方向開始進(jìn)行逆時針?biāo)阉?,也即,在進(jìn)行下一次搜索時,將搜索方面沿逆時針旋轉(zhuǎn)45°以進(jìn)行該搜索。
2.2.判斷在搜索方向上的八鄰域點(diǎn)是否是連通域的下一個邊界點(diǎn),進(jìn)行判斷的方法為:如果該八鄰域點(diǎn)是在搜索時遇到的第一個在連通區(qū)域中的點(diǎn),則該八鄰域點(diǎn)為連通域的下一個邊界點(diǎn)。以圖7為例,圍繞起始點(diǎn)從初始搜索方向開始進(jìn)行逆時針?biāo)阉?,搜索到的第一個邊界點(diǎn)位于起始點(diǎn)的下方(圖7中第二行第一個點(diǎn)),即標(biāo)號為6方向上的像素點(diǎn)。
2.3.如果確定了所述邊界點(diǎn),則以該邊界點(diǎn)為新的搜索點(diǎn),并使得當(dāng)前搜索方向沿順時針旋轉(zhuǎn)90°,繼續(xù)逆時針?biāo)阉飨乱粋€邊界點(diǎn)。以圖7為例,如果前一次搜索是在標(biāo)號6的方向上,那么下一次搜索在標(biāo)號6的原方向上順時針旋轉(zhuǎn)90°,即從標(biāo)號4的方向上繼續(xù)進(jìn)行逆時針?biāo)阉鳌?/p>
2.4.如沒有確定所述邊界點(diǎn),則使得搜索方向沿逆時針旋轉(zhuǎn)45°,以搜索下一個邊界點(diǎn)。以圖7為例,如果前一次搜索是在標(biāo)號5的方向上,那么下一次搜索在從標(biāo)號6的方向上繼續(xù)進(jìn)行逆時針?biāo)阉鳌?/p>
2.5.重復(fù)搜索過程,直到遇到起始點(diǎn)時停止搜索。
利用這樣的方法遍歷搜索圖7所示出的矢量圖的連通域,將得到如圖9所示的連通域的邊界。
以圖7為例,進(jìn)行上述連貫地搜索的過程,包括:
以連通圖的左上角點(diǎn)為起始點(diǎn),從方向5逆時針?biāo)阉鳎?/p>
此時,在該起始點(diǎn)方向5上的點(diǎn)并非下一邊界點(diǎn),將搜索方向沿逆時針旋轉(zhuǎn)45°,繼續(xù)搜索在起始點(diǎn)方向6上的點(diǎn);
此時,在起始點(diǎn)方向6上的點(diǎn)為下一邊界點(diǎn)(邊界點(diǎn)1),則將搜索方向沿順時針旋轉(zhuǎn)90°,繼續(xù)搜索在該邊界點(diǎn)1的方向4上的點(diǎn);
類似地,在該邊界點(diǎn)1的方向4、5上的點(diǎn)并非下一邊界點(diǎn),在該該邊界點(diǎn)1的方向6上的點(diǎn)為下一邊界點(diǎn)(邊界點(diǎn)2);
依次類推,可以搜索出該連通域中的全部外邊界點(diǎn),如圖9a中所示出的白色圓點(diǎn)。
通過上述實(shí)施例中的方法,可以避免搜索的回溯,從而快速地確定連通圖的外邊界點(diǎn)。對于存在內(nèi)邊界點(diǎn)的情況,例如圖9b中所示出的,還可以采用其他算法,例如傳統(tǒng)的八鄰域邊界跟蹤算法來確定內(nèi)邊界點(diǎn)。
3.利用連通域的邊界點(diǎn),擬合出邊界輪廓。
在獲得了連通域的邊界點(diǎn)集合后,可以擬合出邊界輪廓。進(jìn)行擬合的方法包括直線段擬合和曲線擬合,通常采用曲線擬合可以得到更加光滑和精確的輪廓。常用的擬合曲線包括:貝塞爾曲線、和B樣條曲線等。
圖10示出了根據(jù)本發(fā)明的實(shí)施例,采用貝塞爾曲線對邊界點(diǎn)進(jìn)行邊界輪廓擬合,而獲得的圖7中連通域的平滑的邊界輪廓。
4.根據(jù)邊界輪廓以及存儲的連通圖數(shù)據(jù)屬性,進(jìn)行填充。
為了達(dá)到對矢量圖各個圖元進(jìn)行分層存儲管理的目的,還需要將本發(fā)明中的各個連通域進(jìn)行填充顏色以進(jìn)行單獨(dú)存儲,即根據(jù)連通域的邊界將該邊界范圍內(nèi)的所有像素單元都修改成指定的顏色。
通??梢允褂梅N子填充算法來填充區(qū)域,種子填充算法又分為注入填充算法、邊界填充算法。其中,注入填充算法不特別強(qiáng)調(diào)區(qū)域的邊界,它只是從指定位置開始,將所有聯(lián)通區(qū)域內(nèi)某種指定顏色的點(diǎn)都替換成另一種顏色,從而實(shí)現(xiàn)填充效果。而相對地,邊界填充算法與注入填充算法的本質(zhì)其實(shí)是一樣的,都是遞歸和搜索,區(qū)別只在于對邊界的確認(rèn),也就是遞歸的結(jié)束條件不一樣。注入填充算法沒有邊界的概念,只是對聯(lián)通區(qū)域內(nèi)指定的顏色進(jìn)行替換,而邊界填充算法恰恰強(qiáng)調(diào)邊界的存在,只要是邊界內(nèi)的點(diǎn)無論是什么顏色,都替換成指定的顏色。
掃描線種子填充算法是種子填充算法的改進(jìn)算法,其具有簡單、節(jié)省??臻g、避免遞歸、提高效率優(yōu)點(diǎn)。這里的掃描線指的是沿水平方向掃描的線,種子點(diǎn)是在相對的直角坐標(biāo)系(x,y)中的坐標(biāo)點(diǎn),例如當(dāng)種子點(diǎn)為(9,4)時,應(yīng)采用的掃描線為y=9,其為圖11中橫向的一條直線,根據(jù)掃描線y=9沿x方向進(jìn)行掃描填充。
根據(jù)本發(fā)明的一個實(shí)施例,采用掃描線種子填充算法來填充邊界輪廓以內(nèi)的區(qū)域,包括:
以圖11為例,隨機(jī)選取的初始種子點(diǎn)為(10,4)(即圖11中的灰色圓點(diǎn)),y=10作為掃描線,得到當(dāng)前掃描線的區(qū)間為x=[1,8],沿掃描線進(jìn)行填充,然后從相鄰的第9和11行掃描線的第1列向第8列從左向右搜索,確定第9行的第1個、第6個,第11行的第1個的點(diǎn)為下一回的種子點(diǎn)。將種子點(diǎn)(9,1),(9,6),(11,1)入棧,依照順序依次彈出各個種子點(diǎn),當(dāng)彈出種子點(diǎn)(9,1)時,將y=9作為掃描線,得到區(qū)間[1,3],[6,8],將種子點(diǎn)(8,1),(8,6)入棧,繼續(xù)循環(huán)搜索,并使得種子點(diǎn)入棧、出棧、填充,直到遇到邊界為止。
5.存儲填充后的連通區(qū)域的輪廓和屬性。
可以將本發(fā)明的上述步驟1-4當(dāng)做是一次繪制,每次繪制都可以得到一個填充后的連通區(qū)域。為了克服現(xiàn)有技術(shù)在對矢量圖進(jìn)行編輯(例如擦除)時的缺陷,在本發(fā)明中可以以各個連通區(qū)域?yàn)閱挝贿M(jìn)行數(shù)據(jù)存儲。例如,針對每個連通區(qū)域,分別存儲其以下屬性:編號ID、顏色、線寬、有序的邊界點(diǎn)集。由此,使得在對所生成的矢量圖進(jìn)行諸如擦除的修改時,可以還原輪廓范圍內(nèi)的像素,以對像素進(jìn)行修改。
<實(shí)施例2>
上述實(shí)施例具體介紹了本發(fā)明繪制矢量圖的方法,以下介紹對根據(jù)實(shí)施例1所繪制的矢量圖進(jìn)行擦除方法,包括:
101.記錄橡皮擦在擦除時所走過的路徑,并且將由所述路徑形成的連通域的顏色值存儲為指定值,例如無顏色;
201.從矢量圖的圖層中已有的連通域的像素中減去橡皮擦形成的連通區(qū)域的像素;
301.更新連通域,重新存儲連通區(qū)域的輪廓和屬性。
<實(shí)施例3>
根據(jù)本發(fā)明的另一個實(shí)施例,對矢量圖進(jìn)行擦除方法,包括:
1’記錄橡皮擦在擦除時所走過的路徑,并且將由所述路徑形成的連通域的顏色值存儲為指定值,例如無顏色;
2’根據(jù)進(jìn)行擦除動作所在的圖層,確定連通域的輪廓;
3’將該連通域的輪廓范圍內(nèi)的部分恢復(fù)成像素,并從所恢復(fù)的像素中減去橡皮擦形成的連通區(qū)域。
在本發(fā)明中,由于擦除和繪制采用的是相類似的處理方式。通過擦除所形成的區(qū)域可被看作是構(gòu)成了連通域,將該連通域內(nèi)的像素點(diǎn)顏色置為畫布顏色即可完成擦除過程。在上述方法中,在得到擦除區(qū)域的連通域時,是逐像素檢測的,所以本發(fā)明是針對像素而進(jìn)行擦除。
通過上述實(shí)施例可以看出,根據(jù)本發(fā)明的方法,可以通過多次繪制生成多個基于像素點(diǎn)的連通域,并將它們分別保存為圖層。
由于本發(fā)明中被單獨(dú)繪制的連通圖處于不同的圖層,因此可以針對單獨(dú)地連通圖進(jìn)行編輯操作,從而支持對各個圖元獨(dú)立的進(jìn)行縮放、旋轉(zhuǎn)、平移、拖拽、著色等編輯操作。
由于連通域是基于像素點(diǎn)而繪制的,因此可以直接對像素進(jìn)行操作,從而使得根據(jù)本發(fā)明的矢量圖可以支持對復(fù)雜拓?fù)浣Y(jié)構(gòu)的處理。
出于相同的原因,在對根據(jù)本發(fā)明的矢量圖進(jìn)行擦除時,可以直接對像素進(jìn)行擦除,因而得到的結(jié)果是橡皮擦實(shí)際擦除的結(jié)果。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。例如,除去對矢量圖進(jìn)行擦除外,還可以采用本發(fā)明的方法對像素進(jìn)行其他修改,諸如填色等。盡管上文參照實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。