亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

產(chǎn)生字符的方法和裝置的制作方法

文檔序號(hào):6407405閱讀:352來源:國知局
專利名稱:產(chǎn)生字符的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在用整數(shù)值表示的物理坐標(biāo)上顯現(xiàn)用邏輯坐標(biāo)系表示的輪廓字符的產(chǎn)生字符的方法和裝置。
打印機(jī)、顯示器或類似物需要產(chǎn)生供打印或顯示字符的字符圖象?,F(xiàn)在,在字符圖形的產(chǎn)生中,即使對(duì)于同一字符都要求產(chǎn)生各種不同字符尺寸的字符。因此,如果對(duì)同一字符用二進(jìn)制數(shù)圖形給出各種不同字符尺寸的字符,那么就要增加存儲(chǔ)器容量,特別地,象漢字字符這樣帶有許多字符形式的字符需要大的存儲(chǔ)器容量。
作為解決這一問題的方法,已有一種用輪廓字形產(chǎn)生字符的方法。根據(jù)該方法,提供了其輪廓線用實(shí)數(shù)并且也通過邏輯坐標(biāo)系表示的字符圖形的數(shù)據(jù),這種數(shù)據(jù)被轉(zhuǎn)換到指定字符尺寸坐標(biāo)系以將字符顯現(xiàn)到由整數(shù)值表示的二進(jìn)制數(shù)變換圖上。
通常,在把用實(shí)數(shù)表示的邏輯坐標(biāo)數(shù)據(jù),例如數(shù)字或輪廓字形顯現(xiàn)到由整數(shù)值表示的二進(jìn)制數(shù)變換圖上時(shí),字符數(shù)據(jù)的小數(shù)部分要四舍五入取整數(shù),以便數(shù)據(jù)用打印機(jī)或顯示器的象素的單元來表示。為了用最接近的象素來表示坐標(biāo)數(shù)據(jù),一般的四舍五入辦法是把小數(shù)為5或大于5的作為一個(gè)整數(shù)。
例如,構(gòu)成用

圖1所示的輪廓形式所表示的漢字字符“車”的各個(gè)點(diǎn)(輪廓點(diǎn))用象1000×1000的整數(shù)邏輯坐標(biāo)存儲(chǔ)。
在邏輯坐標(biāo)上的字符輪廓數(shù)據(jù)被轉(zhuǎn)換成帶有含小數(shù)點(diǎn)的坐標(biāo)值的必要字符尺寸。如果所有的點(diǎn)都被四舍五入以用物理坐標(biāo)表示坐標(biāo)值,那么,所有的點(diǎn)都將被四舍五入到最接近整數(shù)。為了變換成24×24點(diǎn)的字符尺寸,例如,圖1所示的漢字字符“車”通過坐標(biāo)變換和四舍五入變成如圖2A所示。再該例中,由于原來字符設(shè)計(jì)得較厚,因此,所產(chǎn)生的字符二進(jìn)制數(shù)變換圖寬度為二個(gè)象素。
如果同一個(gè)字符被轉(zhuǎn)換成在橫向和縱向都有16點(diǎn)(16×16點(diǎn))的二進(jìn)制數(shù)變換圖,那么它就變成了如圖2B所示,而且兩個(gè)相鄰的中間橫向筆劃相互接觸。
同樣地,當(dāng)由用圖3所示的1000×1000邏輯坐標(biāo)以輪廓形式表示的漢字字符“龜”變換成16×16點(diǎn)的字符尺寸,它就變成了如圖4A所示。
漢字字符“龜”在構(gòu)成該漢字字符的兩個(gè)組成單元“Hi”中每一個(gè)都含有三個(gè)橫向筆劃,一個(gè)橫向筆劃在頂部,一個(gè)橫向筆劃在下部。因此,這個(gè)漢字字符包含總共八個(gè)橫向筆劃。為了表示這八個(gè)橫向筆劃,需要16點(diǎn),包括兩個(gè)橫向筆劃之間的空白部分。因此,16×16點(diǎn)的二進(jìn)制數(shù)變換圖是能準(zhǔn)確表示的最小尺寸。
如果漢字字符被縮小到12×12點(diǎn)的物理坐標(biāo),那么有些橫向筆劃將會(huì)象圖4B所示那樣相互接觸,因?yàn)闆]有點(diǎn)來表示橫向筆劃之間的空白空間。
當(dāng)把象黑體字符一樣用粗線設(shè)計(jì)的字符縮小時(shí),一些橫向筆劃將如圖2B所示相互接觸。接觸的部分涂滿了黑色,字符將不能準(zhǔn)確地辨認(rèn),這樣可讀性下降。
同樣地,當(dāng)縮小即使用細(xì)線表示的有復(fù)雜構(gòu)形的字符時(shí),如圖4B所示,有些橫向筆劃也將相互接觸,接觸的部分也會(huì)涂滿黑色,以至字符不能清晰地辨識(shí),這樣降低了可讀性。
進(jìn)一步地,構(gòu)成用圖5所示的輪廓形式表達(dá)的漢字字符“目”的各個(gè)點(diǎn)(輪廓點(diǎn))用象1000×1000的整數(shù)邏輯坐標(biāo)存儲(chǔ)。例如,要把這個(gè)漢字字符變換成12×14點(diǎn)的字符尺寸,漢字字符“目”的左豎筆劃通過圖6A所示的坐標(biāo)變換由X坐標(biāo)e=1.2到e′=2.7表示。通過四舍五入處理后,這個(gè)豎筆劃就變成如圖6B所示的、X坐標(biāo)從1到3的帶有兩個(gè)象素寬度的二進(jìn)制數(shù)變換圖。漢字字符“目”的右邊豎筆劃用X坐標(biāo)f=7.7到f′=9.2表示,通過四舍五入處理后,這個(gè)豎筆劃變成如圖6B所示的、X坐標(biāo)從8到9的帶有一個(gè)象素寬度的二進(jìn)制數(shù)變換圖。
用這種方式,即使原來有相同寬度的豎筆劃,通過四舍五入處理后,在物理坐標(biāo)上將有不同的寬度,左手邊為量兩個(gè)象素,右手邊為一個(gè)象素。
同樣地,通過坐標(biāo)轉(zhuǎn)換,漢字字符“目”的四個(gè)橫筆劃如圖6A所示從上到下分別用y坐標(biāo)d=11.5到d′=12.7,c=8.3到c′=9.5,b=4.5到b′=5.7和a=0.3到a′=1.5表示。通過四舍五入,如圖6B所示,這些筆劃分別用d=12到d′=13、c=8到c′=10、b=5到b′=6和a=0到a′=2表示。即橫筆劃分別有一個(gè)象素、兩個(gè)象素、一個(gè)象素和兩個(gè)象素的線寬度。
盡管這些橫筆劃有“1.2”的線寬度,但通過四舍五入處理,它們的線寬度中有兩個(gè)將變成一個(gè)象素、其余的線寬度變成兩個(gè)象素。
對(duì)于從輪廓字形顯現(xiàn)的二進(jìn)制數(shù)變換字形,由于這種寬度差會(huì)改變字符的視覺印象,因此,它應(yīng)該做得盡可能小。
作為對(duì)這個(gè)問題的解決方法,已提出進(jìn)行保持線寬度不變的四舍五入處理,如圖7A和7B所示,這種方法就是優(yōu)先對(duì)橫筆劃的上和下輪廓線之一或豎筆劃的右和左輪廓線之一四舍五入,而且在保持線寬度不變時(shí)對(duì)其它輪廓線四舍五入。
在圖7所示的坐標(biāo)變換之后的漢字字符“目”中,a,b,c,d,e和f是優(yōu)先四舍五入的輪廓線,a′,b′,c′,d′,e′和f′是在保持它們的線寬度原樣時(shí)四舍五入的輪廓線。首先,用y坐標(biāo)a表示的橫筆劃的輪廓線被四舍五入,通過四舍五入處理,“0.3”變成“0”。
然后對(duì)用y坐標(biāo)a′表示的底橫筆劃的輪廓線四舍五入。由于同時(shí)要保持線寬度不變,由從0.3到0四舍五入產(chǎn)生的差值“-0.3”要加到a′的y坐標(biāo)上去,a′=1.5-0.3=1.2。這樣,線寬度通過四舍五入處理后變成了一個(gè)象素。
同樣地,作為最頂端橫筆劃的輪廓線d的y坐標(biāo)是“11.5”,通過四舍五入變成“12”。根據(jù)線寬度保持不變處理,輪廓線d′的y坐標(biāo)變成12.7+0.5(差值)=13.2,這樣,經(jīng)過四舍五入處理后y坐標(biāo)變成“13”,線寬度變成一個(gè)象素。對(duì)于從最頂端橫筆劃向下數(shù)的第二橫筆劃的輪廓線c的y坐標(biāo)是“8.3”,四舍五入后變成“8”。根據(jù)線寬度保持不變的方法,輪廓線c′的y坐標(biāo)變成9.5-0.3(差值)=9.2,這樣,四舍五入處理后y坐標(biāo)變成“9”,線寬度變成一個(gè)象素。第三橫筆劃輪廓線b的y坐標(biāo)是“4.5”,四舍五入后變成“5”,按線寬度保持不變的方法處理,輪廓線b′的y坐標(biāo)變成5.7-0.5(差值)=6.2,這樣,四舍五入處理后y坐標(biāo)變成“6”,線寬度變成一個(gè)象素。用這種方式,橫筆劃的線寬度都變成一個(gè)象素,與原始寬度1.2很接近。相似地,豎筆劃的線寬度變成如圖7B所示的兩個(gè)象素。
用這種方法,盡管橫筆劃的線寬度變?yōu)橄嗤?,但這些橫筆劃兩兩之間的間隔,如圖7B所示,從上到下分別變成了三個(gè)象素、兩個(gè)象素和四個(gè)象素。把這些間隔與原間隔相比較,如圖7A所示,四舍五入前從上到下的筆劃間隔依次為d-c′=11.5-9.5=2.0,c-b′=8.3-5.7=2.6和b-a′=4.5-1.5=3.0。即當(dāng)橫筆劃的原間隔從上到下變寬時(shí),四舍五入后這個(gè)間隔是按中間筆劃、頂筆劃和底筆劃的順序變寬的,其順序發(fā)生了變化。
更特別地,位置c′和d之間的間隔原來是2.0時(shí),卻變成了三個(gè)象素,而b′和c之間的間隔原來是2.6,它已經(jīng)變成了二個(gè)象素。對(duì)于一個(gè)有許多橫筆劃和豎筆劃的字符來講,為了提高字符質(zhì)量,準(zhǔn)確地產(chǎn)生線寬度和筆劃間隔以得到邏輯坐標(biāo)表示的字符是很重要的。然而,即使改善了線寬度,但筆劃間隔還不能得到適當(dāng)?shù)恼{(diào)整。
因此,本發(fā)明的目的是提供一種產(chǎn)生字符的方法和裝置,以便從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)具有改善的可讀性的小尺寸字符。
本發(fā)明的另一目的是提供一種產(chǎn)生字符的方法和裝置,能防止二進(jìn)制數(shù)變換圖在產(chǎn)生具有許多相同豎向筆劃或橫向筆劃的字符時(shí)因相互鄰接的筆劃的接觸點(diǎn)而引起的局部變黑,二進(jìn)制數(shù)變換圖由物理坐標(biāo)產(chǎn)生。
本發(fā)明還有一個(gè)目的是提供一個(gè)產(chǎn)生筆劃之間的間隔可調(diào)整的字符的方法和裝置。
本發(fā)明的進(jìn)一步目的是提供一個(gè)產(chǎn)生具有給定筆劃間隔的二進(jìn)制數(shù)變換圖的字符產(chǎn)生方法和裝置,所述筆劃間隔為新設(shè)計(jì)的有許多平行豎筆劃或橫筆劃的字符的筆劃間隔。
根據(jù)本發(fā)明的一個(gè)方面,提供一種由輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的產(chǎn)生字符的方法,其中字符的輪廓線由坐標(biāo)來表示,它包括以下步驟把輪廓字形數(shù)據(jù)轉(zhuǎn)換成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值;把轉(zhuǎn)換后的坐標(biāo)值四舍五入成整數(shù)坐標(biāo)值;由四舍五入后的坐標(biāo)計(jì)算在同一方向許多個(gè)筆劃之間的間隔的總和;把該總和與目標(biāo)筆劃數(shù)減1進(jìn)行比較;當(dāng)該總數(shù)比由該減法所產(chǎn)生的值小時(shí)改變?cè)撜麛?shù)坐標(biāo)值,以便調(diào)整目標(biāo)筆劃的一個(gè)所希望的筆劃的線寬度;顯現(xiàn)包括有調(diào)整的坐標(biāo)值的整數(shù)坐標(biāo)值以產(chǎn)生二進(jìn)制數(shù)變換圖。
根據(jù)本發(fā)明的另一方面,提供一種由輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的產(chǎn)生字符的裝置,其中字符的輪廓線由坐標(biāo)來表示,它包括一個(gè)字形存儲(chǔ)器,以用來存儲(chǔ)每個(gè)字符的輪廓字形數(shù)據(jù);一個(gè)字符顯現(xiàn)電路,以用來把從字形存儲(chǔ)器中讀取的一個(gè)指定字符的輪廓字形數(shù)據(jù)變成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值,將坐標(biāo)值四舍五入變成整數(shù)坐標(biāo)值,由四舍五入后的坐標(biāo)值來檢測(cè)在字符的筆劃之間是否存在接觸點(diǎn),如果存在這樣的接觸點(diǎn)則改變整數(shù)坐標(biāo)值以產(chǎn)生二進(jìn)制數(shù)變換圖。
根據(jù)上面所述的兩個(gè)方面,由四舍五入后的整數(shù)坐標(biāo)值來確定四舍五入后的筆劃是否彼此接觸。為了做到這一點(diǎn),首先計(jì)算四舍五入后筆劃間隔的總和。由于筆劃相互不接觸對(duì)應(yīng)的最小狀態(tài)是任意間隔等于筆劃總數(shù)減1,所以,總和將與由減法所產(chǎn)生的值進(jìn)行比較。當(dāng)總和小于由減法所得值時(shí),斷定某些筆劃相互接觸,從而調(diào)節(jié)這些筆劃的線寬度。調(diào)節(jié)線寬度的一個(gè)方法是,使線寬度變薄以防止筆劃相互接觸,從而避免部分字符被黑涂滿。調(diào)節(jié)線寬度的另一方法是,刪掉一些筆劃以防止在筆劃間有任何接觸點(diǎn),從而避免部分字符被黑涂滿。
根據(jù)本發(fā)明的進(jìn)一步方面,提供一種由輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的產(chǎn)生字符的方法,其中字符的輪廓線由坐標(biāo)來表示,它包括以下步驟把輪廓字形數(shù)據(jù)轉(zhuǎn)換成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值;將轉(zhuǎn)換后的坐標(biāo)值四舍五入變成整數(shù)坐標(biāo)值;由四舍五入前的各個(gè)筆劃之間的間隔以及四舍五入后的各個(gè)筆劃之間的間隔來計(jì)算各個(gè)間隔的比例因數(shù);計(jì)算在比例因數(shù)之中在最大比例因數(shù)和最小比例因數(shù)之間的差值,和沿一個(gè)方向改變?cè)诠P劃中的一個(gè)所希望的筆劃的整數(shù)坐標(biāo)值以使此差值變小;顯現(xiàn)包括有變化的坐標(biāo)值的坐標(biāo)值以產(chǎn)生二進(jìn)制數(shù)變換圖。
根據(jù)本發(fā)明的更進(jìn)一步的方面,提供一種由輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的產(chǎn)生字符的裝置,其中字符的輪廓線由坐標(biāo)來表示,它包括一個(gè)字形存儲(chǔ)器,以用來存儲(chǔ)每個(gè)字符的輪廓字形數(shù)據(jù);一個(gè)字符顯現(xiàn)電路,以用來把從字形存儲(chǔ)器讀取的一個(gè)指定字符的輪廓字形數(shù)據(jù)轉(zhuǎn)變成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值,將坐標(biāo)值四舍五入變成整數(shù)坐標(biāo)值,并以這樣一種方式改變整數(shù)坐標(biāo)值使四舍五入前和四舍五入后的筆劃間隔的最大比例因數(shù)與最小比例因數(shù)之間的差值變化以產(chǎn)生二進(jìn)制數(shù)變換圖。
根據(jù)上述的這兩個(gè)方面,如果四舍五入處理后的筆劃間隔的比例因數(shù)與原始字符的筆劃間隔的比例因數(shù)接近,則可以認(rèn)為四舍五入處理后的筆劃間隔已經(jīng)再現(xiàn)了原始字符的結(jié)構(gòu)。在這方面,計(jì)算四舍五入前后的各筆劃之間各間隔的比例因數(shù),和改變多個(gè)筆劃間隔之間的筆劃的坐標(biāo)以使得在所計(jì)算的比例因數(shù)中最大比例因數(shù)和最小比例因數(shù)之間的差值變小。
本發(fā)明的其它特征和優(yōu)點(diǎn)由下面結(jié)合附圖的描述將變得很清楚。
附圖引入說明書中并構(gòu)成說明書的一個(gè)組成部分,以描述本發(fā)明最好實(shí)施方式,附圖與上面所給出的概括性描述和下面將給出的最好實(shí)施方式的詳細(xì)描述一起用于解釋本發(fā)明的原理。
圖1是表示了用于解釋已有技術(shù)的漢字字符的示意圖;
圖2A是由已有技術(shù)顯現(xiàn)圖1中漢字字符為24×24點(diǎn)的一個(gè)附圖;
圖2B是由已有技術(shù)顯現(xiàn)圖1中漢字字符為16×16點(diǎn)的一個(gè)附圖;
圖3是解釋已有技術(shù)的另一漢字字符;
圖4A是由已有技術(shù)顯現(xiàn)圖3中漢字字符為16×16點(diǎn)的一個(gè)附圖;
圖4B是由已有技術(shù)顯現(xiàn)圖3中漢字字符為12×12點(diǎn)的一個(gè)附圖;
圖5是解釋已有技術(shù)的又一不同的漢字字符;
圖6A是以圖案表示的圖5中漢字字符進(jìn)行坐標(biāo)變換后的坐標(biāo);
圖6B是以圖案表示的圖5中漢字字符四舍五入處理后的坐標(biāo);
圖7A是以圖案表示的圖5中漢字字符進(jìn)行坐標(biāo)變換后的坐標(biāo);
圖7B是以圖案表示的圖5中漢字字符四舍五入處理后線寬保持不變的坐標(biāo);
圖8是說明本發(fā)明原理的一個(gè)示意圖(第一部分);
圖9是說明本發(fā)明原理的一個(gè)示意圖(第二部分);
圖10是說明本發(fā)明原理的一個(gè)示意圖(第三部分);
圖11是本發(fā)明的一個(gè)實(shí)施方式的方框圖;
圖12是根據(jù)本發(fā)明第一個(gè)實(shí)施方式的顯現(xiàn)字符部分的方框圖;
圖13是表示圖11中字形存儲(chǔ)器結(jié)構(gòu)的圖(第一部分);
圖14是表示圖11中字形存儲(chǔ)器結(jié)構(gòu)的圖(第二部分);
圖15是根據(jù)本發(fā)明第一個(gè)實(shí)施方式的流程圖;
圖16是根據(jù)本發(fā)明第一個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第一部分);
圖17是根據(jù)本發(fā)明第一個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第二部分);
圖18表示的是圖16和圖17中所示實(shí)施方式所用的漢字字符圖案;
圖19是描述圖15所示實(shí)施方式中顯現(xiàn)字符表的解釋示意圖;
圖20是根據(jù)本發(fā)明第二個(gè)實(shí)施方式的流程圖;
圖21是根據(jù)本發(fā)明第二個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第一部分);
圖22是根據(jù)本發(fā)明第二個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第二部分);
圖23表示的是圖21和22所示的實(shí)施方式所用的漢字字符圖案;
圖24是圖20所示實(shí)施方式的顯現(xiàn)字符表的解釋示意圖;
圖25是根據(jù)本發(fā)明第三個(gè)實(shí)施方式的顯現(xiàn)字符部分的方框圖;
圖26是表示圖25中字形存儲(chǔ)器結(jié)構(gòu)的附圖(第一部分);
圖27是表示圖25中字形存儲(chǔ)器結(jié)構(gòu)的附圖(第二部分);
圖28是根據(jù)本發(fā)明第三個(gè)實(shí)施方式的流程圖;
圖29是根據(jù)本發(fā)明第三個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第一部分);
圖30是根據(jù)本發(fā)明第三個(gè)實(shí)施方式產(chǎn)生字符操作的解釋示意圖(第二部分);
圖31表示的是圖29和30中所示的實(shí)施方式使用的漢字字符圖案;
圖32是圖28所示實(shí)施方式的顯現(xiàn)字符表的解釋示意圖;
圖33A表示的是四舍五入前坐標(biāo)值以解釋第三個(gè)實(shí)施方式;
圖33B用于解釋第三個(gè)實(shí)施方式的四舍五入后的坐標(biāo)值的一個(gè)附圖;
圖34是解釋第三實(shí)施方式的操作的解釋示意圖。
圖8是演示本發(fā)明原理的一個(gè)示意圖(第一部分)。如圖8所示,對(duì)存儲(chǔ)在1000×1000的一個(gè)坐標(biāo)系中的輪廓坐標(biāo)ao到co進(jìn)行坐標(biāo)變換變?yōu)橹付ǔ叽?。然后?duì)所得結(jié)果四舍五入以獲得整數(shù)坐標(biāo)值。例如,當(dāng)一個(gè)漢字字符“車”轉(zhuǎn)換成一個(gè)16×16點(diǎn)陣列時(shí),中間筆劃的較低端坐標(biāo)b1′和較低筆劃的較上端坐標(biāo)c1變成同一坐標(biāo)值,結(jié)果這些筆劃相互接觸。為探測(cè)這種接觸點(diǎn),計(jì)算目標(biāo)筆劃的間隔的總和,并與目標(biāo)筆劃總數(shù)減1進(jìn)行比較。當(dāng)總和小于目標(biāo)筆劃總數(shù)減1時(shí),進(jìn)行變細(xì)處理。即,使除較外面的筆劃以外的目標(biāo)筆劃的中間筆劃變細(xì),從而防止筆劃相互接觸。
圖9是表示本發(fā)明原理的一個(gè)示意圖(第二部分)。如圖9所示,存儲(chǔ)在1000×1000的一個(gè)坐標(biāo)系中的輪廓坐標(biāo)ao至co′經(jīng)坐標(biāo)變換變?yōu)橹付ǔ叽?。接著?duì)所得值四舍五入以獲得整數(shù)坐標(biāo)值。例如,當(dāng)一個(gè)漢字字符“龜”被轉(zhuǎn)換成一個(gè)16×16點(diǎn)陣的尺寸,較上筆劃的較低端坐標(biāo)a1′和中間筆劃的較上端坐標(biāo)b1變成同一坐標(biāo)值,并且中間筆劃的較低坐標(biāo)b1′和較低筆劃的較上端坐標(biāo)c1也變成同一坐標(biāo)值。因此,這些筆劃相互接觸。為了探測(cè)這種接觸,計(jì)算目標(biāo)筆劃的間隔的總和,并與目標(biāo)筆劃總數(shù)減1進(jìn)行比較。當(dāng)總和小于目標(biāo)筆劃總數(shù)減1時(shí),斷定筆劃相互接觸。在這種情況下,當(dāng)筆劃線寬是一個(gè)象素時(shí),若使筆劃線寬變小,筆劃將被刪除。因此,將進(jìn)行刪除處理。也就是說,不包括較外面的筆劃的目標(biāo)筆劃的中間筆劃被刪除,從而防止筆劃相互接觸。
圖10表示了本發(fā)明的原理。如圖10所示,存儲(chǔ)在輪廓坐標(biāo)系中的輪廓坐標(biāo)a至e經(jīng)坐標(biāo)變換變?yōu)橐恢付ǔ叽?。然后?duì)所得值四舍五入以獲得整數(shù)坐標(biāo)值。例如當(dāng)一個(gè)漢字字符“目”被轉(zhuǎn)換成一個(gè)14×12點(diǎn)的尺寸,筆劃間隔發(fā)生變化。為了使筆劃間隔的變化減至最小,計(jì)算四舍五入前的筆劃間隔和四舍五入后的筆劃間隔。接著計(jì)算四舍五入前的筆劃間隔的比例因數(shù)和四舍五入后筆劃間隔的比例因數(shù)。在計(jì)算所得的比例因數(shù)中找出最大比例因數(shù)和最小比例因數(shù)。然后改變筆劃以使最大比例因數(shù)與最小比例因數(shù)之差值為最小。因而對(duì)筆劃間隔能按原始設(shè)計(jì)進(jìn)行調(diào)整。
圖11是本發(fā)明一個(gè)實(shí)施方式的方框圖,圖12是根據(jù)本發(fā)明第一個(gè)實(shí)施方式的顯現(xiàn)字符部分的方框圖,圖13(第一部分)和14(第二部分)表示了本發(fā)明一個(gè)實(shí)施方式的字形存儲(chǔ)器的結(jié)構(gòu)。
如圖11所示,接收電路1接收來自較高級(jí)器件(計(jì)算機(jī)等)的打印指令和打印數(shù)據(jù)。接收電路由微處理機(jī)構(gòu)成。指令分析器2分析在接收電路1中接收的打印指令等的含義,將接收的數(shù)據(jù)分成一個(gè)字符和一個(gè)圖。顯現(xiàn)字符電路3從指令分析器2中接收字符碼、字符尺寸和字符方向,從字形存儲(chǔ)器4中讀取字符數(shù)據(jù),顯現(xiàn)相應(yīng)字符為二進(jìn)制變換圖。顯現(xiàn)字符電路3下面將參考圖12詳細(xì)描述。字形存儲(chǔ)器4以一個(gè)輪廓形式存儲(chǔ)字符數(shù)據(jù)。字形存儲(chǔ)器4下面將參考圖13和14詳細(xì)描述。
繪圖電路5將一個(gè)圖或圖象顯現(xiàn)為一個(gè)二進(jìn)制數(shù)變換圖,將已經(jīng)顯現(xiàn)為二進(jìn)制數(shù)變換圖的字符和圖疊加,一個(gè)疊加在另一個(gè)的上面,并將所得圖象寫入二進(jìn)制數(shù)變換存儲(chǔ)器6中。一個(gè)打印機(jī)7將二進(jìn)制數(shù)變換存儲(chǔ)器6中的打印數(shù)據(jù)打印在一張紙上。指令分析器2、字符顯現(xiàn)電路3以及繪畫電路5由一個(gè)單片微處理器8構(gòu)成。
現(xiàn)在描述微處理器8的操作。在接收電路1中接收的打印指令和打印數(shù)據(jù)的含義由指令分析器2來分析,并分解成字符和輪廓。由繪圖電路5將輪廓和圖顯現(xiàn)成二進(jìn)制數(shù)變換圖。由字符顯現(xiàn)電路3使用存儲(chǔ)在字形存儲(chǔ)器4中的輪廓字形數(shù)據(jù)使字符顯現(xiàn)成指定字符尺寸的二進(jìn)制數(shù)變換圖。
繪圖電路5將已經(jīng)顯現(xiàn)為二進(jìn)制數(shù)變換圖的字符和圖形疊加,一個(gè)疊加在另一個(gè)的上面,并將所得的圖象寫入二進(jìn)制數(shù)變換存儲(chǔ)器6中。二進(jìn)制數(shù)變換存儲(chǔ)器6中的數(shù)據(jù)將由打印機(jī)7打印在一張紙上。
圖12詳細(xì)描述了字符顯現(xiàn)電路3。一個(gè)放大/縮小電路30進(jìn)行放大/縮小操作使得與字形存儲(chǔ)器4的字符碼相對(duì)應(yīng)的字符輪廓數(shù)據(jù)變成所設(shè)計(jì)的字符尺寸。
啟發(fā)處理器31有一個(gè)字符顯現(xiàn)表(后面將參考附圖19和24來討論),該表保存了每個(gè)筆劃啟發(fā)處理前和啟發(fā)處理后的數(shù)據(jù)。啟發(fā)處理器31進(jìn)行四舍五入(啟發(fā))處理或類似的處理以調(diào)整筆劃的寬度或?qū)⑵鋭h除從而改進(jìn)二進(jìn)制數(shù)變換的字符性能。
筆劃間隔計(jì)算器32計(jì)算啟發(fā)(四舍五入)處理后豎筆劃之間或橫筆劃之間的間隔和計(jì)算間隔總和。比較器33將計(jì)算所得的筆劃間隔總數(shù)與待考慮的筆劃的總數(shù)減1進(jìn)行比較。當(dāng)總和小于筆劃總數(shù)減1時(shí),測(cè)定電路34指示啟發(fā)電路31使所考慮的筆劃變細(xì)或?qū)⑵鋭h除。填充電路35根據(jù)啟發(fā)處理器31中輪廓數(shù)據(jù)填充在輪廓線內(nèi)以完成一個(gè)二進(jìn)制數(shù)變換圖。
上述字符顯現(xiàn)電路3的方框電路30至35都是微處理器8的軟件功能塊。
下面將描述這些方框電路的操作。
字符顯現(xiàn)電路3檢索字形存儲(chǔ)器4以尋找所設(shè)計(jì)好的字符的輪廓數(shù)據(jù)。然后由放大/縮小電路30將輪廓數(shù)據(jù)放大或縮小成指定尺寸。啟發(fā)處理器31將放大/縮小后的坐標(biāo)數(shù)據(jù)存儲(chǔ)在字符顯現(xiàn)表中,并對(duì)這個(gè)數(shù)據(jù)四舍五入以獲得啟發(fā)處理后的坐標(biāo)數(shù)據(jù)。所得的坐標(biāo)數(shù)據(jù)存儲(chǔ)在字符顯現(xiàn)表中。
把坐標(biāo)數(shù)據(jù)輸給筆劃間隔計(jì)算器32。筆劃間隔計(jì)算器32計(jì)算啟發(fā)處理后豎筆劃之間或橫筆劃之間的間隔并計(jì)算間隔的總和。
比較器33將計(jì)算所得的筆劃間隔總和與待檢測(cè)的筆劃總數(shù)減1進(jìn)行比較,并將比較結(jié)果給測(cè)定電路34。當(dāng)由比較值確定該總和小于該減法所產(chǎn)生的值以及在筆劃之間沒有空白間隔時(shí),測(cè)定電路34指示啟發(fā)處理器31使一個(gè)筆劃(不包括外層兩個(gè)筆劃)變細(xì)或?qū)⑵鋭h除。
當(dāng)比較結(jié)果表明該總和等于或大于該減法所產(chǎn)生的值時(shí),啟發(fā)處理器31將不進(jìn)行特定處理并把啟發(fā)處理后數(shù)據(jù)給填充電路35。當(dāng)比較結(jié)果表明總和小于該減法所產(chǎn)生的值時(shí),啟發(fā)處理器31用使筆劃之一(不包括外層筆劃)變細(xì)或?qū)⑵鋭h除的這樣一種方式來改變四舍五入后的數(shù)據(jù)以預(yù)備啟發(fā)處理后的數(shù)據(jù),并將該數(shù)據(jù)輸給填充電路35。最后填充電路35根據(jù)接收到的數(shù)據(jù)填在輪廓線內(nèi)以完成一個(gè)二進(jìn)制數(shù)變換圖。
現(xiàn)將參考圖13和14描述字形存儲(chǔ)器4的結(jié)構(gòu)??梢詤⒖枷旅娴那闆r給以描述,在這種情況下,字符在分級(jí)結(jié)構(gòu)中被拆成對(duì)應(yīng)于構(gòu)成該字符的左手旁根和右手旁根單元、對(duì)應(yīng)于畫筆移動(dòng)的筆劃、以及對(duì)應(yīng)于筆劃起始部分和筆劃結(jié)尾部分的組成部分。更一步地,用這種描述將闡明為了減少數(shù)據(jù)量,字形存儲(chǔ)器4包括圖13所示的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a以存儲(chǔ)字符的分級(jí)結(jié)構(gòu)和特征數(shù)據(jù);以及包括一個(gè)輪廓數(shù)據(jù)存儲(chǔ)器4b以存儲(chǔ)被拆成筆劃或部分的每一個(gè)字符的輪廓數(shù)據(jù)。
如圖13所示,結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a包括一個(gè)存儲(chǔ)字符設(shè)置類型(Minchq黑體字等)和公用數(shù)據(jù)(例如預(yù)備好的數(shù)據(jù))的一個(gè)標(biāo)題40、一個(gè)根據(jù)字符碼檢索目標(biāo)數(shù)據(jù)的字符指示符塊41、一個(gè)表示被拆成單元(例如左手根和右手根)的單元指示符塊42、以及一個(gè)描述每個(gè)單元具有什么結(jié)構(gòu)的單元目錄塊43。
單元目錄塊43包括單元塊44和筆劃塊45,每個(gè)單元塊44由各單元的分類碼構(gòu)成,每個(gè)筆劃塊描述了構(gòu)成每個(gè)單元的筆劃的詳細(xì)數(shù)據(jù)。
每個(gè)筆劃塊45包括各筆劃的分類碼,每一個(gè)都描述構(gòu)成一個(gè)筆劃的區(qū)段部分的數(shù)據(jù)的組成部分塊(例如由各組成部分的字符坐標(biāo)系所看到的原始坐標(biāo)等),以及空白空間塊。存儲(chǔ)在每個(gè)空白空間塊內(nèi)的數(shù)據(jù)是控制筆劃之間的間隔的數(shù)據(jù),空白空間塊有X組號(hào)、Y組號(hào)、變細(xì)標(biāo)示位以及刪除標(biāo)示位。
X數(shù)組表示是否需要在X方向控制筆劃與另一筆劃間的間隔。當(dāng)間隔的控制不必要時(shí),“O”寫入X組號(hào)中,而當(dāng)需要這種控制時(shí),寫入需要筆劃控制的那組筆劃的組號(hào)。例如,前面提到圖1中所示的漢字字符“車”有三個(gè)豎筆劃。當(dāng)這些豎筆劃需要在X方向間隔控制等時(shí),同樣的組號(hào)(例如“1”)寫入X組號(hào)中。
Y組號(hào)表示是否需要在Y方向控制筆劃與另一筆劃間的間隔。當(dāng)間隔的控制不需要時(shí),“0”寫入這個(gè)Y組號(hào)中,而當(dāng)需要這種控制時(shí),寫入需要筆劃控制的那組筆劃的組號(hào)。例如,前面提到的圖1所示的“車”有五個(gè)橫筆劃。當(dāng)在Y方向這些筆劃中的三個(gè)筆劃需要筆劃控制時(shí),相同的組號(hào)(例如,“1”)寫入Y組號(hào)中。
提供變細(xì)標(biāo)識(shí)位以防止在粗字體中線之間的間隔相互接觸。使帶變細(xì)標(biāo)識(shí)位“1”的筆劃比原來的筆劃要細(xì)以保持線之間的間隔。
提供刪除標(biāo)位以防止當(dāng)一個(gè)字符被顯現(xiàn)到一個(gè)非常小的二進(jìn)制數(shù)變換圖和線的寬度為一個(gè)象素并不能變細(xì)時(shí),鄰近的筆劃相互接觸。帶標(biāo)識(shí)位“1”的筆劃被刪除以改善可讀性。
指定字符是否包括需要調(diào)整的筆劃由順序讀取結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中空白空間隔塊中的X組號(hào)和Y組號(hào)來檢測(cè)。當(dāng)寫入的是除“0”以外的一個(gè)組號(hào)時(shí),對(duì)那些有相同組號(hào)的筆劃進(jìn)行線寬調(diào)整或線刪除操作。
當(dāng)一個(gè)字符分成許多組成部分時(shí),輪廓數(shù)據(jù)存儲(chǔ)器具有如圖14所示的數(shù)據(jù)結(jié)構(gòu)。更特殊地,輪廓數(shù)據(jù)存儲(chǔ)器4b包括一個(gè)存儲(chǔ)字符設(shè)置類型(Mincho,黑體字等)和公用數(shù)據(jù)(例如預(yù)備的數(shù)據(jù))的一個(gè)標(biāo)題塊46、一個(gè)根據(jù)字符碼檢索目標(biāo)數(shù)據(jù)的字符指示符塊47、一個(gè)檢索構(gòu)成指定字符的組成部分的圖象的組成部分指示符塊48、一個(gè)以輪廓線描述組成部分圖象的輪廓信息塊49。
組成部分指示塊48按各筆劃的順序配備了組成部分指示符1至n。組成部分指示符1至n帶有指示筆劃尾端的標(biāo)識(shí)位。假定一個(gè)筆劃有由組成部分指示符1和2表示的組成部分,表示該筆劃尾端的標(biāo)識(shí)位設(shè)置在組成部分指示符2中,能清楚看到那一筆劃對(duì)應(yīng)那些組成部分。
用上述設(shè)計(jì),如果給每一字符配組成部分指示符塊48,輪廓信息塊49各組成部分的輪廓數(shù)據(jù)能由許多字符共用,因而,確保字形存儲(chǔ)器的容量減小。
圖15是根據(jù)本發(fā)明第一個(gè)實(shí)施方式的流程圖,圖16和17是根據(jù)本發(fā)明第一個(gè)實(shí)施例的產(chǎn)生字符的過程的解釋圖(部分1和部分2),圖18表示的是用于這實(shí)施例中的漢字字符圖案,圖19描述了本發(fā)明一個(gè)實(shí)施例的字符顯現(xiàn)表的解釋性圖表。
首先,描述圖18所示的黑體字漢字字符“車”的產(chǎn)生過程,例如由參照?qǐng)D16、17和19的字形存儲(chǔ)器4。如圖16所示,根據(jù)漢字字符“車”的字符碼“8ED4”在字形存儲(chǔ)器4的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a的字符指示符塊41中獲得一個(gè)單元的指示符。然后在單元指示符塊42中得到存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的單元塊44的指示符。
由于漢字字符“車”由八個(gè)筆劃S1至S8構(gòu)成,如圖18所示,關(guān)于構(gòu)成漢字字符“車”的八個(gè)筆劃S1至S8的數(shù)據(jù)存在靠近單元塊44中的單元分類碼的筆劃塊45中。這個(gè)例子表明按照劃字符的筆劃順序來布置數(shù)據(jù)。
第一筆劃S1是一橫線,它有一個(gè)橫線分類碼“000010”。控制標(biāo)志部分是“0000”,在控制標(biāo)識(shí)位部分中X組號(hào)、Y組號(hào)、變細(xì)標(biāo)識(shí)位以及刪除標(biāo)識(shí)位按敘述的順序排列。也就是說,對(duì)應(yīng)Y方向筆劃控制的組號(hào)設(shè)置為“0”,變細(xì)標(biāo)識(shí)位和刪除標(biāo)識(shí)位,都是“0”。第二筆劃S2是一豎線,它有一個(gè)豎線分類碼“000001”以及這個(gè)筆劃具有一個(gè)設(shè)置“1”的X組號(hào)。而且,對(duì)于第三筆劃S3、第五筆劃S5、第六筆劃S6以及第七筆劃S7都有設(shè)置為“1”的Y數(shù)組號(hào),而第四筆劃S4有一個(gè)設(shè)置為“1”的X組號(hào)。
換句話說,漢字字符“車”在X方向有三個(gè)調(diào)整筆劃并且在Y方向也有三個(gè)調(diào)整筆劃。
由于第五筆劃S5有一個(gè)變細(xì)標(biāo)識(shí)位“1”,如果若用粗的字體等,當(dāng)字符顯現(xiàn)為一個(gè)二進(jìn)制數(shù)變換圖時(shí)橫筆劃相互接觸沒有空著的間隔,則使這些筆劃線變細(xì)以保持有間隔。
更進(jìn)一步地,由于第五筆劃S5有一個(gè)刪除標(biāo)識(shí)位“1”,如果在產(chǎn)生一個(gè)小的二進(jìn)制變換圖時(shí),橫筆劃相互間靠的很近以至于涂滿了黑色則刪除這一筆劃使得筆劃間保持有間隔。
因此,根據(jù)漢字字符“車”的字符碼,從結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀出相對(duì)應(yīng)的筆劃塊45的內(nèi)容。類似地,組成部分指示符塊48的指示符可由圖17所示的漢字字符“車”的字符碼“8ED4”從字符指示符塊47獲得。接著,相應(yīng)輪廓數(shù)據(jù)可以從組成部分指示符塊48中的輪廓信息塊49中獲得。
圖12所示放大/縮小電路30將該組成部分的輪廓數(shù)據(jù)放大或縮小為指定字符尺寸的輪廓數(shù)據(jù)。例如,在圖8中為了提供指定一個(gè)X方向16象素和Y方向16象素的尺寸,由1000×1000坐標(biāo)系表示的一個(gè)字符的輪廓數(shù)據(jù)在X方向和Y方向都乘以16/1000。
將這樣變換過的輪廓數(shù)據(jù)與筆劃塊45的數(shù)據(jù)一起送到圖12中的啟發(fā)處理器31。啟發(fā)處理器31預(yù)備圖19所示的字符顯現(xiàn)表。對(duì)于構(gòu)成一個(gè)字符的每一筆劃,如圖19所示,該字符顯現(xiàn)表都包括一個(gè)筆劃編號(hào),四舍五入前的筆劃的坐標(biāo)(X坐標(biāo)的X1是一個(gè)豎筆劃的線寬的左手邊的坐標(biāo),X坐標(biāo)的Xr是該豎筆劃的線寬的右手邊的坐標(biāo),Y坐標(biāo)的Yb是一個(gè)橫筆劃的線寬的下端的坐標(biāo),Y坐標(biāo)的Yu是該橫筆劃的線寬的上端的坐標(biāo)),四舍五入后的筆劃的坐標(biāo)(X坐標(biāo)的X1是一個(gè)豎筆劃的線寬的左手邊的坐標(biāo),X坐標(biāo)的Xr是該豎筆劃的線寬的右手邊的坐標(biāo),Y坐標(biāo)的Yb是一個(gè)橫筆劃的線寬的下端的坐標(biāo),Y坐標(biāo)的Yu是該橫筆劃的線寬的上端的坐標(biāo)),一個(gè)組號(hào)(X,Y),變細(xì)標(biāo)識(shí)位(X,Y),刪除標(biāo)識(shí)位(X,Y)以及該筆劃的輪廓數(shù)據(jù)。
從而,啟發(fā)處理器31將由放大/縮小電路計(jì)算的各段輪廓數(shù)據(jù)存儲(chǔ)在圖19所示字符顯現(xiàn)表中相應(yīng)筆劃的輪廓數(shù)據(jù)欄中。然后啟發(fā)處理器31將筆劃的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)在控制標(biāo)識(shí)位欄(組號(hào)(X,Y),變細(xì)標(biāo)識(shí)位(X,Y),刪除標(biāo)識(shí)位(X,Y))中。啟發(fā)處理器31根據(jù)輪廓數(shù)據(jù)并且不管筆劃是豎筆劃還是橫筆劃獲得每一筆劃的結(jié)尾坐標(biāo),并將坐標(biāo)數(shù)據(jù)存儲(chǔ)在四舍五入前的筆劃坐標(biāo)欄中。更進(jìn)一步地,啟發(fā)處理器31對(duì)四舍五入前的筆劃坐標(biāo)進(jìn)行線寬保持不變四舍五入處理。啟發(fā)處理器31因而得到四舍五入后的筆劃坐標(biāo)并將其存儲(chǔ)在字符顯現(xiàn)表中四舍五入后筆劃坐標(biāo)欄中。
上面參考圖18所示漢字字符“車”被轉(zhuǎn)換為圖8所示的16×16點(diǎn)的尺寸的這種情況進(jìn)行了描述。如圖18所示,因第一筆劃S1是一橫筆劃,該橫筆劃的線寬的下端Y坐標(biāo)Yb和上端Y坐標(biāo)Yu由坐標(biāo)變換后的輪廓數(shù)據(jù)獲得。Yb和Yu分別是13.4和15.8,它們被存儲(chǔ)在圖19所示的字符顯現(xiàn)表中的四舍五入前筆劃欄中。
對(duì)坐標(biāo)進(jìn)行線寬度不變四舍五入處理,結(jié)果該橫筆劃線寬的下端Y坐標(biāo)Yb變?yōu)椤?3”而該橫筆劃線寬的下端Y坐標(biāo)Yu變?yōu)?5,如圖8所示。所得Y坐標(biāo)被存儲(chǔ)在字符顯現(xiàn)表的四舍五入后筆劃欄中。
此后,用同樣的方法,可獲得第二筆劃S2、第三筆劃S3、第四筆劃S4、第五筆劃S5、第六筆劃S6、第七筆劃S7以及第八筆劃S8的四舍五入前后的筆劃坐標(biāo),并將它們存儲(chǔ)在字符顯現(xiàn)表中。用這種方式,四舍五入前的漢字字符“車”通過四舍五入處理變成了如圖8所示的形式。
用這些數(shù)據(jù)段,由圖11所示的筆劃間隔計(jì)算器32、比較器33以及測(cè)定電路34來完成圖15所示的線寬調(diào)整處理。
(1)啟發(fā)處理器31從字形存儲(chǔ)器4的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀取一個(gè)指定字符一個(gè)組成部分的筆劃區(qū)段。然后啟發(fā)處理器31把坐標(biāo)變換后的輪廓數(shù)據(jù)(該數(shù)據(jù)由放大/縮小電路30獲得)以及該筆劃區(qū)段的內(nèi)容存儲(chǔ)在圖19所示字符顯現(xiàn)表中。
(2)啟發(fā)處理器31閱讀字符顯現(xiàn)表的組號(hào)欄采取具有相同組號(hào)的筆劃組。啟發(fā)處理器31讀取四舍五入處理后的筆劃坐標(biāo)并將它們送到筆劃間隔計(jì)算器32。例如,對(duì)于前面提到的漢字字符“車”,三個(gè)筆劃S3,S5以及S6作為來自字符顯現(xiàn)表具有相同組號(hào)的筆劃提取出來。然后,讀出四舍五入處理后的筆劃坐標(biāo)。
(3)筆劃間隔計(jì)算器32由四舍五入后的筆劃坐標(biāo)計(jì)算啟發(fā)處理后的筆劃間隔WS。在圖19所示例子中,計(jì)算兩個(gè)筆劃間隔a1′-b1和b1′-c1。a1′是筆劃S3的下Y坐標(biāo)Yb(=10),而b1是筆劃S5的上Y坐標(biāo)Yu(=9)。b1′是筆劃S5的下Y坐標(biāo)Yb(=7),c1是筆劃S6的上Y坐標(biāo)Yu(=7)。因此,啟發(fā)處理后筆劃間隔WS變?yōu)閃S=(a1′-b1)+(b1′-c1)=10-9+7-7=1然后,從筆劃總數(shù)N(=3)中減去1以便獲得對(duì)于N個(gè)筆劃所需空白(空白)區(qū)域數(shù)目,即N-1=2。
(4)比較器33從(N-1)中減去筆劃間隔數(shù)WS,并將計(jì)算結(jié)果傳給測(cè)定電路34。測(cè)定電路34檢測(cè)比較結(jié)果是否為“0”或正數(shù)。如果比較結(jié)果是“0”或正數(shù)這意味著在筆劃間有空白間隔,不需進(jìn)行線變細(xì)處理,進(jìn)行步驟(7)。
(5)如果測(cè)定電路34檢測(cè)到比較結(jié)果為負(fù)數(shù),不是“0”或正,則筆劃之間沒有足夠的間隔以及鄰近的筆劃相互接觸。因而,測(cè)定電路34指示啟發(fā)處理器31對(duì)筆劃進(jìn)行線變細(xì)處理。結(jié)果是,啟發(fā)處理器31由四舍五入處理后的坐標(biāo)值來檢驗(yàn)這N個(gè)目標(biāo)筆劃的線寬度,提取具有兩個(gè)或更多象素的線寬的筆劃。如果沒有找到具有兩個(gè)或更多象素的線寬的筆劃,不進(jìn)行線變細(xì)處理,進(jìn)行步驟(7)。
當(dāng)檢測(cè)到任一具有兩個(gè)或更多象素線寬的筆劃時(shí),啟發(fā)處理器31在字符顯現(xiàn)表中查閱變細(xì)標(biāo)識(shí)位欄以核對(duì)是否為這筆劃設(shè)置了變細(xì)標(biāo)識(shí)位。當(dāng)沒有為具有兩個(gè)或更多象素線寬的每個(gè)筆劃設(shè)置變細(xì)標(biāo)識(shí)位時(shí),將不進(jìn)行線變細(xì)處理,而進(jìn)行步驟(7)。
(6)啟發(fā)處理器31將具有兩個(gè)或更多象素寬度并具有變細(xì)標(biāo)識(shí)位的字符的線寬減1。也就是說,改變?cè)谧址@現(xiàn)表中四舍五入處理后的該筆劃對(duì)應(yīng)的坐標(biāo)以使得線寬減少了一個(gè)象素。在圖18所示例子中,在漢字字符“車”中的組成部分“Hi”的中間筆劃S5具有兩個(gè)或更多象素一個(gè)線寬并具有變細(xì)標(biāo)識(shí)位。所以,“1”與字符顯現(xiàn)表中對(duì)應(yīng)于經(jīng)四舍五入處理后的筆劃S5的下坐標(biāo)Yb相加,使其為“8”,線寬減少了一個(gè)象素。
用這種方式,漢字字符“車”變成如圖8所示,防止字符“車”的組成部分“Hi被填滿并使其外形接近原始字符圖。
如果對(duì)不包括最外層的兩個(gè)筆劃的組成部分的這個(gè)筆劃進(jìn)行變細(xì)處理,所得的字符的外形更接近原始字符圖。因此,為不包括最外兩個(gè)筆劃(在本例中為筆劃S3和S6)的組成部分的筆劃設(shè)置變細(xì)標(biāo)識(shí)位。
(7)接著,啟發(fā)處理器31檢查字符顯現(xiàn)表中的組號(hào)欄以核對(duì)是否還有未處理的組號(hào)。如果存在這樣一個(gè)未處理組號(hào),啟發(fā)處理器返回到步驟(2)。
如果啟發(fā)處理器31確定沒有未處理的組號(hào),則核對(duì)是否已完成了X方向和Y方向的調(diào)整。當(dāng)調(diào)整還沒有完成時(shí),啟發(fā)處理器31返回步驟(2)。當(dāng)調(diào)整已經(jīng)完成,則啟發(fā)處理器31檢測(cè)是否已對(duì)字符的所有的組成部分重復(fù)了上述操作。當(dāng)沒有對(duì)所有的組成部分完成該操作時(shí),啟發(fā)處理器31返回到步驟(1)。當(dāng)已對(duì)所有的組成部分完成該操作時(shí),啟發(fā)處理器31終止該調(diào)整操作。
當(dāng)完成調(diào)整操作時(shí),字符顯現(xiàn)電路3中的填充電路35根據(jù)字符顯現(xiàn)表中的內(nèi)容進(jìn)行繪制以完成一個(gè)二進(jìn)制數(shù)變換圖。
通過上述處理,即使是縮小了漢字字符“車”,也能由調(diào)整筆劃的線寬來獲得接近原始字符設(shè)計(jì)的二進(jìn)制數(shù)變換圖,如圖8所示。
圖20是根據(jù)本發(fā)明的第二個(gè)實(shí)施方式的流程圖,圖21和22是根據(jù)本發(fā)明第二實(shí)施方式的字符產(chǎn)生方法的解釋圖,圖23表示了一個(gè)用在該實(shí)施方式中的字符圖案,圖24是本發(fā)明的一個(gè)實(shí)施例中的字符顯現(xiàn)表的解釋圖。
首先,描述圖23所示的漢字字符“龜”的產(chǎn)生過程,例如由參照?qǐng)D21、22和24中的字形存儲(chǔ)器4。
如圖21所示,根據(jù)漢字字符“龜”的字符碼“8B54”,在字形存儲(chǔ)器4的結(jié)構(gòu)存儲(chǔ)器4a的字符指示符塊41中獲得一個(gè)單元指示符。然后,存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的單元塊44的指示符在單元指示符塊41中獲得。由于漢字字符“龜”由十四筆劃S1到S14組成,如圖23所示,構(gòu)成漢字字符“龜”的十四個(gè)筆劃S1至S14的數(shù)據(jù)用筆劃區(qū)塊45來描述,筆劃塊45緊跟在單元塊44的單元分類碼之后。這個(gè)例子表明以字符的筆劃順序來放置數(shù)據(jù)。
由于第一筆劃S1是斜線,它有一個(gè)斜線鑒別碼和控制標(biāo)識(shí)位部分,在控制標(biāo)識(shí)位部分中以命名順序排列的X數(shù)組、Y數(shù)組、變細(xì)標(biāo)識(shí)位和刪除標(biāo)識(shí)位是“0000”。即,在X和Y方向筆劃控制的數(shù)組設(shè)置為“0”和變細(xì)標(biāo)識(shí)位及刪除標(biāo)識(shí)位都是“0”。由于第二筆劃S2是橫線,這個(gè)筆劃有一個(gè)橫線鑒別碼,而且有在X和Y方向都設(shè)置為“0”的筆劃控制的數(shù)組,變細(xì)標(biāo)識(shí)位和刪除標(biāo)識(shí)位都是“0”。
換句話說,對(duì)于如圖24所示的漢字字符“龜”,筆劃S9,S11和S14設(shè)置成X方向調(diào)節(jié)的第一數(shù)組,筆劃S5,S7和S8設(shè)置成Y方向調(diào)節(jié)的第一數(shù)組,筆劃S10,S12和S13設(shè)置成Y方向調(diào)節(jié)的第二數(shù)組。
第七個(gè)筆劃和第十二筆劃S12都有為“1”的變細(xì)標(biāo)識(shí)位。如果當(dāng)字符用粗體或類似形式顯現(xiàn)到二進(jìn)制數(shù)圖上時(shí)由于沒留間隔而使橫筆劃相互接觸,那么這些線要變細(xì)以保持按第一實(shí)施例所述的間隔。
進(jìn)一步地,由于第七筆劃S7和第十二筆劃S12都有值為“1”的刪除標(biāo)識(shí)位,如果當(dāng)產(chǎn)生小的二進(jìn)制數(shù)變換圖時(shí)橫筆劃相互非常接近以至沒有留空,那么,這個(gè)筆劃就會(huì)被刪除以在筆劃之間保留間隔。
因此,依據(jù)漢字字符“龜”的字符碼,相應(yīng)的筆劃塊45的內(nèi)容從結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀出。相似地,根據(jù)圖22所示的漢字字符“龜”的字符碼“8B54”從字符指示符塊47中得到單元指示符塊48的指示符,然后,從單元指示符塊48中的輪廓信息塊49中得到相應(yīng)的輪廓數(shù)據(jù)。
參考圖12已經(jīng)解釋了的放大/縮小電路30將該輪廓數(shù)據(jù)放大或縮小到指定的字符尺寸的輪廓數(shù)據(jù)。例如,為了得到圖9中的X方向12個(gè)象素和Y方向12個(gè)象素的尺寸,用1000×1000的坐標(biāo)系表示的字符的輪廓數(shù)據(jù)在X方向乘以12/1000,在Y方向也乘以12/1000。
這樣,變換過的輪廓數(shù)據(jù)和筆劃塊45的數(shù)據(jù)被一同送到圖12中的啟發(fā)處理器31中。啟發(fā)處理器31形成圖24所示的字符顯現(xiàn)表。
對(duì)于構(gòu)成字符的每一筆劃,如圖24所示,字符顯現(xiàn)表包含有筆劃數(shù)、四舍五入前的筆劃的坐標(biāo)(豎筆劃線寬左手邊的X坐標(biāo)X1,豎筆劃線寬度右手邊的X坐標(biāo)Xr,橫筆劃線寬度底邊的Y坐標(biāo)Yb和橫筆劃線寬度上邊的Y坐標(biāo)Yu)。四舍五入后筆劃的坐標(biāo)(豎筆劃線寬度左手邊的X坐標(biāo)X1,豎筆劃線寬度右手邊的X坐標(biāo)Xr,橫筆劃線寬度底邊的Y坐標(biāo)Yb和橫筆劃線寬度上邊的Y坐標(biāo)Yu)、數(shù)組(X、Y),變細(xì)標(biāo)識(shí)位(X、Y),刪除標(biāo)識(shí)位(X、Y)和這個(gè)筆劃的輪廓數(shù)據(jù)。
因此,啟發(fā)處理器31將輪廓數(shù)據(jù)中的各部分存儲(chǔ)在字符顯現(xiàn)表中的相應(yīng)筆劃的輪廓數(shù)據(jù)欄中,輪廓數(shù)據(jù)由放大/縮小電路30進(jìn)行計(jì)算。然后啟發(fā)處理器31把筆劃的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)在控制標(biāo)識(shí)位欄中數(shù)組(X、Y)、變細(xì)標(biāo)識(shí)位(X、Y)、刪除標(biāo)識(shí)位(X、Y)。啟發(fā)處理器31根據(jù)輪廓數(shù)據(jù)和該筆劃是豎筆劃還是橫筆劃來得到四舍五入前每個(gè)筆劃的坐標(biāo),并把四舍五入前的坐標(biāo)數(shù)據(jù)存儲(chǔ)在筆劃坐標(biāo)欄中。
進(jìn)一步地,啟發(fā)處理器31根據(jù)四舍五入前的筆劃坐標(biāo)進(jìn)行線寬度保持不變的四舍五入處理,以得到四舍五入后的筆劃坐標(biāo),然后,啟發(fā)處理器31把取四舍五入后的這些坐標(biāo)存儲(chǔ)在字符顯現(xiàn)表中的四舍五入后筆劃坐標(biāo)欄中。
上述過程參考如下情況進(jìn)行描述,在這種情況下,圖21和22所示的漢字字符“龜”被變換成圖9中的12×12點(diǎn)的尺寸。如圖23所示,由于第二筆劃S2是橫筆劃,橫筆劃的線寬度的底Y坐標(biāo)Yb和上Y坐標(biāo)Yu以坐標(biāo)變換后的輪廓數(shù)據(jù)中獲得。Y坐標(biāo)Yb和Yu分別是11.5和12.1,并存儲(chǔ)在字符顯現(xiàn)表中的四舍五入前的筆劃欄中。
對(duì)這些坐標(biāo)進(jìn)行線寬度保持不變的四舍五入處理,以便第二橫筆劃S2的線寬度的底Y坐標(biāo)Yb變成“11”,這個(gè)橫筆劃S2的線寬度的上Y坐標(biāo)YU變成“12”,見圖9。最后的Y坐標(biāo)被存儲(chǔ)在字符顯現(xiàn)表中的四舍五入后筆劃欄中。此后,相似地,可以得到豎筆劃和橫筆劃S4、S5、S6、S7、S8、S9、S10、S11、S12、S13以及S14的四舍五入前后的筆劃坐標(biāo),斜線除外,并將這些坐標(biāo)存儲(chǔ)字符顯現(xiàn)表中。以此方式,通過四舍五入的方法使四舍五入前的漢字字符“龜”變成了如圖9所示的那樣。
采用那些數(shù)據(jù),用筆劃間隔計(jì)算器32、比較器33和測(cè)定電路34(如圖12所示)來執(zhí)行圖20中的筆劃刪除/調(diào)整步驟。
(1)啟發(fā)處理器31從字形存儲(chǔ)器4的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀取一個(gè)指定字符的一個(gè)組成部分的一個(gè)筆劃塊。啟發(fā)處理器31然后存儲(chǔ)由放大/縮小電路30獲得的輪廓數(shù)據(jù)和該筆劃區(qū)段的內(nèi)容在字符顯現(xiàn)表(見圖24)中。
(2)啟發(fā)處理器31閱讀在字符顯現(xiàn)表中的組號(hào)欄以便采集具有相同組號(hào)的筆劃組。啟發(fā)處理器31讀取在四舍五入過程之后的筆劃坐標(biāo)并把它們送到筆劃間隔計(jì)算器32。例如,對(duì)于圖23所示的漢字字符“龜”,把三個(gè)筆劃S5、S7和S8作為來自字符顯現(xiàn)表的相同組號(hào)的筆劃提取出來,并且然后讀出四舍五入過程之后的筆劃坐標(biāo)。
(3)在啟發(fā)過程之后,筆劃間隔計(jì)算器32從在四舍五入過程之后的筆劃坐標(biāo)中計(jì)算筆劃間隔WS。
在圖24的例子中,計(jì)算兩個(gè)筆劃間隔a1′-b1和b1′-c1。a1′是筆劃S5的底Y坐標(biāo)Yb(=9),和b1是筆劃S7的上Y坐標(biāo)Yu(=9)。b1′是筆劃S7的底Y坐標(biāo)Yb(=8),和c1是筆劃S8的上Y坐標(biāo)Yu(=8)。因而,在啟發(fā)過程之后,筆劃間隔變成WS=(a1′-b1)+(b1′-c1)=9-9+8-8=0接著,從筆劃總數(shù)N(=3)中減去1以便獲得對(duì)于N筆劃所需要的白(空白)區(qū)域的數(shù)目;即,N-1=2。
(4)比較器33從(N-1)中減去筆劃間隔WS,并且通知測(cè)定電路34結(jié)果。測(cè)定電路34測(cè)定比較結(jié)果是否為“0”或者正數(shù)。如果比較結(jié)果是“0”或者是正數(shù),即意味著在筆劃之間存在空白間隔,則不需要線刪除。因而,流程前進(jìn)到步驟(7)。
(5)如果測(cè)定電路34測(cè)定比較結(jié)果是負(fù)數(shù)(即不是“0”或正數(shù)),則在筆劃之間沒有足夠的間隔和鄰近的筆劃相互接觸。因而,測(cè)定電路34指示啟發(fā)處理器31執(zhí)行筆劃刪除。結(jié)果是,啟發(fā)處理器31查閱字符顯現(xiàn)表中的刪除標(biāo)識(shí)位欄以檢查刪除標(biāo)識(shí)位是否為該筆劃而設(shè)定。當(dāng)對(duì)于每個(gè)目標(biāo)筆劃沒有設(shè)定刪除標(biāo)識(shí)位時(shí),不執(zhí)行線刪除過程,并且流程前進(jìn)到步驟(7)。
(6)當(dāng)檢測(cè)到一個(gè)具有刪除標(biāo)識(shí)位的筆劃時(shí),啟發(fā)處理器31刪除該筆劃。這就意味著使在字符顯現(xiàn)表中的四舍五入后那個(gè)筆劃的底和上坐標(biāo)在Y方向彼此相等。在圖9的例子中,在漢字字符“龜”中的上組成部分“Hi”的中間筆劃S7有刪除標(biāo)識(shí)位。因而,對(duì)于在字符顯現(xiàn)表中的四舍五入過程之后的筆劃S7的底Y坐標(biāo)Yb加“1”以使其變?yōu)椤?”,因而使線寬度變?yōu)?,結(jié)果是刪除了該筆劃。
以此方式,漢字字符“龜”變成如圖9所示那樣,避免了字符“龜”的上組成部分“Hi”被涂滿并且使其外形接近原字符形象。
如果除去最外面的筆劃的組成部分的那個(gè)筆劃進(jìn)行了線刪除,最后字符的字形變得更接近原始字符形象。因此,為除去最外面兩筆劃(在此例子中為筆劃S5和S8)的組成部分的那個(gè)筆劃設(shè)置刪除標(biāo)識(shí)位。
(7)接著,啟發(fā)處理器31檢查在字符顯現(xiàn)表中的組號(hào)欄以檢查是否仍有未處理的組號(hào)。如果存在有這樣一個(gè)未處理的組號(hào),啟發(fā)處理器31返回到步驟(2)。如果啟發(fā)處理器31測(cè)定沒有未處理的組號(hào),則啟發(fā)處理器31檢查對(duì)于X和Y方向的調(diào)整是否都已完成。調(diào)整還沒完成,啟發(fā)處理31返回到步驟(2)。當(dāng)調(diào)整已經(jīng)完成時(shí),啟發(fā)處理器31則檢測(cè)上面的的操作是否對(duì)于字符的所有組成部分已經(jīng)重復(fù)。當(dāng)沒有對(duì)所有組成部分重復(fù)該操作時(shí),啟發(fā)處理器31返回到步驟(1)。當(dāng)對(duì)所有組成部分已經(jīng)重復(fù)該操作時(shí),啟發(fā)處理器31終止該調(diào)整過程。
當(dāng)已經(jīng)完成調(diào)整后,在字符顯現(xiàn)電路3中的填充電路35基于字符顯現(xiàn)表中的內(nèi)容進(jìn)行繪制以完成一個(gè)二進(jìn)制數(shù)變換圖。
通過上述過程,即使對(duì)于縮小了的漢字字符“龜”,接近原字符設(shè)計(jì)的二進(jìn)制數(shù)變換圖也能通過調(diào)整筆劃的線寬而獲得,如圖9所示。通常,在那些實(shí)施例中,當(dāng)一個(gè)字符的最外面的筆劃粗時(shí),可讀性高,這樣最外面的筆劃就不能變窄或被刪除。如果使具有一個(gè)象素寬的一個(gè)筆劃變細(xì),將刪除該筆劃,這樣來說可使具有兩個(gè)象素或更多象素寬度的筆劃變細(xì)。
為使一個(gè)目標(biāo)筆劃變細(xì),在該筆劃顯現(xiàn)成一個(gè)二進(jìn)制變換圖之前改變?cè)摴P劃的坐標(biāo),因此很容易地使該筆劃變細(xì)。另外,有可能指定一個(gè)筆劃,通過事先使線寬較細(xì)或事先設(shè)置一個(gè)要?jiǎng)h除的筆劃,該筆劃既使當(dāng)在字符設(shè)計(jì)時(shí)作得較細(xì)也能保持可讀性。進(jìn)一步說,有可能容易地識(shí)別制得較細(xì)的一個(gè)筆劃,因而保證了與原始字符設(shè)計(jì)相配的筆劃調(diào)整。
盡管是參考漢字字符“車”描述了第一實(shí)施例,該實(shí)施例也可應(yīng)用于其它具有平行水平筆劃的漢字字符,象漢字字符“龜”。盡管是參考漢字字符“龜”的上組成部分“Hi”描述了第二實(shí)施例,也可以檢查這個(gè)字符的下組成部分“Hi”。同樣,第二實(shí)施例也可用于具有平行垂直筆劃的其它漢字字符中,象漢字字符“車”。另外,可以把第一和第二實(shí)施例結(jié)合起來,使得可以對(duì)一個(gè)具有兩個(gè)象素或更多象素寬度的筆劃進(jìn)行第一實(shí)施例的線變細(xì)操作,并且也可以對(duì)一個(gè)小于兩個(gè)象素寬度的筆劃進(jìn)行第二實(shí)施例的線刪除操作。在字符坐標(biāo)系中可以設(shè)置一個(gè)表示的一個(gè)組成部分的原點(diǎn),這樣由離開此原點(diǎn)的相對(duì)位置可以表示輪廓數(shù)據(jù)。盡管已經(jīng)把字形存儲(chǔ)器解釋為一個(gè)組成部分分段式,但它也可以是一個(gè)筆劃分段式的。
現(xiàn)描述第三實(shí)施例。根據(jù)本實(shí)施例的一個(gè)字符發(fā)生裝置的結(jié)構(gòu)與圖11所示的相同。圖25是一個(gè)字符顯現(xiàn)電路3的方框圖,圖26和27是表示一個(gè)字形存儲(chǔ)器結(jié)構(gòu)的圖(第一部分和第二部分)。
圖25表示在字符顯現(xiàn)電路3的方框圖中的詳細(xì)演示。放大/縮小電路30放大或縮小對(duì)應(yīng)于來自字形存儲(chǔ)器4的字符編碼的字符輪廓數(shù)據(jù),使得該數(shù)據(jù)具有指定的字符尺寸。啟發(fā)處理器31有一個(gè)表(該表以后參考圖32描述)以便保存對(duì)于每個(gè)筆劃的在一個(gè)啟發(fā)過程之前的數(shù)據(jù)和在此之后的數(shù)據(jù),和執(zhí)行一個(gè)四舍五入(啟發(fā))過程或相似的過程以調(diào)整線寬或位置以便因而改善一個(gè)二進(jìn)制數(shù)變換的字符質(zhì)量。筆劃間隔計(jì)算器32計(jì)算在啟發(fā)(四舍五入)過程之后的水平筆劃或垂直筆劃之間的間隔,和在啟發(fā)過程之前的水平筆劃或垂直筆劃之間的間隔。一個(gè)比例因數(shù)計(jì)算器36計(jì)算一個(gè)在啟發(fā)過程之前的一個(gè)筆劃間隔和在該過程之后的一個(gè)筆劃間隔之間的比例因數(shù)。一個(gè)最大/最小比例因數(shù)檢測(cè)器38檢測(cè)最大和最小比例因數(shù)并且計(jì)算它們之間的差值。一個(gè)試用部件37指示筆劃間隔計(jì)算器32向在啟發(fā)過程之后的筆劃間隔加一個(gè)象素,這就提供了最小比例因數(shù),和從啟發(fā)過程之后的筆劃間隔中減少一個(gè)象素,這就提供了最大比例因數(shù)。一個(gè)測(cè)定電路39把在試用前最大和最小比例因數(shù)之間的差值與在試用后最大和最小比例因數(shù)之間的差值進(jìn)行比較。當(dāng)靠試用已經(jīng)使差值變得較小時(shí),在試用之后測(cè)定電路39把計(jì)算結(jié)果供回給啟發(fā)處理器31,并且當(dāng)靠試用沒有使差值變得更小時(shí),把試用之前的計(jì)算結(jié)果供回給啟發(fā)處理器31。填充電路35根據(jù)來自啟發(fā)處理器31的輪廓數(shù)據(jù)填充進(jìn)輪廓線內(nèi)部以完成一個(gè)二進(jìn)制數(shù)變換圖。
字符顯現(xiàn)電路3由一個(gè)處理器設(shè)成,并且方框電路30和39是該處理器的軟件的功能塊。
下面將描述字符顯現(xiàn)電路3的操作。字符顯現(xiàn)電路3為了指定的字符數(shù)據(jù)(輪廓數(shù)據(jù))而檢索字形存儲(chǔ)器4,并且允許放大/縮小電路30來放大或縮小該數(shù)據(jù)到指定的尺寸。啟發(fā)處理器31在該放大或縮小之后把該坐標(biāo)數(shù)據(jù)存儲(chǔ)在表中,并且在一個(gè)啟發(fā)過程之后取整數(shù)該數(shù)據(jù)以獲得坐標(biāo)數(shù)據(jù)。把所得的坐標(biāo)數(shù)據(jù)存在表中。把該數(shù)據(jù)給筆劃間隔計(jì)算器32。該筆劃間隔計(jì)算器32計(jì)算在啟發(fā)過程之后在水平筆劃或垂直筆劃之間的間隔,以及在啟發(fā)過程之前在水平筆劃或垂直筆劃之間的間隔。比例因數(shù)計(jì)算器36根據(jù)由筆劃間隔計(jì)算其32計(jì)算的間隔來計(jì)算比例因數(shù)。最大/最小比例因數(shù)檢測(cè)器38檢測(cè)在計(jì)算出的比例因數(shù)中的最大和最小的比例因數(shù)。該檢測(cè)器38計(jì)算在這兩個(gè)比例因數(shù)之間的差值(第一差值)并且暫時(shí)把它存儲(chǔ)在測(cè)定電路39中。
試用部件37指示筆劃間隔計(jì)算器32嘗試向提供了最小比例因數(shù)的啟發(fā)過程之后的筆劃間隔增加一個(gè)象素,以及從提供了最大比例因數(shù)的啟發(fā)過程之后的筆劃間隔中減少一個(gè)象素。筆劃間隔計(jì)算器32根據(jù)該指示計(jì)算在啟發(fā)過程之后的筆劃間隔,并且把計(jì)算結(jié)果輸出給比例因數(shù)計(jì)算器36。比例因數(shù)計(jì)算器36計(jì)算在啟發(fā)過程之后修正了比例因數(shù)的筆劃間隔。最大/最小比例因數(shù)檢測(cè)器38計(jì)算在最大和最小比例因數(shù)之間的差值(第二差值),并且把它送到測(cè)定電路39。
測(cè)定電路39把暫時(shí)保留的第一差值與在試用后的第二差值進(jìn)行比較,當(dāng)靠試用該差值已經(jīng)變小時(shí),則在試用之后把計(jì)算結(jié)果反饋回啟發(fā)處理器31,當(dāng)靠試用該差值沒有變小時(shí),則把在試用前的計(jì)算結(jié)果反饋回啟發(fā)處理器31。當(dāng)試用不成功時(shí),啟發(fā)處理器31不執(zhí)行什么特定的操作并且在啟動(dòng)過程之后把數(shù)據(jù)給填充電路35。當(dāng)試用是成功的時(shí)候,在啟發(fā)過程之后,啟發(fā)處理器31預(yù)備數(shù)據(jù),該數(shù)據(jù)是通過把位于在提供最大比例因數(shù)的筆劃間隔和提供最小比例因數(shù)的筆劃間隔之間的筆劃向著帶有最大比例因數(shù)的筆劃間隔移動(dòng)一個(gè)象素而獲得,并且該啟發(fā)處理器31把合成數(shù)據(jù)送到填充電路35。最后,根據(jù)來自啟發(fā)處理器31的接收到的輪廓數(shù)據(jù),填充電路35填充輪廓線的內(nèi)部以完成一個(gè)二進(jìn)制數(shù)變換圖。
根據(jù)圖26和27描述字形存儲(chǔ)器4的結(jié)構(gòu)。類似于圖13和14的描述,可以根據(jù)這樣的情形進(jìn)行描述,其中以一個(gè)分級(jí)的結(jié)構(gòu)來分解一個(gè)字符,以便存儲(chǔ)對(duì)應(yīng)于構(gòu)成該字符的左邊根及右邊根的單元、對(duì)應(yīng)于刷子運(yùn)動(dòng)的筆劃、和對(duì)應(yīng)于筆劃開始部分及筆劃結(jié)束部分的組成部分。另外,在此描述中將解釋為了減少數(shù)據(jù)量,字形存儲(chǔ)器4包括結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a(圖26中)以存儲(chǔ)字符的分級(jí)結(jié)構(gòu)和特征數(shù)據(jù),和一個(gè)輪廓數(shù)據(jù)存儲(chǔ)器4b以存儲(chǔ)分解成筆劃或組成部分的每個(gè)字符的輪廓數(shù)據(jù)。
如圖26所示,結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a具有與圖13所示的存儲(chǔ)器相同的結(jié)構(gòu)。通過順序地讀取在結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中的空白間隔塊中的X組號(hào)和Y組號(hào)可以檢查被指定的字符是否包括一個(gè)需要調(diào)整的筆劃。當(dāng)寫入一個(gè)不是“0”的組號(hào)時(shí),在具有相同組號(hào)的那些筆劃上執(zhí)行線間隔調(diào)整。
當(dāng)一個(gè)字符被分解為組成部分時(shí),輪廓數(shù)據(jù)存儲(chǔ)器4b有一個(gè)如圖27所示的數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)與如圖14所示的那個(gè)相同。
圖28是根據(jù)本發(fā)明第三實(shí)施例的間隔控制的流程圖,圖29和30是對(duì)根據(jù)本發(fā)明的一個(gè)實(shí)施例的字符發(fā)生操作的解釋性的圖表(第一部分第二和部分),圖31表示用于本實(shí)施例的一個(gè)字符的圖案,圖32是對(duì)于在本發(fā)明第三實(shí)施例中的字符顯現(xiàn)表的解釋性的圖表,并且圖33A、33B、及34是根據(jù)本發(fā)明第三實(shí)施例的操作的解釋性的圖表(第一部分第二和部分)。
首先,解釋如圖31所示的產(chǎn)生一個(gè)漢字字符“目”的操作,例如,出自參照?qǐng)D29、30和32的字形存儲(chǔ)器4。如圖29所示,在基于漢字字符“目”的字符編碼“96DA”的字形存儲(chǔ)器4的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a的字形指示符塊41中得到對(duì)于一個(gè)單元的指示符。另外,在單元指示符方框42中可得到對(duì)于其中存儲(chǔ)有結(jié)構(gòu)數(shù)據(jù)的單元塊44的指示符。在接著單元塊44中的單元的分類編碼之后的筆劃塊45中描述關(guān)于構(gòu)成漢字字符“目”的六個(gè)筆劃S1到S6的數(shù)據(jù)。這個(gè)例子表示了以字符的筆劃順序放置數(shù)據(jù)。
由于第一筆劃S1是一個(gè)垂直線,它有一個(gè)垂直線分類編碼“000001”,并且一個(gè)標(biāo)識(shí)位部分(其中的X組號(hào)、Y組號(hào)、變細(xì)標(biāo)識(shí)位和刪除標(biāo)識(shí)位以標(biāo)定的順序安排)是“0000”。由于把對(duì)于在X和Y方向的間隔控制的組號(hào)設(shè)定為“0”,則無需要間隔控制,并且變細(xì)標(biāo)識(shí)位和刪除標(biāo)識(shí)位都是“0”。
由于第二筆劃S2是一個(gè)水平線,它有一個(gè)水平線分類編碼“000010”,并且這個(gè)筆劃有一個(gè)設(shè)置為“1”的Y組號(hào)。這個(gè)筆劃S2與第四、第五和第六筆劃S4、S5和S6是進(jìn)行Y方向的間隔控制的目標(biāo)。因而漢字字符“目”在Y方向有4個(gè)間隔控制組。
第四和第五筆劃S4和S5有設(shè)置為“1”的變細(xì)標(biāo)識(shí)位。如果當(dāng)用一個(gè)粗體字體或類似物把字符顯現(xiàn)為一個(gè)二進(jìn)制數(shù)變換圖時(shí)水平筆劃彼此接觸無間隔分享,則使這些線變細(xì)以維持間隔。另外,第四筆劃S4有一個(gè)為“1”的刪除標(biāo)識(shí)位。如果當(dāng)產(chǎn)生一個(gè)小二進(jìn)制數(shù)變換圖時(shí)水平筆劃彼此靠得肥非常近以至于涂滿了黑色,則該筆劃被刪除以保持筆劃間的間隔。
因此,基于漢字字符“目”的字符編碼,從結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀出相關(guān)筆劃塊45的內(nèi)容。類似地,如圖30所示,基于漢字字符“目”的字符編碼“96DA”從字符指示符塊47中可以獲得對(duì)于組成部分指示符塊48的指示符。然后,從在組成部分指示符塊48的輪廓信息塊49中可得到相關(guān)的輪廓數(shù)據(jù)。
放大/縮小電路30(已經(jīng)參照?qǐng)D25解釋過)把這部分的輪廓數(shù)據(jù)放大或縮小為指定的字符尺寸的輪廓數(shù)據(jù)。例如,為了提供在圖33A中的對(duì)于X為12個(gè)象素和對(duì)于Y為14個(gè)象素的尺寸,在X方向用12/1000及在Y方向用14/1000來乘由1000×1000坐標(biāo)系統(tǒng)表示的一個(gè)字符的輪廓數(shù)據(jù)。把因而轉(zhuǎn)換的輪廓數(shù)據(jù)連同筆劃塊45的數(shù)據(jù)一起送到在圖25中的啟發(fā)處理器31中。啟發(fā)處理器31預(yù)備圖32所示的字符顯現(xiàn)表。
對(duì)于構(gòu)成一個(gè)字符的每個(gè)筆劃,該字符顯現(xiàn)表包括一個(gè)筆劃編號(hào),四舍五入前的筆劃的坐標(biāo)(一個(gè)垂直筆劃的線寬的左側(cè)邊的X坐標(biāo)X1,該垂直筆劃的線寬的右側(cè)邊的X坐標(biāo)Xr,一個(gè)水平筆劃的線寬的底邊的Y坐標(biāo)Yb,和該水平筆劃的線寬的頂邊的Y坐標(biāo)Yu),四舍五入后的筆劃的坐標(biāo)(一個(gè)垂直筆劃的線寬的左側(cè)邊的X坐標(biāo)X1,該垂直筆劃的線寬的右側(cè)邊的X坐標(biāo)Xr,一個(gè)水平筆劃的線寬的底邊的Y坐標(biāo)Yb,和該水平筆劃的線寬的頂邊的Y坐標(biāo)Yu),一個(gè)組號(hào)(X,Y),變細(xì)的標(biāo)識(shí)位(X,Y),刪除標(biāo)識(shí)位(X,Y)和那個(gè)筆劃的輪廓數(shù)據(jù)。
因而,啟發(fā)處理器31將由放大/縮小電路30計(jì)算的每個(gè)輪廓數(shù)據(jù)存儲(chǔ)在字符顯現(xiàn)表中的相關(guān)筆劃的輪廓數(shù)據(jù)欄中的。接著,啟發(fā)處處理器31在控制標(biāo)識(shí)位欄中存儲(chǔ)筆劃的結(jié)構(gòu)數(shù)據(jù)(組號(hào)(X,Y),變細(xì)標(biāo)識(shí)位(X,Y),刪除標(biāo)識(shí)位(X,Y))。根據(jù)輪廓數(shù)據(jù)及根據(jù)該筆劃是一個(gè)垂直筆劃還是一個(gè)水平筆劃,啟發(fā)處理器31得到四舍五入前每個(gè)筆劃的坐標(biāo),并且把坐標(biāo)數(shù)據(jù)存儲(chǔ)在四舍五入前筆劃坐標(biāo)欄中。另外,啟發(fā)處理器31對(duì)四舍五入前的筆劃坐標(biāo)執(zhí)行上面提到的線寬保留不變的四舍五入處理。啟發(fā)處理器31則得到四舍五入后的筆劃坐標(biāo)并且把它們存在字符顯現(xiàn)表中的四舍五入后的筆劃坐標(biāo)欄中。
以上所說將參照這種情況描述,這種情況是圖29和30所示的漢字字符“目”被轉(zhuǎn)變?yōu)閳D33A所示的尺寸。如圖31所示,由于第一筆劃S1是一個(gè)垂直筆劃,可以得到在圖33A中的e的坐標(biāo)“1.3”作為左邊X坐標(biāo)X1以及可以得到在圖33A中的e′的坐標(biāo)“2.7”作為該垂直筆劃的線寬的右邊X坐標(biāo)Xr,這些筆劃是在坐標(biāo)變換之后從輪廓數(shù)據(jù)中得到的。把這些坐標(biāo)X1和Xr存儲(chǔ)在字符顯現(xiàn)表之中的四舍五入前的筆劃欄中。
當(dāng)坐標(biāo)進(jìn)行了線寬保留不變四舍五入處理后,第一筆劃S1的線寬的左邊X坐標(biāo)X1變?yōu)椤?”并且該筆劃S1的線寬的右邊X坐標(biāo)Xr變?yōu)椤?”(如圖33B所示)。把合成的X坐標(biāo)存在字符顯現(xiàn)表中四舍五入后的筆劃欄中。
在此之后,同樣,可以得到對(duì)于第二筆劃S2、第三筆劃S3、第四筆劃S4、第五筆劃S5和第六筆劃S6的四舍五入之前和之后的筆劃坐標(biāo),并且把它們存儲(chǔ)在字符顯現(xiàn)表中。以此方式,以四舍五入之前漢字字符“目”如圖33A所示,在四舍五入之后漢字字符“目”如圖33B所示。
用這些數(shù)據(jù),通過筆劃間隔計(jì)算器32、比例因數(shù)計(jì)算器36、最大/最小比例因數(shù)檢測(cè)器38、試用部件37和測(cè)定電路39(圖25所示)可以進(jìn)行圖28所示的間隔控制處理。
(1)啟發(fā)處理器31從字形存儲(chǔ)器4的結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)器4a中讀取一個(gè)指定字符的一個(gè)組成部分的一個(gè)筆劃塊,并且把該筆劃塊的內(nèi)容和由放大/縮小電路30得到的輪廓數(shù)據(jù)一起存儲(chǔ)在圖32所示的字符顯現(xiàn)表中。
(2)啟發(fā)處理器31讀取在字符顯現(xiàn)表中的組號(hào)欄以便采集具有相同組號(hào)的筆劃組。啟發(fā)處理器31讀取在四舍五入前的筆劃坐標(biāo)和在四舍五入處理后的筆劃坐標(biāo)并且把它們送給筆劃間隔計(jì)算器32。例如對(duì)于圖31所示的漢字字符“目”,把四個(gè)筆劃S2、S4、S5和S6作為來自字符顯現(xiàn)表的相同組號(hào)的筆劃提取出來,并且讀出在四舍五入處理前的筆劃坐標(biāo)和四舍五入處理后的筆劃坐標(biāo)。
(3)筆劃間隔計(jì)算器32由四舍五入處理之前的筆劃坐標(biāo)來計(jì)算原始字符的筆劃間隔,并且由四舍五入處理之后的筆劃坐標(biāo)來計(jì)算在啟發(fā)過程之后的筆劃間隔。在圖32、33A和33B所示的例子中,在圖33A中計(jì)算出三個(gè)筆劃間隔Wa1=d-c′,Wa2=c-b′和Wa3=b-a′作為原始字符的筆劃間隔。另外,在圖33B中計(jì)算出三個(gè)筆劃間隔Wb1=d0-c′0,Wb2=c0-b′0和Wb3=b0-a′0作為在啟發(fā)處理后的筆劃間隔。
(4)接著,比例因數(shù)計(jì)算器36用啟發(fā)處理后的筆劃間隔除以原始字符的筆劃間隔以計(jì)算出每個(gè)筆劃間隔的比例因數(shù)(比率)。在圖33A和33B的例子中,計(jì)算出Wb1/Wa1,Wb2/Wa2和Wb3/Wa3作為各個(gè)筆劃間隔的比例因數(shù)。最大/最小比例因數(shù)檢測(cè)器38相互比較計(jì)算出來的比例因數(shù)以檢測(cè)出最小和最大的比例因數(shù)。檢測(cè)38還可得到在最大比例因數(shù)(例如Wb1/Wa1)和最小比例因數(shù)(例如Wb2/Wa2)之間的差值(第一差值)。
(5)試用部件37指示筆劃間隔計(jì)算器32從最大比例因數(shù)(在啟發(fā)過程之后的筆化間隔)計(jì)算器中減去“1”,并且向最小比例因數(shù)(在啟發(fā)過程之后的筆劃間隔)的計(jì)數(shù)器加“1”。
(6)結(jié)果是,筆劃間隔計(jì)算器32從最大比例因數(shù),Wa1,的計(jì)數(shù)器中減去“1”,并且向最小比例因數(shù),Wa2,的計(jì)數(shù)器中加上“1”。比例因數(shù)計(jì)算器36計(jì)算對(duì)于最大比例因數(shù)的筆劃間隔的比例因數(shù)并且計(jì)算對(duì)于最小比例因數(shù)的筆劃間隔的比例因數(shù)。即是,計(jì)算器36計(jì)算(Wb1-1)/Wa1和(Wb2+1)/Wa2。接著,最大/最小比例因數(shù)檢測(cè)器38計(jì)算在這兩個(gè)比例因數(shù)之間的差值(第二差值)。
(7)測(cè)定電路39比較第一差值和第二差值以測(cè)定是否第二差值變小了,變小了則表明通過試用差值變小了。如果差值沒有變小,則測(cè)定電路39不改變啟發(fā)處理器31的字符顯現(xiàn)表。如果該差值變小了,則測(cè)定電路39指示啟發(fā)處理器31向位于在最大比例因數(shù)的筆劃間隔和最小比例因數(shù)的筆劃間隔之間的筆劃的坐標(biāo)加一個(gè)象素或者從這些坐標(biāo)中減去一個(gè)象素,因而改變了筆劃圖。啟發(fā)處理器31改變?cè)谧址@現(xiàn)表中四舍五入后的筆劃的坐標(biāo)值一個(gè)象素。
在這里,向在筆劃間隔Wb1和Wb2之間的水平筆劃S4的線寬的每個(gè)底Y坐標(biāo)Yb和頂Y坐標(biāo)Yu加“1”,改變了字符顯現(xiàn)表。因此,這樣產(chǎn)生的漢字字符“目”變成如圖34所示。
(8)接著,啟發(fā)處理器31檢查在字符顯現(xiàn)表中的組號(hào)欄以檢查是否還有未處理的組號(hào)。如果有這樣的一個(gè)未處理的組號(hào),則啟發(fā)處理器31返回到步驟(2)。如果啟發(fā)處理器31測(cè)定沒有未處理的組號(hào),則它檢查是否已經(jīng)完成了對(duì)X和Y方向的間隔控制。當(dāng)該間隔控制還沒有完成時(shí),啟發(fā)處理器31返回到步驟(2)。如果已經(jīng)完成了間隔控制,則啟發(fā)處理器31測(cè)定是否上面的操作已經(jīng)對(duì)字符的所有組成部分重復(fù)。當(dāng)該操作還沒有對(duì)所有組成部分完成時(shí),啟發(fā)處理器31返回到步驟(1)。當(dāng)該操作已經(jīng)對(duì)所有組成部分完成時(shí),啟發(fā)處理器31結(jié)束間隔控制過程。
當(dāng)已經(jīng)完成了間隔控制時(shí),在字符顯現(xiàn)電路3中的填充電路35基于字符顯現(xiàn)表的內(nèi)容進(jìn)行繪制以完成一個(gè)二進(jìn)制數(shù)變換圖。
作為例子,用圖32、33A、33B和34所示的漢字字符“目”詳細(xì)解釋這一點(diǎn)。在步驟(2)中,從圖32所示的字符顯現(xiàn)表示中把筆劃S2、S4、S5和S6作為相同的水平筆劃組而提取出來,并且讀出在四舍五入前的水平筆劃坐標(biāo)和四舍五入后的筆劃坐標(biāo)。然后,在步驟(3)中如以下計(jì)算在四舍五入前的筆劃之間的間隔Wa1、Wa2和Wa3。
Wa1=d(筆劃S2的Yb)-c′(筆劃S4的Yu)=11.5-9.5=2.0Wa2=c(筆劃S4的Yb)-b′(筆劃S5的Yu)=8.3-5.7=2.6Wa3=b(筆劃S5的Yb)-a′(筆劃S6的Yu)=4.5-1.5=3.0如以下計(jì)算在四舍五入過程之后的筆劃之間的間隔Wb1、Wb2和Wb3。
Wb1=d0(筆劃S4的Yb)-c′0(筆劃S5的Yu)=12-9=3Wb2=c0(筆劃S4的Yb)-b′0(筆劃S5的Yu)=8-6=2Wb3=c0(筆劃S5的Yb)-a′0(筆劃S6的Yu)=5-1=4接著,如下述在步驟(4)中計(jì)算筆劃間隔的比例因數(shù)Wb1/Wa1,Wb2/Wa2和Wb3/Wa3。
Wb1/Wa1=3/2.0=1.5Wb2/Wa2=2/2.6=0.77Wb3/Wa3=4/3.0=1.33如下述計(jì)算在最大和最小比例因數(shù)之間的差值r1。
r1=Wb1/Wa1-Wb2/Wa2=1.5-0.77=0.73接著,對(duì)最小比例因數(shù)的筆劃間隔四舍五入之后的間隔Wb2增加“1”并且對(duì)最大比例因數(shù)的筆劃間隔四舍五入之后的間隔Wb1減去“1”。然后,在步驟(6)中再計(jì)算筆劃間隔的比例因數(shù)Wb1/Wa1,Wb2/Wa2和Wb3/Wa3。
Wb1/Wa1=2/2.0=1.0Wb2/Wa2=3/2.6=1.15Wb3/Wa3=4/3.0=1.33如下述計(jì)算在最大和最小比例因數(shù)之間的差值。
r2=Wb3/Wa3-Wb1/Wa1=1.33-1.0=0.33當(dāng)比較在步驟(7)中在變換試用前的差值r1和在試用之后的差值r2時(shí),在試用之后的差值r2較小。很明顯該試用已經(jīng)使筆劃間隔的倍率因數(shù)(比例因數(shù))之間的差值變小。
所有夾在最小比例因數(shù)的筆劃間隔和最大比例因數(shù)的筆劃間隔之間的筆劃向著最大比例因數(shù)的筆劃間隔移動(dòng)一個(gè)象素。由于在此例子中最小比例因數(shù)的筆劃間隔是c0-b′0并且最大比例因數(shù)的筆劃間隔是d0-c′0,只有從頂部往下的第二水平筆劃S4是被夾在所述的兩個(gè)筆劃間隔中。因而,向著最大比例因數(shù)的筆劃間隔移動(dòng)該筆劃S4的坐標(biāo)。
這就是,把在字符顯現(xiàn)表中四舍五入過程之后的水平筆劃的坐標(biāo)向上移動(dòng)一個(gè)象素。向該水平筆劃S4的線寬的底Y坐標(biāo)Yb加“1”,使其從“8”變?yōu)椤?”,并且向該水平筆劃S4的線寬的上Y坐標(biāo)Yu加“1”,使其從“9”變成“10”。
通過以上操作,如圖34所示,可以得到接近漢字字符“目”的原始設(shè)計(jì)的二進(jìn)制數(shù)變換圖。
為了使在最大比例因數(shù)和最小比例因數(shù)之間的差值變小(如上所述),當(dāng)移動(dòng)一個(gè)筆劃一個(gè)象素時(shí)可以得到在這些比例因數(shù)之間的差值,比較在移動(dòng)之前的第一差值和在移動(dòng)之后的第二差值以決定使該差值最小的筆劃位置。通過簡(jiǎn)單的操作可完成該移動(dòng)。由于在四舍五入前的筆劃間隔是從四舍五入前的筆劃坐標(biāo)中計(jì)算出來的,則很容易計(jì)算在四舍五入過程前的筆劃間隔。另外,由于指定一個(gè)字符(該字符的筆劃間隔將受到控制)的筆劃的數(shù)據(jù)與該字符的輪廓數(shù)據(jù)設(shè)定在一起,將要控制的筆劃間隔將易于識(shí)別,保證了與原始字符設(shè)計(jì)相配的筆劃調(diào)整。另外,由于從通過轉(zhuǎn)變由字符輪廓數(shù)據(jù)而得到的筆劃數(shù)據(jù)來計(jì)算四舍五入前的筆劃間隔,所以在四舍五入前的筆劃間隔很容易得到,因此在不使產(chǎn)生速度降低很大的情況下完成字符的產(chǎn)生。
盡管該實(shí)施例的描述是參照漢字字符“目”進(jìn)行的,該實(shí)施例也可應(yīng)用于其它具有平行水平筆劃的漢字字符或者具有平行的垂直筆劃的漢字字符。盡管可以從在坐標(biāo)轉(zhuǎn)變之后的坐標(biāo)值中計(jì)算在四舍五入前的筆劃間隔,這些筆劃間隔也可以從在字形存儲(chǔ)器4中的原始輪廓數(shù)據(jù)中計(jì)算出,并且可以把筆劃間隔存儲(chǔ)在字形存儲(chǔ)器中。在字符坐標(biāo)系中可以設(shè)定一個(gè)表示組成部分的原起點(diǎn),這樣輪廓數(shù)據(jù)可由離開該原點(diǎn)相對(duì)的位置來表示。盡管把字形存儲(chǔ)器已經(jīng)被解釋為一個(gè)組成部分段式,但它也可以是一個(gè)筆劃分段式。
簡(jiǎn)言之,根據(jù)本發(fā)明可以檢測(cè)筆劃之間的任何接觸,并且可以使四舍五入后目標(biāo)筆劃變細(xì)或者刪除該筆劃。即使當(dāng)字符縮小時(shí),也有可能避免在鄰近筆劃之間的間隔被抹掉并且提供一個(gè)復(fù)制原始字符設(shè)計(jì)的二進(jìn)制數(shù)變換圖。可以得到在四舍五入之后的筆劃間隔的總數(shù)并且可以把它與筆劃總和減“1”相比較。當(dāng)該總和比該減法的所得值小時(shí),則判定目標(biāo)筆劃彼此接觸,并且使某一筆劃變細(xì)或刪除,因此在不使產(chǎn)生速度降低很多的情況下完成字符產(chǎn)生。
另外,當(dāng)把在四舍五入之后的筆劃間隔調(diào)整到等于原始字符的筆劃間隔時(shí),則有可能提供一個(gè)復(fù)制原始字符設(shè)計(jì)的二進(jìn)制數(shù)變換圖。以這樣的一種方式調(diào)整筆劃間隔,使得可以從在四舍五入前的筆劃間隔和在四舍五入后的筆劃間隔中計(jì)算各個(gè)間隔的比例因數(shù),并且這樣變換位于多個(gè)筆劃間隔之間的筆劃的坐標(biāo)以減小計(jì)算得到的比例因數(shù)之中的最大和最小比例因數(shù)之間的差值。這可以在不使產(chǎn)生速度降低很多的情況下完成字符產(chǎn)生過程。
權(quán)利要求
1.一種從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的字符產(chǎn)生方法,在該輪廓字形數(shù)據(jù)中用坐標(biāo)表示一個(gè)字符的輪廓線,該方法包括以下步驟把所說的輪廓字形數(shù)據(jù)轉(zhuǎn)換成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值;把所說的轉(zhuǎn)換的坐標(biāo)值四舍五入成整數(shù)坐標(biāo)值;用在四舍五入過程之后的坐標(biāo)計(jì)算在同一方向的多個(gè)筆劃的間隔的總和;把所說的總和與目標(biāo)筆劃數(shù)減1比較;當(dāng)所說的總和小于由減法所得的值時(shí),改變所說的整數(shù)坐標(biāo)值以便調(diào)整所說目標(biāo)筆劃的一個(gè)所需要的筆劃的線寬;和顯現(xiàn)包括所說的調(diào)整的坐標(biāo)值的所說整數(shù)坐標(biāo)值的產(chǎn)生所說的二進(jìn)制數(shù)變換圖。
2.根據(jù)權(quán)利要求1的字符產(chǎn)生方法,其特征在于所說的整數(shù)坐標(biāo)值變化步驟以這樣的方式改變所說的整數(shù)坐標(biāo)值以便使所說的所需要的筆劃變細(xì)。
3.根據(jù)權(quán)利要求2的字符產(chǎn)生方法,其特征在于所說的整數(shù)坐標(biāo)值變化步驟以這樣的方式改變所說的整數(shù)坐標(biāo)值以便使那些所說的非最外邊的且具有兩個(gè)象素或更大的線寬的多個(gè)筆劃變細(xì)一些。
4.根據(jù)權(quán)利要求1的字符產(chǎn)生方法,其特征在于所說的整數(shù)坐標(biāo)值變化步驟以這樣的方式改變所說的整數(shù)坐標(biāo)值以刪除所需的變細(xì)的筆劃。
5.根據(jù)權(quán)利要求1的字符產(chǎn)生方法,其特征在于所說的總和計(jì)算步驟從多個(gè)指定筆劃的所說的四舍五入后的整數(shù)坐標(biāo)中計(jì)算筆劃之間的間隔的總和。
6.根據(jù)權(quán)利要求5的字符產(chǎn)生方法,其特征在于當(dāng)所說的總和小于由該減法所得的所說值時(shí),所說的整數(shù)坐標(biāo)值改變步驟改變所說指定的多個(gè)筆劃中的特定一個(gè)的線寬。
7.根據(jù)權(quán)利要求1的字符產(chǎn)生方法,其特征在于所說的二進(jìn)制數(shù)變換圖產(chǎn)生步驟顯現(xiàn)構(gòu)成每個(gè)筆劃的多個(gè)組成部分的輪廓字形數(shù)據(jù)以產(chǎn)生所說的筆劃字符的二進(jìn)制數(shù)變換圖。
8.根據(jù)權(quán)利要求2的字符產(chǎn)生方法,其特征在于所說的總和計(jì)算步驟從多個(gè)指定筆劃的所說的四舍五入后的整數(shù)坐標(biāo)中計(jì)算在筆劃之間的所說間隔的總和。
9.根據(jù)權(quán)利要求8的字符產(chǎn)生方法,其特征在于當(dāng)所說的總和小于由該減法所得的所說值時(shí),所說的整數(shù)坐標(biāo)值改變步驟改變所說指定的多個(gè)筆劃中的特定一個(gè)的線寬。
10.根據(jù)權(quán)利要求4的字符產(chǎn)生方法,其特征在于所說的總和計(jì)算步驟從多個(gè)指定筆劃的所說的四舍五入后的整數(shù)坐標(biāo)中計(jì)算筆劃之間的間隔的總和。
11.根據(jù)權(quán)利要求10的字符產(chǎn)生方法,其特征在于當(dāng)所說的總和小于由該減法所得的所說值時(shí),所說整數(shù)坐標(biāo)值改變步驟改變所說指定的多個(gè)筆劃中的特定一個(gè)的線寬。
12.一種從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的字符產(chǎn)生方法,在該輪廓數(shù)據(jù)中用坐標(biāo)表示一個(gè)字符的倫輪廓線,該方法包括以下步驟把所說的輪廓字形數(shù)據(jù)轉(zhuǎn)換成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值;把所說的轉(zhuǎn)換坐標(biāo)值四舍五入成整數(shù)坐標(biāo)值;從在四舍五入前的各個(gè)筆劃間的間隔和在所說四舍五入后的各個(gè)筆劃間的間隔中計(jì)算各個(gè)間隔的比例因數(shù);計(jì)算在所說比例因數(shù)中在最大比例因數(shù)和最小比例因數(shù)之間的差值;沿一個(gè)方向改變?cè)谒f筆劃中一個(gè)所需筆劃的所說整數(shù)坐標(biāo)值;和顯現(xiàn)包括所說改變的坐標(biāo)值的所說整數(shù)坐標(biāo)值以產(chǎn)生所說的二進(jìn)制數(shù)變換圖。
13.根據(jù)權(quán)利要求12的字符產(chǎn)生方法,其特征在于所說的整數(shù)坐標(biāo)值變化步驟包括以下步驟計(jì)算第一比例因數(shù)和第二比例因數(shù)通過從在所說的提供所說最大比例因數(shù)的四舍五入過程之后的筆劃間隔中減1而得到第一比例因數(shù),和通過向在提供所說最小比例因數(shù)的所說四舍五入過程之后的筆劃間隔中加1而得到第二比例因數(shù);計(jì)算在所說第一比例因數(shù)和所說第二比例因數(shù)之間的差值;把所說初始差值與在所說第一和第二比例因數(shù)之間的所說差值進(jìn)行比較;和當(dāng)在所說第一和第二比例因數(shù)之間的所說差值比所說初始差值小時(shí),則向著所說最大比例因數(shù)的所說筆劃間隔移動(dòng)位于所說最大比例因數(shù)的所說筆劃間隔和所說最小比例因數(shù)的所說筆劃間隔之間的筆劃一個(gè)坐標(biāo)單位。
14.根據(jù)權(quán)利要求12的字符產(chǎn)生方法,其特征在于根據(jù)多個(gè)指定的筆劃,所說的比例計(jì)算步驟從在所說的四舍五入過程之前的各個(gè)筆劃和在所說的四舍五入過程之后的各個(gè)筆劃之間的間隔中計(jì)算各個(gè)間隔的比例因數(shù)。
15.根據(jù)權(quán)利要求14的字符產(chǎn)生方法,其特征在于所說的整數(shù)坐標(biāo)值變化步驟沿一個(gè)方向改變所說多個(gè)指定筆劃中的一個(gè)所需要筆劃的所說整數(shù)坐標(biāo)值以使所說的差值變小。
16.根據(jù)權(quán)利要求12的字符產(chǎn)生方法,其特征在于所說的二進(jìn)制數(shù)變換圖產(chǎn)生步驟顯現(xiàn)構(gòu)成每個(gè)筆劃的多個(gè)組成部分的輪廓字形數(shù)據(jù)以產(chǎn)生所說的字符的二進(jìn)制數(shù)變換圖。
17.一種從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的字符產(chǎn)生裝置,在該輪廓字形數(shù)據(jù)中用坐標(biāo)表示一個(gè)字符的輪廓線,該裝置包括一個(gè)字形存儲(chǔ)器以存儲(chǔ)每個(gè)字符的所說輪廓字形數(shù)據(jù);和一個(gè)字符顯現(xiàn)電路,該字符顯現(xiàn)電路可用來把從所說的字形存儲(chǔ)器讀取的一個(gè)指定字符的輪廓字形數(shù)據(jù)轉(zhuǎn)變成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值,把所說的坐標(biāo)值四舍五入成整數(shù)坐標(biāo)值,從在四舍五入處理后的所說坐標(biāo)值中檢查在所說字符的筆劃之間是否有任何接觸,和如果存在這樣的接觸則改變所說整數(shù)坐標(biāo)值以產(chǎn)生所說二進(jìn)制數(shù)變換圖。
18.根據(jù)權(quán)利要求17的字符產(chǎn)生裝置,其特征在于在通過在四舍五入處理之后的坐標(biāo)沿相同的方向計(jì)算了多個(gè)筆劃間的間隔的總和之后,所說字符顯現(xiàn)電路把所說的總數(shù)與目標(biāo)筆劃數(shù)減1進(jìn)行比較,當(dāng)所說的總和小于由減法所得的值時(shí)改變所說整數(shù)坐標(biāo)值以便調(diào)整所說目標(biāo)筆劃的一個(gè)所需筆劃的線寬,和顯現(xiàn)包括所說調(diào)整的坐標(biāo)值的所說整數(shù)坐標(biāo)值以產(chǎn)生所說二進(jìn)制數(shù)變換圖。
19.根據(jù)權(quán)利要求18的字符產(chǎn)生裝置,其特征在于所說的字符顯現(xiàn)電路以這樣的方式改變所說的整數(shù)坐標(biāo)值以使所說的需要的筆劃變細(xì)。
20.根據(jù)權(quán)利要求19的字符產(chǎn)生裝置,其特征在于為了改變所說的整數(shù)坐標(biāo)值,所說的字符顯現(xiàn)電路以這樣的方式改變所說整數(shù)坐標(biāo)值以使得所說的多個(gè)不是最外邊且具有兩個(gè)象素或更多象素的線寬的筆劃變細(xì)。
21.根據(jù)權(quán)利要求18的字符產(chǎn)生裝置,其特征在于所說的字符顯現(xiàn)電路以這樣的方式改變所說的整數(shù)坐標(biāo)值以刪除所說的所需變細(xì)的筆劃。
22.根據(jù)權(quán)利要求18的字符產(chǎn)生裝置,其特征在于所說的字符存儲(chǔ)器存儲(chǔ)指定的所說目標(biāo)筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和所說筆劃顯現(xiàn)電路由多個(gè)指定的筆劃的所說的四舍五入后的整數(shù)坐標(biāo)來計(jì)算筆劃之間的所說的間隔的總和。
23.根據(jù)權(quán)利要求22的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定將被調(diào)整的所述筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和為了改變所說的整數(shù)坐標(biāo)值,當(dāng)所說的總和比所說的從減法所得的值小時(shí),所說的字符顯現(xiàn)電路改變所說的多個(gè)指定筆劃中指定的一個(gè)的線寬。
24.根據(jù)權(quán)利要求18的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)每個(gè)字符的組成部分的輪廓字形數(shù)據(jù)和每個(gè)字符的組成部分指定的數(shù)據(jù);和所說字符顯現(xiàn)電路通過一個(gè)指定字符的所說組成部分指定數(shù)據(jù)提取該指定的輪廓字形數(shù)據(jù),并且顯現(xiàn)構(gòu)成每個(gè)筆劃的多個(gè)組成部分的輪廓字形數(shù)據(jù)以產(chǎn)生所說字符的所說二進(jìn)制數(shù)變換圖。
25.根據(jù)權(quán)利要求19的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定所說目標(biāo)筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和所說筆劃顯現(xiàn)電路由多個(gè)指定的筆劃的所說的四舍五入后的整數(shù)坐標(biāo)來計(jì)算筆劃之間的所說的間隔的總和。
26.根據(jù)權(quán)利要求25的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定將被調(diào)整的筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和為了改變所說的整數(shù)坐標(biāo)值,當(dāng)所說的總和比所說的從減法所得的值小時(shí),所說的字符顯現(xiàn)電路改變所說的多個(gè)指定筆劃的一個(gè)的線寬。
27.根據(jù)權(quán)利要求21的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定所說目標(biāo)筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和所說筆劃顯現(xiàn)電路由多個(gè)指定的筆劃的所說的四舍五入后的整數(shù)坐標(biāo)來計(jì)算筆劃之間的所說的間隔的總和。
28.根據(jù)權(quán)利要求27的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定將被調(diào)整的筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和為了改變所說的整數(shù)坐標(biāo)值,當(dāng)所說的總和比所說的從減法所得的值小時(shí),所說的字符顯現(xiàn)電路改變所說的多個(gè)指定筆劃中指定的一個(gè)的線寬。
29.一種從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)二進(jìn)制數(shù)變換圖的字符產(chǎn)生裝置,在該輪廓字形數(shù)據(jù)中用坐標(biāo)表示一個(gè)字符的輪廓線,該裝置包括一個(gè)字形存儲(chǔ)器以存儲(chǔ)每個(gè)筆劃的所說輪廓字形數(shù)據(jù);和一個(gè)字符顯現(xiàn)電路,該字符顯現(xiàn)電路可用來把從所說的字形存儲(chǔ)器讀取的一個(gè)指定字符的輪廓字形數(shù)據(jù)轉(zhuǎn)變成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值,把所說的坐標(biāo)值四舍五入成整數(shù)坐標(biāo)值,并且以這樣的方式改變所說的整數(shù)坐標(biāo)值以使在四舍五入之前和之后的筆劃間隔的最大和最小比例因數(shù)之間的差值變小,以便因而產(chǎn)生所說的二進(jìn)制數(shù)變換圖。
30.根據(jù)權(quán)利要求29的字符產(chǎn)生裝置,其特征在于在從取整數(shù)之前的各個(gè)筆劃之間的間隔和在四舍五入之后的各個(gè)筆劃之間的間隔中計(jì)算完各個(gè)間隔的比例因數(shù)之后,所說的字符顯現(xiàn)電路計(jì)算在所說比例因數(shù)之中在最大比例因數(shù)和最小比例因數(shù)之間的差值,沿一個(gè)方向改變?cè)谒f筆劃當(dāng)中的一個(gè)所需筆劃的所說整數(shù)坐標(biāo)值以使所說的差值變小,和顯現(xiàn)包括所說改變的坐標(biāo)值的所說整數(shù)坐標(biāo)值以產(chǎn)生所說的二進(jìn)制數(shù)變換圖。
31.根據(jù)權(quán)利要求30的字符產(chǎn)生裝置,其特征在于在計(jì)算完第一比例因數(shù)和第二比例因數(shù)之后,該第一比例因數(shù)是通過從在提供所說的最大比例因數(shù)的所說四舍五入處理之后的該筆劃間隔中減1而獲得,該第二比例因數(shù)是通過向在提供所說的最小比例因數(shù)的所說取整數(shù)之后的該筆劃間隔中加1而獲得,所說的字符顯現(xiàn)電路計(jì)算在所說第一比例因數(shù)和所說第二比例因數(shù)之間的差值,把所說的初始差值與在所說第一和第二比例因數(shù)之間的所說差值進(jìn)行比較,并且當(dāng)在所說第一和第二比例因數(shù)之間的所說差值比所說初始差值小時(shí),則向著所說最大比例因數(shù)的所說筆劃間隔移動(dòng)位于所說最大比例因數(shù)的所說筆劃間隔和所說最小比例因數(shù)的所說筆劃間隔之間的筆劃一個(gè)坐標(biāo)單位。
32.根據(jù)權(quán)利要求30的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定所說目標(biāo)筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和所說的字符顯現(xiàn)電路計(jì)算所說指定的多個(gè)筆劃間隔。
33.根據(jù)權(quán)利要求32的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)指定將被改變的所說筆劃的數(shù)據(jù)作為對(duì)應(yīng)于所說字符的筆劃數(shù)據(jù);和所說的字符顯現(xiàn)電路改變所說指定的多個(gè)筆劃中的特定的一個(gè)。
34.根據(jù)權(quán)利要求29的字符產(chǎn)生裝置,其特征在于所說的字形存儲(chǔ)器存儲(chǔ)每個(gè)字符的組成部分的輪廓字形數(shù)據(jù)和每個(gè)字符的組成部分指定的數(shù)據(jù);和所說字符顯現(xiàn)電路通過一個(gè)指定字符的所說組成部分指定數(shù)據(jù)提取該指定的輪廓字形數(shù)據(jù)并且顯現(xiàn)構(gòu)成每個(gè)筆劃的多個(gè)組成部分的輪廓字形數(shù)據(jù)以產(chǎn)生所說字符的所說二進(jìn)制數(shù)變換圖。
全文摘要
本發(fā)明公開了一種產(chǎn)生字符的方法和裝置,以便從輪廓字形數(shù)據(jù)產(chǎn)生一個(gè)具有改善的可讀性的小字符。該方法包括以下步驟把輪廓字形數(shù)據(jù)轉(zhuǎn)換成一個(gè)指定尺寸的坐標(biāo)系的坐標(biāo)值;把轉(zhuǎn)換的坐標(biāo)值取整數(shù)成整數(shù)坐標(biāo)值;由一個(gè)啟發(fā)過程調(diào)整整數(shù)坐標(biāo)值;和顯現(xiàn)包括有調(diào)整的坐標(biāo)值的整數(shù)坐標(biāo)值以產(chǎn)生二進(jìn)制數(shù)變換圖。該裝置包括一個(gè)字形存儲(chǔ)器,以用來存儲(chǔ)每個(gè)字符的輪廓字形數(shù)據(jù);和一個(gè)字符顯現(xiàn)電路。
文檔編號(hào)G06T11/20GK1090937SQ9312114
公開日1994年8月17日 申請(qǐng)日期1993年12月7日 優(yōu)先權(quán)日1992年12月7日
發(fā)明者本門慎一郎, 大伴武都美, A·赫爾曼 申請(qǐng)人:富士通株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1