JP2000347647A - 手書き風文字出力装置およびそのプログラム記録媒体 - Google Patents

手書き風文字出力装置およびそのプログラム記録媒体

Info

Publication number
JP2000347647A
JP2000347647A JP11160462A JP16046299A JP2000347647A JP 2000347647 A JP2000347647 A JP 2000347647A JP 11160462 A JP11160462 A JP 11160462A JP 16046299 A JP16046299 A JP 16046299A JP 2000347647 A JP2000347647 A JP 2000347647A
Authority
JP
Japan
Prior art keywords
character
contour
value
handwritten
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11160462A
Other languages
English (en)
Inventor
Shin Mikuni
伸 三国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP11160462A priority Critical patent/JP2000347647A/ja
Publication of JP2000347647A publication Critical patent/JP2000347647A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】 空間周波数成分の集合体で表現された文字の
輪郭を変形加工する際に、乱数値を用いることで、文字
の輪郭に手書き風の揺らぎを表現する。 【解決手段】 CPU1は通常の文字フォントをDFT
処理することによって得られた周波数成分の集合体から
なる文字の輪郭を変形加工する際、この輪郭データに乱
数値を反映させることで、文字の輪郭に手書き風の揺ら
ぎを付与する。そして、CPU1はこの手書き風の文字
の輪郭データをDFT逆変換して座標列データに復元
し、展開出力させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、毛筆で書いたよ
うな手書き風文字を出力する手書き風文字出力装置およ
びそのプログラム記録媒体に関する。
【0002】
【従来の技術】従来、ワードプロセッサやパーソナルコ
ンピュータ等の文書データ処理装置においては、入力さ
れた文書データを出力する際に、文字の形状をドットの
集合で表現するビットマップフォントや文字の輪郭を部
分毎に基準点とそれを結ぶ直線やベジェ曲線などの集合
で表現するアウトライン(ベクトル)フォントを読み出
して表示出力/印字出力するようにしているが、アウト
ラインフォントはビットマップフォントに比べ、回転や
斜体、拡大縮小といった変形が容易であり、変形後も輪
郭が滑らかであるという利点がある。
【0003】
【発明が解決しようとする課題】しかしながら、アウト
ラインフォントでも文字を構成する1画の太さを変更し
たり、フォントの基本輪郭を大きく変えるような変形に
は適しておらず、従来、そのような要求があれば、個別
に特殊なフォントとして予め用意しておく必要があっ
た。このような場合、たとえフォントを部品化すること
で構造的にデータを圧縮記憶したとしても限界があり、
データ容量は大きなものとなっていた。更に、アウトラ
インフォントは一般的に輪郭が滑らかな場合には、デー
タ容量は小さいが、細かく変化(振動)するような形状
ではデータ容量が爆発的に大きくなるため、実用上その
ような形状のフォントは予め用意されていないのが現状
であった。そこで、本出願人は文字の輪郭を離散的な空
間周波数成分の集合体で表現して成る周波数フォント
を、通常の文字フォントを用いて生成する周波数フォン
ト生成機能と、この周波数フォントに基づいて文字の輪
郭を変形した変形フォントを生成する変形フォント生成
機能を更に組み込むだけで、データ量の増大を抑えなが
ら、文字の基本輪郭や太さ等を大幅に変更したり、多彩
な表現を付加する等、文字の形状を自由に変形できるよ
うにした技術(特願平10−221119号、発明の名
称:文字フォント変形出力装置およびそのプログラム記
録媒体)を提案した。この発明の課題は、本出願人が先
に提案した技術を発展させたもので、空間周波数成分の
集合体で表現された文字の輪郭を変形加工する際に、乱
数値を用いることで、文字の輪郭に手書き風の揺らぎを
表現できるようにすることである。
【0004】
【課題を解決するための手段】この発明の手段は次の通
りである。請求項1記載の発明(第1の発明)は、離散
的な空間周波数成分の集合体で表現された文字の輪郭を
変形加工するために、この輪郭データに乱数値を反映さ
せることで、文字の輪郭に揺らぎを付与した手書き風文
字を生成する文字加工手段と、この文字加工手段によっ
て変形加工された文字の輪郭データを座標列データに変
換する変換手段と、この変換手段によって変換された座
標列データに基づいて手書き風文字を展開出力する出力
手段とを具備するものである。この発明は次のようなも
のであってもよい。 (1)、前記文字加工手段は空間周波数成分の集合体の
うち特定周波数成分あるいは全周波数成分に対して長さ
を変化させる所定要素に乱数値を乗算することで、文字
の輪郭に揺らぎを付与した手書き風文字を生成する。 (2)、前記文字加工手段は空間周波数成分の集合体の
うち特定周波数成分あるいは全周波数成分に対して太さ
を変化させる所定要素に乱数値を乗算することで、文字
の輪郭に揺らぎを付与した手書き風文字を生成する。 (3)、前記文字加工手段は空間周波数成分の集合体を
構成する全要素に同一乱数値を乗算することで文字全体
を拡大/縮小させて大きさの揺らぎを含めた変形を行
う。 (4)、同一の初期値から所定の乱数を順次発生する乱
数発生手段を設け、前記乱数発生手段によって発生さ
れ、かつ前記文字加工手段によって文字の輪郭を変形加
工する際に用いられた乱数値を記憶保存すると共に、こ
の乱数値を用いて変形加工された手書き風文字を表示す
る他、この手書き風文字の印刷が指示された場合には前
記記憶保存されている乱数値を呼び戻すと共に、この乱
数値を用いることによって変形加工された手書き風文字
を印刷出力させる出力制御手段を設ける。この場合、そ
れぞれ異なる乱数を用いて生成表示された複数種の手書
き風文字の中から所望の文字が選択される毎に、その文
字の変形に用いられた乱数値をそれぞれ記憶保存してお
き、手書き風文字の印刷が指示された場合には、前記記
憶保存されている各乱数値のうち任意の乱数値を選択し
て呼び戻すと共に、この乱数値を用いて変形加工された
手書き風文字を印刷出力させるようにしてもよい。請求
項1記載の発明においては、空間周波数成分の集合体で
表現された文字の輪郭を変形加工するために、この輪郭
データに乱数値を反映させることで、文字の輪郭に揺ら
ぎを付与し、これによって変形加工された文字の輪郭デ
ータを座標列データに変換すると共に、この座標列デー
タに基づいて手書き風文字を展開出力する。したがっ
て、空間周波数成分の集合体で表現された文字の輪郭を
変形加工する際に、乱数値を用いることで、文字の輪郭
に手書き風の揺らぎを表現することができる。
【0005】請求項5記載の発明(第2の発明)は、離
散的な空間周波数成分の集合体で表現された文字の輪郭
を変形加工するために、この輪郭データをフィルタ処理
する際に、このフィルタの設定値に乱数値を反映させる
ことで、文字の輪郭に揺らぎを付与した手書き風文字を
生成する文字加工手段と、この文字加工手段によって変
形加工された文字の輪郭データを座標列データに変換す
る変換手段と、この変換手段によって変換された座標列
データに基づいて手書き風文字を展開出力する出力手段
とを具備するものである。なお、この発明は次のような
ものであってもよい。 (1)、前記文字加工手段は空間周波数成分の集合体で
表現された文字の輪郭データを複数種のフィルタによっ
て処理する際に、それらフィルタ設定値の加重平均値を
乱数値により配分することで、文字の輪郭に手書き癖の
揺らぎを付与する。 (2)、同一の初期値から所定の乱数を順次発生する乱
数発生手段を設け、前記乱数発生手段によって発生さ
れ、かつ前記文字加工手段によって文字の輪郭を変形加
工する際に用いられた乱数値を記憶保存すると共に、こ
の乱数値を用いて変形加工された手書き風文字を表示す
る他、この手書き風文字の印刷が指示された場合には前
記記憶保存されている乱数値を呼び戻すと共に、この乱
数値を用いることによって変形加工された手書き風文字
を印刷出力させる出力制御手段を設ける。この場合、そ
れぞれ異なる乱数を用いて生成表示された複数種の手書
き風文字の中から所望の文字が選択される毎に、その文
字の変形に用いられた乱数値をそれぞれ記憶保存してお
き、手書き風文字の印刷が指示された場合には、前記記
憶保存されている各乱数値のうち任意の乱数値を選択し
て呼び戻すと共に、この乱数値を用いて変形加工された
手書き風文字を印刷出力させるようにしてもよい。請求
項5記載の発明においては、空間周波数成分の集合体で
表現された文字の輪郭を変形加工するために、この輪郭
データをフィルタ処理する際に、このフィルタの設定値
に乱数を反映させることで、文字の輪郭に揺らぎを付与
し、これによって変形加工された文字の輪郭データを座
標列データに変換すると共に、この座標列データに基づ
いて手書き風文字を展開出力する。したがって、空間周
波数成分の集合体で表現された文字の輪郭を変形加工す
る際に、乱数値を用いることで、文字の輪郭に手書き風
の揺らぎを表現することができる。
【0006】
【発明の実施の形態】(第1実施形態)以下、図1〜図
13を参照してこの発明の第1実施形態を説明する。図
1(A)は文書データ処理装置の全体構成を示したブロ
ック図である。CPU1は各種プログラムにしたがって
この文書データ処理装置の全体動作を制御する中央演算
処理装置である。記憶装置2はオペレーティングシステ
ムや各種アプリケーションプログラム、データファイ
ル、文字フォントデータ等が予め格納されている記憶媒
体3やその駆動系を有している。この記憶媒体3は固定
的に設けたもの、もしくは着脱自在に装着可能なもので
あり、フロッピーディスク、ハードディスク、光ディス
ク、RAMカード等の磁気的・光学的記憶媒体、半導体
メモリによって構成されている。また、記憶媒体3内の
プログラムやデータは、必要に応じてCPU1の制御に
より、RAM4にロードされる。更に、CPU1は通信
回線等を介して他の機器側から送信されて来たプログラ
ム、データを受信して記憶媒体3に格納したり、他の機
器側に設けられている記憶媒体に格納されているプログ
ラム、データを通信回線等を介して使用することもでき
る。そして、CPU1にはその入出力周辺デバイスであ
る入力装置5、表示装置6、印刷装置7がバスラインを
介して接続されており、入出力プログラムにしたがって
CPU1はそれらの動作を制御する。
【0007】入力装置5は文字列データ等を入力した
り、各種コマンドを入力するキーボード、マウス等のポ
インティングデバイスやイメージリーダを有している。
ここで、文書作成時に入力装置5から文書データが入力
されると、表示装置6のテキスト画面に表示出力される
と共に、かな漢字変換によって確定された確定文字列
は、RAM4内に格納される。なお、表示装置6は多色
表示を行う液晶表示装置やCRT表示装置あるいはプラ
ズマ表示装置等であり、また印刷装置7はフルカラープ
リンタ装置で、熱転写やインクジェットなどのノンイン
パクトプリンタあるいはインパクトプリンタであり、文
書データをカラー出力する。
【0008】ここで、文書印刷時において、毛筆で書い
たような手書き風文字で文書印刷を行うべきことが指示
された場合、CPU1は直交変換、つまり離散的フーリ
エ変換(DFT)の展開方式にしたがって既存文字フォ
ント(ビットマップフォントやアウトラインフォント)
の輪郭を離散的な空間周波数成分の集合体で表現して成
るデータ構造に変換する。ここで、文字を構成する各パ
ーツは、その輪郭(閉曲線)を1周する周期を持つ連続
関数で表わすことができるので、輪郭を1周する際に1
回振動する周波数をDFTの基本周波数とし、この基本
周波数とその整数倍の周波数とを組み合せた集合体のデ
ータ構造に変換するようにしている。なお、DFT処理
によって得られた変換結果の最大次数は、サンプリング
定理に応じたものとなっている。
【0009】図1(B)はRAM4の主要構成を示した
もので、このRAM4には各種のメモリ領域が割り当て
られている。文字列格納部4−1はDFT処理の対象と
なる文字列が一時記憶されるもので、CPU1はこの文
字列を構成する各文字コードをその先頭から読み出して
記憶装置2内の通常フォント格納部2−1を検索し、該
当する文字フォントを取り込む。通常フォント格納部2
−1はビットマップフォントやアウトラインフォントを
各種文字に対応付けて記憶するもので、CPU1はこの
通常フォント格納部2−1から読み出した文字フォント
をパーツ毎にDFT処理するが、その際、周波数変換ワ
ーク部4−2が用いられる。周波数変換ワーク部4−2
は1パーツ毎の変換結果を一時記憶する作業域であり、
CPU1はDFT処理された周波数変換ワーク部4−2
内の1パーツ分の輪郭データを変形加工し、変形フォン
ト格納部4−3に格納する。変形フォント格納部4−3
は文字の輪郭全体に手書き風の揺らぎが付与された変形
フォントを一時記憶するもので、CPU1はこの変形フ
ォントを構成する輪郭データをフーリエ逆変換すること
によって元の座標列データを生成したのち、この座標列
データを印刷バッファ4−4に展開する。
【0010】図2はDFT変換によって既存フォントを
1パーツ毎に周波数成分の集合体に変換する場合の様子
を概念的に示した図である。処理対象フォント(この場
合、アウトラインフォント)の1パーツ分を描画し、こ
のビットマップの輪郭をプロットする。ここで、1パー
ツをプロットする点数は、どれだけ細かく変換したいか
によって決定するが、離散的フーリエ変換の場合なら
ば、「2」の乗数から選び、例えば「512」などであ
り、この数でパーツの輪郭をプロットし、その点P0、
P1、P2……毎にXY座標値を取り込み、この座標値
をDFT処理する。なお、DFTによる変換結果は、演
算精度を厳密に求めなければ、可逆性があり、フーリエ
変換によって元の座標値に戻すことができる。なお、通
常のアウトラインフォントの場合には、そのパーツ数が
定義されていると共に、各パーツ毎(1画毎)に基準点
座標値および直線、ベジェ曲線等の属性が定義されてい
るが、この実施形態における周波数フォントの場合に
は、アウトラインフォントの座標、属性の記述部分が空
間周波数成分の数表となっている。つまり、文字コー
ド、パーツ数、パーツ番号に対応付けてパーツ毎のDF
T処理結果は、直流成分、基本周波数成分、それを整数
倍した周波数成分とを記述した数表となっている。ここ
で、DFTによる処理結果は複素数として表現され、複
素数平面上における実数軸部分と虚数軸部分とに分けて
その大きさが離散的に求められたもので、図中、「Xr
l」は複素平面上においてX軸方向の実数軸部分の値を
示し、「Xim」は虚数軸部分の値を示している。同様
に「Yrl」、「Yim」はY軸方向における実数軸部
分の値、虚数軸部分の値である。また、図中「F0」は
直流成分であって、その実数部分に輪郭の中心点座標が
記述されている。なお、「F0」の虚数軸部分には常に
「ゼロ」の値が記述されている。「F1」はパーツの輪
郭を1周する際に1回振動する周波数を表わした基本周
波数成分であり、パーツの大きさや方向はこの値によっ
て支配される。「F2」はパーツの輪郭を1周する際に
2回振動する周波数成分(2次高周波成分)であり、パ
ーツの形状はこの値によって支配され大きく曲がってい
るパーツではこの値が大きくなる。以降の「F3」、
「F4」……は3次、4次の高周波成分であり、その最
大次数は変換対象パーツの輪郭をサンプリングした際に
おける座標の数の半分である。これは、前半部分の値か
ら正負の反転、逆順を行うだけで後半部分の値を容易に
導けるためである。
【0011】図3は文字「和」が1パーツ毎に分解され
てDFT処理される様子を示したもので、その「のぎ
偏」を構成する縦長のパーツと、その「囗」を構成する
大きく曲がっているパーツについて着目し、各パーツ毎
にDFT処理することによって得られた実数部分の値
と、虚数部分の値を周波数軸上に離散的に分布させた図
表を示している。この周波数分布において、縦長のパー
ツは基本周波数F1にその特徴が表われ、大きく曲がっ
ているパーツは基本周波数F1の他に次の周波数F2に
その特徴が表われている。図4は文字「和」をDFT処
理することによって得られたX軸方向の実数軸部分、虚
数軸部分、Y軸方向の実数軸部分、虚数軸部分の具体的
な数値を示すと共に、文字「和」を構成する各パーツと
パーツ毎の周波数データとの対応関係を示した図であ
る。ここで、図中「1」〜「7」で示すようにこの文字
「和」は7パーツから成るため、それに対応する空間周
波数成分の集合体は、7パーツ分のデータとなる。
【0012】このような周波数フォントを利用すること
によって文字の輪郭を自由に変更することができる。図
5(A)はDFT処理によって得られた空間周波数成分
のうちディジタルフィルタ(ローパスフィルタ)によっ
て高域周波数成分をカットすることによってF3以降の
周波数成分を全てゼロにしたデータ構造を示すと共に、
特定の高周波数成分、例えばF56を追加し、その値を
一定値とすることで輪郭線を細かく振動させた変形を行
う場合のデータ構造を示している。図5(B)はその変
形状態を示したもので、低域のF0、F1、F2の周波
数成分によって文字の大体の形状が支配され、その輪郭
がF56の高周波数成分によって細かく振動されるが、
その振動の回数や強さは任意に制御可能であり、大きな
振動を得るためにはその値を大きくすればよく、また細
かな振動を得るには高周波数成分の次数を高めればよ
い。ここで、この実施形態においては、空間周波数成分
の集合体で表現された文字の輪郭データに乱数値を反映
させることで、文字の輪郭に揺らぎを付与した手書き風
文字を生成するようにしている。すなわち、図6は空間
周波数成分のX方向実数軸の値(Xr)、Y方向実数軸
の値(Yr)、虚数軸の値(Yi)を変化させた場合に
文字がどのように変形加工されるかを例示したもので、
Xrの値を増加させると、横棒の長さが伸び、減少させ
ると短かくなる。また、Yrの値を増加させると縦棒の
長さが伸びる。このとき、太さはあまり変化しない。逆
に、Yiの値を増加させると、横棒が太くなり、減少さ
せると細くなる。ただし、この例は各パーツの長手方向
一端から輪郭座標のサンプリングを行ってフーリエ変換
した場合であり、長手方向の中央からサンプリングを行
えば、長さと太さの関係は逆転する。ところで、手書き
で文字を書く場合、太さは余り変わらず、長さが変化す
ることが多いため、フーリエ変換した実数軸の値を操作
することで、位置、太さを変えずに長さを変化させるこ
とができる。
【0013】次に、文書データ処理装置の動作を図7〜
図11に示すフローチャートにしたがって説明する。こ
こで、これらのフローチャートに記述されている各機能
を実現するためのプログラムは、CPU1が読み取り可
能なプログラムコードの形態で記憶媒体3に格納されて
おり、CPU1はこのプログラムコードにしたがった動
作を逐次実行する。なお、このことは後述する他の実施
形態においても同様である。図7は文字列を印刷出力す
る際の全体動作を示したフローチャートである。すなわ
ち、通常の文字フォント(アウトラインフォント)を1
パーツ毎に周波数フォントに変換すると共に、この周波
数フォントを構成するデータを加工することによって変
形フォントを生成し、この変形フォントをフーリエ逆変
換することによって元の座標データに戻し、この座標デ
ータに基づいて文字展開を行って印刷出力する動作を示
したフローチャートである。先ず、行ポインタを初期化
したのち(ステップA1)、このポインタ値で文字列格
納部4−1をアクセスし、1行分の文字列コードを読み
込む(ステップA2)。次に、桁ポインタを初期化した
のち(ステップA3)、この桁ポインタで指定される1
桁分の文字コードを読み込む(ステップA4)。そし
て、後述する1文字印刷処理を行い(ステップA5)、
これによって1文字分の印刷が終ると、桁ポインタの値
を更新して次の文字を指定する(ステップA6)。以
下、ステップA7で1行分の印刷終了が検出されるまで
ステップA5に戻り、1文字印刷を繰り返す。これによ
って1行分の印刷が終ると、行ポインタの値を更新し
(ステップA8)、全行終了がステップA9で検出され
るまでステップA2に戻り、上述の動作を繰り返す。
【0014】図8は図7のステップA5(1文字印刷処
理)を詳述したフローチャートである。先ず、文字の1
画目を指定するために画ポインタを初期化する(ステッ
プB1)。そして、この画ポインタで示される1画分の
データを通常フォント格納部2−1から読み込み(ステ
ップB2)、それをDFT変換する(ステップB3)。
すなわち、処理対象の文字フォントを構成するパーツ数
を取得すると共に、その1パーツ目を展開描画し、その
パーツの輪郭線上を辿ってサンプリングし、サンプリン
グされた各点の座標値をDFT変換する。この場合、D
FT計算はX座標成分、Y座標成分に分けて行われ、X
方向実数軸部分の値、虚数軸部分の値、Y方向実数軸部
分の、虚数軸部分の値がそれぞれ得られる。このように
してDFT変換が行われると、その変換結果に対してそ
のパラメータを操作することにより文字の輪郭を変形し
た変形フォントを生成する(ステップB4)。なお、上
述した図5の例では低域の周波数成分に特定の高周波数
成分として一定値を加算することにより文字の輪郭に一
定の振動を与えるようにしたが、この実施形態において
は、上述したように空間周波数成分の集合体で表現され
た文字の輪郭データに乱数値を反映させることで、文字
の輪郭に揺らぎを付与した手書き風文字を生成するよう
にしている。
【0015】図9はこの場合の変形処理を示したもの
で、DFT処理によって得られた空間周波数成分の集合
体のうち、X方向実数軸の値(Xr)に乱数値を乗算す
る積算処理を行うと共に(ステップC1)、Y方向実数
軸の値(Yr)に乱数値を乗算する積算処理を行う(ス
テップC2)。この図9はXY方向の実数軸の値を変更
する積算処理を示したが、図10はXY方向の虚数軸の
値を変更する積算処理を示し、X方向虚数軸の値(X
i)に乱数値を乗算する積算処理を行うと共に(ステッ
プD1)、Y方向虚数軸の値(Yi)に乱数値を乗算す
る積算処理を行う(ステップD2)。図11はこの場合
における成分積算処理を示したフローチャートである。
この成分積算はF1以降の全ての周波数成分について行
われる。先ず、成分ポインタを初期化する(ステップE
1)。このポインタの初期化は最低次周波数成分F1に
合わせることであり、また、全成分とはサンプリングし
たサンプル数/2のことである。積算処理は乱数Pを周
波数成分に乗算することによって行われる。先ず、乱数
値Pを取り込むが、この値は「1.0」を中心に上下に
振れており、現時点の値を乱数値として取り込み(ステ
ップE2)、それを周波数成分の値に乗算する(ステッ
プB3)。例えば、図5において、第1のパーツのX方
向の最初の値(−16.656)に乱数値(0.98)
が掛けられると、その値は「−16.323」となる。
そして、次のステップF4では全成分が終了したかを調
べ、その終了が検出されるまでステップE2に戻り、上
述の動作が繰り返される。この場合、次の成分に対する
積算時には他の乱数値が用いられる。なお、図11はF
1以降の全周波数成分について成分積算を行った場合を
示したが、図12はF1以上における特定の周波数成分
(例えばF2)に対してのみ成分積算を行う場合を示
し、ステップF1では乱数値Pを取得し、ステップF2
では特定周波数成分に対して乱数値を乗算する。
【0016】このようにして1パーツ分の輪郭データに
乱数値を反映させることで輪郭全体に揺らぎを付与する
変形加工処理が終ると、図8のステップB5に進み、そ
の変形結果に対してフーリエ逆変換を行う。この場合、
1パーツ分の輪郭データをDFT逆変換すると、プロッ
トしたときの座標に戻るため、これをショートベクトル
とするアウトラインフォントが得られる。そして、印刷
バッファ4−4上において、輪郭内部を塗り潰すラスタ
ライズ処理を行う(ステップB6)。そして、次の画を
指定し(ステップB7)、全画終了かを調べ(ステップ
B8)、その終了が検出されるまでステップB2に戻
り、1画毎に上述の動作を繰り返す。
【0017】以上のようにこの第1実施形態において
は、空間周波数成分の集合体で表現された文字の輪郭を
変形加工するために、この輪郭データに乱数値を反映さ
せることで、文字の輪郭に揺らぎを付与し、これによっ
て変形加工された文字の輪郭データを座標列に変換して
手書き風文字を展開出力するようにしたから、自然な手
書き風文字を得ることが可能となる。図13はこの場合
の印刷例を示し、(A)は揺らぎを付与しない場合、
(B)は揺らぎを付与した場合である。この例はF1以
上の全ての周波数成分に対してX方向実数軸の値とY方
向実数軸の値を増加させた場合であり、横棒、縦棒の長
さが変化することによって1文字毎にその輪郭が全て微
妙に揺らぎ、手書きの風合が表現されたものとなる。こ
こで、乱数の値を制御することで、揺らぎの度合を更に
変化させることができる。また、周波数成分の集合体の
うち特定周波数成分あるいは全周波数成分に対して長さ
を変化させる所定要素に乱数値を乗算したり、太さを変
化させる所定要素に乱数値を乗算することで、文字の輪
郭に揺らぎが付与されるので、文字の形を崩さずに多種
多様な変形を1つの文字フォントから生成することがで
きる。
【0018】なお、長さに関するパラメータおよび太さ
に関するパラメータ、つまり周波数成分のX方向および
Y方向の実数軸部分の値と虚数軸部分の値を全て同じ値
の乱数値で積算すれば、文字全体を拡大/縮小させて大
きさの揺らぎを含めた変形が可能となり、更に効果的な
ものとなる。
【0019】(第2実施形態)以下、図14〜図18を
参照してこの発明の第2実施形態を説明する。なお、上
述した第1実施形態は周波数成分の集合体で表現された
文字の輪郭データに乱数値を反映させたが、この第2実
施形態は、周波数成分の集合体で表現された文字の輪郭
データをフィルタ処理する際に、このフィルタ設定値に
乱数値を反映させることで文字の輪郭に揺らぎを付与す
るようにしたものであり、その他は上述した第1実施形
態と基本的に同様であるため、以下この第2実施形態の
特徴部分のみを中心に説明する他、各実施形態において
基本的に共通するものは同一符号を併用し、その説明は
省略するものとする。
【0020】図14はこの第2実施形態における1文字
印刷処理を示し、上述した図8のステップB4(パラメ
ータを操作する)を除き、他のステップG1〜G3、G
5〜G8は図8のステップB1〜B3、B5〜B8に対
応する同様の処理である。図14のステップG4は、D
FT変換された結果に対して所定のフィルタ処理を行う
もので、例えばある周波数成分以上をカットするローパ
スフィルタや特定の周波数成分を加算する部分加算フィ
ルタの他、XY方向の実数・虚数毎に値を積算する全体
積算あるいは部分積算フィルタを使って文字の基本的な
形を崩さずに多種多様な変形を行うようにしている。例
えば、ローパスフィルタの場合、周波数成分の集合体の
うち高域の周波数成分を削除し、文字の大体の形状を支
配する低域の周波数成分のみから成る丸みを持った輪郭
を生成する。また、全体積算フィルタの場合、各周波数
成分のX方向・Y方向の実数軸部分の値、虚数軸部分の
値を定数倍することで、文字の太さや長さを変えた輪郭
データを生成する。部分積算の場合、周波数成分の集合
体のうち最低周波数成分F1等の所定周波数成分の虚数
軸部分はそのままとし、その実数軸部分に定数を掛けて
定数倍することで、文字の勢いを変えた輪郭を生成す
る。部分加算フィルタの場合、周波数成分の集合体のう
ち所定の周波数成分の値を変更する加算処理を行うこと
で、文字の輪郭を振動させたり、太さを部分に変えた輪
郭を生成する。
【0021】図15はこのようなフィルタ処理を示した
フローチャートである。先ず、フィルタ設定値を変更す
るパラメータゆらぎ処理(ステップH1)を実行したの
ち、ローパスフィルタ処理(ステップH2)、全体積算
フィルタ処理(ステップH3)、部分積算フィルタ処理
(ステップH4)、部分加算フィルタ処理(ステップH
5)を実行するが、これらのフィルタ処理は上述したよ
うに文字の形を崩さずにその輪郭形状を変形加工するも
ので、各種フィルタ処理のうち予め任意に指定されたフ
ィルタ処理が実行される。ここで、パラメータゆらぎ処
理(ステップH1)は、図16のフローチャートにした
がって実行される。先ず、処理対象として予め指定され
ているフィルタの設定値を取得してそれをコピー保存し
ておく(ステップJ1)。そして、フィルタ毎にその設
定値を変更する処理を行う(ステップJ2〜J5)。こ
こで、ローパスフィルタ(ステップJ2)、全体積算フ
ィルタ(ステップJ3)、部分積算フィルタ(ステップ
J4)、部分加算フィルタ(ステップJ5)の変更処理
は、図17のフローチャートにしたがって実行される。
ここで、乱数値Pを取得し(ステップK1)、フィルタ
設定値にこの乱数値Pを加算することによりフィルタ設
定値を変更する(ステップK2)。
【0022】以上のようにこの第2実施形態において
は、周波数成分の集合体で表現された文字の輪郭を変形
加工するために、この輪郭データをフィルタ処理する際
に、このフィルタの設定値に乱数値を反映させること
で、文字の輪郭に揺らぎを付与し、これによって変形加
工された文字の輪郭データを座標列に変換して手書き風
文字を展開出力するようにしたから、表現力豊かな手書
き風文字を得ることが可能となる。図18はこの場合の
印刷例を示し、(A)は揺らぎを付与しない場合、
(B)は揺らぎを付与した場合である。
【0023】なお、図19はこの第2実施形態の変形応
用例を示したもので、図17に対応するフィルタ変更処
理を示したものである。すなわち、図17で示したフィ
ルタ変更処理は、フィルタ設定値に乱数値を加算するよ
うにしたが、図19のフィルタ処理は、2組のフィルタ
設定値の加乗平均を乱数値により配分するようにしたも
のである。すなわち、周波数成分の集合体である文字の
輪郭データを予め任意に選択指定された複数種のフィル
タによって処理する際に、それらフィルタ設定値の加乗
平均値を乱数値により配分するようにしたものである。
ここで、2種類の乱数値P1、P2を取得してその合計
値Bを求め(ステップL1)、第1のフィルタ設定値×
乱数値P1+第2のフィルタ設定値×乱数値P2÷B=
フィルタ設定値の計算式によってフィルタ変更処理を行
う(ステップL2)。これによって揺らぎの方向性を統
一することができる。例えば、右肩上がりになりやすい
傾向を持っている場合に、基本的に似た形状であるが、
その1つは右肩上がり、他の1つは上がっていない文字
を生成することで、その人が持つ揺らぎ(手書き癖)を
再現することができる。この例では2組のフィルタとし
たが、3組以上でも同様の方法で処理することができ
る。
【0024】(第3実施形態)以下、図20〜図23を
参照してこの発明の第3実施形態を説明する。なお、上
述した各実施形態のように乱数値を用いて文字の変形を
行って印刷を行うと、二度と全く同じの印刷結果を得ら
れることはない。しかし、年賀状の印刷などでは自分が
一度上手に書けたものを全ての人に送りたいという要望
があるため、この第3実施形態においては、文字の変形
を乱数値を用いて何度も試みた場合に、その中から自分
の好みに合ったものを繰り返して印刷できるようにした
ものである。ここで、文字の輪郭に揺らぎを付与する乱
数値は乱数レジスタにセットされた値を基に生成され
る。図20はこの場合の乱数発生処理を示したフローチ
ャートである。先ず、乱数レジスタの値から乱数を発生
させ(ステップM1)、この乱数を乱数レジスタに書き
込む(ステップM2)。つまり、乱数レジスタにセット
された数値を基に例えば、その数値を「7」で割った小
数点以下の数値の一部を取り出すことで乱数を発生す
る。そして、発生された乱数を再度、乱数レジスタにセ
ットすることで、次の乱数が発生される。したがって、
最初に乱数レジスタにセットされる値が同じならば、次
々に発生される乱数値は毎回同じ乱数列となるため、乱
数値を用いて変形加工した結果を表示で確認する際に、
乱数レジスタの値を他のメモリに保存しておき、この値
を印刷の際に乱数レジスタに書き戻すことで、最後に表
示させた変形文字分何度でも印刷することが可能とな
る。
【0025】図21はキー操作に応じた処理概要を示し
たフローチャートで、文字列を入力した後、再表示キー
が押下されると(ステップN1)、サンプル表示処理が
行われる(ステップN2)。このサンプル表示処理は図
22のフローチャートにしたがって実行され、乱数レジ
スタの値を他のメモリに保存したのち(ステップP
1)、上述した第1あるいは第2実施形態と同様に、乱
数値を用いて文字の変形を行い、その結果をサンプル表
示させる(ステップP2)。ここで、サンプル表示がユ
ーザの好みに合ったものであれば、その印刷を指示す
る。すると、ステップN3でそのことが検出されてステ
ップN4に進み、印刷処理が行われるが、この印刷処理
は図23のフローチャートにしたがって実行される。す
なわち、サンプル表示時に保存した値を呼び戻して乱数
レジスタに初期値としてセットする(ステップQ1)。
そして、上述した第1あるいは第2実施形態と同様に、
乱数を用いて文字の変形を行い、その結果を印刷出力さ
せる(ステップQ2)。したがって、サンプル表示後に
その印刷を指示すれば、サンプル表示の文字を印刷する
ことができるようになる。なお、ステップN5はその他
の指示に応じた処理である。
【0026】なお、上述した第3実施形態は、サンプル
表示の中から最も適した文字を選択するようにしたが、
それぞれ異なる乱数を用いて生成表示された複数種の手
書き風文字の中から所望の文字が選択される毎に、その
文字の変形に用いられた乱数値をそれぞれ記憶保存して
おき、手書き風文字の印刷が指示された場合には、前記
記憶保存されている各乱数値のうち任意の乱数値を選択
して呼び戻すと共に、この乱数値を用いて変形加工され
た手書き風文字を印刷出力させるようにしてもよい。こ
の場合、サンプル表示によって好みに合った結果を複数
種選択しておき、印刷時にその中から最良の結果を選ん
で印刷することができる。また、各実施形態において
は、既存の通常文字フォントをDFT処理することによ
って周波数フォントを得るようにしたが、周波数フォン
トを文字フォントメモリに固定的に記憶しておき、それ
を呼び出して変形加工するようにしてもよい。
【0027】
【発明の効果】第1および第2の発明によれば、空間周
波数成分の集合体である文字の輪郭を変形加工する際
に、乱数値を用いることで、文字の輪郭に手書き風の揺
らぎを表現することができると共に、その変形を容易に
行うことができる。
【図面の簡単な説明】
【図1】(A)は文書データ処理装置の全体構成を示し
たブロック図、(B)はRAM4の主要部分を示した
図。
【図2】通常の文字フォントをパーツ毎にサンプリング
してDFT処理することにより周波数フォントが生成さ
れる様子を示した図。
【図3】通常の文字フォントをパーツ毎に分解してDF
T処理される様子を示すと共に、DFT処理することに
よって得られた実数部分の値と虚数部分の値を周波数軸
上に離散的に分布させた周波数分布図を示した図。
【図4】周波数フォントを構成する具体的な数値を示す
と共に、どのパーツがどのデータに対応しているかの対
応関係を示した図。
【図5】(A)は周波数フォントのデータ構造を説明す
るための図、(B)はこのようなデータ構造の周波数フ
ォントによって表現される文字の出力状態を示した図。
【図6】空間周波数成分のX方向実数軸の値、Y方向実
数軸の値、虚数軸の値を増減させた場合に文字がどのよ
うに変形加工されるかを例示した図。
【図7】文字列を印刷出力する際の全体動作を示したフ
ローチャート。
【図8】図7のステップA5(1文字印刷処理)を詳述
したフローチャート。
【図9】図8のステップB4(実数軸部分のパラメータ
操作)を詳述したフローチャート。
【図10】図8のステップB4(虚数軸部分のパラメー
タ操作)を詳述したフローチャート。
【図11】図9、図10の成分積算処理を詳述したフロ
ーチャート。
【図12】第1実施形態の変形応用例を説明するための
図で、特定周波数成分に対してのみ行われる成分積算処
理を示したフローチャート。
【図13】印刷例であり、(A)は揺らぎを付与しない
場合、(B)は揺らぎを付与した場合の印刷例を示した
図。
【図14】第2実施形態における1文字印刷処理を示し
たフローチャート。
【図15】図14のステップG4(フィルタ処理)を詳
述したフローチャート。
【図16】図15のステップH1(パラメータゆらぎ処
理)を詳述したフローチャート。
【図17】図15のパラメータゆらぎ処理において実行
されるフィルタ変更処理を示したフローチャート。
【図18】第2実施形態の印刷例で、(A)は揺らぎを
付与しない場合、(B)は揺らぎを付与した場合の印刷
例を示した図。
【図19】第2実施形態における変形応用例を説明する
ための図で、図17に対応するフィルタ変更処理を示し
たフローチャート。
【図20】第3実施形態における処理発生処理を示した
フローチャート。
【図21】キー操作に応じた処理概要を示したフローチ
ャート。
【図22】図21のステップN2(サンプル表示処理)
を詳述したフローチャート。
【図23】図21のステップN4(印刷処理)を詳述し
たフローチャート。
【符号の説明】
1 CPU 2 記憶装置 2−1 通常フォント格納部 3 記憶媒体 4 RAM 4−1 文字列格納部 4−2 周波数変換ワーク部 4−3 変形フォント格納部 4−4 印刷バッファ 5 入力装置 6 表示装置 7 印刷装置

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】離散的な空間周波数成分の集合体で表現さ
    れた文字の輪郭を変形加工するために、この輪郭データ
    に乱数値を反映させることで、文字の輪郭に揺らぎを付
    与した手書き風文字を生成する文字加工手段と、 この文字加工手段によって変形加工された文字の輪郭デ
    ータを座標列データに変換する変換手段と、 この変換手段によって変換された座標列データに基づい
    て手書き風文字を展開出力する出力手段とを具備したこ
    とを特徴とする手書き風文字出力装置。
  2. 【請求項2】前記文字加工手段は空間周波数成分の集合
    体のうち特定周波数成分あるいは全周波数成分に対して
    長さを変化させる所定要素に乱数値を乗算することで、
    文字の輪郭に揺らぎを付与した手書き風文字を生成する
    ようにしたことを特徴とする請求項1記載の手書き風文
    字出力装置。
  3. 【請求項3】前記文字加工手段は空間周波数成分の集合
    体のうち特定周波数成分あるいは全周波数成分に対して
    太さを変化させる所定要素に乱数値を乗算することで、
    文字の輪郭に揺らぎを付与した手書き風文字を生成する
    ようにしたことを特徴とする請求項1記載の手書き風文
    字出力装置。
  4. 【請求項4】前記文字加工手段は空間周波数成分の集合
    体を構成する全要素に同一乱数値を乗算することで文字
    全体を拡大/縮小させて大きさの揺らぎを含めた変形を
    行うことを特徴とする請求項1記載の手書き風文字出力
    装置。
  5. 【請求項5】離散的な空間周波数成分の集合体で表現さ
    れた文字の輪郭を変形加工するために、この輪郭データ
    をフィルタ処理する際に、このフィルタの設定値に乱数
    値を反映させることで、文字の輪郭に揺らぎを付与した
    手書き風文字を生成する文字加工手段と、 この文字加工手段によって変形加工された文字の輪郭デ
    ータを座標列データに変換する変換手段と、 この変換手段によって変換された座標列データに基づい
    て手書き風文字を展開出力する出力手段とを具備したこ
    とを特徴とする手書き風文字出力装置。
  6. 【請求項6】前記文字加工手段は空間周波数成分の集合
    体で表現された文字の輪郭データを複数種のフィルタに
    よって処理する際に、それらフィルタ設定値の加重平均
    値を乱数値により配分することで、文字の輪郭に手書き
    癖の揺らぎを付与するようにしたことを特徴とする請求
    項5記載の手書き風文字出力装置。
  7. 【請求項7】同一の初期値から所定の乱数を順次発生す
    る乱数発生手段を設け、前記乱数発生手段によって発生
    され、かつ前記文字加工手段によって文字の輪郭を変形
    加工する際に用いられた乱数値を記憶保存すると共に、
    この乱数値を用いて変形加工された手書き風文字を表示
    する他、この手書き風文字の印刷が指示された場合には
    前記記憶保存されている乱数値を呼び戻すと共に、この
    乱数値を用いることによって変形加工された手書き風文
    字を印刷出力させる出力制御手段を設けたことを特徴と
    する請求項1あるいは5記載の手書き風文字出力装置。
  8. 【請求項8】それぞれ異なる乱数を用いて生成表示され
    た複数種の手書き風文字の中から所望の文字が選択され
    る毎に、その文字の変形に用いられた乱数値をそれぞれ
    記憶保存しておき、手書き風文字の印刷が指示された場
    合には、前記記憶保存されている各乱数値のうち任意の
    乱数値を選択して呼び戻すと共に、この乱数値を用いて
    変形加工された手書き風文字を印刷出力させるようにし
    たことを特徴とする請求項7記載の手書き風文字出力装
    置。
  9. 【請求項9】コンピュータによって読み取られるプログ
    ラムコードを有する記録媒体であって、 離散的な空間周波数成分の集合体で表現された文字の輪
    郭を変形加工するために、この輪郭データに乱数値を反
    映させることで、文字の輪郭に揺らぎを付与した手書き
    風文字を生成する機能と、 変形加工された文字の輪郭データを座標列データに変換
    する機能と、 変換された座標列データに基づいて手書き風文字を展開
    出力する機能を実現するためのプログラムコードを有す
    る記録媒体。
  10. 【請求項10】コンピュータによって読み取られるプロ
    グラムコードを有する記録媒体であって、 離散的な空間周波数成分の集合体で表現された文字の輪
    郭を変形加工するために、この輪郭データをフィルタ処
    理する際に、このフィルタの設定値に乱数値を反映させ
    ることで、文字の輪郭に揺らぎを付与した手書き風文字
    を生成する機能と、 変形加工された文字の輪郭データを座標列データに変換
    する機能と、 変換された座標列データに基づいて手書き風文字を展開
    出力する機能を実現するためのプログラムコードを有す
    る記録媒体。
JP11160462A 1999-06-08 1999-06-08 手書き風文字出力装置およびそのプログラム記録媒体 Pending JP2000347647A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11160462A JP2000347647A (ja) 1999-06-08 1999-06-08 手書き風文字出力装置およびそのプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11160462A JP2000347647A (ja) 1999-06-08 1999-06-08 手書き風文字出力装置およびそのプログラム記録媒体

Publications (1)

Publication Number Publication Date
JP2000347647A true JP2000347647A (ja) 2000-12-15

Family

ID=15715475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11160462A Pending JP2000347647A (ja) 1999-06-08 1999-06-08 手書き風文字出力装置およびそのプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP2000347647A (ja)

Similar Documents

Publication Publication Date Title
US5489920A (en) Method for determining the optimum angle for displaying a line on raster output devices
JPH0916146A (ja) 文字・記号パターン発生装置
JP2909273B2 (ja) アウトライン・フォントの線幅調整方法および装置
JP2000347647A (ja) 手書き風文字出力装置およびそのプログラム記録媒体
JP3479282B2 (ja) 文字図形変形処理装置
JPS59210482A (ja) 文字パタ−ン発生装置
JP2562458B2 (ja) コンピュータシステム用文字発生方法
JP2000330980A (ja) 手書き風文字出力装置およびそのプログラム記録媒体
JP3567748B2 (ja) 文字フォント生成装置
JP3163577B2 (ja) ベクトル・フォント生成方法
JP2000039879A (ja) 文字フォント変形出力装置およびそのプログラム記録媒体
JPH04348388A (ja) 文字出力方式
JP3040624B2 (ja) パターン発生装置
JP2000347648A (ja) 文字書体合成出力装置およびそのプログラム記録媒体
JP3437293B2 (ja) 文字出力方法及び文字処理装置
JPH0553558A (ja) 情報処理装置
JPH03175062A (ja) 高品位文字発生装置
JPH0696182A (ja) 文書レイアウト装置
JP2000039881A (ja) 文字フォント格納装置並びに文字フォント出力装置およびそ のプログラム記録媒体
JPH05216456A (ja) 文字出力装置
JPS62175794A (ja) 文字発生装置
JPH05341761A (ja) 文字発生装置
JPH08297482A (ja) 文字処理装置および方法
JPH02306298A (ja) ベクトルフオントによる文字パターン発生機能を備えた情報処理装置
JPH08137460A (ja) フォント情報生成装置