專利名稱:快速生成矢量圖的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機繪圖技術(shù)領(lǐng)域,特別涉及一種快速生成矢量圖的方法及裝置。
背景技術(shù):
隨著科技的日益發(fā)展,計算機的應(yīng)用也越來越普及,計算機在教學(xué)、教育、消防等 行業(yè)的應(yīng)用也越來越廣泛,在這些行業(yè)的計算機的應(yīng)用中,會需要涉及到很多矢量圖的應(yīng) 用,這些矢量圖包括規(guī)則矢量圖、不規(guī)則矢量圖,例如消防行業(yè)中使用的矢量圖標(biāo)消防車、 灑水車、飛機,教育行業(yè)中的基本的幾何圖形和教育過程中使用的一些不規(guī)則圖形等等。如 何能快速制作出能改變顏色且能放大不失真的矢量圖,軟件開發(fā)人員需要針對不同的圖形 進(jìn)行設(shè)計編程,隨著圖量的增加,編碼的代價也越高,成本也就越高。在現(xiàn)有的繪制或者生成矢量圖的方式中,其中一種方式是直接采用繪圖軟件來繪 制出矢量圖,然而,盡管這種繪制過程繪制方便、快捷,但是卻需要專業(yè)制作人員來制作,而 且不能改變線條顏色、粗細(xì)和封閉區(qū)域填充顏色,現(xiàn)有的另外一種方式是由軟件設(shè)計和開 發(fā)人員通過編程來生成矢量圖,其能夠改變線條顏色、粗細(xì)和封閉區(qū)域填充顏色,但是工作 量大、成本高,且不便于擴展。
發(fā)明內(nèi)容
針對上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于提供一種快速生成矢量圖的 方法及裝置,其可以快速地生成矢量圖,且工作量小,成本低。為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案一種快速生成矢量圖的方法,包括步驟導(dǎo)入已畫好圖形的圖片,獲取所述圖片的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括該圖片的 圖片大??;掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素;根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對象,并繪制生成的該路徑對象。一種快速生成矢量圖的裝置,包括圖片導(dǎo)入單元,用于導(dǎo)入已畫好圖形的圖片;圖片信息獲取單元,用于獲取所述圖片的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括該圖片的 圖片大小;像素查找單元,用于掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素;路徑對象生成單元,用于根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對 象;繪制單元,用于繪制生成的所述路徑對象。根據(jù)上述本發(fā)明的方案,其是通過導(dǎo)入已繪制好的圖片,通過查找出該圖片區(qū)域 中符合預(yù)設(shè)條件的像素,并根據(jù)這些像素的位置信息來生成路徑對象,然后繪制這些生成的路徑對象,從而生成與該繪制好的圖片對應(yīng)的矢量圖,這種矢量圖的生成方式,可以無需 專業(yè)的繪制人員來繪制,只需導(dǎo)入已繪制好的圖片即可生成與其對應(yīng)的矢量圖,無需專業(yè) 的矢量圖繪制經(jīng)驗,矢量圖的生成速度快,且工作量小,成本低。
圖1是本發(fā)明的快速生成矢量圖的方法實施例的流程示意圖;圖2是圖1中的方法在掃描查找符合預(yù)設(shè)條件的像素的實施例的流程示意圖;圖3是本發(fā)明的快速生成矢量圖的裝置實施例的結(jié)構(gòu)示意圖。
具體實施例方式以下以具體實施例的方式對本發(fā)明方案進(jìn)行詳細(xì)闡述。如圖1所示,是本發(fā)明的快速生成矢量圖的方法實施例的流程示意圖,其包括步 驟步驟SlOl 導(dǎo)入已畫好圖形的圖片,進(jìn)入步驟S102 ;步驟S102 獲取所述圖片的數(shù)據(jù)信息,這里的數(shù)據(jù)信息包括該圖片的圖片大小, 進(jìn)入步驟S103 ;步驟S103:掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素,進(jìn)入步驟 S104 ;步驟S104 根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對象,并繪制生成 的該路徑對象。根據(jù)上述本發(fā)明方法,其是通過導(dǎo)入已繪制好的圖片,通過查找出該圖片區(qū)域中 符合預(yù)設(shè)條件的像素,并根據(jù)這些像素的位置信息來生成路徑對象,然后繪制這些生成的 路徑對象,從而生成與該繪制好的圖片對應(yīng)的矢量圖,這種矢量圖的生成方式,可以無需專 業(yè)的繪制人員來繪制,只需導(dǎo)入已繪制好的圖片即可生成與其對應(yīng)的矢量圖,無需專業(yè)的 矢量圖繪制經(jīng)驗,矢量圖的生成速度快,且工作量小,成本低。其中,上述導(dǎo)入的已畫好的圖形的圖片,可以是采用畫圖軟件繪制的圖片,繪制圖 片時,可以是采用任意規(guī)則繪制,但是畫筆顏色與背景顏色應(yīng)當(dāng)有所不同。在其中一種繪制 方式中,畫圖的畫筆的顏色可以為任意顏色,而其他不畫的地方(即背景部分)的透明度為 0,采用這種方式繪制的圖片可以保存為PNG格式的圖片。在另外一種繪制方式中,可以是 將圖片的背景顏色設(shè)定為某種顏色,優(yōu)選情況下可設(shè)定為無色或者透明度為0,而畫圖的畫 筆的顏色則采用除了背景顏色的其他任意顏色,在此情況下,所繪制的圖片可以保存為任 意格式,例如BMP格式等等。在繪制好了圖形之后,可根據(jù)該圖形的圖片的路徑將該圖片導(dǎo)入,具體可將其導(dǎo) 入內(nèi)存予以存儲,在一個具體的示例中,可根據(jù)圖片的路徑創(chuàng)建一個Bitmap將該圖片導(dǎo)入 內(nèi)存中,并對其命名為m_pBitmap。隨后即可獲取該圖片的數(shù)據(jù)信息。以上述命名為m_Pbitmap的圖片為例,具體的 實現(xiàn)方式可以是根據(jù)獲取的圖片指針m_pBitmap通過函數(shù)GetObject獲取相關(guān)的數(shù)據(jù)信 息,并寫入到結(jié)構(gòu)體BITMAP對象中,可將該BITMAP對象命名為m_BmpInf0,這里的圖片的數(shù) 據(jù)信息,具體可包括圖片的圖片高度、圖片寬度等表示圖片大小的信息。
隨后,即可進(jìn)入掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素的步驟,該 查找圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素的根本目的,是要查找出組成該具體的圖形的 各像素,而去除其他的例如背景顏色的像素,從而便于在后續(xù)過程中能夠根據(jù)具體圖形的 像素繪制出具體的對應(yīng)的矢量圖。依據(jù)上述生成圖片的圖形的方式,以上述生成PNG格式圖片為例,可直接根據(jù)圖 片中的各像素的透明度來掃描判定,即,此時生成的圖片為PNG格式圖片,所述預(yù)設(shè)條件為 透明度不為0。此時,據(jù)此預(yù)設(shè)條件來查找符合預(yù)設(shè)條件的像素的方法可如圖2所示,其具體包 括步驟步驟S201 根據(jù)圖片大小掃描整張圖片,根據(jù)像素的位置坐標(biāo)從對象數(shù)據(jù)的指針 中獲取該位置坐標(biāo)的像素值,這里的像素值包括透明度、顏色值(即R、G、B值),進(jìn)入步驟 S202 ;步驟S202 判斷獲取的該像素的透明度是否為0,若是,則說明該像素是背景部分 的像素,進(jìn)入步驟S203,若否,則說明該像素是圖形部分的像素,進(jìn)入步驟S204 ;步驟S203 不保存該像素的信息;步驟S204 保存該像素的位置坐標(biāo)和顏色值的信息。相應(yīng)地,在上述生成其他格式圖片時,由于圖片的背景顏色的透明度不為0,無法 直接采用圖2中所示的通過判斷像素的透明度是否為0的方式進(jìn)行判定,因此,在進(jìn)入掃描 查找符合預(yù)設(shè)條件的像素的步驟之前,可先將圖片的背景顏色的透明度設(shè)為0,從而,上述 預(yù)設(shè)條件仍可設(shè)置為透明度不為0,在將背景部分的透明度設(shè)為0之后,隨后即可采用上述 方式掃描查找出符合該預(yù)設(shè)條件的各像素。其中,在對圖片中的各像素進(jìn)行掃描時,具體的掃描順序可以依據(jù)需要進(jìn)行自由 設(shè)定,例如橫向掃描、縱向掃描、螺旋方式掃描或者其他的掃描方式,只要能夠掃描圖片中 的所有像素點、能夠?qū)Ω飨袼攸c進(jìn)行是否符合預(yù)設(shè)條件的判斷即可。以橫向掃描為例,假設(shè)需要處理的圖片的區(qū)域矩形為(xl,yl,x2, y2),其中(xl, yl)為矩形左上角頂點坐標(biāo),(x2,y2)為矩形右下角頂點坐標(biāo),即xl < x2,yl < y2,設(shè)當(dāng)前 正在處理的像素的坐標(biāo)為(χ,y),起始點為χ = xl,y = yl,其具體的掃描方式可以是Sl 初始狀態(tài)下,令 χ = xl,y = yl ;S2:判斷當(dāng)前像素坐標(biāo)的y值是否小于或等于y2,若是,則說明當(dāng)前一行處于圖片 的區(qū)域范圍之內(nèi),進(jìn)入步驟S3,否則,則說明圖片中所有的像素均已掃描完畢,進(jìn)入后續(xù)的 生成路徑對象的步驟;S3、判斷當(dāng)前像素坐標(biāo)的χ值是否小于或等于x2,若是,則說明當(dāng)前像素處于圖片 的區(qū)域范圍之內(nèi),可以對該像素進(jìn)行處理,進(jìn)入步驟S4;否則,說明當(dāng)前一行的像素已處理 完畢,需進(jìn)入對下一行像素的處理,令χ = xl, y = y+Ι,并返回上述步驟S2 ;S4、根據(jù)需處理像素的坐標(biāo),從圖片對象數(shù)據(jù)的指針中獲取該像素的顏色值和透 明度,完成該位置坐標(biāo)像素的處理操作;進(jìn)入步驟S5 ;S5、進(jìn)入當(dāng)前行的下一像素的處理,即令χ = x+1,并返回上述步驟S3。在查找出了圖片中所有滿足預(yù)設(shè)條件的各像素之后,即可根據(jù)這些像素的位置信 息生成路徑對象,生成路徑對象的方式可以是采用現(xiàn)有技術(shù)中已有的方式,在一個具體的示例中,其生成方式可以是創(chuàng)建一個路徑Graphicsl^ath,并將其命名為m_bornpath ;將保存的坐標(biāo)信息加入到該路徑m_b0rnpath中,這可以采用AddEllipse方式來 實現(xiàn);根據(jù)路徑m_b0rnpath獲取路徑的外圍矩形,這可以通過GetBounds函數(shù)來獲取, 并可以提供選擇、移動、旋轉(zhuǎn)等應(yīng)用。在生成了路徑對象之后,即可以對這些路徑對象進(jìn)行繪制,將這些路徑對象繪制 在屏幕上進(jìn)行顯示,在一個具體的示例中,繪制路徑對象的方式可以是將顏色值保存到該對象中,以供后續(xù)過程中改變顏色值使用,然后根據(jù)獲取的對 象的顏色值、初始筆寬創(chuàng)建筆Pen,再根據(jù)該筆Pen將路徑繪制在屏幕上,采用筆Pen將路徑 繪制在屏幕上的過程可以采用Drawlmage等方式來完成。在將各路徑對象進(jìn)行繪制顯示后,還可以對該路徑對象的顏色、透明度、線條粗 細(xì)、填充色等參數(shù)進(jìn)行修改,在進(jìn)行修改時,首先選中該對象,修改該對象的顏色值、透明 度、線寬等參數(shù),然后刷新圖片區(qū)域,重新繪制該對象。對于各對象而言,若其有封閉區(qū)域, 則可以為其提供顏色填充,并可以對填充色進(jìn)行修改,若無封閉區(qū)域,則可以不進(jìn)行填充。 具體的修改路徑對象的方式在此不予贅述。根據(jù)上述本發(fā)明的快速生成矢量圖的方法,本發(fā)明還提供一種快速生成矢量圖的 裝置,如圖3所示,是本發(fā)明的快速生成矢量圖的裝置實施例的結(jié)構(gòu)示意圖,其包括有圖片導(dǎo)入單元301,用于導(dǎo)入已畫好圖形的圖片;圖片信息獲取單元302,用于獲取所述圖片的數(shù)據(jù)信息、圖片大小;像素查找單元303,用于掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素;路徑對象生成單元304,用于根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑 對象;繪制單元305,用于繪制生成的所述路徑對象。其中,圖片導(dǎo)入單元301導(dǎo)入的已畫好的圖形的圖片,可以是采用畫圖軟件繪制 的圖片,繪制圖片時,可以是采用任意規(guī)則繪制,但是畫筆顏色與背景顏色應(yīng)當(dāng)有所不同。 在其中一種繪制方式中,畫圖的畫筆的顏色可以為任意顏色,而其他不畫的地方(即背景 部分)的透明度為0,采用這種方式繪制的圖片可以保存為PNG格式的圖片。在另外一種繪 制方式中,可以是將圖片的背景顏色設(shè)定為某種顏色,優(yōu)選情況下可設(shè)定為無色或者透明 度為0,而畫圖的畫筆的顏色則采用除了背景顏色的其他任意顏色,在此情況下,所繪制的 圖片可以保存為任意格式,例如BMP格式等等。在繪制好了圖形之后,圖片導(dǎo)入單元301可根據(jù)該圖形的圖片的路徑將該圖片導(dǎo) 入,圖片信息獲取單元302獲取該圖片的數(shù)據(jù)信息,這里的圖片的數(shù)據(jù)信息,具體可包括圖 片的圖片高度、圖片寬度等表示圖片大小的信息。隨后,像素查找單元303掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素的 步驟,該查找圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素的根本目的,是要查找出組成該具體 的圖形的各像素,而去除其他的例如背景顏色的像素,從而便于在后續(xù)過程中能夠根據(jù)具 體圖形的像素繪制出具體的對應(yīng)的矢量圖。依據(jù)上述生成圖片的圖形的方式,以上述生成PNG格式圖片為例,可直接根據(jù)圖片中的各像素的透明度來掃描判定,即,此時,該生成的圖片為PNG格式圖片,所述預(yù)設(shè)條 件為透明度不為0,具體的掃描判定的方式可如圖2所示,在此不予贅述。相應(yīng)地,在上述生成其他格式圖片時,由于圖片的背景顏色的透明度不為0,無法 直接采用圖2中所示的方式進(jìn)行判定,因此,在進(jìn)入掃描查找符合預(yù)設(shè)條件的像素的步驟 之前,可先將圖片的背景顏色的透明度設(shè)為0,從而,上述預(yù)設(shè)條件仍可設(shè)置為透明度不為 0,在此情況下,隨后即可采用上述方式掃描查找出符合該預(yù)設(shè)條件的各像素。S卩,在上述圖片信息獲取單元302與像素查找單元303之間,還可以包括有透明 度設(shè)定單元3023,用于將所述圖片的背景顏色的透明度設(shè)為0,此時,所述預(yù)設(shè)條件為透明 度不為0。本發(fā)明快速生成矢量圖的裝置獲取圖片信息、查找符合預(yù)設(shè)條件的像素、生成路 徑對象以及繪制路徑對象的具體實現(xiàn)方式,可如上述本發(fā)明的快速生成矢量圖的方法相 同,在此不予贅述。此外,在上述對本發(fā)明的具體實施例的說明中,是以將預(yù)設(shè)條件設(shè)置為透明度不 為0、將背景顏色的透明度設(shè)為0、通過判斷像素點的透明度是否為0來判斷像素是否為符 合預(yù)設(shè)條件的像素,基于此,在實際應(yīng)用中,也可以是在獲得背景部分的透明度后,通過判 斷當(dāng)前像素的透明度與背景部分的透明度的差值是否為0來進(jìn)行判定,若差值為0,在說明 是背景部分的像素點,若差值不為0,則可以判定是背景部分的像素點,只要能夠?qū)⒕唧w圖 形的像素與背景部分的像素區(qū)分開來即可,在此不予多加贅述。以上所述的本發(fā)明實施方式,僅僅是對本發(fā)明的最佳實施例的詳細(xì)說明,并不構(gòu) 成對本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改 進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種快速生成矢量圖的方法,其特征在于,包括步驟導(dǎo)入已畫好圖形的圖片,獲取所述圖片的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括該圖片的圖片 大小;掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素;根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對象,并繪制生成的該路徑對象。
2.根據(jù)權(quán)利要求1所述的快速生成矢量圖的方法,其特征在于,所述圖片為PNG格式圖 片,所述預(yù)設(shè)條件為透明度不為0。
3.根據(jù)權(quán)利要求1所述的快速生成矢量圖的方法,其特征在于在掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素之前,還包括步驟將所述圖 片的背景顏色的透明度設(shè)為0 ; 所述預(yù)設(shè)條件為透明度不為0。
4.根據(jù)權(quán)利要求1或2或3所述的快速生成矢量圖的方法,其特征在于根據(jù)獲取的 圖片指針110^^!11即通過函數(shù)GetObject獲取所述數(shù)據(jù)信息,所述圖片大小包括圖片寬度、 圖片高度。
5.根據(jù)權(quán)利要求1或2或3所述的快速生成矢量圖的方法,其特征在于,所述像素值包 括透明度值、顏色值。
6.根據(jù)權(quán)利要求1或2或3所述的快速生成矢量圖的方法,其特征在于 所述根據(jù)保存的位置信息生成路徑對象的方式包括創(chuàng)建一個路徑 GraphicsPath,命名為 m_bornpath ; 采用AddEllipse方式將保存的坐標(biāo)信息加入到該路gm_b0rnpath中; 根據(jù)路徑m_bornpath通過函數(shù)GetBoimds函數(shù)獲取路徑的外圍矩形,并提供選擇、移 動、旋轉(zhuǎn)等應(yīng)用; 和/或在繪制生成的該路徑對象時,具體包括將顏色值保存到該對象中,根據(jù)獲取的對象的顏色值、初始筆寬創(chuàng)建筆Pen ; 根據(jù)所述筆Pen采用Drawlmage將路徑繪制在屏幕上。
7.一種快速生成矢量圖的裝置,其特征在于,包括 圖片導(dǎo)入單元,用于導(dǎo)入已畫好圖形的圖片;圖片信息獲取單元,用于獲取所述圖片的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括該圖片的圖片 大小;像素查找單元,用于掃描查找所述圖片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素; 路徑對象生成單元,用于根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對象; 繪制單元,用于繪制生成的所述路徑對象。
8.根據(jù)權(quán)利要求7所述的快速生成矢量圖的裝置,其特征在于,所述圖片為PNG格式圖 片,所述預(yù)設(shè)條件為透明度不為0。
9.根據(jù)權(quán)利要求7所述的快速生成矢量圖的裝置,其特征在于,還包括透明度設(shè)定單 元,用于將所述圖片的背景顏色的透明度設(shè)為0 ;所述預(yù)設(shè)條件為透明度不為0。
10.根據(jù)權(quán)利要求7或8或9所述的快速生成矢量圖的裝置,其特征在于,所述像素值包括透明度值、顏色值。
全文摘要
快速生成矢量圖的方法及裝置,該方法包括步驟導(dǎo)入已畫好圖形的圖片,獲取所述圖片的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括該圖片的圖片大?。粧呙璨檎宜鰣D片大小區(qū)域內(nèi)的符合預(yù)設(shè)條件的像素;根據(jù)所述符合預(yù)設(shè)條件的像素的位置信息生成路徑對象,并繪制生成的該路徑對象。本發(fā)明方案是通過導(dǎo)入已繪制好的圖片,通過查找出該圖片區(qū)域中符合預(yù)設(shè)條件的像素,并根據(jù)這些像素的位置信息來生成路徑對象,然后繪制這些生成的路徑對象,從而生成與該繪制好的圖片對應(yīng)的矢量圖,這種矢量圖的生成方式,可以無需專業(yè)的繪制人員來繪制,只需導(dǎo)入已繪制好的圖片即可生成與其對應(yīng)的矢量圖,無需專業(yè)的矢量圖繪制經(jīng)驗,矢量圖的生成速度快,且工作量小,成本低。
文檔編號G06T11/00GK102054280SQ20101056467
公開日2011年5月11日 申請日期2010年11月29日 優(yōu)先權(quán)日2010年11月29日
發(fā)明者陳先志 申請人:廣東威創(chuàng)視訊科技股份有限公司