專利名稱:輪廓平滑化處理方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及適于帶式打印裝置、字處理器或計(jì)算機(jī)中的打印裝置或顯示裝置等的具有位圖字形的文字輸出裝置的輪廓平滑化處理方法及其裝置。
以往,打印或顯示各種尺寸的文字的方法有(1)全部保持作為對(duì)象的文字?jǐn)?shù)據(jù)的方法;(2)保持并擴(kuò)大、縮小位圖字形的方法;(3)保持并擴(kuò)大、縮小輪廓字形的方法。
可是,在(1)的情況下,由于數(shù)據(jù)量增大而無(wú)法實(shí)現(xiàn)。在(2)的情況下,由于比(1)時(shí)的打印質(zhì)量低,在克服該缺點(diǎn)時(shí),軟件的負(fù)擔(dān)增大,其處理需要時(shí)間。
具體來(lái)講,在保持位圖字形的打印裝置中,作為提高打印質(zhì)量的處理,有文字放大時(shí)的“臺(tái)階差”的平滑化處理。這里所謂的“臺(tái)階差”是指,在位圖數(shù)據(jù)的傾斜方向上鄰接的點(diǎn)列(數(shù)組)為不連續(xù)的、隨著文字的放大所產(chǎn)生的錯(cuò)位部分。
以往,為了實(shí)現(xiàn)平滑化,需要檢測(cè)該“臺(tái)階差”,在放大時(shí)要追加補(bǔ)正點(diǎn),彌補(bǔ)該“臺(tái)階差”。
但是,在這種平滑化處理中,由于補(bǔ)正的點(diǎn)數(shù)多,文字輪廓變形,有損于外觀,另外,如果減少補(bǔ)正點(diǎn)數(shù),就會(huì)殘留有凹凸,具有放大率越大,越不能得到補(bǔ)正效果的缺點(diǎn)。
另一方面,在(3)的情況下,與(2)的情況相比,系統(tǒng)規(guī)模更大,并且,數(shù)據(jù)量也增大,例如在帶式打印裝置的比較小規(guī)模的打印裝置中,無(wú)論是處理時(shí)間還是價(jià)格方面都會(huì)得不償失。
本發(fā)明的目的是,提供一種即使放大率變大,也能生成使輪廓平滑的位圖字形文字圖像的輪廓平滑化處理方法、裝置及存儲(chǔ)介質(zhì)。
為了達(dá)到上述目的,根據(jù)本發(fā)明的第一種形式,提供一種把點(diǎn)陣狀的位圖數(shù)據(jù)所規(guī)定的位圖字形的文字圖像的輪廓平滑化的方法,包括下述步驟在上述文字圖像放大時(shí),把上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù);
在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓;以及用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新的位圖數(shù)據(jù)。
最好是,進(jìn)行上述引線的步驟包括以下步驟根據(jù)上述矢量數(shù)據(jù)求出作為基準(zhǔn)的輪廓坐標(biāo);分別與上述給定數(shù)目的矢量連鎖中變化的模式對(duì)應(yīng),參照預(yù)先定義的補(bǔ)正數(shù)據(jù)對(duì)上述作為基準(zhǔn)的輪廓坐標(biāo)進(jìn)行補(bǔ)正,以此作為補(bǔ)正輪廓坐標(biāo);以及將該補(bǔ)正輪廓坐標(biāo)的各鄰接坐標(biāo)彼此之間用線連接。
為了完成上述目的,根據(jù)本發(fā)明的第二形式,提供一種把點(diǎn)陣狀的位圖數(shù)據(jù)所規(guī)定的位圖字形的文字圖像的輪廓平滑化的方法,包括下述步驟根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo);從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息;為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線化矢量行列;根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理;經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各步驟,生成表示上述引線處理結(jié)果的線數(shù)據(jù);以及基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)。
最好是,進(jìn)行上述引線處理的步驟包括根據(jù)規(guī)定上述文字圖像的輪廓的數(shù)據(jù)和涂滿處理,生成用于規(guī)定把內(nèi)側(cè)用點(diǎn)涂滿的線的數(shù)據(jù),生成上述新的位圖數(shù)據(jù)的步驟包括以下步驟
進(jìn)行上述涂滿處理;使上述涂滿處理所得到數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合;以及根據(jù)上述矢量化進(jìn)行使變粗的上述文字圖像的線幅變細(xì)的線幅補(bǔ)正處理。
最好是,求出上述始點(diǎn)坐標(biāo)的步驟包括沿著給定的方向順次掃描上述位圖數(shù)據(jù)的點(diǎn),不能根據(jù)上述矢量化后的信息表示矢量化后的情況,并且,把表示之前點(diǎn)的變化的點(diǎn)坐標(biāo)確定為上述始點(diǎn)坐標(biāo)。
最好是,把上述位圖數(shù)據(jù)變換成正交矢量行列的步驟包括以下步驟設(shè)定與上述始點(diǎn)對(duì)應(yīng)的矢量值,更新上述矢量化后的信息,使上述始點(diǎn)為矢量化后的始點(diǎn);把矢量化的點(diǎn)位置移動(dòng)到矢量方向的下一點(diǎn)處;查找上述下一點(diǎn)周圍的點(diǎn),確定該下一點(diǎn)的矢量值;在該下一點(diǎn)得到始點(diǎn)候補(bǔ)的場(chǎng)合,更新上述矢量化后的信息,使該點(diǎn)成為矢量化后的點(diǎn);在上述矢量化的點(diǎn)位置返回到上述始點(diǎn)之前,反復(fù)進(jìn)行從移動(dòng)到上述下一點(diǎn)的步驟到更新上述矢量化后的信息的步驟。
最好是,進(jìn)行上述引線處理的步驟包括以下步驟基于上述始點(diǎn),根據(jù)預(yù)先規(guī)定的條件確定補(bǔ)正前的基準(zhǔn)輪廓始點(diǎn)坐標(biāo),之后,把前面的坐標(biāo)值加上對(duì)應(yīng)于從該坐標(biāo)斜線化矢量行列的矢量值的移動(dòng)量所得到的值作為下次的坐標(biāo)位置,由此設(shè)定基準(zhǔn)輪廓坐標(biāo);參照上述補(bǔ)正數(shù)據(jù)表,以點(diǎn)單位補(bǔ)正上述基準(zhǔn)輪廓坐標(biāo),生成輪廓坐標(biāo)。
最好是,進(jìn)行上述引線處理的步驟還包括以下步驟在上述輪廓坐標(biāo)的各連續(xù)的兩點(diǎn)之間,根據(jù)上述輪廓坐標(biāo)的坐標(biāo)系坐標(biāo)軸的兩根正交軸中直線的傾斜度,以該直線表示更大的坐標(biāo)值的變化的一方為基準(zhǔn)軸,在始點(diǎn)、終點(diǎn)及上述各連續(xù)的各兩點(diǎn)直線上設(shè)定最接近整數(shù)值的坐標(biāo)上的插入點(diǎn)并進(jìn)行連接,生成規(guī)定上述文字圖像的輪廓的數(shù)據(jù);在上述輪廓坐標(biāo)的上述各連續(xù)的兩點(diǎn)之間,只以上述兩根軸的給定的一方為基準(zhǔn)軸,在始點(diǎn)及上述插入點(diǎn)中設(shè)定點(diǎn)并進(jìn)行連接,生成用于規(guī)定用點(diǎn)涂滿內(nèi)側(cè)的線的數(shù)據(jù)。
最好是,使根據(jù)上述涂滿處理得到的數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合的步驟包括
對(duì)規(guī)定上述輪廓的數(shù)據(jù)及通過(guò)上述涂滿處理得到的數(shù)據(jù)進(jìn)行邏輯或的運(yùn)算。
更好的是,上述進(jìn)行線幅補(bǔ)正處理的步驟包括沿縱向掃描通過(guò)使上述涂滿處理所得到的數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合所得到的重合位圖數(shù)據(jù)的坐標(biāo),在當(dāng)前坐標(biāo)點(diǎn)為“黑”、下一坐標(biāo)點(diǎn)為“白”的場(chǎng)合,看作“白”,并且沿橫向掃描上述重合的位圖數(shù)據(jù)的上述坐標(biāo),在當(dāng)前坐標(biāo)點(diǎn)為“黑”、下一坐標(biāo)點(diǎn)為“白”的場(chǎng)合,看作“白”,并且從表示縱橫各方向上1個(gè)點(diǎn)幅部分變粗的上述文字圖像的上述重合位圖數(shù)據(jù)開(kāi)始,通過(guò)矢量化分別刪除該1個(gè)點(diǎn)幅部分。
為了完成上述目的,根據(jù)本發(fā)明的第三形式,提供一種輪廓平滑化處理裝置,包括用于存儲(chǔ)規(guī)定位圖字形的、點(diǎn)陣狀的位圖數(shù)據(jù)的存儲(chǔ)裝置;字形加工裝置,在上述位圖字形的文字放大時(shí),把上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù),在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓,接著,用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新的位圖數(shù)據(jù);以及打印或顯示上述制成的位圖數(shù)據(jù)的文字輸出裝置。
最好是,上述字形加工裝置包括根據(jù)所變換的矢量數(shù)據(jù)求出作為基準(zhǔn)的輪廓坐標(biāo)的基準(zhǔn)輪廓運(yùn)算部;分別與上述給定數(shù)目的矢量連鎖中變化的模式對(duì)應(yīng),參照預(yù)先定義的補(bǔ)正數(shù)據(jù)對(duì)上述作為基準(zhǔn)的輪廓坐標(biāo)進(jìn)行補(bǔ)正,以此作為補(bǔ)正輪廓坐標(biāo),然后,將該補(bǔ)正輪廓坐標(biāo)的各鄰接坐標(biāo)彼此之間用線連接的線段生成部。
為了完成上述目的,根據(jù)本發(fā)明的第四形式,提供一種輪廓平滑化處理裝置,適用于根據(jù)位圖數(shù)據(jù)打印或顯示的文字輸出裝置,包括用于存儲(chǔ)規(guī)定位圖字形的、點(diǎn)陣狀的位圖數(shù)據(jù)的存儲(chǔ)裝置;根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的始點(diǎn)確定部;正交矢量提取部,從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息;斜線矢量變換部,為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線化矢量行列;引線處理部,根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理;以及位圖數(shù)據(jù)生成部,經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各部的處理,由此,生成表示上述引線處理結(jié)果的線數(shù)據(jù),基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)。
最好是,上述引線處理部包括生成用于規(guī)定上述文字圖像的輪廓的數(shù)據(jù)的輪廓數(shù)據(jù)生成部;生成用于規(guī)定通過(guò)涂滿處理把內(nèi)側(cè)用點(diǎn)涂滿的線的數(shù)據(jù)的涂滿線數(shù)據(jù)生成部,上述位圖數(shù)據(jù)生成部包括進(jìn)行上述涂滿處理的涂滿部,使上述涂滿處理所得到數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合的重合部;以及根據(jù)上述矢量化進(jìn)行使變粗的上述文字圖像的線幅變細(xì)的線幅補(bǔ)正處理的線幅補(bǔ)正部。
最好是,上述補(bǔ)正表是分別預(yù)備數(shù)個(gè)位圖字形,根據(jù)對(duì)該數(shù)個(gè)位圖字形的選擇,有選擇地使用的補(bǔ)正數(shù)據(jù)的數(shù)個(gè)表格的集合。
為了完成上述目的,根據(jù)本發(fā)明的第五形式,提供一種存儲(chǔ)介質(zhì),用于實(shí)現(xiàn)使點(diǎn)陣狀位圖數(shù)據(jù)所規(guī)定的位圖字形文字圖像的輪廓平滑化的方法,并儲(chǔ)存計(jì)算機(jī)可以實(shí)施的程序,所述的程序包括在上述文字圖像放大時(shí),將上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù)的矢量數(shù)據(jù)生成模塊;在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓的輪廓生成模塊;以及用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新位圖數(shù)據(jù)的位圖生成模塊。
為了完成上述目的,根據(jù)本發(fā)明的第六形式,提供一種存儲(chǔ)介質(zhì),用于實(shí)現(xiàn)將點(diǎn)陣狀位圖數(shù)據(jù)所規(guī)定的位圖字形文字圖像的輪廓平滑化的方法,并儲(chǔ)存計(jì)算機(jī)可以實(shí)施的程序,所述的程序包括根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的始點(diǎn)確定模塊;從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息的正交矢量提取模塊;為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線矢量行列的斜線矢量變換模塊;根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理的引線處理模塊;經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各步驟,生成表示上述引線處理結(jié)果的線數(shù)據(jù)的線數(shù)據(jù)生成模塊;以及基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)的位圖數(shù)據(jù)生成模塊。
根據(jù)本發(fā)明的輪廓平滑化處理方法、裝置及其存儲(chǔ),把字形存儲(chǔ)器準(zhǔn)備的位圖數(shù)據(jù)一次置換成矢量數(shù)據(jù),用矢量數(shù)據(jù)實(shí)現(xiàn)平滑化,由此,即使放大率變大,也能生成可產(chǎn)生使輪廓平滑的文字圖像的位圖數(shù)據(jù)。因此,可用8個(gè)方向的矢量(上下左右4個(gè)方向及傾斜的4個(gè)方向)表示位圖,從6個(gè)矢量的連鎖模式中確定出最合適的矢量方向,另外,從6個(gè)矢量的連鎖模式中,以用矢量不能表現(xiàn)的1個(gè)點(diǎn)單位進(jìn)行補(bǔ)正。
根據(jù)本發(fā)明,即使放大,也能以良好的質(zhì)量進(jìn)行打印或顯示,除此之外,為了使用位圖數(shù)據(jù),可進(jìn)行壓縮,根據(jù)算術(shù)符號(hào)化的壓縮算法,可依賴于文字尺寸等,但也可以壓縮例如40%的程度。通常,在裝載有輪廓字形的機(jī)器中,在分辨率低、處理小尺寸的文字的場(chǎng)合,由于打印質(zhì)量劣化,要用位圖數(shù)據(jù)進(jìn)行打印,但是,根據(jù)本發(fā)明,與文字大小無(wú)關(guān),能以相同的質(zhì)量打印文字,另外,可節(jié)約存儲(chǔ)器的容量。
另外,根據(jù)本發(fā)明,無(wú)論是用于字處理器或計(jì)算機(jī)中的打印裝置還是顯示裝置,即使用于帶式打印裝置等裝置規(guī)模比較小的機(jī)種中,也可在不犧牲打印質(zhì)量、處理速度、價(jià)格任一方面的性能的前提下,在文字放大時(shí),依然可進(jìn)行平滑的輪廓平滑化處理。
本發(fā)明的上述及其他目的、特征和優(yōu)點(diǎn),通過(guò)下文基于附圖的詳細(xì)說(shuō)明將會(huì)更加清楚明了。
圖1是表示采用了基于本發(fā)明實(shí)施例的輪廓平滑化處理方法及其裝置的文字輸出裝置的內(nèi)部構(gòu)成的方框圖。
圖2是表示把圖1中控制部的功能展開(kāi)到存儲(chǔ)器上的方框圖。
圖3是用于說(shuō)明關(guān)于本發(fā)明實(shí)施例的坐標(biāo)和位圖定義的說(shuō)明圖。
圖3B1是用于說(shuō)明關(guān)于本發(fā)明實(shí)施例的矢量定義的說(shuō)明圖。
圖3B2是把上述矢量的定義用表格形式表示的說(shuō)明圖。
圖4是表示上述控制部的位圖處理順序的程序方框圖。
圖5是表示圖4中矢量始點(diǎn)檢索處理的具體處理順序的程序方框圖。
圖6是表示圖4中正交矢量的變換處理的具體處理順序的程序方框圖。
圖7是表示圖4中斜線矢量的變換處理的具體處理順序的程序方框圖。
圖8是表示圖4中引線處理的具體處理順序的程序方框圖。
圖9是表示圖4中涂滿處理的具體處理順序的程序方框圖。
圖10是表示圖4中線幅補(bǔ)正處理的具體處理頂序的程序方框圖。
圖11A~11C是表示把確定始點(diǎn)檢索的例子在位圖上展開(kāi)的視圖。
圖12是用表格(<表1>)形式表示確定矢量始點(diǎn)的條件和矢量值的關(guān)系的視圖。
圖13是用表格(<表2>)形式表示一個(gè)前矢量和檢索順序的關(guān)系的視圖。
圖14是用表格(<表3>)形式表示檢索方向模式、條件和矢量的關(guān)系的視圖。
圖15是用表格(<表4>)形式表示矢量和矢量化位置的關(guān)系的視圖。
圖16A和圖16B是在位圖上將正交矢量化的例子展開(kāi)的視圖。
圖17是用表格(<表5>)形式表示在正交矢量行列中的連續(xù)兩個(gè)矢量要素的變化方向的視圖。
圖18是用表格(<表6>)形式表示正交矢量和變換的斜線矢量的關(guān)系的視圖。
圖19是用表格(<表7>)形式表示矢量變換條件的視圖。
圖20是用表格(<表8>)形式表示把變換條件作為矢量模式的視圖。
圖21是表示斜線化判定表內(nèi)容的視圖。
圖22A和圖22B是在位圖上將矢量斜線化的例子展開(kāi)的視圖。
圖23是用表格(<表9>)形式表示矢量值和坐標(biāo)移動(dòng)量的關(guān)系的視圖。
圖24是用表格(<表10>)形式表示矢量值、從上次坐標(biāo)的移動(dòng)量和輪廓基準(zhǔn)坐標(biāo)的關(guān)系的視圖。
圖25是用表格(<表11>)形式表示引線坐標(biāo)的視圖。
圖26是用表格(<表12>)形式表示補(bǔ)正數(shù)據(jù)和補(bǔ)正方向的關(guān)系的視圖。
圖27是用表格(<表13>)形式表示補(bǔ)正方向和坐標(biāo)移動(dòng)量的關(guān)系的視圖。
圖28是用表格(<表14>)形式表示放大倍率和補(bǔ)正點(diǎn)數(shù)的關(guān)系的視圖。
圖29是用表格(<表1 5>)形式表示點(diǎn)補(bǔ)正例子的視圖。
圖30是用表格(<表16>)形式表示點(diǎn)補(bǔ)正例子的視圖。
圖31是用于說(shuō)明點(diǎn)插入的例示曲線(<曲線1>)圖。
圖32是用明細(xì)表(<明細(xì)表1>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖33是用明細(xì)表(<明細(xì)表2>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖34是用明細(xì)表(<明細(xì)表3>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖35是用明細(xì)表(<明細(xì)表4>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖36是為說(shuō)明點(diǎn)插入的例示曲線(<曲線2>)圖。
圖37是用明細(xì)表(<明細(xì)表5>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖38是為說(shuō)明點(diǎn)插入的例示曲線(<曲線3>)圖。
圖39是為說(shuō)明點(diǎn)插入的例示曲線(<曲線4>)圖。
圖40是用明細(xì)表(<明細(xì)表6>)形式表示插入點(diǎn)組運(yùn)算算法的視圖。
圖41是為說(shuō)明點(diǎn)插入的例示曲線(<曲線5>)圖。
圖42是用明細(xì)表(<明細(xì)表7>)形式表示筆畫(huà)線涂滿算法的視圖。
圖43A和43B是為說(shuō)明采用筆畫(huà)線涂滿的例示曲線(<曲線6>)圖。
圖44A和44B是為說(shuō)明采用筆畫(huà)線涂滿的例示曲線(<曲線7>)圖。
圖45A和45B是為說(shuō)明采用筆畫(huà)線涂滿的例示曲線(<曲線8>)圖。
圖46A和46B是為說(shuō)明采用X掃描引線處理涂滿的例示曲線(<曲線9>)圖。
圖47是用明細(xì)表(<明細(xì)表8>)形式表示填充線插入點(diǎn)組發(fā)生算法的視圖。
圖48A和圖48B是用于說(shuō)明填充線處理的涂滿的例示曲線(<曲線10>)圖。
圖49是用明細(xì)表(<明細(xì)表9>)形式表示填充線涂滿的算法的視圖。
圖50是用曲線表示筆畫(huà)區(qū)域和填充區(qū)域重合的動(dòng)作概念圖。
圖51A~51D是表示在位圖上將粗度補(bǔ)正的例子展開(kāi)的視圖。
圖52A~52D是表示在位圖上將粗度補(bǔ)正的例外處理展開(kāi)的視圖。
圖53A~53C是表示本發(fā)明實(shí)施例所使用的矢量定義的更詳細(xì)例子的視圖。
實(shí)施例的說(shuō)明以下,參照附圖,詳細(xì)說(shuō)明本發(fā)明的一實(shí)施例。
圖1是表示采用本發(fā)明的文字輸出裝置的內(nèi)部構(gòu)成的方框圖。在本發(fā)明的實(shí)施例中,用例示的作為文字輸出裝置的帶式打印裝置進(jìn)行說(shuō)明。帶式打印裝置,用熱方式將基于鍵入的所期望的文字等作成的打印圖像打印在帶盒內(nèi)的帶上,同時(shí),將帶的打印部分切斷并制成標(biāo)簽。
如圖1所示,帶式打印裝置的基本構(gòu)成包括把CPU作為控制中樞的控制部1,具有鍵盤(pán)和顯示器作為用戶接口的操作部2,通過(guò)熱式打印頭在帶盒中的帶上進(jìn)行打印的打印部3。操作部2和打印部3通過(guò)內(nèi)置有各種驅(qū)動(dòng)器并驅(qū)動(dòng)各部回路的驅(qū)動(dòng)部4連接在控制部1上。鑒于操作部2、打印部3及驅(qū)動(dòng)部4與本發(fā)明的主題沒(méi)有直接關(guān)系,因此,省略其詳細(xì)說(shuō)明。
控制部1由CPU11、程序存儲(chǔ)器12、工作RAM13、字形存儲(chǔ)器14及輸入輸出控制部15構(gòu)成。各方塊(方框)11、12、13、14及15用雙向內(nèi)部總線16共同連接。CPU11具有作為本發(fā)明的輪廓平滑化處理裝置的功能,除此之外,根據(jù)儲(chǔ)存到程序存儲(chǔ)器12內(nèi)的后述各程序,使用工作RAM13,對(duì)帶式打印裝置整體進(jìn)行控制。
工作RAM13用于作業(yè)區(qū)域,每一次都寫(xiě)入程序的輪廓平滑化處理經(jīng)過(guò)的數(shù)據(jù)。字形存儲(chǔ)器14,以點(diǎn)陣狀的位圖形式存儲(chǔ)有文字等的字形數(shù)據(jù),在對(duì)文字等賦予特定的代碼數(shù)據(jù)時(shí),將所對(duì)應(yīng)的字形數(shù)據(jù)輸出。
輸入輸出控制部(IOC)15由門(mén)陣列或定制LSI等構(gòu)成,并組裝有補(bǔ)償CPU11功能并處理各種周邊電路的接口信號(hào)的理論電路。例如,把從鍵盤(pán)輸入的各種指令及輸入數(shù)據(jù)等按原樣或進(jìn)行加工后輸入給內(nèi)部總線16,同時(shí),與CPU11協(xié)調(diào)工作,通過(guò)CPU11,把從內(nèi)部總線16輸出的數(shù)據(jù)或控制信號(hào)按原樣或經(jīng)過(guò)加工后輸出給驅(qū)動(dòng)部4。
圖2是表示把圖1所示控制部1具有的功能展開(kāi)到存儲(chǔ)器上的方框圖。如上述,控制部1具有作為輪廓平滑化處理裝置的功能,在該控制部1中,在文字加工時(shí),一旦將該位圖數(shù)據(jù)變換成矢量數(shù)據(jù),在位圖數(shù)據(jù)的傾斜方向上,鄰接的數(shù)據(jù)列含有不連續(xù)的部分,從矢量的始點(diǎn)向該矢量方向的終點(diǎn)引線并進(jìn)行點(diǎn)補(bǔ)正,而且把內(nèi)部涂滿,再次生成位圖,對(duì)打印或顯示輸出進(jìn)行控制。
如圖2所示,本發(fā)明的輪廓平滑化處理裝置(控制部1)由字形存儲(chǔ)器14、字形加工裝置(CPU11)和文字輸出部20構(gòu)成。字形加工裝置11在功能上由始點(diǎn)檢索·確定部111、正交矢量提取部112、斜線矢量化變換部113、引線處理部114、涂滿處理部115及線幅補(bǔ)正處理部116構(gòu)成。各處理部111~116根據(jù)后述邏輯并依程序而動(dòng)作。
始點(diǎn)檢索·確定部111相對(duì)字形存儲(chǔ)器14中的位圖數(shù)據(jù),根據(jù)預(yù)先規(guī)定的條件,求出矢量始點(diǎn)的坐標(biāo),供給正交矢量提取部112。正交矢量提取部112從始點(diǎn)檢索·確定部111輸出的始點(diǎn)坐標(biāo)按順序調(diào)整點(diǎn)的變化方向,在上下左右四個(gè)方向的正交矢量行列中變換的同時(shí),更新表示該點(diǎn)矢量化后的矢量化后信息(標(biāo)記存儲(chǔ)器131)的內(nèi)容。
斜線矢量變換部113,從變換的正交矢量行列的6個(gè)矢量的連鎖模式中,參照要預(yù)先斜線化的模式所定義的斜線化判定表132的內(nèi)容,變換成斜線矢量行列,供給引線處理部114。
引線處理部114相對(duì)放大等加工的位圖坐標(biāo),從斜線矢量行列的6個(gè)矢量的連鎖模式中,參照預(yù)先定義的補(bǔ)正數(shù)據(jù)進(jìn)行引線并以點(diǎn)單位補(bǔ)正坐標(biāo),將補(bǔ)正的輪廓坐標(biāo)之間用線連接。引線處理部114包括從變換的矢量行列求出作為基準(zhǔn)的輪廓坐標(biāo)的基準(zhǔn)輪廓運(yùn)算部、通過(guò)連續(xù)矢量值的模式設(shè)定預(yù)先定義的補(bǔ)正數(shù)據(jù)的補(bǔ)正表、參照上述補(bǔ)正表補(bǔ)正作為上述基準(zhǔn)的輪廓坐標(biāo)并把該補(bǔ)正的輪廓坐標(biāo)之間用線連接的線段生成部。這里,作為輪廓坐標(biāo),可生成外框用線和涂滿用線2個(gè)種類。
涂滿處理部115,把先進(jìn)行輪廓坐標(biāo)補(bǔ)正所得到的填充線的內(nèi)側(cè)涂滿之后,把展示在正在描繪字形外框的工作存儲(chǔ)器13的輪廓用描繪區(qū)域和填充線用描繪區(qū)域(任何位圖區(qū)域134)的內(nèi)容進(jìn)行邏輯或運(yùn)算,并進(jìn)行重合處理。
線幅補(bǔ)正處理部116,跟蹤由引線處理部114生成的位圖數(shù)據(jù),在定義的XY兩方向分別刪除1個(gè)點(diǎn)部分,由此,通過(guò)矢量化對(duì)XY方向的作為1個(gè)點(diǎn)部分的粗度的位圖線幅進(jìn)行補(bǔ)正。
文字輸出部20,從打印用的工作用位圖區(qū)域134讀取所希望的位圖,展開(kāi)點(diǎn)并通過(guò)輸入輸出控制部15、驅(qū)動(dòng)部4輸出給打印部3。
下面,用程序方框圖詳細(xì)說(shuō)明上述各處理部111~116的詳細(xì)邏輯。
首先,說(shuō)明本發(fā)明的動(dòng)作。下文,參照?qǐng)D3A及3B說(shuō)明以下說(shuō)明的坐標(biāo)和位圖數(shù)據(jù)的定義。圖3A示出了坐標(biāo)和位圖的定義,圖3B1及3B2示出了矢量的定義。
如圖3A所示,定義坐標(biāo)X和Y,在以下表示坐標(biāo)值的場(chǎng)合,用X,Y來(lái)標(biāo)記。為了方便,將X軸的正方向規(guī)定為向右,負(fù)方向規(guī)定為向左,將Y軸的正方向規(guī)定為向下,負(fù)方向規(guī)定為向上。位圖數(shù)據(jù)的白表示為0×0(“0”為C語(yǔ)言中的16進(jìn)制),黑表示為0×1(“1”為C語(yǔ)言中的16進(jìn)制)。賦予位圖數(shù)據(jù)的坐標(biāo)外(
等)為白(0×0)。
矢量的方向和序號(hào)用圖3B1定義。即,在上下左右的0~7的8個(gè)方向上表示矢量,從而,可表示為圖3B2所示的形式。另外,由于矢量的1和5、3和7不能用1個(gè)文字區(qū)別,因此在旁邊添上“’”和“.”以示區(qū)別。
圖53A~53C示出了矢量的定義。如圖53A所示,矢量用有方向的線段OP表示,一般來(lái)說(shuō),矢量用黑體字表示,在這里表示成↑a。另外,如圖53B所示,X-Y坐標(biāo)上的矢量↑v使用基本的矢量↑i、↑j,其中↑v=x·↑i+y·↑j。這里,只表示為↑v。如圖53C所示,定義各方向的矢量,并分別置換到各個(gè)行列上。把該各矢量的集合稱為矢量空間、矢量組,表示為↑vct。
各方向的矢量以X軸為基準(zhǔn)的旋轉(zhuǎn)角度如下。
∠(↑a)=0,∠(↑b)=π/4,∠(↑c(diǎn))=π/2,∠(↑d)=3π/4,∠(↑e)=π,∠(↑f)=5π/4,∠(↑g)=3π/2,∠(↑h)=7π/4各矢量間的旋轉(zhuǎn)角度,根據(jù)上述各值的減法運(yùn)算求出∠(↑f-↑d)=∠(↑f)-∠(↑d)=π/2。
這里,為了使旋轉(zhuǎn)角度的計(jì)算等簡(jiǎn)單易行,把各矢量看作“記號(hào)”,分配0~7的數(shù)字。即,按以下的方式分配。
↑a→“0”↑b→“1”↑c(diǎn)→“2”↑d→“3”↑e→“4”↑f→“5”↑g→“6”↑h→“7”。
在這種場(chǎng)合,上述的↑vct是這樣的。
↑vct={↑a,↑b,↑c(diǎn),↑d,↑e,↑f,↑g,↑h}={0,1,2,3,4,5,6,7}矢量組↑vct的第n個(gè)矢量,表示成↑vct[n],例如,↑vct[2]=↑c(diǎn)=“2”。
圖4是表示本發(fā)明實(shí)施例的處理和數(shù)據(jù)的流程的程序方框圖。以下,概括說(shuō)明動(dòng)作的流程。
首先,始點(diǎn)檢索·確定部111對(duì)于從文字字形存儲(chǔ)器14讀出的位圖數(shù)據(jù),求出作為矢量始點(diǎn)候補(bǔ)的坐標(biāo)。另外,從該位圖和后述的矢量化后的信息求出新的矢量始點(diǎn)坐標(biāo),再次把該始點(diǎn)坐標(biāo)交給正交矢量提取部112(步驟S41,S42)。
正交矢量提取部112,從始點(diǎn)掃描位圖,通過(guò)置換成上下左右4個(gè)方向的正交矢量行列,從始點(diǎn)提取1周部分的正交矢量,把提取的正交矢量行列交給斜線矢量變換部113(步驟S43)。斜線矢量變換部113參照后述的斜線化判定表132,從得到的正交矢量行列的6個(gè)矢量的連鎖模式中變換成斜線矢量行列,在引線處理部114中進(jìn)行處理(步驟S44)。這時(shí),在上下左右4個(gè)方向添加傾斜的4個(gè)方向,構(gòu)成8個(gè)方向的矢量。
引線處理部114一邊補(bǔ)正坐標(biāo)一邊制作輪廓,在對(duì)于放大加工的位圖坐標(biāo)尋找矢量并引線之際,參照后述的補(bǔ)正表133,從得到的斜線矢量行列的6個(gè)矢量的連鎖模式中,以一個(gè)點(diǎn)單位補(bǔ)正引線的坐標(biāo)(步驟S45)。在這里,把線作成外框用線和涂滿用線兩種類型,該線數(shù)據(jù)在對(duì)于全部始點(diǎn)處理結(jié)束之前,保持在工作用位圖區(qū)域134中。由此,把補(bǔ)正加到輪廓坐標(biāo)上,從斜線矢量進(jìn)行引線。然后,再次進(jìn)行矢量始點(diǎn)的檢索(步驟S41),反復(fù)進(jìn)行上述的步驟S41~S45的處理,直到?jīng)]有新的始點(diǎn)為止,交給涂滿處理部115進(jìn)行處理。
涂滿處理部115對(duì)引線處理部114生成的涂滿用線的內(nèi)部涂滿之后,使之與外框用線重合(步驟S46)。線幅補(bǔ)正處理部116,為了使整體線幅變粗,通過(guò)矢量化進(jìn)行使縱橫1點(diǎn)線變細(xì)的處理(步驟S47)。
以下,參照?qǐng)D5~圖10所示的詳細(xì)程序方框圖,詳細(xì)說(shuō)明從矢量始點(diǎn)檢索(步驟S41)到線幅補(bǔ)正處理(步驟S47)的處理。
首先,說(shuō)明始點(diǎn)檢索·確定部111的始點(diǎn)檢索·確定所需要的處理(圖4中的步驟S41、S42)。
圖5以程序方框圖示出了進(jìn)行始點(diǎn)檢索·確定的處理順序。在這里,首先從坐標(biāo)
開(kāi)始始點(diǎn)檢索(步驟S411)。然后,沿X方向掃描坐標(biāo),檢查是否符合每1點(diǎn)的始點(diǎn)條件(步驟S412)。
作為始點(diǎn)的條件,當(dāng)前坐標(biāo)位置點(diǎn)([x,y)為黑,1點(diǎn)前([x-1,y])為白,不對(duì)標(biāo)記存儲(chǔ)器113設(shè)定的矢量化后的信息對(duì)應(yīng)點(diǎn)進(jìn)行設(shè)置,以所謂的還沒(méi)有矢量化的點(diǎn)為始點(diǎn)。標(biāo)記存儲(chǔ)器113設(shè)定的矢量化后的信息在后述的正交矢量提取處理(步驟S43)中更新。全部清除初始值。
把符合上述始點(diǎn)條件的點(diǎn)作為始點(diǎn),進(jìn)入后述的正交矢量提取處理。在這里,如果看不到始點(diǎn),把y更新成+1(y到達(dá)坐標(biāo)原點(diǎn)時(shí)x為+1,y=0)(步驟S413),反復(fù)進(jìn)行步驟S411以后的處理。
參照?qǐng)D11A~11C所示的位圖說(shuō)明始點(diǎn)確定的例子。圖11A、圖11B及圖11C分別表示第一次、第二次、第三次始點(diǎn)檢索時(shí)的位圖和矢量化后的信息。
在第一次檢索中,為了全部清除標(biāo)記存儲(chǔ)器113中的矢量化后的信息,最初為“白→黑”,此時(shí)[6,2]作為始點(diǎn)。在第二次檢索的場(chǎng)合,通過(guò)相對(duì)[6,2]的正交矢量化(參照?qǐng)D16A),更新“矢量化后的信息”(參照?qǐng)D16B)。變?yōu)椤鞍住凇钡狞c(diǎn)[6,3][6,4][6,5][6,6]等不是用于調(diào)整矢量化后信息的始點(diǎn)。從而,符合條件的最初點(diǎn)[15,5]成為始點(diǎn)。在第三次檢索的場(chǎng)合,通過(guò)第一、第二次的正交矢量化,變成“白→黑”的點(diǎn)全部確定成“矢量化后的信息”,用標(biāo)記存儲(chǔ)器113設(shè)置。因此,在判斷為沒(méi)有第三次的始點(diǎn)時(shí),進(jìn)入后述的涂滿處理(步驟S46)。
下面,參照?qǐng)D6詳細(xì)說(shuō)明正交矢量提取部112的正交矢量變換處理(圖4中的步驟S42)。圖6中,用程序方框圖詳細(xì)地示出了為進(jìn)行正交矢量變換處理的順序。
所謂正交矢量的變換處理,是指把位圖變換成正交矢量值(→、↓、←、↑的四種)的處理,由始點(diǎn)順次調(diào)整點(diǎn)的變化方向,使矢量化后的數(shù)據(jù)變成為↑VCT=
的行列,沒(méi)有位置信息。
首先,求出始點(diǎn)的矢量值,設(shè)置矢量化信息(步驟S431)。其次,把矢量化的點(diǎn)位置從始點(diǎn)向矢量方向移動(dòng)(步驟S432),并且調(diào)整移動(dòng)的點(diǎn)位置的外圍點(diǎn),確定矢量值(步驟S433)。然后,使矢量化的點(diǎn)位置向矢量方向移動(dòng)(步驟S434),并在矢量化的點(diǎn)位置得到始點(diǎn)候補(bǔ)的場(chǎng)合(步驟S435),調(diào)整矢量化后的信息(步驟S436),如果不這樣,就反復(fù)進(jìn)行點(diǎn)位置的移動(dòng)以后的步驟(步驟S433~S435)。
另外,始點(diǎn)矢量值的確定,根據(jù)圖12所示的<表1>來(lái)確定,使點(diǎn)位置從始點(diǎn)沿著矢量方向移動(dòng)。這時(shí),相對(duì)當(dāng)前位置的點(diǎn)確定矢量值,從1以前的矢量值確定矢量檢索方向模式順序,根據(jù)該順序調(diào)整各矢量檢索方向的模式條件。最初以對(duì)應(yīng)于一致的條件的值作為矢量值。圖13示出了作為<表2>的1以前的矢量和檢索順序的關(guān)系,圖14示出了作為<表3>的檢索方向模式、條件以及矢量值的關(guān)系。
檢索條件不是排他的,矢量0和4,或者2和6所確定的條件是相容的。從而,在不根據(jù)檢索順序進(jìn)行處理時(shí),不能得到正確的矢量。這里的檢索順序按照矢量“向左旋轉(zhuǎn)方優(yōu)先”的方式確定。
但是,在當(dāng)前位置矢量值為向上方向的“6”的場(chǎng)合,向上方移動(dòng)的點(diǎn)作為始點(diǎn)候補(bǔ)。因此,在始點(diǎn)的檢索處理中,由于把該點(diǎn)除外是必要的,所以,用標(biāo)記存儲(chǔ)器13設(shè)置“矢量化后的信息”。沿矢量方向的點(diǎn)移動(dòng)是根據(jù)圖15所示的<表4>進(jìn)行的。即是說(shuō),根據(jù)<表4>進(jìn)行矢量化,使點(diǎn)坐標(biāo)位置移動(dòng)。此后,反復(fù)進(jìn)行上述的步驟S432~S436的處理(步驟S437),直到矢量化的點(diǎn)位置可返回到始點(diǎn)為止。
下面,參照?qǐng)D16A和16B說(shuō)明正交矢量化的例子。對(duì)應(yīng)于“矢量化后的信息”,示出了上述始點(diǎn)檢索的例子,圖16A示出了第一次始點(diǎn)檢索時(shí)的正交矢量數(shù)據(jù)、正交矢量變換結(jié)束時(shí)的“矢量化后的信息”,圖16B示出了第二次始點(diǎn)檢索時(shí)的正交矢量數(shù)據(jù)、正交矢量變換結(jié)束時(shí)的“矢量化后的信息”。
第一次為始點(diǎn)[6,2]、正交矢量數(shù)據(jù)↑VCT1=
,第二次為始點(diǎn)[15,5]、正交矢量數(shù)據(jù)↑VCT2=[4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,6,0,6,0,6,6,6,6,6,6,6,6,4,6,4,6]。
其次,說(shuō)明斜線矢量變換部113的斜線矢量變換處理。圖7用程序方框圖示出了進(jìn)行斜線矢量變換的處理順序。以下,參照?qǐng)D7的程序方框圖詳細(xì)說(shuō)明斜線矢量變換處理。
在這里,按照?qǐng)D17中的<表5>定義正交矢量↑VCT={……,VCT[n-2],VCT[n-1],VCT[n],VCT[n+1],VCT[n+2],……}中的VCT[n-2]和VCT[n-1]或VCT[n]和VCT[n+1]等連續(xù)的兩個(gè)矢量要素變化方向。并且,在相同值的場(chǎng)合定義為同方向。
這里,矢量行列的最終要素和初始要素被認(rèn)為是連續(xù)的。例如,矢量行列↑VCT={VCT
,VCT[1],……,VCT[n-2],VCT[n-1],VCT[n]}中的VCT[n]和VCT
是連續(xù)的要素。
另外,在正交行列矢量↑VCT={……,VCT[n-2],VCT[n-1],VCT[n],VCT[n+1],VCT[n+2],VCT[n+3],……}中,定義為VCT[n-2]=Vn2(2以前的正交矢量),VCT[n-1]=Vn1(1以前的正交矢量),VCT[n]=V0(當(dāng)前正交矢量),VCT[n+1]=V1(1以前的正交矢量),VCT[n+2]=V2(2以前的正交矢量),VCT[n+3]=V3(3以前的正交矢量)。
斜線矢量變換部113具有在連續(xù)兩個(gè)正交矢量符合下述給定條件的場(chǎng)合,將這兩個(gè)正交矢量置換成斜線矢量(右上矢量、右下矢量、左下矢量、左上矢量)的功能。置換的形式在圖18所示的<表6>中示出。在這里所進(jìn)行的處理,為了把兩個(gè)正交矢量變換成一個(gè)斜線矢量,應(yīng)減少變換部分的矢量。
以下是變換的條件。即,首先,在連續(xù)的矢量要素Vn2~V3中調(diào)整變化方向,使V0→V1進(jìn)行左旋轉(zhuǎn),并且,在各矢量要素的變化與圖19的<表7>所示的條件一致的場(chǎng)合,使V0和V1變換成斜線矢量。圖20中的<表8>示出了以上述變換條件作為V0=“↓”時(shí)的矢量模式。
下面,說(shuō)明矢量運(yùn)算方法。相對(duì)正交矢量提取部112作成的正交矢量行列查找(核查)斜線化條件,輸出新的斜線化矢量行列。斜線化的矢量不受下面的斜線化條件影響。
參照?qǐng)D7所示的程序方框圖,說(shuō)明為進(jìn)行矢量運(yùn)算的處理流程。從正交矢量行列的先頭位置開(kāi)始矢量運(yùn)算(步驟S441)。Vn2~V2的位置成為↑VCT={V0,V1,V2,……Vn2,Vn1}。接著,調(diào)整V0→V1的旋轉(zhuǎn)方向(步驟S442)。這時(shí),如果是左旋轉(zhuǎn),則進(jìn)入步驟S444以后的處理,在左旋轉(zhuǎn)以外的場(chǎng)合,以當(dāng)前正交矢量值V0為斜線化矢量值,使檢查的正交矢量行列的要素位置移動(dòng)到下次矢量上(步驟S443)。
例如,把Vn2~V2的位置從↑VCT={V0,V1,V2,……Vn2,Vn1},按照↑VCT={Vn1,V0,V1,V2,……Vn2}的方式移動(dòng)1個(gè)位置。
在步驟S444中,用以下的C語(yǔ)言運(yùn)算式(1)算出Vn2~V3的矢量變化方向。
dr(V[n-1]→V[n])=(V[n]-V[n-1]+10)AND 0×07……(1)運(yùn)算的結(jié)果意味著“0”為左旋轉(zhuǎn),“2”為同方向,“4”是右旋轉(zhuǎn),“6”為反對(duì)(不存在)。
其次,把變化方向分為當(dāng)前矢量的前后,根據(jù)以下算式(2)、(3)進(jìn)行加權(quán)處理(步驟S445)。
·后方向的變化加權(quán)值W1={dr(V1-V2)×3+dr(V2→V3)}/2…………(2)·前方向的變化加權(quán)值W2={dr(Vn1-V0)×3+dr(Vn2→Vn1)}/2……(3)然后,相對(duì)該W1、W2查找斜線化判定表132的值(步驟S446)。這里,查找該值(步驟S447)并且在值為“1”的場(chǎng)合,把當(dāng)前矢量斜線化,代入斜線化矢量行列。根據(jù)以下(4)式運(yùn)算。
斜線化矢量值=(當(dāng)前矢量值+0×07)AND 0×07……(4)由此,使“0”變換成“7”、“2”變換成“1”、“4”變換成“3”、“6”變換成“5”。由于成為斜線化對(duì)象的正交矢量序列要素的下次要素含有斜線化矢量,所以,使檢查的正交矢量行列要素位置移動(dòng)2個(gè)(步驟S448)。
另一方面,當(dāng)值為“0”時(shí),把當(dāng)前正交矢量值V0看作斜線化矢量值,使檢查的正交矢量行列的要素位置移動(dòng)到下一個(gè)矢量上(步驟S449)。然后,反復(fù)進(jìn)行上述步驟S441~S449的處理(步驟S450),直到返回到正交矢量行列的先頭位置為止。
關(guān)于使最終矢量斜線化時(shí)的始點(diǎn)的移動(dòng)處理,在正交矢量行列的最后的矢量和先頭的矢量成為斜線化對(duì)象的場(chǎng)合(在↑VCT={V1,V2,……,Vn2,Vn1,V0}中的V0-V1斜線化的場(chǎng)合),刪除代入斜線化矢量行列的先頭的矢量,把從始點(diǎn)坐標(biāo)向刪除的先頭矢量方向所移動(dòng)的坐標(biāo)看作是新的始點(diǎn)。
圖21示出了斜線化判定表132的內(nèi)容。在斜線化判定表132中,相對(duì)上述的加權(quán)運(yùn)算得到的表示W(wǎng)1、W2的值,設(shè)定是否進(jìn)行斜線化的數(shù)據(jù)。通過(guò)變更該表的值,能變更斜線化的模式。
下面,參照?qǐng)D22A、22B說(shuō)明矢量斜線化的例子。圖22A示出了第一次始點(diǎn)確定時(shí)的斜線化矢量數(shù)據(jù),圖22B示出了第二次始點(diǎn)確定時(shí)的斜線化矢量數(shù)據(jù)。
圖22A中,始點(diǎn)為[6,2]、斜線化矢量數(shù)據(jù)是↑VCT1B=
。
圖22B中,初始始點(diǎn)為[15、5]、斜線化矢量數(shù)據(jù)↑VCT2B=[4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,7,7,7,6,6,6,6,6,6,5,5,5]。
在這里,使最終矢量和先頭矢量斜線化,刪除的先頭矢量是“4”,從而,始點(diǎn)移動(dòng)到[-1,0],新始點(diǎn)成為[14,5]。
下面,說(shuō)明引線處理部114對(duì)含有點(diǎn)補(bǔ)正的引線處理(圖4中的步驟S45)。在這里,引線處理包括補(bǔ)正輪廓坐標(biāo)所進(jìn)行的處理和在補(bǔ)正所得到的坐標(biāo)間引線的處理。圖8用程序方框圖示出進(jìn)行引線處理的處理順序。以下,參照程序方框圖進(jìn)行詳細(xì)說(shuō)明。
首先,說(shuō)明輪廓坐標(biāo)補(bǔ)正的處理。在這里,從基本位圖中提取的斜線化矢量行列開(kāi)始,求出矢量的始點(diǎn)及終點(diǎn)坐標(biāo),在X方向、Y方向放大的新位圖區(qū)域(工作用位圖134)上描繪輪廓(線)。矢量的始點(diǎn)、終點(diǎn)坐標(biāo),參照斜線化矢量區(qū)域的連續(xù)的6個(gè)要素,以1點(diǎn)單位添加補(bǔ)正。在此,將這種輪廓制成外框用線和涂滿用線兩種類型。因此,為放大加工處理的位圖區(qū)域有必要為2個(gè)。
由始點(diǎn)和矢量值確定作為基準(zhǔn)的輪廓坐標(biāo)(步驟S451)。這時(shí),參照補(bǔ)正數(shù)據(jù)進(jìn)行運(yùn)算,求出作為前面基準(zhǔn)的輪廓坐標(biāo)。
具體地,在以X,Y方向的倍率分別為BX、BY,原始點(diǎn)為X0、Y0的場(chǎng)合,以[BX×X0,BY×Y0]求出放大加工后的始點(diǎn)[X1,Y1]。以后的基準(zhǔn)輪廓坐標(biāo)的運(yùn)算是,把前面的坐標(biāo)(最初的始點(diǎn)坐標(biāo))值加上對(duì)應(yīng)于從該坐標(biāo)斜線化的矢量值的移動(dòng)量所得到的值作為下次的坐標(biāo)位置。圖23中的<表9>示出了斜線化矢量值和移動(dòng)量的關(guān)系。
以下示出了輪廓基準(zhǔn)坐標(biāo)的例子。即,將斜線化矢量變換部113作成的斜線化矢量行列用BX=2,BY=3放大的輪廓坐標(biāo)是,使始點(diǎn)坐標(biāo)[X0,Y0]為[6,2],斜線化矢量行列↑VCT1B=
。放大后的始點(diǎn)坐標(biāo)[X1,Y1]為[12,6],始點(diǎn)坐標(biāo)以后的坐標(biāo)運(yùn)算用圖24中的<表10>表示。
為了從輪廓中得到位圖數(shù)據(jù),可在圖25<表11>所示的坐標(biāo)間順序地引線。但是,由于只能在45度方向上作斜線,位圖數(shù)據(jù)不是十分圓滑。因此,如下所述,要考慮參照前后矢量數(shù)據(jù),以1個(gè)點(diǎn)坐標(biāo)單位補(bǔ)正各坐標(biāo),使其成為更圓滑的位圖數(shù)據(jù)。
即,確定成為基準(zhǔn)的輪廓坐標(biāo)之后,進(jìn)行步驟S452以后的補(bǔ)正數(shù)據(jù)的基準(zhǔn)坐標(biāo)的補(bǔ)正處理。在此,相對(duì)上述求出的基準(zhǔn)輪廓坐標(biāo),參照前后的矢量值,求出借助補(bǔ)正數(shù)據(jù)進(jìn)行補(bǔ)正的引線用輪廓坐標(biāo)。補(bǔ)正中有三種類型,把基準(zhǔn)坐標(biāo)看作照原樣引線用坐標(biāo)的“不補(bǔ)正”;該基準(zhǔn)坐標(biāo)不使用引線,包含在下次以后的引線處理中的“跳過(guò)”;相對(duì)基準(zhǔn)坐標(biāo)以1個(gè)點(diǎn)單位移動(dòng)坐標(biāo)位置的“點(diǎn)補(bǔ)正”等。并且,補(bǔ)正數(shù)據(jù)是通過(guò)前后矢量值的模式分別確定的值,用補(bǔ)正表133設(shè)定該值。
以下,說(shuō)明補(bǔ)正數(shù)據(jù)的參照方法。首先說(shuō)明按照以下方式定義當(dāng)前矢量及其外圍矢量。即是說(shuō),在斜線化矢量行列↑VCTB={……,VCTB[n-3],VCTB[n-2],VCTB[n-1],VCTB[n],VCTB[n+1],VCTB[n+2],……}中,把連續(xù)的6個(gè)矢量要素的VCTB[n-3]定義成Vn3(3以前的矢量),VCTB[n-2]定義成Vn2(2以前的矢量),VCTB[n-1]定義成Vn1(1以前的矢量),VCTB[n]定義成V0(當(dāng)前矢量),VCTB[n+1]定義成V1(1以前的矢量),VCTB[n+2]定義成V2(2以前的矢量)。
在這種場(chǎng)合,首先,查找(調(diào)查)當(dāng)前矢量V0是正交矢量(0,2,4,6)還是斜線化矢量(1,3,5,7)。在正交矢量的場(chǎng)合,標(biāo)記a0作為“0”,在斜線化矢量的場(chǎng)合,標(biāo)記a0設(shè)置成“1”。
然后,通過(guò)以下算式(5)算出Vn2→V3的矢量變化方向(步驟S452)。
dr(V(n-1)→V(n))=(V(n)-V(n-1)+10)AND 0×07……(5)這里,dr的運(yùn)算結(jié)果是“0”時(shí)為左旋轉(zhuǎn),“1”時(shí)為左旋轉(zhuǎn)45度,“2”時(shí)為同方向,“3”時(shí)為右旋轉(zhuǎn)45度,“4”時(shí)為右旋轉(zhuǎn),“5”時(shí)為右旋轉(zhuǎn)135度(不存在),“6”時(shí)為反對(duì)(不存在),“7”時(shí)為左旋轉(zhuǎn)135度(不存在)。
接著,通過(guò)以下的運(yùn)算式(6),以對(duì)應(yīng)當(dāng)前矢量的補(bǔ)正數(shù)據(jù)求出設(shè)定的表132的地址addr(步驟S453)。
addr=1250×dr(V1→V2)+250×dr(V0→V1)+125×a0+25×dr(Vn3→Vn2)+5×dr(Vn1→V0)……(6)然后,求出對(duì)應(yīng)于當(dāng)前矢量的補(bǔ)正數(shù)據(jù),以該補(bǔ)正數(shù)據(jù)作為補(bǔ)正數(shù)據(jù)H的addr字節(jié)數(shù)的數(shù)據(jù)。這里,補(bǔ)正數(shù)據(jù)H為“0”~“8”的9個(gè)值,在H為“0”的場(chǎng)合,“不補(bǔ)正”(步驟S456),在H為“8”的場(chǎng)合,當(dāng)前矢量決定的基準(zhǔn)坐標(biāo)不使用引線,而是包含在下次以后的引線處理中的“跳過(guò)”(步驟S458),在H為“1”~“7”的場(chǎng)合,進(jìn)行以后的輪廓坐標(biāo)補(bǔ)正處理,并以1個(gè)點(diǎn)單位補(bǔ)正坐標(biāo)位置。補(bǔ)正數(shù)據(jù)H和補(bǔ)正方向的關(guān)系在圖26的<表12>中示出。
下面說(shuō)明輪廓坐標(biāo)補(bǔ)正處理方法。補(bǔ)正方向Hdr由以下的運(yùn)算式(7)運(yùn)算并決定(步驟S457)。
Hdr=(H+V0+7)AND7……(7)然后,根據(jù)圖27所示的<表13>求出XY方向的補(bǔ)正點(diǎn)數(shù)(步驟S459)。這里,HX、HY是每一放大倍率確定的補(bǔ)正點(diǎn)數(shù),通過(guò)把補(bǔ)正后相鄰線之間以不緊密的方式連接起來(lái),使其在放大倍率的1/2以下。圖28作為<表14>,示出了每一倍率的補(bǔ)正點(diǎn)數(shù)作為參考值的情況。相對(duì)于通過(guò)當(dāng)前矢量確定的基準(zhǔn)坐標(biāo)來(lái)說(shuō),只有補(bǔ)正點(diǎn)數(shù)移動(dòng)的坐標(biāo)看作引線用坐標(biāo)(步驟S480)。
此外,上述矢量的計(jì)算,既不能求出儲(chǔ)存補(bǔ)正數(shù)據(jù)的表132的地址,而且在此也不能用計(jì)算方法求出補(bǔ)正數(shù)據(jù),通過(guò)連續(xù)的矢量值的模式確定各個(gè)補(bǔ)正數(shù)據(jù),采用參照該補(bǔ)正數(shù)據(jù)的集合的補(bǔ)正表132的形式。這樣,特別是過(guò)例如,用別的字形字體置換補(bǔ)正數(shù)據(jù),才能進(jìn)行產(chǎn)生字體特征的輪廓平滑化處理。
下文,說(shuō)明點(diǎn)補(bǔ)正例子中的兩個(gè)示例。
如圖29作為<表15>所示的例子示出了使始點(diǎn)坐標(biāo)[X0,Y0]為[6,2],斜線化矢量行列↑VCT1B=
;對(duì)于X方向3倍、Y方向4倍的放大文字來(lái)說(shuō),用X方向補(bǔ)正點(diǎn)值“1”、Y方向補(bǔ)正點(diǎn)值“2”引線的情況。表中,LINE{(X1,Y1)-(X2,Y2)}表示在坐標(biāo)(X1,Y1)-(X2,Y2)之間的引線處理。另外,LINE SKIP表示跳過(guò)引線處理。
圖30中的作為<表16>所示的例子示出了始點(diǎn)為[14,5]、斜線化矢量數(shù)據(jù)↑VCT2B=[4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,7,7,7,6,6,6,6,6,6,5,5,5];對(duì)于X方向3倍、Y方向4倍的放大加工文字來(lái)說(shuō),用X方向補(bǔ)正點(diǎn)值“1”、Y方向補(bǔ)正點(diǎn)值“2”引線的情況。
以下,詳細(xì)說(shuō)明步驟S480以后的引線。這里所謂的引線處理是指確保在基本的位圖數(shù)據(jù)尺寸上乘以X、Y方向的放大率所得到的尺寸數(shù)據(jù)區(qū)域?yàn)?個(gè),在按照上述確定的引線用坐標(biāo)的2點(diǎn)之間通過(guò)插入作為外框用線及涂滿用線的點(diǎn)進(jìn)行描繪。在這里,把外框用線稱作筆畫(huà)線,外框用描繪區(qū)域稱作筆畫(huà)區(qū)域,涂滿用線稱作填充線,涂滿用描繪區(qū)域稱作填充區(qū)域,并繼續(xù)說(shuō)明。另外,把引線對(duì)象的2點(diǎn)看作P1=(X1,Y1)、P2=(X2,Y2)。
首先說(shuō)明筆畫(huà)線的處理。在這里,在筆畫(huà)區(qū)域內(nèi),在上述確定的引線用坐標(biāo)的2點(diǎn)之間插入點(diǎn)并描繪,以作為字形外框用線。這時(shí),為了得到光滑的線,通過(guò)線的傾斜,代替基準(zhǔn)軸(步驟S482)插入點(diǎn)。
具體地,為了確定引線基準(zhǔn)軸,以X、Y變化量大的一方為基準(zhǔn)軸,求出2點(diǎn)之間的X、Y的差△X=ABS(X2-X1)、△Y=ABS(Y2-Y1),當(dāng)△X≥△Y時(shí),以X軸為基準(zhǔn),沿X方向掃描,當(dāng)△X<△Y時(shí),以Y軸為基準(zhǔn),沿Y方向掃描,在這里,ABS是求絕對(duì)值的函數(shù)。
在X軸基準(zhǔn)引線處理(沿X方向的掃描)中,比較X1、X2,從X坐標(biāo)小的一方順次描繪點(diǎn)。在這里,當(dāng)X1≥X2時(shí),以P2→P1的順序描繪(始點(diǎn)PS=P2,終點(diǎn)PE=P1),當(dāng)X1<X2時(shí),以P1→P2的順序描繪(始點(diǎn)PS=P1,終點(diǎn)PE=P2)。
在Y軸基準(zhǔn)引線處理(沿Y方向的掃描)中,比較Y1、Y2,從Y坐標(biāo)小的一方開(kāi)始引線。在這里,當(dāng)Y1≥Y2時(shí),以P2→P1的順序描繪(始點(diǎn)PS=P2,終點(diǎn)PE=P1),當(dāng)Y1<Y2時(shí),以P1→P2的順序描繪(始點(diǎn)PS=P1,終點(diǎn)PE=P2)。
筆畫(huà)線的處理是,用始點(diǎn)、終點(diǎn)、全部插入點(diǎn)來(lái)描繪點(diǎn),描繪的點(diǎn)看作筆畫(huà)區(qū)域的數(shù)據(jù)的邏輯或(OR)的運(yùn)算(步驟S483)。
下文說(shuō)明填充線的處理。在這里,在填充區(qū)域內(nèi),在上述確定的引線用坐標(biāo)的2點(diǎn)之間插入點(diǎn)并描繪,以作為字形涂滿用線。用于插入點(diǎn)的基準(zhǔn)軸只有X方向。
具體地,在X軸基準(zhǔn)引線處理(沿X方向的掃描)中,比較X1、X2,從X坐標(biāo)小的一方順次描繪點(diǎn)(步驟S484)。當(dāng)X1≥X2時(shí),以P2→P1的順序描繪(始點(diǎn)PS=P2,終點(diǎn)PE=P1),當(dāng)X1<X2時(shí),以P1→P2的順序描繪(始點(diǎn)PS=P1,終點(diǎn)PE=P2)。填充線的處理是,在始點(diǎn)、插入點(diǎn)中描繪點(diǎn),終點(diǎn)看作是未處理。另外,描繪的點(diǎn)看作是填充區(qū)域的數(shù)據(jù)的異或邏輯(XOR)的運(yùn)算(步驟S485)。
參照?qǐng)D31~圖41詳細(xì)說(shuō)明上述的筆畫(huà)線、填充線的處理中的2點(diǎn)間描繪直線的算法。
在圖31所示的<曲線1>中,在2點(diǎn)之間(圖中★符號(hào))引直線的場(chǎng)合,象在曲線上描繪直線一樣,要用存儲(chǔ)器在帶小數(shù)點(diǎn)的值坐標(biāo)上描繪點(diǎn)是不可能的。實(shí)際上,如圖中的●所示,在2點(diǎn)之間的直線上,在最接近的整數(shù)值坐標(biāo)處插入點(diǎn)。
這種插入點(diǎn)組可以通過(guò)圖32中的作為<明細(xì)表1>所示的算法順次求出。在這里,插入點(diǎn)組用(x+x1,y)表示。即是說(shuō),對(duì)每一次步進(jìn)計(jì)數(shù)器所算的x進(jìn)行運(yùn)算(round函數(shù)),把帶小數(shù)點(diǎn)的坐標(biāo)值圓整成最接近的整數(shù)。在如圖32所示的例子中,雖然使用了圓整成整數(shù)的函數(shù)round,但是,在將其置換成通常的四則運(yùn)算的場(chǎng)合,也能得到如圖33的<明細(xì)表2>所示的算法。這里,插入點(diǎn)組是(x,y)。
實(shí)際上,在用程序?qū)嵤﹫D33所示的運(yùn)算式的場(chǎng)合,作為另一種情況,在用硬件實(shí)現(xiàn)的場(chǎng)合,包括dy/dx的除法、帶小數(shù)點(diǎn)的變量1、1/2的比較等都是難關(guān)。因此,在圖34或圖35中,使分別作為<明細(xì)表3>、<明細(xì)表4>所示的算法變形。由于圖32~圖35中的用明細(xì)表所示的算法與本發(fā)明的目的沒(méi)有直接關(guān)系,故省略其說(shuō)明。
到此為止的說(shuō)明,已經(jīng)描述了dx>=dy的情況。這里的x是用于判斷每次步進(jìn)計(jì)數(shù)器增量為1時(shí)“y步進(jìn)計(jì)數(shù)器的增量是否為1”的情況,所以,增量dy/dx不能適用于步進(jìn)計(jì)數(shù)器1以上的場(chǎng)合。如果試圖在dx<dy的場(chǎng)合實(shí)施,則會(huì)出現(xiàn)圖36中的曲線(<曲線2>)所示的情況(Y坐標(biāo)正方向=向下方向)。
為了避免上述問(wèn)題,要反復(fù)地將1與dx進(jìn)行比較并進(jìn)行處理和變更。這種算法在圖37的<明細(xì)表5>中示出。通過(guò)這種算法,即使在增量dy/dx大于1的場(chǎng)合,也能在圖38的曲線(<曲線3>)所表示的直線上得到最近的坐標(biāo)點(diǎn)組。
而在dx<dy的場(chǎng)合的處理,也不會(huì)發(fā)生問(wèn)題,用上述算法可生成直線。不過(guò),在dx相對(duì)dy為更大的值(急劇傾斜的場(chǎng)合)的情況下,按照?qǐng)D39的曲線(<曲線4>)所表示的方式插入的點(diǎn)會(huì)特別少。
實(shí)際上,作為涂滿用的算法是非常有用的??墒?,在作為用于得到字形外框的引線場(chǎng)合,如圖39所示,點(diǎn)的加密部分和點(diǎn)的稀疏部分相混,不能變成保持漂亮外形的字形。
插入點(diǎn)組變密時(shí),不依賴于線的傾斜程度,根據(jù)dx,dy的大小可進(jìn)行分類。當(dāng)dx<dy時(shí),正好替換X軸和Y軸進(jìn)行運(yùn)算處理。即是說(shuō),每當(dāng)y步進(jìn)計(jì)數(shù)器的增量是1時(shí),不進(jìn)行x步進(jìn)計(jì)數(shù)器的增量是否是1的判斷,把增量dy/dx或dx/dy正規(guī)化到1以下。這時(shí),算法變成圖40中的作為<明細(xì)表6>所示的形式。根據(jù)該算法,結(jié)果在圖41所示的曲線(<曲線5>)中表示,以加密的方式描繪點(diǎn)。
歸納上文所表述的情況,筆畫(huà)線(外框用引線)用算法成為如下形式。即是說(shuō),當(dāng)dx>=dy時(shí),每當(dāng)x步進(jìn)計(jì)數(shù)器的增量是1時(shí),進(jìn)行判斷y是增量與否的處理(X掃描引線處理)。dx<dy時(shí),每當(dāng)y步進(jìn)計(jì)數(shù)器增量是1時(shí),進(jìn)行判斷x是增量與否的處理(y掃描引線處理),對(duì)始點(diǎn)、終點(diǎn)和插入點(diǎn)進(jìn)行筆畫(huà)區(qū)域數(shù)據(jù)和邏輯或(OR)的運(yùn)算。
下面,說(shuō)明用筆畫(huà)線的涂滿處理。涂滿算法如圖42中的作為<明細(xì)表7>所示,是通過(guò)進(jìn)行Y方向的1個(gè)在前的點(diǎn)的異或邏輯(XOR)的運(yùn)算實(shí)現(xiàn)的。這樣,這在用圖43A所示的圖形(<曲線6>)的例子實(shí)施的場(chǎng)合,變成如圖43B所示的形式,而且特別不會(huì)產(chǎn)生問(wèn)題。
接著,在借助于使用筆畫(huà)線處理所描繪圖44A的例子(<曲線7>)實(shí)施的場(chǎng)合,結(jié)果變成圖44B所示的情況,不能順利地進(jìn)行涂滿。同樣地,在使用圖45A所示的長(zhǎng)方形(<曲線8>)實(shí)施的場(chǎng)合,結(jié)果變成圖45B所示的形式,不能順利地進(jìn)行邊a-d,邊b-c之間的涂滿。
鑒于這種原因,對(duì)于以使用涂滿算法在1個(gè)點(diǎn)到1個(gè)點(diǎn)之間進(jìn)行彌補(bǔ)處理為目的情況來(lái)說(shuō),可以例如用1個(gè)點(diǎn)以上的點(diǎn),只從作為涂滿方向的Y方向上描繪線段A-C、B-C(圖44A)、a-d、b-c(圖45A)。
對(duì)線段A-C,B-C來(lái)說(shuō)用1個(gè)點(diǎn)以上的點(diǎn)的描繪,是在進(jìn)行Y方向掃描引線處理中描繪的,為了解決此問(wèn)題,與線段的傾斜程度無(wú)關(guān),最好進(jìn)行X方向的掃描引線處理。
圖46A(<曲線9>)例示了單純?cè)谧鴺?biāo)點(diǎn)間進(jìn)行X方向掃描的引線處理的例子,這時(shí)試圖只進(jìn)行涂滿。在這種場(chǎng)合,如圖46B所示,與并用X掃描、Y掃描的引線處理的例子相比,雖然有所改善,但是由于頂點(diǎn)A、B僅是一個(gè)點(diǎn),不存在涂滿終點(diǎn),引線已經(jīng)結(jié)束。
下面說(shuō)明填充線(涂滿用引線)的處理。在圖46B中,點(diǎn)A、B是圖形的頂點(diǎn),很難描繪出涂滿的終點(diǎn)。因此,在用頂點(diǎn)A、B進(jìn)行引線處理中,可以不描繪黑點(diǎn),只描繪白點(diǎn),但是在單純引線處理的始點(diǎn)、終點(diǎn)為白點(diǎn)的處理中,即使到頂點(diǎn)C為白點(diǎn),這一次也可以在點(diǎn)C以后進(jìn)行引線。
因此,引線處理的始點(diǎn)、終點(diǎn)可與上次或下次的引線重合,利用兩次的處理,在從始點(diǎn)到終點(diǎn)的1個(gè)前插入點(diǎn)組中,通過(guò)在終點(diǎn)未處理填充區(qū)域的數(shù)據(jù)的異或邏輯運(yùn)算,可以使頂點(diǎn)變成白點(diǎn)。填充線的插入點(diǎn)組生成算法用圖47的明細(xì)表形式表示。
根據(jù)填充線的處理,圖48A的(<曲線10>)△形(頂點(diǎn)A、B、C)遵循以下的順序。即是說(shuō),在圖48A中的填充線A-B的處理中,A點(diǎn)是黑點(diǎn),B點(diǎn)沒(méi)有處理(白點(diǎn)),在填充線C-B的處理中,C點(diǎn)為黑點(diǎn),B點(diǎn)沒(méi)有處理(白點(diǎn)),在填充線A-C的處理中,A點(diǎn)是異或邏輯運(yùn)算的白點(diǎn),C點(diǎn)是未處理的黑點(diǎn)。圖48A所示的△形中,實(shí)施涂滿處理變?yōu)閳D48B所示的形式。
填充線(涂滿用引線)的算法歸納為以下形式。即,在2點(diǎn)間的坐標(biāo)中,以X坐標(biāo)小的一方作為始點(diǎn)。然后,每當(dāng)x步進(jìn)計(jì)數(shù)器增量為1時(shí),判斷y為增量與否(X掃描引線處理)。用始點(diǎn)、插入點(diǎn)組進(jìn)行填充區(qū)域數(shù)據(jù)的異或邏輯運(yùn)算,終點(diǎn)為未處理。
其次,說(shuō)明通過(guò)涂滿處理部115的涂滿處理(圖4中的步驟S46)。圖9以程序方框圖示出了處理順序。以下,參照?qǐng)D9所示的程序方框圖進(jìn)行說(shuō)明。
利用涂滿處理部115,把通過(guò)引線處理部114制成的填充線的內(nèi)側(cè)涂滿。填充線的涂滿是通過(guò)實(shí)施Y方向的1個(gè)前點(diǎn)的異或邏輯運(yùn)算XOR(步驟S461)實(shí)現(xiàn)的。圖49以明細(xì)表(<明細(xì)表9>)的形式示出了算法。
下面說(shuō)明筆畫(huà)區(qū)域、填充區(qū)域的重合。在這里,通過(guò)邏輯或運(yùn)算,使描繪字形外框的筆畫(huà)區(qū)域和描繪涂滿字形的填充區(qū)域的內(nèi)容重合(步驟S462)。該樣式表示在圖50中的作為動(dòng)作概念圖之中。
最后,說(shuō)明線幅補(bǔ)正處理部116進(jìn)行的粗度補(bǔ)正處理(圖4中的步驟S47)。圖10以程序方框圖示出了處理順序。
在此,通過(guò)引線處理部114制成的位圖,由于經(jīng)過(guò)矢量化,在X方向、Y方向同時(shí)以1個(gè)點(diǎn)部分變粗,因此,可實(shí)施在X、Y兩個(gè)方向上把位圖分別刪除1個(gè)點(diǎn)部分的功能。
下面,具體說(shuō)明處理的方法。首先,在Y方向上掃描坐標(biāo)(步驟S471),查找點(diǎn)刪除的條件(步驟S472),把以下所示的條件的點(diǎn)變成“白”(步驟S473)。在這里,所謂點(diǎn)刪除的條件是指,當(dāng)前坐標(biāo)點(diǎn)為“黑”,下一坐標(biāo)點(diǎn)(=Y+1)是“白”,坐標(biāo)端點(diǎn)為未處理。
接著,在X方向上掃描坐標(biāo)(步驟S472),查找點(diǎn)刪除的條件(步驟S472),把以下所示的條件的點(diǎn)變成“白”(步驟S473)。在這里,所謂點(diǎn)刪除的條件是指,當(dāng)前坐標(biāo)點(diǎn)為“黑”,下一坐標(biāo)點(diǎn)(=X+1)是“白”,坐標(biāo)端點(diǎn)為未處理。
下面,參照?qǐng)D51A~51D所示的位圖說(shuō)明粗度補(bǔ)正的例子。
在圖51A所示的位圖例子中,提取輪廓并放大。在這里,矢量數(shù)據(jù)↑VCT1=
。并且,以X方向的2倍、Y方向的2倍,進(jìn)行引線、涂滿、重合處理,其結(jié)果為圖51B所示的情況。
由于圖51B示出的位圖是在X方向放大2倍、在Y方向放大2倍進(jìn)行描繪時(shí)的位圖,因此,圖形的大小本應(yīng)是4×2的8點(diǎn)部分,但是,在矢量化的場(chǎng)合,如圖所示,可能會(huì)以+1點(diǎn)部分變粗。這里,+1點(diǎn)并不限于此例,也不是放大率的值,是均勻的。LINE{(X1,Y1)-(X2,Y2)}表示的是從坐標(biāo)(X1,Y1)向坐標(biāo)(X2,Y2)引線段的處理。
這樣,雖然進(jìn)行了粗度補(bǔ)正處理,但是,在這里,首先在Y方向掃描坐標(biāo),在F[x,y]=0x1(黑)、F[x,y+1]=0x0(白)的場(chǎng)合,置換成F[x,y]=0x0(白)。由此,生成圖51C所示的位圖。具體地,補(bǔ)正用□表示的點(diǎn)。
接著,在X方向掃描坐標(biāo),在F[x,y]=0x1(黑)、F[x,y+1]=0x0(白)的場(chǎng)合,置換成F[x,y]=0x0(白)。由此,生成圖51D所示的位圖。具體地,補(bǔ)正用◇表示的點(diǎn)。進(jìn)行該粗度補(bǔ)正的結(jié)果,使在XY方向變成2倍的圖形的寬度成為在XY的各個(gè)方向上的本來(lái)的4×2的8點(diǎn)。
下面,參照?qǐng)D52A~52D所示的位圖,說(shuō)明粗度補(bǔ)正的例外處理(步驟S474)?;镜奈粓D數(shù)據(jù)如圖52A所示,在24×24點(diǎn)字形尺寸的端部相接的場(chǎng)合,進(jìn)行粗度補(bǔ)正。
在X方向、Y方向同時(shí)為2倍時(shí),實(shí)施引線、涂滿、重合處理,變成圖52B所示的位圖。在引線處理中,由于不能描繪出超過(guò)終點(diǎn)坐標(biāo)放大后的位圖尺寸的坐標(biāo),因此,圖形的大小存在不能以1點(diǎn)部分變大的位置的位置。
單純進(jìn)行粗度補(bǔ)正處理,變成如圖52C所示的位圖。在該場(chǎng)合,補(bǔ)正處理后的圖形在XY方向上以1個(gè)點(diǎn)列的部分變小。在此,在放大后的圖形中,如果在位圖坐標(biāo)端的點(diǎn)為未處理,可得到圖52D所示的位圖。在圖52C、52D中,□表示補(bǔ)正的點(diǎn)。
另外,把存儲(chǔ)介質(zhì)提供給系統(tǒng)或裝置,該存儲(chǔ)介質(zhì)用于記錄實(shí)現(xiàn)上述實(shí)施例的輪廓平滑化方法的軟件程序代碼,該系統(tǒng)或裝置的計(jì)算機(jī)(或CPU或MPU)讀出儲(chǔ)存在存儲(chǔ)介質(zhì)中的程序代碼,并進(jìn)行實(shí)施,不言而喻,這樣也能實(shí)現(xiàn)本發(fā)明的目的。
在這種場(chǎng)合,從存儲(chǔ)介質(zhì)讀出的程序代碼本身能實(shí)現(xiàn)本發(fā)明新的功能,存儲(chǔ)該程序代碼的存儲(chǔ)介質(zhì)構(gòu)成本發(fā)明。
作為供給程序代碼的存儲(chǔ)介質(zhì),可使用例如軟盤(pán)、硬盤(pán)、光盤(pán)、光磁盤(pán)、CD-ROM、CD-R、磁帶、非易失性存儲(chǔ)器插件、ROM等。另外,通過(guò)通訊網(wǎng)絡(luò)從服務(wù)器供給程序代碼也是可行的。
以上,說(shuō)明了本發(fā)明的最佳實(shí)施形式,但是,可以理解,對(duì)于本領(lǐng)域的熟練技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明的精神和范圍的前提下,可作出各種變更。
權(quán)利要求
1.一種將點(diǎn)陣狀的位圖數(shù)據(jù)所規(guī)定的位圖字形的文字圖像的輪廓平滑化的方法,包括下述步驟在上述文字圖像放大時(shí),把上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù);在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓;以及用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新的位圖數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征是,進(jìn)行上述引線的步驟包括以下步驟根據(jù)上述矢量數(shù)據(jù)求出作為基準(zhǔn)的輪廓坐標(biāo);分別與上述給定數(shù)目的矢量連鎖中變化的模式對(duì)應(yīng),參照預(yù)先定義的補(bǔ)正數(shù)據(jù)對(duì)上述作為基準(zhǔn)的輪廓坐標(biāo)進(jìn)行補(bǔ)正,以此作為補(bǔ)正輪廓坐標(biāo);以及將該補(bǔ)正輪廓坐標(biāo)的各鄰接坐標(biāo)彼此之間用線連接。
3.一種將點(diǎn)陣狀的位圖數(shù)據(jù)所規(guī)定的位圖字形的文字圖像的輪廓平滑化的方法,包括下述步驟根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo);從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息;為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線化矢量行列;根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理;經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各步驟,生成表示上述引線處理結(jié)果的線數(shù)據(jù);以及基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征是,進(jìn)行上述引線處理的步驟包括根據(jù)規(guī)定上述文字圖像的輪廓的數(shù)據(jù)和涂滿處理,生成用于規(guī)定把內(nèi)側(cè)用點(diǎn)涂滿的線的數(shù)據(jù),生成上述新的位圖數(shù)據(jù)的步驟包括以下步驟進(jìn)行上述涂滿處理;使上述涂滿處理所得到數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合;以及根據(jù)上述矢量化進(jìn)行使變粗的上述文字圖像的線幅變細(xì)的線幅補(bǔ)正處理。
5.根據(jù)權(quán)利要求3所述的方法,其特征是,求出上述始點(diǎn)坐標(biāo)的步驟包括沿著給定的方向順次掃描上述位圖數(shù)據(jù)的點(diǎn),不能根據(jù)上述矢量化后的信息表示矢量化后的情況,并且,把表示之前點(diǎn)的變化的點(diǎn)坐標(biāo)確定為上述始點(diǎn)坐標(biāo)。
6.根據(jù)權(quán)利要求3所述的方法,其特征是,把上述位圖數(shù)據(jù)變換成正交矢量行列的步驟包括以下步驟設(shè)定與上述始點(diǎn)對(duì)應(yīng)的矢量值,更新上述矢量化后的信息,使上述始點(diǎn)為矢量化后的始點(diǎn);把矢量化的點(diǎn)位置移動(dòng)到矢量方向的下一點(diǎn)處;查找上述下一點(diǎn)周圍的點(diǎn),確定該下一點(diǎn)的矢量值;在該下一點(diǎn)得到始點(diǎn)候補(bǔ)的場(chǎng)合,更新上述矢量化后的信息,使該點(diǎn)成為矢量化后的點(diǎn);在上述矢量化的點(diǎn)位置返回到上述始點(diǎn)之前,反復(fù)進(jìn)行從移動(dòng)到上述下一點(diǎn)的步驟到更新上述矢量化后的信息的步驟。
7.根據(jù)權(quán)利要求3所述的方法,其特征是,進(jìn)行上述引線處理的步驟包括以下步驟基于上述始點(diǎn),根據(jù)預(yù)先規(guī)定的條件確定補(bǔ)正前的基準(zhǔn)輪廓始點(diǎn)坐標(biāo),之后,把前面的坐標(biāo)值加上對(duì)應(yīng)于從該坐標(biāo)斜線化矢量行列的矢量值的移動(dòng)量所得到的值作為下次的坐標(biāo)位置,由此設(shè)定基準(zhǔn)輪廓坐標(biāo);參照上述補(bǔ)正數(shù)據(jù)表,以點(diǎn)單位補(bǔ)正上述基準(zhǔn)輪廓坐標(biāo),生成補(bǔ)正的輪廓坐標(biāo)。
8.根據(jù)權(quán)利要求7所述的方法,其特征是,進(jìn)行上述引線處理的步驟還包括以下步驟在上述輪廓坐標(biāo)的各連續(xù)的兩點(diǎn)之間,根據(jù)上述輪廓坐標(biāo)的坐標(biāo)系坐標(biāo)軸的兩根正交軸中直線的傾斜度,以該直線表示更大的坐標(biāo)值的變化的一方為基準(zhǔn)軸,在始點(diǎn)、終點(diǎn)及上述各連續(xù)的各兩點(diǎn)間的直線上設(shè)定最接近整數(shù)值的坐標(biāo)上的插入點(diǎn)并進(jìn)行連接,生成規(guī)定上述文字圖像的輪廓的數(shù)據(jù);在上述輪廓坐標(biāo)的上述各連續(xù)的兩點(diǎn)之間,只以上述兩根軸的給定的一方為基準(zhǔn)軸,在始點(diǎn)及上述插入點(diǎn)中設(shè)定點(diǎn)并進(jìn)行連接,生成用于規(guī)定用點(diǎn)涂滿內(nèi)側(cè)的線的數(shù)據(jù)。
9.根據(jù)權(quán)利要求4所述的方法,其特征是,使根據(jù)上述涂滿處理得到的數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合的步驟包括對(duì)規(guī)定上述輪廓的數(shù)據(jù)及通過(guò)上述涂滿處理得到的數(shù)據(jù)進(jìn)行邏輯或的運(yùn)算。
10.根據(jù)權(quán)利要求4所述的方法,其特征是,上述進(jìn)行線幅補(bǔ)正處理的步驟包括沿縱向掃描通過(guò)使上述涂滿處理所得到的數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合所得到的重合位圖數(shù)據(jù)的坐標(biāo),在當(dāng)前坐標(biāo)點(diǎn)為“黑”、下一坐標(biāo)點(diǎn)為“白”的場(chǎng)合,看作“白”,并且沿橫向掃描上述重合的位圖數(shù)據(jù)的上述坐標(biāo),在當(dāng)前坐標(biāo)點(diǎn)為“黑”、下一坐標(biāo)點(diǎn)為“白”的場(chǎng)合,看作“白”,并且從表示縱橫各方向上1個(gè)點(diǎn)幅部分變粗的上述文字圖像的上述重合位圖數(shù)據(jù)開(kāi)始,通過(guò)矢量化分別刪除該1個(gè)點(diǎn)幅部分。
11.一種輪廓平滑化處理裝置,包括用于存儲(chǔ)規(guī)定位圖字形的、點(diǎn)陣狀的位圖數(shù)據(jù)的存儲(chǔ)裝置;字形加工裝置,在上述位圖字形的文字放大時(shí),把上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù),在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓,接著,用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新的位圖數(shù)據(jù);以及打印或顯示上述制成的位圖數(shù)據(jù)的文字輸出裝置。
12.根據(jù)權(quán)利要求11所述的輪廓平滑化處理裝置,其特征是,上述字形加工裝置包括根據(jù)所變換的矢量數(shù)據(jù)求出作為基準(zhǔn)的輪廓坐標(biāo)的基準(zhǔn)輪廓運(yùn)算部;分別與上述給定數(shù)目的矢量連鎖中變化的模式對(duì)應(yīng),參照預(yù)先定義的補(bǔ)正數(shù)據(jù)對(duì)上述作為基準(zhǔn)的輪廓坐標(biāo)進(jìn)行補(bǔ)正,以此作為補(bǔ)正輪廓坐標(biāo),然后,將該補(bǔ)正輪廓坐標(biāo)的各鄰接坐標(biāo)彼此之間用線連接的線段生成部。
13.一種輪廓平滑化處理裝置,適用于根據(jù)位圖數(shù)據(jù)打印或顯示的文字輸出裝置,包括用于存儲(chǔ)規(guī)定位圖字形的、點(diǎn)陣狀的位圖數(shù)據(jù)的存儲(chǔ)裝置;根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的始點(diǎn)確定部;正交矢量提取部,從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息;斜線矢量變換部,為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線化矢量行列;引線處理部,根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理;以及位圖數(shù)據(jù)生成部,經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各部的處理,由此,生成表示上述引線處理結(jié)果的線數(shù)據(jù),基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的輪廓平滑化處理裝置,其特征是,上述引線處理部包括生成用于規(guī)定上述文字圖像的輪廓的數(shù)據(jù)的輪廓數(shù)據(jù)生成部;生成用于規(guī)定通過(guò)涂滿處理把內(nèi)側(cè)用點(diǎn)涂滿的線的數(shù)據(jù)的涂滿線數(shù)據(jù)生成部,上述位圖數(shù)據(jù)生成部包括進(jìn)行上述涂滿處理的涂滿部,使上述涂滿處理所得到數(shù)據(jù)與規(guī)定上述輪廓的數(shù)據(jù)重合的重合部;以及根據(jù)上述矢量化進(jìn)行使變粗的上述文字圖像的線幅變細(xì)的線幅補(bǔ)正處理的線幅補(bǔ)正部。
15.根據(jù)權(quán)利要求13所述的輪廓平滑化處理裝置,其特征是,上述補(bǔ)正表是分別預(yù)備多個(gè)位圖字形,根據(jù)對(duì)該多個(gè)位圖字形的選擇,有選擇地使用的補(bǔ)正數(shù)據(jù)的多個(gè)表格的集合。
16.一種存儲(chǔ)介質(zhì),用于實(shí)現(xiàn)將點(diǎn)陣狀位圖數(shù)據(jù)所規(guī)定的位圖字形文字圖像的輪廓平滑化的方法,并儲(chǔ)存計(jì)算機(jī)可以實(shí)施的程序,所述的程序包括在上述文字圖像放大時(shí),把上述位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù)的矢量數(shù)據(jù)生成模塊;在上述位圖數(shù)據(jù)開(kāi)始到結(jié)束之間,給定數(shù)目的矢量是連鎖的,根據(jù)每一矢量位移的連鎖,在新的位圖上進(jìn)行引線,制作上述放大文字圖像的輪廓的輪廓生成模塊;以及用點(diǎn)涂滿上述引線生成的輪廓的內(nèi)部,生成表示上述放大文字圖像的新位圖數(shù)據(jù)的位圖生成模塊。
17.一種存儲(chǔ)介質(zhì),用于實(shí)現(xiàn)將點(diǎn)陣狀位圖數(shù)據(jù)所規(guī)定的位圖字形文字圖像的輪廓平滑化的方法,并儲(chǔ)存計(jì)算機(jī)可以實(shí)施的程序,所述的程序包括根據(jù)預(yù)先規(guī)定的條件,參照表示各點(diǎn)矢量化與否的矢量化后的信息,對(duì)于上述的位圖數(shù)據(jù)求出對(duì)應(yīng)于變換之前矢量數(shù)據(jù)的開(kāi)始的上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的始點(diǎn)確定模塊;從上述始點(diǎn)開(kāi)始,按照給定的順序確定位于對(duì)應(yīng)的前面點(diǎn)的下一位置的鄰接點(diǎn)的方向,根據(jù)該確定的方向,把表示上述位圖數(shù)據(jù)的各點(diǎn)變換成上下左右4個(gè)方向中的任一方向的矢量,由此,把上述位圖數(shù)據(jù)變換成正交矢量行列,同時(shí)更新上述矢量化后的信息的正交矢量提取模塊;為了適用于把上述正交矢量行列的矢量變換成斜線化矢量時(shí)的情況,根據(jù)上述正交矢量行列的給定數(shù)目的矢量的各連鎖,參照預(yù)先定義上述連鎖給定模式的斜線化表,由此,把上述正交矢量行列變換成斜線矢量行列的斜線矢量變換模塊;根據(jù)上述始點(diǎn)和上述斜線矢量行列制作位圖坐標(biāo),從分別對(duì)應(yīng)于上述斜線矢量行列的給定數(shù)目矢量的連鎖模式開(kāi)始,參照預(yù)先定義點(diǎn)單位補(bǔ)正量的補(bǔ)正數(shù)據(jù)表,對(duì)該位圖坐標(biāo)進(jìn)行補(bǔ)正,由此,進(jìn)行引線處理的引線處理模塊;經(jīng)過(guò)求出上述位圖數(shù)據(jù)的始點(diǎn)坐標(biāo)的步驟,在找不到新的始點(diǎn)之前,反復(fù)實(shí)施上述各步驟,生成表示上述引線處理結(jié)果的線數(shù)據(jù)的線數(shù)據(jù)生成模塊;以及基于上述線數(shù)據(jù)生成新的位圖數(shù)據(jù)的位圖數(shù)據(jù)生成模塊。
全文摘要
本發(fā)明提供以規(guī)定某種文字字形的文字作為點(diǎn)陣狀的位圖數(shù)據(jù),根據(jù)上述位圖數(shù)據(jù)顯示該文字的文字輸出裝置所使用的方法。上述文字放大時(shí),把該位圖數(shù)據(jù)一次變換成矢量數(shù)據(jù)。然后,在上述位圖數(shù)據(jù)的傾斜方向上,包括鄰接數(shù)據(jù)列(數(shù)組)為不連續(xù)的部分在內(nèi),從上述變換矢量的始點(diǎn)開(kāi)始向該矢量方向的終點(diǎn)進(jìn)行新的引線,把該新的引線所生成的線的內(nèi)部涂滿,再生成位圖數(shù)據(jù)。
文檔編號(hào)G09G5/28GK1295309SQ00135539
公開(kāi)日2001年5月16日 申請(qǐng)日期2000年10月7日 優(yōu)先權(quán)日1999年10月7日
發(fā)明者宮坂德章, 柳澤重一, 大本隆二 申請(qǐng)人:精工愛(ài)普生株式會(huì)社