JP3567748B2 - Character font generator - Google Patents
Character font generator Download PDFInfo
- Publication number
- JP3567748B2 JP3567748B2 JP22111998A JP22111998A JP3567748B2 JP 3567748 B2 JP3567748 B2 JP 3567748B2 JP 22111998 A JP22111998 A JP 22111998A JP 22111998 A JP22111998 A JP 22111998A JP 3567748 B2 JP3567748 B2 JP 3567748B2
- Authority
- JP
- Japan
- Prior art keywords
- font
- character
- frequency
- value
- outline
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
- Document Processing Apparatus (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、文字の輪郭を定義する文字フォントを変形出力する文字フォント変形出力装置およびそのプログラム記録媒体に関する。
【0002】
【従来の技術】
従来、ワードプロセッサやパーソナルコンピュータ等の文書データ処理装置においては、入力された文書データを出力する際に、文字の形状をドットの集合で表現するビットマップフォントや文字の輪郭を部分毎に基準点とそれを結ぶ直線やベジェ曲線などの集合で表現するアウトライン(ベクトル)フォントを読み出して表示出力/印字出力するようにしているが、アウトラインフォントはビットマップフォントに比べ、回転や斜体、拡大縮小といった変形が容易であり、変形後も輪郭が滑らかであるという利点がある。
【0003】
【発明が解決しようとする課題】
しかしながら、アウトラインフォントでも文字を構成するフォントの基本輪郭を大きく変えるような変形には適しておらず、従来、そのような要求があれば、個別に特殊なフォントとして予め用意しておく必要があった。このような場合、たとえフォントを部品化することで構造的にデータを圧縮記憶したとしても限界があり、データ容量は大きなものとなっていた。更に、アウトラインフォントは一般的に輪郭が滑らかな場合には、データ容量は小さいが、細かく変化(振動)するような形状ではデータ容量が爆発的に大きくなるため、実用上そのような形状のフォントは予め用意されていないのが現状であった。この発明の課題は、文字の輪郭を離散的な空間周波数成分の集合体で表現して成る周波数フォントを通常の文字フォントを用いて生成する周波数フォント生成機能と、この周波数フォントに基づいて文字の輪郭を変形した変形フォントを生成する変形フォント生成機能を単に組み込むだけで、データ量の増大を抑えながら、文字の基本輪郭を大幅に変更したり、多彩な表現を付加する等、文字の形状を自由に変形できるようにすることである。
【0004】
【課題を解決するための手段】
この発明の態様のひとつである文字フォント出力装置は、既存する通常の文字フォントを1文字分読み出すと共に、この文字を構成する最外郭の輪郭、その内部に存在する輪郭のような入れ子構造を解析し、入れ子毎に連続する輪郭を単位としてサンプリングし、それを離散的な周波数分解によって文字の輪郭を離散的な空間周波数成分の集合体で表現して成る周波数フォントに変換するフォント変換手段と、前記空間周波数成分の集合体のうち高域の周波数成分を削除し、文字の大体の形状を支配する低域の周波数成分のみから成る変形フォントを生成する変形フォント生成手段と、この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段と、を有するように構成することによって前述した課題を解決する。
こうすることによって、1文字全体を1部品とすることができ、線分の交点部分がなめらかに接続され、人が毛筆で描いたような墨だまりを表現できるので、その文字フィントを個別に予め用意することなく、標準文字に比して複雑な変形文字を形成することが可能となる。
また、この発明の別の態様である文字フォント出力装置は、既存する通常の文字フォントを1文字分読み出すと共に、この文字の輪郭を辿ってサンプリングし、それを離散的な周波数分解によって文字の輪郭を離散的な空間周波数成分の集合体で表現して成る周波数フォントに変換するフォント変換手段と、前記周波数フォントを構成する空間周波数成分の集合体のうち、文字の大体の形状を支配する低域の周波数成分以外を削除し、この低域周波数成分とサンプリング周波数に近い高周波数成分との組み合せから成る変形フォントを生成する変形フォント生成手段と、この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段と、を有するように構成することによって前述した課題を解決する。
こうすることによって、文字全体に絵筆で描いたような丸みとにじみで表現できるので、その文字フィントを個別に予め用意することなく、標準文字に比して複雑な変形文字を形成することが可能となる。
また、この発明の別の態様のひとつである文字フォント出力装置は、既存する通常の文字フォントを1文字分読み出すと共に、この文字の輪郭を辿ってサンプリングし、それを離散的な周波数分解によって文字の輪郭を離散的な各周波数成分毎に複素数平面上における実数軸部分を虚数軸部分とに分けてその大きさを表わした数値情報の集合体で表現して成る周波数フォントに変換するフォント変換手段と、空間周波数成分の集合体のうち中位の周波数成分にその値を変更する所定の変形処理を施してその実数軸部分または虚数軸部分を極性反転した値に変更すると共に、前記集合体内の対応する中位の周波数成分を前記変形処理された中位の周波数成分に置き換えた変形フォントを生成する変形フォント生成手段と、この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段と、を有するように構成することによって前述した課題を解決する。
こうすることによって、文字を構成する部品のそれぞれの輪郭を、円周上の1点を固定して、この円を転がしたときの軌跡である雲のようなサイクロイド曲線で表現できるので、その文字フィントを個別に予め用意することなく、標準文字に比して複雑な変形文字を形成することが可能となる。
【0006】
【発明の実施の形態】
(第1実施形態)
以下、図1〜図14を参照してこの発明の第1実施形態を説明する。
図1(A)は文書データ処理装置の全体構成を示したブロック図である。
CPU1はRAM2内にロードされている各種プログラムにしたがってこの文書データ処理装置の全体動作を制御する中央演算処理装置である。記憶装置3はオペレーティングシステムや各種アプリケーションプログラム、データファイル、文字フォントデータ等が予め格納されている記憶媒体4やその駆動系を有している。この記憶媒体4は固定的に設けたもの、もしくは着脱自在に装着可能なものであり、フロッピーディスク、ハードディスク、光ディスク、RAMカード等の磁気的・光学的記憶媒体、半導体メモリによって構成されている。また、記憶媒体4内のプログラムやデータは、必要に応じてCPU1の制御により、RAM2にロードされる。更に、CPU1は通信回線等を介して他の機器側から送信されて来たプログラム、データを受信して記憶媒体4に格納したり、他の機器側に設けられている記憶媒体に格納されているプログラム、データを通信回線等を介して使用することもできる。そして、CPU1にはその入出力周辺デバイスである入力装置5、表示装置6、印刷装置7がバスラインを介して接続されており、入出力プログラムにしたがってCPU1はそれらの動作を制御する。
【0007】
入力装置5は文字列データ等を入力したり、各種コマンドを入力するキーボード、マウス等のポインティングデバイスやイメージリーダを有している。ここで、文書作成時に入力装置5から文書データが入力されると、表示装置6のテキスト画面に表示出力されると共に、かな漢字変換によって確定された確定文字列は、RAM2内に格納される。なお、表示装置6は多色表示を行う液晶表示装置やCRT表示装置あるいはプラズマ表示装置等であり、また印刷装置7はフルカラープリンタ装置で、熱転写やインクジェットなどのノンインパクトプリンタあるいはインパクトプリンタであり、文書データをカラー出力する。なお、上述したに入力装置5内のイメージリーダは手書き文字や印刷文字をビットマップイメージとして読み取るものである。
【0008】
このような構成の文書データ処理装置においては、システム内に常駐あるいは外部供給された通常の文字フォント(ビットマップフォント/アウトラインフォント)や入力装置5内のイメージリーダによって読み取られたビットマップイメージを基にこの実施形態固有の周波数フォントに変換するようにしている。すなわち、この実施形態においては、周波数分解による展開方式、つまり離散的フーリエ変換(DFT)を高速化した高速フーリエ変換(FFT)の展開方式にしたがって既存文字フォント(ビットマップフォントやアウトラインフォント)の輪郭を離散的な空間周波数成分の集合体で表現して成るデータ構造を持った周波数フォントに変換し、この周波数フォントをRAM2に格納したのち、記憶装置3に登録保存するようにしている。周波数フォントは離散的フーリエ変換の展開方式にしたがって表現されたデータ構造であり、文字を構成する各パーツは、その輪郭(閉曲線)を1周する周期を持つ連続関数で表わすことができるので輪郭を1周する際に1回振動する周波数をFFTの基本周波数とし、この基本周波数とその整数倍の周波数との組み合せの集合体で周波数フォントが表現されている。なお、FFT処理によって得られた変換結果の最大次数は、サンプリング定理に応じたものとなっている。
【0009】
図1(B)はRAM2の主要構成を示したもので、このRAM2には各種のメモリ領域が割り当てられている。文字列格納部2−1はFFT処理の対象となる文字列が一時記憶されるもので、CPU1はこの文字列を構成する各文字コードをその先頭から読み出して記憶装置3内の通常フォント格納部3−1を検索し、該当する文字フォントを取り込む。通常フォント格納部3−1はビットマップフォントやアウトラインフォントを各種文字に対応付けて記憶するもので、CPU1はこの通常フォント格納部3−1から読み出した文字フォントをパーツ毎にFFT処理するが、その際、周波数変換ワーク部2−2が用いられる。周波数変換ワーク部2−2は1パーツ毎の変換結果を一時記憶する作業域であり、その内容は周波数フォント格納部2−3に格納される。周波数フォント格納部2−3はFFT処理によって生成された周波数フォントを1文字毎に記憶するものでCPU1は周波数フォントを構成するデータを加工することによって文字の輪郭を変形した変形フォントを生成し、変形フォント格納部2−4に書き込む。変形フォント格納部2−4は例えば、文字の輪郭の太さや基本字形を変えたり、輪郭に細かな振動を与えたり、人が直筆したような揺らぎを施す等、多彩な変形を加えた変形フォントを一時記憶するもので、CPU1はこの変形フォントをフーリエ逆変換することによっても元の座標データを生成したのち、この座標データに基づいてビットマップデータを印刷バッファ2−5に展開する。
【0010】
図2は周波数フォントのデータ構造を説明するための図で、周波数フォント格納部2−3の内容は図2に示す如くとなっている。なお、通常のアウトラインフォントの場合には、そのパーツ数が定義されていると共に、各パーツ毎(1画毎)に基準点座標値および直線、ベジェ曲線等の属性が定義されているが、この実施形態における周波数フォントの場合には、アウトラインフォントの座標、属性の記述部分が空間周波数成分の数表となっている。つまり、周波数フォント格納部2−3は文字コード、パーツ数、パーツ番号に対応付けてパーツ毎にFFT処理結果として、直流成分、基本周波数成分、それを整数倍した周波数成分とを記述した数表を記憶する構成となっている。ここで、FFTによる処理結果は複素数として表現され、複素数平面上における実数軸部分と虚数軸部分とに分けてその大きさが離散的に求められたもので、図中、「Xrl」は複素平面上においてX軸方向の実数軸部分の値を示し、「Xim」は虚数軸部分の値を示している。同様に「Yrl」、「Yim」はY軸方向における実数軸部分の値、虚数軸部分の値である。また、図中「F0」は直流成分であって、その実数部分に輪郭の中心点座標が記述されている。なお、「F0」の虚数軸部分には常に「ゼロ」の値が記述されている。「F1」はパーツの輪郭を1周する際に1回振動する周波数を表わした基本周波数成分であり、パーツの大きさや方向はこの値によって支配される。「F2」はパーツの輪郭を1周する際に2回振動する周波数成分(2次高周波成分)であり、パーツの形状はこの値によって支配され大きく曲がっているパーツではこの値が大きくなる。以降の「F3」、「F4」……は3次、4次の高周波成分であり、その最大次数は変換対象パーツの輪郭をサンプリングした際における座標の数の半分である。これは前半部分の値から正負の反転、逆順を行うだけで後半部分の値を容易に導けるためである。
【0011】
図3は周波数フォントの作成過程を概念的に示した図である。処理対象フォント(この場合、アウトラインフォント)の1パーツ分を描画し、このビットマップの輪郭をプロットする。ここで、1パーツをプロットする点数は、どれだけ細かく変換したいかによって決定するが、離散的フーリエ変換の場合ならば、「2」の乗数から選び、例えば「512」などであり、この数でパーツの輪郭をプロットし、その点P0、P1、P2……毎にXY座標値を取り込み、この座標値をFFT処理する。これによってプロット座標値を周波数分布に変換した値が得られ、これがフォントデータとして周波数フォント格納部2−3へ蓄積される。なお、FFTによる変換結果は、演算精度を厳密に求めなければ、可逆性があり、フーリエ変換によって元の座標値に戻すことができる。
他方、この実施形態においては図2に示すようにEET処理結果をそのまま周波数フォント格納部2−3に格納したが、周波数フォントのデータ構造は図4に示すように振幅と位置に組み直してもよい。これは複素平面上において原点からの距離と成す角であるので、X軸方向ならば、X振幅=√(Xrl2+Xim2)、X位相角=tan−1(Xim/Xrl)となり、Y軸方向においても同様である。
【0012】
次に、文書データ処理装置の動作を図5〜図10に示すフローチャートにしたがって説明する。ここで、これらのフローチャートに記述されている各機能を実現するためのプログラムは、CPU1が読み取り可能なプログラムコードの形態で記憶媒体4に記憶されており、その内容がRAM2内にロードされている。なお、後述する他の実施形態におけるフローチャートにおいても同様である。
図5は文字列を印刷出力する際の全体動作を示したフローチャートである。すなわち、通常の文字フォント(アウトラインフォント)を周波数フォントに変換すると共に、この周波数フォントを構成するデータを加工することによって変形フォントを生成し、この変形フォントをフーリエ逆変換することによって元の座標データに戻し、この座標データに基づいて文字展開を行って印刷出力する動作を示したフローチャートである。先ず、文字ポインタを先頭位置にリセットしたのち(ステップA1)、このポインタ値で文字列格納部2−1をアクセスし、文字コードを取得する(ステップA2)。そして、この文字コードに基づいて通常フォント格納部3−1をアクセスし、該当する文字フォントを読み出したのち、1文字分の周波数フォントを作成する処理に移る(ステップA3)。この1文字作成処理は後述する図6のフローチャートにしたがって実行され、通常フォントをFFT処理することによって周波数フォントに変換する。これによって生成された周波数フォントに基づいて、次のステップA4ではフォントの変形処理が行われる。この変形処理は後述する図7のフローチャートにしたがって実行され、周波数フォントを構成するデータを加工することによって文字の輪郭を変形するための変形フォントを生成する。そして、この変形フォントをフーリエ逆変換することによって元の座標データに戻し、この座標データに基づいて文字フォントを1文字分印刷パターンデータとして展開させる(ステップA5)。この1文字印刷展開処理は図10に示すフローチャートにしたがって実行される。このようにして1文字分の処理が終ると、文字ポインタを歩進してその値を更新し(ステップA6)、その値で文字列格納部2−1をアクセスし、全文字終了かを調べ(ステップA7)、終了するまでステップA2に戻り、1文字毎に上述の動作を繰り返す。
【0013】
ここで、上述の1文字作成処理を図6のフローチャートにしたがって詳述する。先ず、処理対象の文字フォント(アウトラインフォント)を構成するパーツ数を取得し(ステップB1)、これを周波数フォント格納部2−3に格納すると共に(ステップB2)、その1パーツ目をRAM2内のビットマップ上に描画する(ステップB3)。そして、描画したパーツの輪郭をプロットする(ステップB4〜B7)。図11はこの場合の動作を図式化したもので、図中、矩形の集合は描画した各ドットであり、1つの矩形は1ドットに対応している。ここで、図中左上を原点として左上から左下にスキャンし、最下部に達したら1つ右のドット列をその上から下に向かってスキャンしてゆき、描画されたドットが見つかるまで上述のスキャン動作を繰り返す(図11(A)参照)。なお、このようなスキャン方向には意味があり、日本語、特に手書きに近いフォントの場合、文字を構成する線は横棒にしろ、跳ね上げ、振り下ろしにしろ、左側から書かれていることが多く、サンプリングを開始する位置を文字の書き始めに合わせることで、後述のフォント変形が好都合となるからである。なお上述したような上下方向へのスキャン(縦方向スキャン)に対し、仮に左右方向へのスキャン(横方向スキャン)を行うものとすると、文字の書き始めがサンプリングの開始とならない場合が多いため、この実施形態においては縦方向スキャンを行うようにしている。また、文字の書き始めの位置は書き終りの位置と同義であるため、サンプリングを開始する位置を文字の書き終りの位置としてもよく、この位置から時計回りの方向へ文字の輪郭を辿ってサンプリング動作を行う。
【0014】
このようなスキャン動作を繰り返すことによってステップB4では最初のドットを探し、この点を開始点としてその輪郭を辿ってその周囲の長さをカウントする(ステップB5)。この場合、図11(C)に示すように、現在着目しているドットの周囲を調べ、四方のいずれかにドットが存在していれば、そのドット方向に着目点を移動することで輪郭線上を辿るようにしているが、周囲に複数のドットが存在しているときには図11(B)に示す順番(数字1、2、3、4の順)にしたがうものとしている。いま、ドット開始点の周囲において、「1」の方向にはドットが存在しないため、「2」の方向を調べるが、その方向にはドットが存在するため、開始点から図中右方向に着目点を移動させる(図11(C)参照)。そして、次のドットからは、いま進んだ方向から左90度回った方向(「2」の方向だったら「1」の方向、「1」の方向だったら「4」の方向)を基準として周囲を調べ、以下、同様に着目点を移動させることにより輪郭線上を時計方向に回りながら1周することができる。この過程において、1周するまでの軌跡上に何ドット存在するかをカウントしてゆくことで輪郭の長さを求めることができる。これによって求められたカウント値(1パーツ分の輪郭の長さ)に基づいてサンプリングステップ数を決定する(ステップB6)。この場合、予め任意に設定したサンプリング数とこのカウント値(長さ)とを照合することによって適切なサンプリング間隔を決定する。図11(C)は全体の長さ(32ドット)に対して4ドットおきのドットをサンプル対象とし、全体で8サンプルすることを表わしている。ここで、図中、クロスハッチがかかったところがサンプル対象を示し、ドット開始点から4ドット間隔となる。そして、輪郭線の周囲を辿ってサンプル対象点の各座標値をサンプリングする(ステップB7)。
【0015】
このようにしてサンプリングされた各点の座標値をFFT処理する(ステップB8〜B15)。この場合、FFT計算はX座標成分、Y座標成分に分けて行われるため、先ずサンプリングされた座標のX成分を周波数変換ワーク部2−2に格納する(ステップB8)。ここで、図3に示すように周波数変換ワーク部2−2はRealパート、ImagパートをF0、F1、F2……に対応付けた構成で、先ず、サンプリングされたX座標は実数データであるため、このX座標値を周波数変換ワーク部2−2内のRealパートに格納し(ステップB8)、また周波数変換ワーク部2−2内のImagパートに全て「0」を代入する(ステップB9)。そして、この周波数変換ワーク部2−2の内容に基づいて通常と同様のFFT計算を行い、その変換結果の全てをRealパート、Imagパートの値としてF0、F1、F2……に対応付けて周波数変換ワーク部2−2に一時記憶させたのち(ステップB10)、この周波数変換ワーク部2−2の内容を周波数フォント格納部2−3にX方向実数軸部分の値・虚数軸部分の値として格納する(ステップB11)。このようにしてX座標成分の変換格納処理が終ると、Y座標成分についても同様の変換格納処理を行う。すなわち、サンプリングしたY座標を周波数変換ワーク部2−2のRealパートに格納すると共に(ステップB12)、周波数変換ワーク部2−2のImagパートに全て「0」を代入する(ステップB13)。そして、この周波数変換ワーク部2−2の内容に基づいてFFT計算を行い、その変換結果を周波数変換ワーク部2−2に格納すると共に(ステップB14)、この周波数変換ワーク部2−2の内容を周波数フォント格納部2−3にY軸方向の実数軸部分の値Yrl、虚数軸部分の値Yimとして格納する(ステップB15)。
【0016】
そして、1パーツ分のフォント変換処理が終ると、ステップB16に進み、1文字分の全てのパーツを処理したかを調べ、処理終了でなければステップB3に戻り、次のパーツを描画し、上述の動作を1パーツ毎に繰り返す。図12は文字「和」が1パーツ毎に分解されてFFT処理される様子を示したもので、その「のぎ偏」を構成する縦長のパーツと、その「囗」を構成する大きく曲がっているパーツについて着目し、各パーツ毎にFFT処理することによって得られた実数部分の値と、虚数部分の値を周波数軸上に離散的に分布させた図表を示している。この周波数分布において、縦長のパーツは基本周波数F1にその特徴が表われ、大きく曲がっているパーツは基本周波数F1の他に次の周波数F2にその特徴が表われている。
図13は文字「和」をFFT処理することによって得られたX軸方向の実数軸部分、虚数軸部分、Y軸方向の実数軸部分、虚数軸部分の具体的な数値を示すと共に、文字「和」を構成する各パーツとパーツ毎の周波数データとの対応関係を示した図である。ここで、図中「1」〜「7」で示すようにこの文字「和」は7パーツから成るため、それに対応する空間周波数成分の集合体は、7パーツ分の周波数フォント格納部2−3に格納される。なお、F0の虚数は常に「ゼロ」であることは上述した通りであり、また図7はF0〜F9までを例示したが、実際にはサンプリングした数によって特定される最大次数までその値は続いている。
【0017】
他方、この実施形態においては上述のように文字を1画毎にパーツとして分解したが、例えば文字「乙」のように1画が長く、大きく折れ曲がっているような文字の場合には、その文字全体を直線に近い3本の線分に分解した方が後述の変形加工(特に太さの制御)が確実かつ容易なものとなる。すなわち、元のフォント(ビットマップフォントやアウトラインフォント)が直線を基本とした連続する筆運び部分の線分毎に分解されている場合には、この文字をパーツ毎にサンプリングしてFFT処理すると共にパーツ毎に太さの制御を行えば、「乙」のような文字であってもその全体の形を崩さずに太さだけを変えてその字形を再現することができる。
【0018】
次に、図7のフローチャートにしたがって上述のフォント変形処理(図5のステップA4)を詳述する。先ず、周波数フォントを変形する変形の種類および変形の度合をユーザが任意に指定するためのウインドウ画面が表示出力され、このウインドウ画面に一覧表示されている選択項目を任意にカーソル指定することで、変形の種類およびその度合を指定する(ステップC1)。ここで、選択項目としては、「フィルタ種類」、「カットオフ周波数」、「カットオフ特性値」、「加算値ソース種類」、「加算周波数」、「X実数部係数」、「X虚数部係数」、「Y実数部係数」、「Y虚数部係数」がメニュー表示される。ここで、「フィルタ種類」とは、周波数フォントを構成する空間周波数成分の集合体のうちどの帯域の周波数成分を削除/抽出するかのフィルタの種類を指定する項目で、この実施形態ではローパスフィルタ、バンドカットフィルタの何れかを選択するようにしており、「カットオフ周波数」によってその帯域が指定される。「カットオフ特性値」は、例えばカットオフ周波数F3=2π×3とF4=2π×4の間における変形度合を指定するものである。「加算値ソース種類」および「加算周波数」は、例えば、周波数フォントを構成する空間周波数成分の集合体のうち、文字の大体の形状を支配する低域の周波数成分以外を削除し、この低域周波数成分と特定の高周波数成分との組み合せから成る変形フォントを生成する場合において、この高周波数成分を「加算周波数成分」とし、この加算周波数成分の値を一定値にするが、あるいは他の周波数成分をソースとしてその値を加算周波数成分の値に反映させるか等を指定するためのパラメータである。このようなウインドウ画面内に必要項目の内容を任意に指定することによって変形の種類やその度合を指定すると、フィルタの種類に応じて周波数フォント格納部2−3の内容を選択的に変形フォント格納部2−4にコピーする処理が行われると共に(ステップC2)、「加算値ソース種類」、「加算周波数」に基づいて加算周波数の値を変更するデータ加算処理が行われ(ステップC3)、これによってユーザの好みに応じた変形フォントが生成される。
【0019】
図8は変形フォント格納部2−4へのコピー処理(図7のステップC2)を詳述したフローチャートである。先ず、周波数の次数カウンタに初期値F0をセットしておく(ステップD1)。そして、フィルタの種類を判別し(ステップD2)、ローパスフィルタであれば、現在着目している周波数(次数カウンタの値)がカットオフ周波数未満(ステップD3、D4でNO)であることを条件に、次数カウンタの値で示される周波数成分を周波数フォント格納部2−3から読み出して変形フォント格納部2−4にコピーする(ステップD5)。そして、次数カウンタの値をインクリメントし(ステップD6)、その値が周波数フォント格納部2−3内の最大次数を越えたことがステップD7で検出されるまでステップD2に戻る。ここで、ローパスフィルタの場合において、着目周波数がカットオフ周波数と一致すればカットオフ特定値をその周波数に掛け(ステップD8)、それによって得られた周波数成分を変形フォント格納部2−4にコピーする(ステップD5)。また、着目周波数がカットオフ周波数を越えていれば、その高域周波数を削除するためにステップD5のコピー処理はスキップされる。一方、バンドカットフィルタの場合であれば、ステップD9に進み、着目周波数がカットオフ周波数のとき、それにカットオフ特定値を掛けて変形フォント格納部2−4にコピーする(ステップD8、D5)。また、ステップD9で不一致が検出されれば、コピー処理はスキップされる。これによってバンドカットフィルタの場合には特定周波数成分のみがコピーされず、その他はそのままコピーされる。なお、フィルタの種類が指定されていなければ、周波数フォントがそのまま変形フォント格納部2−4にコピーされる。
【0020】
図9はデータ加算処理(図7のステップC3)を詳述したフローチャートである。このデータ加算処理は所定の周波数成分の値を変更することによって文字の輪郭を振動させたり、太さを変える等、文字の形状を任意に変形するための処理である。なお、図9はこの加算処理の内容を概念的に示したもので、この加算処理によって文字の形状がどのように変化するかの具体的な例示は後述する他の実施形態で説明するものとし、ここでは加算の態様を中心に説明するものとする。先ず、任意に指定された加算周波数f(次数)を取り込むと共に(ステップE1)、加算値リース種類を判別する(ステップE2〜E4)。すなわち、加算周波数に加算される値を「0」とするか、つまり加算値なしか(ステップF2)、加算値として一定値を加算すべきことが指定されているか(ステップE3)、加算周波数自身の値を加算値として累積するか(ステップE4)、他の低域周波数(F1とF2)の値を平均化し、それを加算周波数の値に反映させるかを判別し、その判別結果に応じて加算値Qを決定する処理が行われる(ステップE5〜E8)。ここで、QXrl、QXim、QYrl、QYimはXY方向の実数軸部分、虚数軸部分に加算される加算値であり、加算なしの場合(変形なしの場合)にはそれらに「0」がセットされる(ステップE5)。また一定値の場合(例えば輪郭を振動させる場合)にはそれらに一定値がセットされ(ステップE6)、自分自身の場合(例えば、太さを変える場合)には次数fで示される加算周波数の値FfXrl、FfXim、FfYrl、FfYimがそれらにセットされ(ステップE7)、更に低域周波数成分の値を反映させる場合(例えば、輪郭を自然に振動させる場合)には、その平均値がそれらにセットされる(ステップE8)。そして、この加算値QXrl、QXim、QYrl、QYimに対応する係数K1、K2、K3、K4を掛け、その値を加算周波数の値に加算する(ステップE9)。なお、元の加算周波数の値が「0」の場合にはQの値がそのままその周波数成分の値として代入される。
【0021】
図10は変形フォントに基づいて文字印刷する際の動作(図5のステップA5で示した1文字印刷展開処理)を詳述したフローチャートであり、図14に示す手順を踏めばよい。先ず、変形フォント格納部2−4を検索して、変形フォントを読み出し、それをRAM2内のワークメモリに格納する(ステップF1)。そして、このワークメモリ内から周波数成分を1パーツ毎に読み出し、それをフーリエ逆変換(IFFT)すると、プロットしたときの座標に戻る(ステップF2)。これをショートベクトルとして印刷バッファ2−5に描画する(ステップF3)。すなわち、IFFTによって生成された座標をショートベクトルとするアウトラインフォントを生成し、印刷バッファ2−5に展開する。ここで、文字を出力するときのプロット間隔は周波数フォントを生成するときのプロット数とは関係せず、任意に制御可能である。すなわち、FFT変換時において、そのデータ数(次数)はプロット数に関係するため、文字出力時において高次側に「0」のデータを付け加えてIFFTを行えば、プロット間隔は狭くなり、逆にデータ数(次数)を減らせばプロット間隔を広ろげることができる。
【0022】
このようにこの第1実施形態においては、文字の輪郭を離散的な空間周波数成分の集合体で表現して成る周波数フォントを通常の文字フォントを用いて生成する周波数フォント生成機能と、この周波数フォントに基づいて文字の輪郭を変形した変形フォントを生成する変形フォント生成機能を単に組み込むだけで、データ量の増大を抑えながら、文字の基本輪郭や太さを大幅に変更したり、多彩な表現を付加する等、文字の形状を自由に変形することができる。したがって、既存のワードプロセッサ等にこのような機能を組み込むだけで所望する文字を自由に変形することが可能となる。ここで、文字の大きさを変更するときには、通常のアウトラインフォントと同様に、全ての数値に係数を掛ければ、拡大、縮小することが可能となり、文字の大きさを自由に変更することができる。更に、デジタルフィルタによって高周波成分をカットすれば、丸い文字を出力することができ、更に低域周波数と特定の高域周波数とを組み合せれば、文字の輪郭に細かい変化(振動)を付加することができ、また、輪郭の太さを制御する場合には、F1、F2の低域周波数成分の所定値を変更(定数倍)すればよい等、多彩な変形が可能となる。特に従来のアウトラインフォントでは事実上実装が不可能であった複雑な輪郭形状をフォントとして実装しておかなくても、周波数フォントを構成するデータを加工するだけでどのような複雑な形状であっても容易に変形することができる。したがって、複雑な形状をアウトラインフォントとして実装する場合に比べ、データ量を大幅に削減することができる。また、周波数フォントは、各周波数成分毎に複素平面上における実数軸部と虚数軸部とに分けてその大きさを表わしたから、高速処理に向いた形となる。また、各周波数成分毎にその値を振幅および位相成分として表わせば、低域を観念的に理解しやすくなり、変形を任意に指定する際に有効なものとなる。また、サンプリングを行う単位は文字を構成する1画毎であり、1画毎に周波数成分の集合体に変換するようにしたから文字の大体の形状を支配する低域周波数のみを持つフォントの場合、その変形が素直になり、基本字形が保たれる。また、「乙」のように文字を構成する要素が1画であっても、直線を基本とした連続する筆運び毎に3分割してサンプリングを行えば、基本字形を保つことができ、またサンプリングの開始位置を文字の書き始めあるいは書き終りの位置とすることで、文字の太さや基本字形を変える変形を行う際に、日本語の特性上その変形制御が容易なものとなる。
【0023】
(第2実施形態)
以下、図15〜図19を参照してこの発明の第2実施形態を説明する。なお、上述した第1実施形態は変形の種類およびその度合を任意に指定するようにしたが、変形の種類として文字全体に丸みを持たせてその変形の度合も固定した例を示すと共に、その変形の具体的な手法を示したものである。すなわち、周波数フォントを構成する空間周波数成分の集合体のうち高域の周波数成分をカットし、文字の大体の形状を支配する低域の周波数成分のみから成る変形フォントを生成することによって文字全体に丸みを持たせるようにしたものである。
図15は上述した図8と基本的に同様のフローチャートであるが、この場合、フィルタの種類としてはローパスフィルタに固定され、カットオフ周波数および特定値もシステム上固定された値となっている。そして、ステップG1〜G6はF0から最大次数の周波数成分を1つずつ着目しながらカットオフ周波数未満の周波数成分のみを抽出し、それ以上の高周波数成分をカットするもので、これによって抽出された周波数成分は変形フォント格納部2−4に格納される。
【0024】
ここで、図16(A)〜(E)はこの場合の変形例を示したもので、カットオフ周波数としてどの値が固定的に設定されているかによって変形度合は図示の如く異なる。すなわち、図16(A)はカットオフ周波数が設定されていない場合の元字、つまり、変形フォントを生成せずに周波数フォントをそのまま展開出力させた場合の元字を示し、この元字に対してカットオフ周波数を2π×15(F15)にすると(B)に示す字形となり、2π×7(F7)にすると(C)、2π×4(F4)にすると(D)、2π×3(F3)にすると(E)に示す文字形となり、文字全体に丸みを持たせた変形が可能となる。ここで、図15において、着目周波数がカットオフ周波数に一致したときに、その着目周波数に特性値を掛けるようにすれば、中間の変形度合を実現することができる(ステップG7)。例えば、図16に示すカットオフ周波数=2π×3と2π×4の中間の変形を得る場合には、カットオフ周波数を2π×3に設定し、特性値を「0.5」に固定することで中間の変形が可能となる。
図17は直流成分F0の他に基本周波数である最低周波数F1のみを抽出した場合で、この場合の変形フォントは図17(A)に示すデータ構造となり、(B)に示す元字に対して極端に丸みを帯びた字形に変形されるので、遊びの用途として最適なフォントとなる。
【0025】
図18はこの第2実施形態を更に発展させた場合の動作を示すフローチャートである。すなわち、周波数フォントを構成する周波数成分の集合体のうち文字の大体の形状を支配する低域の周波数成分以外を削除し、この低域周波数成分とサンプリング周波数に近い高周波数成分との組み合せから成る変形フォントを生成することによって、文字全体に絵筆で描いたような丸みとにじみを持たせるようにしたものである。ここで、ステップH1〜H7は図15のステップG1〜G7と同様のフィルタ処理を示している。ここで、変形フォント格納部2−4に格納された低域周波数成分に対してどのような高周波数を組み合せるかはシステム上固定的に決められており、ステップH8はそれを加算周波数f(次数)として取り込む。この場合、図18においては、組み合せられる加算周波数を2種類とした場合で、ステップH8ではその1種類目、ステップH11ではその2種類目を示している。そして、次のステップH9ではこの周波数に加算される値Qを求めるが、この場合、一定値ではなく、低域のF1とF2の値を平均化し、その値を加算値Qとする。なお、加算値QはX方向、Y方向の実数軸部分、虚数軸部分に分けてそれぞれ求めるようにしているが、実数軸部分のみ虚数軸部分のみを求めるようにしてもよい。そして、次のステップH10ではこの加算値に係数K1(変形度合定数K1)を掛け、その結果を加算周波数に加算する処理が行われる。なお、ステップH11に示す2種類目の加算周波数に対してもステップH9、H10と同様の加算処理が行われる(ステップH12、H13)。ここで、係数K2は変形度合定数を示す。このように、この第2実施形態では低域のF1とF2の値を平均化すると共に、それに係数を掛け、その結果を加算周波数に加える。すなわち、低域のF1とF2の値を反映させた値を加算する。このとき、実数軸部分あるいは虚数軸部分の一方のみに加算するようにしてもよい。このような加算処理を行うのは、文字の輪郭に表われる“にじみ”(細かな振動)の向きを低域のF1とF2の向き(つまり文字を構成する要素の方向)に合わせるような変形を行わせるためである。
【0026】
図19はこの場合の変形を説明するための図で、(A)はカットオフ周波数を2π×3とした場合で、それに組み合せられる高周波数がない場合の変形例を示している。(B)はカットオフ周波数を2π×3、加算周波数を最大次数の周波数、加算値Qを求めるためのソースは固定値(例えば、F1またはF2)で、XY方向共、その実数軸部分、虚数軸部分に対して加算処理を行った場合である。(C)は上述の(B)の場合と同様にカットオフ周波数を2π×3、加算周波数を最大とするが、ここではソースをF1とF2とし、その平均値をXY方向の実数軸部分のみに加算した場合であり、(B)の変形に比べ、“にじみ”の状態が自然なものとなり、人が絵筆で描いたような文字を得ることが可能となる。
【0027】
(第3実施形態)
以下、図20〜図22を参照してこの発明の第3実施形態を説明する。なお、上述した第2実施形態においては低域周波数成分と特定の高周波数成分とを組み合せた変形フォントを生成するようにしたが、この第3実施形態においては、周波数フォントを構成する各周波数成分の集合体(F0〜最大次数まで)を変形フォントとする他に、そのうち中位の周波数成分の値を変形度合に応じて変更するようにしたものである。すなわち、周波数成分の集合体のうち中位の周波数成分(加算周波数)にその値を変更する所定の変形処理を施すと共に、その集合体内の対応する中位の周波数を変形処理された中位の周波数成分に置き換えた変形フォントを生成することによって、人が毛筆で描いたような自然なゆらぎ要素を文字全体に持たせるようにしたものである。
図20はこの場合のフォント変形処理を示したもので、ステップJ1〜J6は上述した図18のステップH8〜H13に対応する同様の処理を行うもので、その説明は省略するものとする。なお、この場合においても中位の周波数成分を2種類としたが、1種類だけとしてもよく、また低域のF1とF2の平均値を中位の周波数成分の実数軸部分、虚数軸部分に加算するようにしているが、実数軸部分、虚数軸部分のいずれか一方のみに加算するようにしてもよい。ここで、中位の周波数成分としては例えば2π×20程度、つまりやや低めの周波数成分として定められている。
図21はこの場合の変形を説明するための図で、(A)は変形をかける前の元字を示している。(B)はX方向のみに変形をかけた例を示し、図20のフローチャートでは、X方向、Y方向の両方に加算処理を行うようにしているが、X方向のみの加算、つまり、k1Yrl、k1Yim、k2Yrl、k2Yimの値を「0」とした場合の変形例、(C)はXY両方に加算を行った場合の変形例を示している。これによって人が毛筆で描いたようなゆらぎ要素を文字全体に持たせることができるが、特に図21(B)に示すようにX方向のみを加算した場合には、(C)の変形に比べ安定した印象の変形が可能となる。
【0028】
図22はこの第3実施形態を更に発展させた場合の動作を示したフローチャートである。すなわち、中位の周波数成分を固定化せず、中位の周波数成分をその文字を構成する各要素毎に輪郭の長さに応じて決定するようにしたものである。先ず、周波数フォント格納部2−3から1文字分のパーツ数を取得すると共に(ステップK1)、1文字中の各パーツに対応する輪郭の長さのうちその最大値を取り出す(ステップK2)。ここで、上述した第1実施形態で説明したようにサンプリング動作時に各パーツ毎の輪郭の長さが求められるので、それを各パーツに対応付けて登録保存しておけば、その中から最大値を取り出すことができる。この状態において、先ず、最初の第1パーツの輪郭の長さを取り出し(ステップK3)、その長さに応じて加算周波数の次数fを決定する(ステップK4)。すなわち、ステップK3で取り出した該当パーツの輪郭の長さとステップK2で取り出した最大値とに基づいて最大値に対する該当パーツの長さの比率を求め、その値に基本周波数成分F1の値を掛けることによって加算周波数成分の次数を求める。
なお、上述のような演算結果に端数が生じた場合には四捨五入、切り上げ、切り下げ等の端数処理を行うようにしている。そして、ステップK5に進み、次数fで示される周波数成分の値にF1とF2の平均値(図20のステップJ2によって求められた値Q)を加算する(ステップK5)。これによって得られた周波数成分を周波数フォントを構成する集合体内の対応する周波数成分と置き換えることによって変形フォントとして登録する(ステップK6)。そして、全てのパーツに対して上述のような処理を終了するまで(ステップK7)、次のパーツの輪郭の長さを取り出し(ステップK8)、以下、ステップK4に戻り上述の動作を繰り返す。このようにパーツの輪郭の長さに比例した周波数を加算周波数成分として決定するようにしたから、文字の変形は見た目上振動周期が一定となり、人が描いたような自然なゆらぎを持つことになる。
【0029】
(第4実施形態)
以下、図23〜図25を参照してこの発明の第4実施形態を説明する。この第4実施形態は周波数フォントを構成する周波数成分高位の周波数成分(加算周波数)にその値を変更する所定の変形処理を施してその成分を強めの値に変更すると共に、前記集合体内の対応する高位の周波数成分を前記変形処理された高位の周波数成分に置き換えた変形フォントを生成するようにしたものである。図23はこの場合の変形処理を示し、加算周波数をサンプリング周波数の近く(例えば、サンプリング周波数/2近辺)に持ってゆき(ステップL1)、この加算周波数のXY実数軸部、虚数軸部の値にそれぞれ異なる係数(変形度合定数K1、K2、K3、K4)を加算する(ステップL2)。また、次の加算周波数についてもそれぞれ異なる定数K5、K6、K7、K8を加算する(L3、L4)。ここで、高い周波数成分にそれぞれ異なる値を強めに加算することによって文字全体に激しい振動を持つ動きのある要素を持たせる。図24はこの場合の変形を説明するための図で、変形前の元字(A参照)に対して変形後の文字は図24(B)に示す如く、激しい振動となる。図25は加算周波数に定数を加算せず、上述した各実施形態で説明したように、低域のF1とF2の実数軸部分に係数を掛け、これを高い周波数成分の実数軸部分に加算した場合で、これによって振動の位相をF1、F2に合わせることができる。
【0030】
(第5実施形態)
以下、図26〜図28を参照してこの発明の第5実施形態を説明する。なお、上述した各実施形態においては文字の輪郭をサンプリングする際に、文字を構成する要素1画を単位として1画毎にサンプリングするようにしたが、この第5実施形態においては、「国」の字のように最外郭の輪郭「囗」、その内部に存在する輪郭「玉」のような入れ子構造を解析し、入れ子毎に連続する輪郭を単位としてサンプリングを行うようにしたものであり、これによってサンプリングされた単位毎にFFT処理し、周波数フォントとして登録するようにしたものである。
【0031】
図26は第5実施形態における1文字作成処理を示したフローチャートであり、図27はこの場合の具体例を示した図である。
先ず、1文字分の通常フォント全体を描画すると共に(ステップM1)、パーツ数を計数するカウンタ値を「0」とする(ステップM2)。ここで、図27(A)は文字「国」が描画された状態を示し、最初のドット(「囗」の左上角部のドット)をサンプリングし、以下、図6のステップB5〜B15と同様の処理(ステップM4〜M14)を実行し、「囗」を1つのパーツとしてFFT処理して周波数フォント格納部2−3に格納する。そして、処理した輪郭の内部を白く塗ると共に(ステップM15)、それをRAM2内の作業域に保存する(ステップM16)。図27(B)はこれによって保存された矩形の輪郭(最外郭)を示している。次に、ステップM17に進み、パーツ数をプラス「1」したのちステップM3に戻る。この場合、輪郭の内部にはドットは存在しないため、ステップM18に進み、保存されている描画結果を呼び戻し、その周囲を黒で塗りつぶすと共に(図27(C)参照)、次のステップM19ではこの結果を白黒反転する(図27(D)参照)。そして、全部白かを調べるが(ステップM20)、いま、「玉」の近辺は黒であるから、ステップM3に戻る。これによって最初のドット有りが検出されるので、以下、ステップM4〜M14が実行され、1パーツ分のデータが周波数フォント格納部2−3に登録される。そして、いま処理した輪郭の内部を白く塗ると共に(ステップM15)、図27(E)に示す矩形の輪郭「囗」の内郭線)が描画結果として保存される(ステップM16)。更に、パーツ数をインクリメントし(ステップM17)、最初のドットを探すが(ステップM3)、この場合もステップM18に進み、描画結果の周囲を黒く塗りつぶしたのち白黒を反転する(ステップM19)。これによって図27(F)に示すように「玉」の部分のみが黒くなる。そして、ステップM3に戻り、ステップM4〜M17が実行されるが、この場合、「王」の部分が1パーツ分のデータとして処理され(図27(G)参照)、続けてステップM4〜M17が実行され、「点」の部分が1パーツ分のデータとして処理される(図27(H)参照)。したがって、「王」の部分と「点」の部分がそれぞれ別パーツとして登録される。このような処理が終ると、図27(I)に示すように全部白となるので、ステップM21に進み、パーツ数が周波数フォント格納部2−3に登録される。
このような処理は「国」の字に限らず、全ての文字についても同様であるが、「十」の文字については、内部に白抜き部分を持たないので、最外郭を処理すれば、図26のフローチャートはその時点で終了となる。これによって生成された周波数フォントに基づいてそれを変形する場合には、上述したようにこの周波数フォントにローパスフィルタをかけることによって変形フォントを生成すれば、図28に示す如く、「十」の文字の交点部分に“にじみ”が生まれる。すなわち、図28(A)は「十」の文字を上述した他の実施形態のように1画毎に部品としてサンプリングした場合の周波数フォントに対し、その高域周波数成分をカットした場合の変形文字を示し、図28(B)はこの第5実施形態の変形例を示し、1文字全体を1部品とすることによって交点部分はなめらかに接続され、人が毛筆で描いたような「墨だまり」が発生する。
【0032】
(第6実施形態)
以下、図29、図30を参照してこの発明の第6実施形態を説明する。この第6実施形態は周波数フォントを構成する周波数成分の集合体のうち高位の周波数成分(加算周波数)にその値を変更する所定の変形処理を施してその成分の値を強めの値に変更すると共に、前記集合体内の対応する高位の周波数成分を前記変形処理された高位の周波数成分に置き換えた変形フォントを生成するようにしたものである。図29はこの場合の変形処理を示したフローチャートで、ステップN1では加算周波数をサンプリング周波数の半分近くの高位の周波数とし、それに、F1とF2の値を反映させるために、F1、F2の平均値を加算周波数成分に加算する(ステップN2、N3)。
図30はこの場合の変形を説明するための図で、(A)に示す元字に対し、この第6実施形態では、半紙に黒がにじんだような変形効果が得られる(図30(B)参照)。
【0033】
(第7実施形態)
以下、図31、図32を参照してこの発明の第7実施形態を説明する。この第7実施形態は、周波数フォントを構成する周波数成分の集合体のうち最も近い周波数成分にその値を変更する所定の変形処理を施してその虚数軸部分の値を定数倍した値に変更すると共に、前記集合体内の対応する最低周波数成分を前記変形処理された最低周波数成分に置き換えた変形フォントを生成することによって太さを変えるようにしたものである。図31はこの場合の変形処理を示したもので、F1の実数軸部分に定数K1を掛けて定数倍する(ステップP1)。この場合、サンプリング開始を文字の書き始めあるいは書き終りとしたので、最低周波数成分の虚数データを定数倍したが、このようなサンプリングではない場合には、実数軸部分のデータを定数倍すればよい。また、1画であってもパーツの単位を直線を基本とした連続する筆運び毎(直線)毎とすれば、太の制御が最も容易となるが、パーツを1画毎例えば、「九」の右側の1画を1パーツとしているため、この第7実施形態においては最低周波数(F1)の次の周波数(F2)についてもステップP1と同様の加算処理を行うようにしている(ステップP2)。このF2は文字の形状を支配するベースとなるからである。図32(A)は元字、(B)は太さを変えた変形例を示し、その左側は定数>1とすることで太く変形した場合、右側は定数<1とすることで細く変形した場合である。
【0034】
(第8実施形態)
以下、図32、図33を参照してこの発明の第8実施形態を説明する。この第8実施形態は周波数フォントを構成する周波数成分の集合体のうち最も低い周波数成分にその値を変更する所定の変形処理を施してその実数軸部分の値を定数倍することで、文字の勢いを変えるようにしたものである。図33はこの場合の変形処理を示したもので、F1の虚数軸部分はそのままとし、その実数軸部分に定数K1を掛けて定数倍する(ステップQ1)。この場合、サンプリング開始を文字の書き始めあるいは書き終りとしたので、最低周波数成分の実数データを定数倍としたが、このようなサンプリングではない場合には虚数軸部分のデータを定数倍すればよい。また、第7実施形態と同様に、1画であってもパーツの単位を直線を基本とした連続する筆運び毎(直線毎)とすれば、勢いの制御が最も容易となるが、パーツを例えば、「九」の右側の1画を1パーツとしているため、この第8実施形態においても最低周波数(F1)の次の周波数(F2)についてもステップQ1と同様の加算処理を行うようにしている(ステップQ2)。図32(A)は元字、(C)は勢いを変えた変形例を示し、その左側は定数>1とすることで、勢いを強く自由奔放な印象を与える変形となり、右側は定数<1とすることで、おとなしい印象を与える変形となる。なお、図33の変形処理によって変化するのは、フォントの長手方向の大きさであり、それを構成する個々のパーツが大きいと勢いを強く感じ、小さいと勢いが弱く感じるようになるからである。
【0035】
(第9実施形態)
以下、図34、図35を参照してこの発明の第9実施形態を説明する。この第9実施形態は周波数フォントを構成する周波数成分の集合体のうち中位の周波数成分にその値を変更する所定の変形処理を施してX方向の実数軸部分の値から一定値を減算し(極性を反転し)、他は一定値を加算し、前記集合体内の対応する中位の周波数成分を前記変形処理された中位の周波数成分に置き換えた変形フォントを生成することで、文字全体に雲のような輪郭を与えるようにしたものである。図34はこの場合の変形処理を示したフローチャートであり、加算周波数として中位(2π×40〜50程度)の周波数を決定し(ステップR1)、そのX方向の実数軸部分の値に一定値K1を減算し、他は一定値K1を加算する(ステップR2)。この場合、実数軸部分の値のみを減算するようにしたのは、サンプリング動作が上述したように時計回りであるからで、反時計回りにサンプリングを行ったものとすると、Y方向の虚数軸部分のデータのみを減算すればよい。また、このような変形処理を行う際には、変形処理される周波数成分を文字を構成する各要素毎にその長さに応じて決定し、決定された周波数に対して所定の変形処理をそれぞれ施すことにより文字の各構成要素毎に文字の輪郭に表われる振動の回数を見た目上揃えることができる。このような最適化処理は図22のフローチャートと基本的に同様であるためその説明は省略する。図35はこの場合の変形例を示し、(A)は変形前、(B)は変形後、(C)は変形後塗りつぶしを行った場合であり、各パーツの輪郭にはサイクロイド曲線が表われ、雲のような変形が得られる。ここで、図34のフローチャートでは更に他の中程度の周波数成分を加算周波数として決定し(ステップR3)、そのX方向の実数軸部分の値は一定値の減算、他は加算するようにしている(ステップR4)。これによって周期が異なる2種類のサイクロイド曲線が表われ、更に複雑な変形となる。
【0036】
(第10実施形態)
以下、図36〜図38を参照してこの発明の第10実施形態を説明する。この第10実施形態は第9実施形態と基本的には同様であるが、この第10実施形態では逆サイクロイド曲線を各輪郭に表現することで、ひいらぎの葉のような変形を行うものである。図36はこの場合の変形処理を示したフローチャートであり、中位の周波数成分を加算周波数とするが(ステップS1)、そのX方向の虚数軸部分の値から一定値を減算し(極性を反転し)他は加算する(ステップS2)。また、他の中位の周波数を加算周波数成分として決定し(ステップS3)、そのX方向の虚数軸部分は一定値を減算し、他は加算する(ステップS4)。なお、サンプリング方向に応じてY方向の実数軸部分を減算し、他を加算するようにしてもよいことは第9実施形態と同様である。
図37はこの場合の変形例を示し、(A)に示す文字に対し(B)は一定周波数に加算処理を行った場合で、各パーツの輪郭線の長さによって逆サイクロイド曲線の周期が変わる。(C)は各パーツの輪郭の長さに応じて加算周波数を決定するようにしたもので、この場合、加算周波数を基本周波数、その2倍の周波数、4倍の周波数の3種類とした場合であり、各パーツの輪郭の長さに応じて振動の周期は見た目上一定に近くなる。更に、図22のフローチャートにしたがった最適化処理を行えば見た目上の周期はより一定に近づく。図38はこの場合の変形例を示し、(A)は元字前、(B)は変形後、(C)は変形後、塗りつぶしを行った場合である。
なお、上述した各実施形態の変形例に限らず、それらを組み合せた変形等、自由な変形も可能である。
【0037】
【発明の効果】
この発明によれば、文字の輪郭を離散的な空間周波数成分の集合体で表現して成る周波数フォントを通常の文字フォントを用いて生成する周波数フォント生成機能と、この周波数フォントに基づいて文字の輪郭を変形した変形フォントを生成する変形フォント生成機能を単に組み込むだけで、データ量の増大を抑えながら、文字の基本輪郭を大幅に変更したり、文字の形状を多彩な表現で自由に変形することができ、ワードプロッサ等に容易に適用することが可能となる効果を奏する。
【図面の簡単な説明】
【図1】(A)は文書データ処理装置の全体構成を示したブロック図、(B)はRAM2の主要構成を示した図。
【図2】周波数フォント格納部2−3の構成を示すと共に周波数フォントを構成する各周波数成分毎に複素平面上における実数部と虚数部に分けてその大きさを表わしたデータ構造を示した図。
【図3】通常フォントの輪郭をパーツ毎にサンプリングすると共にFFT処理して周波数フォントを生成して周波数フォント格納部2−3に登録するまでの過程を示した図。
【図4】周波数フォントを構成する各周波数成分毎に、その値を振幅および位相成分で表わした他のデータ構造を示した図。
【図5】変形文字列出力時における全体動作を示したフローチャート。
【図6】図5のステップA3(1文字作成処理)を詳述したフローチャート。
【図7】図5のステップA4(フォント変形処理)を詳述したフローチャート。
【図8】図7のステップC2(変形フォント格納部へのコピー処理)を詳述したフローチャート。
【図9】図7のステップC3(データ加算処理)を詳述したフローチャート。
【図10】図5のステップA5(1文字印刷展開処理)を示したフローチャート。
【図11】(A)〜(C)は1パーツ分描画されたビットマップ上をその輪郭を辿ってサンプリングする場合の動作を説明するための図。
【図12】1文字をパーツ毎に分解してFFT処理される様子を示すと共に、FFT処理することによって得られた実数部分の値と虚数部分の値を周波数軸上に離散的に分布された周波数分布図を示した図。
【図13】周波数フォントを構成する各パーツの具体的な数値を示すと共に、どのパーツがどのデータに対応しているかの対応関係を示した図。
【図14】周波数フォントをIFFT処理して文字印刷するまでの過程を示した図。
【図15】第2実施形態におけるフォント変形処理を示したフローチャート。
【図16】(A)〜(E)は図15の変形処理によって得られる変形例を説明するための図。
【図17】第2実施形態において他の例を説明するための図で、(A)はこの場合における周波数フォントのデータ構造を示し、(B)はその変形例を説明するための図。
【図18】第2実施形態において更に他の例におけるフォント変形処理を示したフローチャート。
【図19】(A)〜(C)は図18の変形処理によって得られる変形例を説明するための図。
【図20】第3実施形態におけるフォント変形処理を示したフローチャート。
【図21】(A)〜(C)は図20の変形処理によって得られる変形例を説明するための図。
【図22】第3実施形態における他の例のフォント変形処理を示したフローチャート。
【図23】第4実施形態におけるフォント変形処理を示したフローチャート。
【図24】(A)、(B)は図23の変形処理によって得られる変形例を説明するための図。
【図25】(A)、(B)は第4実施形態における他の例のフォント変形処理によって得られる変形例を説明するための図。
【図26】第5実施形態における1文字作成処理を詳述したフローチャート。
【図27】図26の作成処理をその処理過程順に具体的に説明するための図。
【図28】(A)、(B)は図26の作成処理後、フォント変形処理を行うことによって得られる変形例を説明するための図。
【図29】第6実施形態におけるフォント変形処理を示したフローチャート。
【図30】(A)、(B)は図29の変形処理によって得られる変形例を説明するための図。
【図31】第7実施形態におけるフォント変形処理を示したフローチャート。
【図32】(A)は元字、(B)は第7実施形態の変形例を示した図、(C)は第8実施形態の変形例を示した図。
【図33】第8実施形態におけるフォント変形処理を示したフローチャート。
【図34】第9実施形態におけるフォント変形処理を示したフローチャート。
【図35】(A)〜(C)は第9実施形態における変形例を説明するための図。
【図36】第10実施形態におけるフォント変形処理を示したフローチャート。
【図37】(A)〜(C)は第10実施形態における変形例を説明するための図。
【図38】(A)〜(C)は第10実施形態において、他のフォント変形処理によって得られる変形例を説明するための図。
【符号の説明】
1 CPU
2 RAM
2−1 文字列格納部
2−2 周波数変換ワーク部
2−3 周波数フォント格納部
2−4 変形フォント格納部
2−5 印刷バッファ
3 記憶装置
3−1 通常フォント格納部
4 記憶媒体
5 入力装置
6 表示装置
7 印刷装置[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a character font deformation output device for deforming and outputting a character font defining the outline of a character, and a program recording medium therefor.
[0002]
[Prior art]
Conventionally, in a document data processing device such as a word processor or a personal computer, when outputting input document data, a bitmap font that represents the shape of a character as a set of dots or a character outline is defined as a reference point for each part. An outline (vector) font expressed as a set of straight lines and Bezier curves connecting them is read out and displayed / printed out, but the outline font is more deformed than the bitmap font, such as rotation, italics, and scaling. And the contour is smooth even after the deformation.
[0003]
[Problems to be solved by the invention]
However, even outline fonts are not suitable for transformations that greatly change the basic outline of the fonts that make up characters, and conventionally, if there is such a requirement, it is necessary to prepare individual fonts in advance as special fonts. Was. In such a case, even if data is compressed and stored structurally by making fonts into components, there is a limit, and the data capacity is large. Furthermore, an outline font generally has a small data capacity when the contour is smooth, but the data capacity becomes explosively large when the shape changes finely (vibrates). Was not prepared in advance. SUMMARY OF THE INVENTION An object of the present invention is to provide a frequency font generation function of generating a frequency font, which is obtained by expressing the outline of a character by a set of discrete spatial frequency components, using a normal character font, and a character font based on the frequency font. By simply incorporating a deformed font generation function that generates a deformed font with a modified outline, the character shape can be changed by drastically changing the basic outline of the character or adding various expressions while suppressing an increase in the amount of data. It is to be able to transform freely.
[0004]
[Means for Solving the Problems]
A character font output device according to one aspect of the present invention reads an existing normal character font for one character and analyzes a nested structure such as an outermost contour constituting the character and a contour present therein. Font conversion means for sampling a continuous contour as a unit for each nest, and converting it into a frequency font formed by expressing the contour of a character as a set of discrete spatial frequency components by discrete frequency decomposition, A modified font generating means for deleting a high frequency component from the set of spatial frequency components and generating a modified font consisting solely of a low frequency component that governs the approximate shape of the character; Conversion means for generating the original coordinate data by inversely transforming the transformed font generated by To solve the aforementioned problems with the structure described and an output means for expanding outputs a character font based on the coordinate data.
By doing so, the entire character can be made into one part, the intersections of the line segments can be smoothly connected, and a summit like a person drawn with a brush can be expressed. Without preparing, it is possible to form a deformed character that is more complicated than a standard character.
A character font output device according to another aspect of the present invention reads an existing ordinary character font for one character, samples the character by tracing its contour, and samples the contour by discrete frequency decomposition. A font conversion means for converting a frequency font represented by a set of discrete spatial frequency components into a frequency font, and a low-frequency band that controls the approximate shape of a character among the set of spatial frequency components constituting the frequency font. And a modified font generating means for generating a modified font composed of a combination of the low-frequency component and a high-frequency component close to the sampling frequency, and reversing the modified font generated by the modified font generating means. Inverse transformation means for generating original coordinate data by performing transformation, and coordinate data generated by the inverse transformation means. To solve the aforementioned problems with the structure described and an output means for expanding outputs a character font based on the data.
By doing this, the entire character can be expressed with the roundness and bleeding as if drawn with a paintbrush, so it is possible to form complex deformed characters compared to standard characters without preparing individual character fints in advance It becomes.
In addition, a character font output device according to another aspect of the present invention reads out an existing normal character font for one character, samples the character by tracing its outline, and performs character sampling by discrete frequency decomposition. Font conversion means for converting the outline of into a frequency font which is obtained by dividing a real axis part on a complex plane into an imaginary axis part for each discrete frequency component and expressing it as a set of numerical information representing the size thereof And, while performing a predetermined deformation process of changing the value of the middle frequency component of the aggregate of the spatial frequency components to change the real axis part or the imaginary axis part to a value whose polarity is inverted, and within the aggregate Deformed font generation means for generating a deformed font in which a corresponding middle frequency component is replaced by the deformed middle frequency component; Inverse conversion means for generating original coordinate data by inversely converting the deformed font generated by the step, and output means for developing and outputting a character font based on the coordinate data generated by the inverse conversion means With such a configuration, the above-described problem is solved.
By doing so, the outline of each part constituting the character can be represented by a cycloid curve such as a cloud that is a locus of rolling this circle by fixing one point on the circumference. It is possible to form a deformed character that is more complicated than a standard character without preparing individual fints in advance.
[0006]
BEST MODE FOR CARRYING OUT THE INVENTION
(1st Embodiment)
Hereinafter, a first embodiment of the present invention will be described with reference to FIGS.
FIG. 1A is a block diagram showing the overall configuration of the document data processing device.
The
[0007]
The
[0008]
In the document data processing device having such a configuration, a normal character font (bitmap font / outline font) resident in the system or externally supplied or a bitmap image read by an image reader in the
[0009]
FIG. 1B shows a main configuration of the
[0010]
FIG. 2 is a diagram for explaining the data structure of the frequency font. The contents of the frequency font storage unit 2-3 are as shown in FIG. In the case of a normal outline font, the number of parts is defined and attributes such as a reference point coordinate value, a straight line, and a Bezier curve are defined for each part (for each image). In the case of the frequency font in the embodiment, the coordinates of the outline font and the description part of the attribute are a table of the number of spatial frequency components. That is, the frequency font storage unit 2-3 associates the character code, the number of parts, and the part number with each other, and describes a DC component, a fundamental frequency component, and a frequency component obtained by multiplying the frequency component by an integer as the FFT processing result for each part. Is stored. Here, the processing result by the FFT is expressed as a complex number, and its size is discretely obtained for a real axis part and an imaginary axis part on a complex plane. In the figure, “Xrl” is a complex plane. Above, the value of the real axis portion in the X-axis direction is shown, and “Xim” indicates the value of the imaginary axis portion. Similarly, “Yrl” and “Yim” are the value of the real axis portion and the value of the imaginary axis portion in the Y-axis direction. In the figure, "F0" is a DC component, and the center part coordinates of the contour are described in the real part thereof. Note that a value of “zero” is always described in the imaginary axis part of “F0”. “F1” is a fundamental frequency component representing a frequency that vibrates once when making a round of the contour of the part, and the size and direction of the part are governed by this value. “F2” is a frequency component (secondary high-frequency component) that vibrates twice when making one round of the contour of the part, and the shape of the part is governed by this value, and this value becomes large in a part that is largely bent. The following “F3”, “F4”... Are third- and fourth-order high-frequency components, and the maximum order thereof is half the number of coordinates when sampling the contour of the conversion target part. This is because the value of the second half can be easily derived only by inverting the sign of the first half and inverting the value in the reverse order.
[0011]
FIG. 3 is a diagram conceptually showing a process of creating a frequency font. One part of the font to be processed (in this case, an outline font) is drawn, and the outline of this bitmap is plotted. Here, the number of points for plotting one part is determined depending on how finely the conversion is desired. In the case of the discrete Fourier transform, the number is selected from the multiplier of “2”, for example, “512”. The contours of the parts are plotted, XY coordinate values are fetched for each of the points P0, P1, P2,..., And the coordinate values are subjected to FFT processing. As a result, a value obtained by converting the plot coordinate value into a frequency distribution is obtained, and this value is stored in the frequency font storage unit 2-3 as font data. It should be noted that the transform result by FFT is reversible unless the calculation accuracy is strictly determined, and can be returned to the original coordinate value by Fourier transform.
On the other hand, in this embodiment, the EET processing result is stored in the frequency font storage section 2-3 as it is as shown in FIG. 2, but the data structure of the frequency font may be reassembled into the amplitude and position as shown in FIG. . Since this is an angle formed with the distance from the origin on the complex plane, in the X-axis direction, X amplitude = √ (Xrl 2 + Xim 2 ), X phase angle = tan -1 (Xim / Xrl), and the same applies to the Y-axis direction.
[0012]
Next, the operation of the document data processing apparatus will be described with reference to the flowcharts shown in FIGS. Here, programs for realizing the functions described in these flowcharts are stored in the
FIG. 5 is a flowchart showing the overall operation when printing a character string. That is, a normal character font (outline font) is converted into a frequency font, a modified font is generated by processing data constituting the frequency font, and the original coordinate data is obtained by performing an inverse Fourier transform on the modified font. 9 is a flowchart showing an operation of performing character expansion based on the coordinate data and printing out. First, after resetting the character pointer to the head position (step A1), the character string storage unit 2-1 is accessed with this pointer value to acquire a character code (step A2). Then, the normal font storage unit 3-1 is accessed based on the character code, the corresponding character font is read, and then the process proceeds to a process of creating a frequency font for one character (step A3). This one-character creation process is executed according to the flowchart of FIG. 6 described later, and the normal font is converted to a frequency font by performing FFT processing. In the next step A4, font deformation processing is performed on the basis of the generated frequency font. This deformation processing is executed according to the flowchart of FIG. 7 described later, and generates a deformed font for deforming the outline of the character by processing data constituting the frequency font. Then, the transformed font is returned to the original coordinate data by inverse Fourier transform, and the character font is developed as print pattern data for one character based on the coordinate data (step A5). This one-character print development process is executed according to the flowchart shown in FIG. When the processing for one character is completed in this way, the character pointer is incremented and its value is updated (step A6), and the character string storage unit 2-1 is accessed with that value to check whether all characters have been completed. (Step A7) Returning to step A2 until the end, the above operation is repeated for each character.
[0013]
Here, the above-described one-character creation processing will be described in detail with reference to the flowchart of FIG. First, the number of parts constituting the character font (outline font) to be processed is obtained (step B1), and this is stored in the frequency font storage unit 2-3 (step B2), and the first part is stored in the RAM2. Draw on the bitmap (step B3). Then, the contour of the drawn part is plotted (steps B4 to B7). FIG. 11 schematically illustrates the operation in this case. In the figure, a set of rectangles is each drawn dot, and one rectangle corresponds to one dot. Here, scanning is performed from the upper left to the lower left with the upper left in the drawing as the origin, and when reaching the bottom, the dot row one right is scanned from the upper to the lower, and the above scanning is performed until a drawn dot is found. The operation is repeated (see FIG. 11A). In addition, such a scanning direction is meaningful, and in the case of Japanese, especially a font close to handwriting, the lines that make up the character should be written from the left side, whether it is a horizontal bar, flip up, swing down This is because, by setting the sampling start position at the start of writing of a character, the font deformation described later becomes convenient. Note that if scanning in the left-right direction (scanning in the horizontal direction) is performed in contrast to scanning in the vertical direction (scanning in the vertical direction) as described above, the start of writing of characters often does not start sampling. In this embodiment, vertical scanning is performed. In addition, since the writing start position is synonymous with the writing end position, the sampling start position may be set as the character writing end position, and sampling is performed by tracing the character outline clockwise from this position. Perform the operation.
[0014]
By repeating such a scanning operation, the first dot is searched for in step B4, the starting point is used as a starting point, the contour is traced, and the length around the dot is counted (step B5). In this case, as shown in FIG. 11 (C), the periphery of the currently focused dot is examined, and if there is a dot in any one of the four directions, the focused point is moved in the direction of the dot to move the dot on the contour line. However, when there are a plurality of dots in the periphery, the order follows the order shown in FIG. 11B (the order of
[0015]
The coordinate values of each point sampled in this way are subjected to FFT processing (steps B8 to B15). In this case, since the FFT calculation is performed separately for the X coordinate component and the Y coordinate component, first, the X component of the sampled coordinates is stored in the frequency conversion work unit 2-2 (step B8). Here, as shown in FIG. 3, the frequency conversion work unit 2-2 has a configuration in which the Real part and the Imag part are associated with F0, F1, F2,.... First, the sampled X coordinate is real number data. This X coordinate value is stored in the Real part in the frequency conversion work section 2-2 (step B8), and "0" is substituted for all Imag parts in the frequency conversion work section 2-2 (step B9). Then, based on the contents of the frequency conversion work unit 2-2, the same FFT calculation is performed as usual, and all the conversion results are associated with F0, F1, F2,... As Real part and Imag part values. After being temporarily stored in the conversion work section 2-2 (step B10), the contents of the frequency conversion work section 2-2 are stored in the frequency font storage section 2-3 as the value of the real axis portion and the value of the imaginary axis portion in the X direction. It is stored (step B11). When the conversion and storage of the X coordinate component is completed in this way, the same conversion and storage is performed for the Y coordinate component. That is, the sampled Y coordinate is stored in the Real part of the frequency conversion work unit 2-2 (step B12), and "0" is substituted for all Imag parts of the frequency conversion work unit 2-2 (step B13). Then, an FFT calculation is performed based on the contents of the frequency conversion work section 2-2, the result of the conversion is stored in the frequency conversion work section 2-2 (step B14), and the contents of the frequency conversion work section 2-2 are stored. Is stored in the frequency font storage unit 2-3 as the value Yrl of the real axis part in the Y-axis direction and the value Yim of the imaginary axis part (step B15).
[0016]
When the font conversion process for one part is completed, the process proceeds to step B16 to check whether all parts for one character have been processed. If the process is not completed, the process returns to step B3 to draw the next part. Is repeated for each part. FIG. 12 shows a state in which the character “sum” is decomposed for each part and subjected to FFT processing, and the vertically long parts constituting the “nogi bias” and the large bends constituting the “purple” are shown. A table is shown in which the values of the real part and the values of the imaginary part obtained by performing FFT processing for each part are discretely distributed on the frequency axis. In this frequency distribution, the characteristics of vertically elongated parts appear at the fundamental frequency F1, and the characteristics of greatly bent parts appear at the next frequency F2 in addition to the fundamental frequency F1.
FIG. 13 shows specific numerical values of a real axis portion, an imaginary axis portion, a real axis portion, and an imaginary axis portion in the X-axis direction obtained by performing the FFT processing on the character "sum". FIG. 7 is a diagram showing a correspondence relationship between each part constituting the “sum” and frequency data of each part. Here, as shown by "1" to "7" in the figure, since this character "Sum" is composed of seven parts, a set of spatial frequency components corresponding to the character "Sum" is stored in the frequency font storage unit 2-3 for seven parts. Is stored in Note that the imaginary number of F0 is always “zero” as described above, and FIG. 7 exemplifies F0 to F9, but the value continues until the maximum order specified by the sampled number. ing.
[0017]
On the other hand, in this embodiment, the character is disassembled into parts for each stroke as described above. However, for example, in the case of a character such as the character "Otsu" that is long and bent greatly, the character If the whole is decomposed into three line segments close to a straight line, the later-described deformation processing (particularly, thickness control) becomes more reliable and easier. In other words, when the original font (bitmap font or outline font) is decomposed for each line segment of a continuous brush stroke based on a straight line, this character is sampled for each part and subjected to FFT processing. By controlling the thickness of each part, even a character such as "Otsu" can be reproduced with its thickness changed without changing the overall shape.
[0018]
Next, the above-described font transformation processing (step A4 in FIG. 5) will be described in detail with reference to the flowchart in FIG. First, a window screen is displayed for the user to arbitrarily specify the type and degree of deformation for deforming the frequency font. By arbitrarily specifying the cursor on the selection items listed on this window screen, The type and degree of deformation are specified (step C1). Here, the selection items include “filter type”, “cutoff frequency”, “cutoff characteristic value”, “addition value source type”, “addition frequency”, “X real part coefficient”, and “X imaginary part coefficient”. , "Y real part coefficient", and "Y imaginary part coefficient" are displayed in a menu. Here, the “filter type” is an item for designating a type of a filter for determining which band of a frequency component is to be deleted / extracted from a set of spatial frequency components constituting a frequency font. In this embodiment, a low-pass filter is used. , Or a band cut filter, and the band is designated by the “cutoff frequency”. The “cutoff characteristic value” designates, for example, the degree of deformation between the cutoff frequencies F3 = 2π × 3 and F4 = 2π × 4. The “addition value source type” and the “addition frequency” are, for example, a set of spatial frequency components constituting the frequency font, except for the low-frequency components that govern the general shape of the character, and delete this low-frequency component. When generating a deformed font composed of a combination of a frequency component and a specific high-frequency component, the high-frequency component is referred to as an “addition frequency component”, and the value of the addition frequency component is set to a constant value. This is a parameter for designating whether or not to reflect the value of the component as a source in the value of the added frequency component. When the type of the transformation and the degree of the transformation are designated by arbitrarily designating the contents of the necessary items in such a window screen, the contents of the frequency font storage section 2-3 are selectively stored in accordance with the kind of the filter. The process of copying to the unit 2-4 is performed (Step C2), and the data addition process of changing the value of the addition frequency based on the “addition value source type” and the “addition frequency” is performed (Step C3). Thus, a deformed font according to the user's preference is generated.
[0019]
FIG. 8 is a flowchart detailing the copy process to the modified font storage unit 2-4 (step C2 in FIG. 7). First, an initial value F0 is set in a frequency order counter (step D1). Then, the type of the filter is determined (step D2). If the filter is a low-pass filter, the condition is that the current frequency of interest (the value of the order counter) is lower than the cutoff frequency (NO in steps D3 and D4). The frequency component indicated by the value of the order counter is read from the frequency font storage unit 2-3 and copied to the modified font storage unit 2-4 (step D5). Then, the value of the order counter is incremented (step D6), and the process returns to step D2 until it is detected in step D7 that the value exceeds the maximum order in the frequency font storage section 2-3. Here, in the case of the low-pass filter, if the frequency of interest matches the cutoff frequency, the cutoff specific value is multiplied by the frequency (step D8), and the frequency component obtained thereby is copied to the modified font storage unit 2-4. (Step D5). If the frequency of interest exceeds the cutoff frequency, the copy processing in step D5 is skipped to delete the high frequency. On the other hand, in the case of the band cut filter, the process proceeds to step D9. If the target frequency is the cutoff frequency, the cutoff frequency is multiplied by the cutoff specific value and copied to the modified font storage unit 2-4 (steps D8 and D5). If a mismatch is detected in step D9, the copy process is skipped. As a result, in the case of the band cut filter, only the specific frequency component is not copied, and the other components are copied as they are. If the type of the filter is not specified, the frequency font is copied as it is to the modified font storage unit 2-4.
[0020]
FIG. 9 is a flowchart detailing the data addition process (step C3 in FIG. 7). This data addition processing is processing for arbitrarily deforming the shape of the character, such as vibrating the outline of the character or changing the thickness by changing the value of a predetermined frequency component. FIG. 9 conceptually shows the content of the addition processing, and a specific example of how the shape of a character changes by the addition processing will be described in another embodiment described later. Here, the mode of addition will be mainly described. First, an arbitrarily designated addition frequency f (order) is fetched (step E1), and an added value lease type is determined (steps E2 to E4). That is, whether the value to be added to the addition frequency is “0”, that is, whether there is no addition value (step F2) or whether it is specified that a constant value should be added as the addition value (step E3), Is accumulated as the added value (step E4), or the values of the other low-band frequencies (F1 and F2) are averaged and reflected in the value of the added frequency. Processing for determining the added value Q is performed (steps E5 to E8). Here, QXrl, QXim, QYrl, and QYim are addition values to be added to the real axis part and the imaginary axis part in the X and Y directions. In the case of no addition (in the case of no deformation), “0” is set to them. (Step E5). In the case of a constant value (for example, when the contour is vibrated), a constant value is set in them (step E6), and in the case of itself (for example, in the case of changing the thickness), the added frequency indicated by the order f is changed. The values FfXrl, FfXim, FfYrl, FfYim are set to them (step E7), and when the value of the low-frequency component is reflected (for example, when the contour vibrates naturally), the average value is set to them. Is performed (step E8). Then, the added values QXrl, QXim, QYrl, and QYim are multiplied by the coefficients K1, K2, K3, and K4, and the value is added to the value of the added frequency (step E9). When the value of the original addition frequency is “0”, the value of Q is directly substituted as the value of the frequency component.
[0021]
FIG. 10 is a flowchart detailing the operation when printing characters based on the deformed font (the one-character print development process shown in step A5 in FIG. 5), and the procedure shown in FIG. 14 may be performed. First, the modified font storage unit 2-4 is searched to read out the modified font and store it in the work memory in the RAM 2 (step F1). Then, the frequency components are read out from the work memory for each part and subjected to Fourier inverse transform (IFFT) to return to the coordinates at the time of plotting (step F2). This is drawn in the print buffer 2-5 as a short vector (step F3). That is, an outline font having the coordinates generated by the IFFT as a short vector is generated and developed in the print buffer 2-5. Here, the plot interval when outputting characters is not related to the number of plots when generating a frequency font, and can be arbitrarily controlled. That is, at the time of FFT conversion, the number of data (order) is related to the number of plots. Therefore, if "0" is added to the higher-order side and IFFT is performed at the time of character output, the plot interval becomes narrower. If the number of data (order) is reduced, the plot interval can be widened.
[0022]
As described above, in the first embodiment, a frequency font generation function of generating a frequency font formed by expressing the outline of a character by a set of discrete spatial frequency components using a normal character font is provided. By simply incorporating a deformed font generation function that generates a deformed font that deforms the outline of the character based on, the basic outline and thickness of the character can be significantly changed and various expressions can be performed while suppressing an increase in the amount of data. The shape of the character can be freely deformed, for example, by adding. Therefore, a desired character can be freely transformed simply by incorporating such a function into an existing word processor or the like. Here, when changing the size of the character, it is possible to enlarge or reduce the size of the character by multiplying all the numerical values by a coefficient, as in a normal outline font, and the size of the character can be freely changed. . Furthermore, if a high frequency component is cut by a digital filter, a round character can be output. If a low frequency and a specific high frequency are combined, a fine change (vibration) is added to the outline of the character. In addition, when the thickness of the contour is controlled, various deformations are possible, such as changing the predetermined value of the low frequency components of F1 and F2 (multiplying by a constant). In particular, even if complicated outline shapes that were virtually impossible to implement with conventional outline fonts were not implemented as fonts, any complex shapes could be created simply by processing the data that constitutes frequency fonts. Can also be easily deformed. Therefore, the data amount can be significantly reduced as compared with a case where a complicated shape is implemented as an outline font. In addition, the frequency font is divided into a real axis part and an imaginary axis part on a complex plane for each frequency component and represents the size, so that it is suitable for high-speed processing. Also, if the values are represented as amplitude and phase components for each frequency component, it becomes easier to conceptually understand the low frequency range, and this is effective when arbitrarily designating the deformation. Also, the unit of sampling is for each stroke that constitutes a character, and since it is converted to a set of frequency components for each stroke, in the case of a font that has only a low frequency that governs the approximate shape of the character , The deformation is straightforward and the basic character shape is maintained. In addition, even if the element that constitutes a character is one stroke, such as “Otsu”, the basic character shape can be maintained by sampling it by dividing it into three for each continuous stroke based on a straight line. By setting the sampling start position at the start or end position of writing a character, when performing a deformation that changes the character thickness or basic glyph, the deformation can be easily controlled due to the characteristics of Japanese.
[0023]
(2nd Embodiment)
Hereinafter, a second embodiment of the present invention will be described with reference to FIGS. In the first embodiment described above, the type of deformation and the degree of the deformation are arbitrarily specified, but an example in which the entire character is rounded as the type of deformation and the degree of the deformation is fixed is also shown. It shows a specific method of deformation. In other words, by cutting high-frequency components out of the set of spatial frequency components that make up the frequency font, and generating a transformed font consisting of only low-frequency components that govern the general shape of the character, It is designed to have roundness.
FIG. 15 is a flowchart basically similar to FIG. 8 described above. In this case, the type of the filter is fixed to a low-pass filter, and the cutoff frequency and the specific value are also fixed values on the system. Steps G1 to G6 extract only the frequency components lower than the cutoff frequency while focusing on the frequency components of the maximum order one by one from F0, and cut the high frequency components higher than the cutoff frequency. The frequency component is stored in the modified font storage section 2-4.
[0024]
Here, FIGS. 16A to 16E show modified examples in this case, and the degree of deformation differs as shown in the figure depending on which value is fixedly set as the cutoff frequency. That is, FIG. 16A shows an original character in the case where the cutoff frequency is not set, that is, an original character in the case where the frequency font is developed and output as it is without generating a deformed font. When the cutoff frequency is 2π × 15 (F15), the shape becomes the shape shown in (B). When the cutoff frequency is 2π × 7 (F7), (C). When the cutoff frequency is 2π × 4 (F4), (D), 2π × 3 (F3). ), It becomes the character form shown in (E), and the whole character can be deformed with roundness. Here, in FIG. 15, when the target frequency matches the cutoff frequency, if the target frequency is multiplied by a characteristic value, an intermediate degree of deformation can be realized (step G7). For example, when obtaining an intermediate deformation between cutoff frequency = 2π × 3 and 2π × 4 shown in FIG. 16, set the cutoff frequency to 2π × 3 and fix the characteristic value to “0.5”. With this, an intermediate deformation becomes possible.
FIG. 17 shows a case where only the lowest frequency F1 which is the fundamental frequency is extracted in addition to the DC component F0. In this case, the modified font has the data structure shown in FIG. It is transformed into an extremely rounded character, making it the best font for playing.
[0025]
FIG. 18 is a flowchart showing the operation when the second embodiment is further developed. That is, a set of frequency components constituting the frequency font is deleted except for the low-frequency components that govern the approximate shape of the character, and is composed of a combination of this low-frequency component and a high-frequency component close to the sampling frequency. By generating a deformed font, the entire character is given a roundness and bleeding as if drawn with a paintbrush. Here, steps H1 to H7 indicate the same filter processing as steps G1 to G7 in FIG. Here, what high frequency is to be combined with the low-frequency component stored in the modified font storage unit 2-4 is fixedly determined in the system, and the step H8 compares this with the addition frequency f ( Degree). In this case, FIG. 18 shows a case in which two types of addition frequencies are combined. Step H8 shows the first type, and step H11 shows the second type. Then, in the next step H9, a value Q to be added to this frequency is obtained. In this case, instead of a constant value, the values of F1 and F2 in the low frequency range are averaged, and the value is set as the added value Q. Although the addition value Q is determined separately for the real axis part and the imaginary axis part in the X and Y directions, only the real axis part and the imaginary axis part alone may be determined. Then, in the next step H10, a process of multiplying the added value by a coefficient K1 (deformation degree constant K1) and adding the result to the added frequency is performed. Note that the same addition processing as in steps H9 and H10 is performed on the second type of addition frequency shown in step H11 (steps H12 and H13). Here, the coefficient K2 indicates a deformation degree constant. As described above, in the second embodiment, the values of F1 and F2 in the low frequency band are averaged, multiplied by the coefficient, and the result is added to the addition frequency. That is, the values reflecting the values of F1 and F2 in the low frequency range are added. At this time, the addition may be made to only one of the real axis part and the imaginary axis part. Such addition processing is performed in such a manner that the direction of "smearing" (fine vibration) appearing in the outline of the character is adjusted to the directions of F1 and F2 in the low frequency range (that is, the directions of the elements constituting the character). This is done.
[0026]
FIG. 19 is a diagram for explaining the modification in this case. FIG. 19A shows a modification in which the cutoff frequency is 2π × 3 and there is no high frequency combined therewith. (B) shows a cutoff frequency of 2π × 3, an addition frequency of a maximum order frequency, and a source for obtaining an addition value Q of a fixed value (for example, F1 or F2). This is the case where the addition process is performed on the axis portion. In (C), the cutoff frequency is 2π × 3 and the addition frequency is the maximum, as in the case of (B) above. Here, the sources are F1 and F2, and the average value is only the real axis portion in the XY directions. Is added, and the state of “smearing” becomes more natural than in the case of the modification (B), and it is possible to obtain characters as if drawn with a paintbrush.
[0027]
(Third embodiment)
Hereinafter, a third embodiment of the present invention will be described with reference to FIGS. In the above-described second embodiment, a modified font in which a low-frequency component and a specific high-frequency component are combined is generated. However, in the third embodiment, each frequency component constituting the frequency font is generated. (F0 to the maximum order) is used as a modified font, and the value of the middle frequency component is changed according to the degree of transformation. That is, a predetermined deformation process for changing the value of the middle frequency component (addition frequency) in the aggregate of the frequency components is performed, and the corresponding middle frequency in the aggregate is subjected to the deformation process of the middle frequency component. By generating a deformed font replaced with a frequency component, the entire character has a natural fluctuation element as if drawn with a brush.
FIG. 20 shows the font deformation processing in this case. Steps J1 to J6 perform the same processing corresponding to steps H8 to H13 in FIG. 18 described above, and a description thereof will be omitted. In this case, two types of middle frequency components are used. However, only one type may be used, and the average value of the low-frequency components F1 and F2 is assigned to the real axis part and the imaginary axis part of the middle frequency component. Although the addition is performed, the addition may be performed to only one of the real axis part and the imaginary axis part. Here, the middle frequency component is determined as, for example, about 2π × 20, that is, a slightly lower frequency component.
FIG. 21 is a diagram for explaining the modification in this case, and (A) shows the original character before the modification is applied. (B) shows an example in which the transformation is applied only in the X direction. In the flowchart of FIG. 20, the addition processing is performed in both the X direction and the Y direction. However, the addition in the X direction only, that is, k1Yrl, A modified example in which the values of k1Yim, k2Yrl, and k2Yim are set to “0”, and (C) illustrates a modified example in which addition is performed to both XY. This makes it possible to make the whole character have a fluctuation element as if drawn with a brush, but especially when only the X direction is added as shown in FIG. Deformation of a stable impression becomes possible.
[0028]
FIG. 22 is a flowchart showing the operation when the third embodiment is further developed. That is, the middle frequency component is not fixed, and the middle frequency component is determined for each element constituting the character according to the length of the contour. First, the number of parts for one character is acquired from the frequency font storage unit 2-3 (step K1), and the maximum value of the contour length corresponding to each part in one character is extracted (step K2). Here, as described in the first embodiment, since the contour length of each part is obtained at the time of the sampling operation, if the contour length is registered and stored in association with each part, the maximum value is obtained from among them. Can be taken out. In this state, first, the length of the contour of the first first part is extracted (step K3), and the order f of the addition frequency is determined according to the length (step K4). That is, the ratio of the length of the corresponding part to the maximum value is determined based on the contour length of the relevant part extracted in step K3 and the maximum value extracted in step K2, and the value is multiplied by the value of the fundamental frequency component F1. To determine the order of the added frequency component.
When a fraction is generated in the calculation result as described above, a fraction process such as rounding, rounding up, and rounding down is performed. Then, the process proceeds to step K5, where the average value of F1 and F2 (the value Q obtained in step J2 in FIG. 20) is added to the value of the frequency component represented by the order f (step K5). The frequency component obtained in this way is registered as a modified font by replacing the frequency component with the corresponding frequency component in the collection constituting the frequency font (step K6). Then, until the above-described processing is completed for all parts (step K7), the contour length of the next part is extracted (step K8), and the process returns to step K4 to repeat the above operation. In this way, the frequency proportional to the length of the contour of the part is determined as the added frequency component, so that the deformation of the character has a seemingly constant vibration period and a natural fluctuation as if drawn by a person Become.
[0029]
(Fourth embodiment)
Hereinafter, a fourth embodiment of the present invention will be described with reference to FIGS. In the fourth embodiment, a predetermined deformation process for changing the value of a higher frequency component (addition frequency) constituting a frequency font is performed to change the component to a stronger value, and the corresponding component in the set is processed. A modified font is generated by replacing the higher-order frequency component with the higher-order frequency component subjected to the transformation process. FIG. 23 shows a modification process in this case, in which the addition frequency is brought close to the sampling frequency (for example, near the sampling frequency / 2) (step L1), and the values of the XY real axis part and the imaginary axis part of this addition frequency are shown. Are added to each other (steps L2). Also, different constants K5, K6, K7, and K8 are added to the next addition frequency (L3, L4). Here, by adding a different value to the high frequency component more strongly, the whole character has a moving element having a strong vibration. FIG. 24 is a diagram for explaining the deformation in this case, and the character after deformation is violently vibrated with respect to the original character (see A) before deformation as shown in FIG. FIG. 25 does not add a constant to the addition frequency, but multiplies the coefficients on the real axis parts of the low-frequency F1 and F2 and adds this to the real axis part of the high frequency component as described in each of the above embodiments. In some cases, this allows the phase of the vibration to be matched to F1, F2.
[0030]
(Fifth embodiment)
Hereinafter, a fifth embodiment of the present invention will be described with reference to FIGS. In each of the above-described embodiments, when sampling the outline of a character, sampling is performed on a stroke-by-stroke basis with one stroke of an element constituting the character. However, in the fifth embodiment, the "country" is used. It analyzes the nested structure such as the outermost contour `` look '' like the shape of and the outline `` ball '' existing inside it, and performs sampling in units of contours that are continuous for each nest, In this way, FFT processing is performed for each sampled unit and registered as a frequency font.
[0031]
FIG. 26 is a flowchart showing a one-character creation process in the fifth embodiment, and FIG. 27 is a diagram showing a specific example in this case.
First, the entire normal font for one character is drawn (step M1), and the counter value for counting the number of parts is set to "0" (step M2). Here, FIG. 27A shows a state in which the character "country" is drawn, and samples the first dot (the dot in the upper left corner of "hidden"), and thereafter, the same as steps B5 to B15 in FIG. (Steps M4 to M14), and the FFT process is performed on "hidden" as one part and stored in the frequency font storage unit 2-3. Then, the inside of the processed contour is painted white (step M15), and it is stored in the work area in the RAM 2 (step M16). FIG. 27 (B) shows the rectangular outline (outermost outline) saved by this. Next, the process proceeds to step M17, where the number of parts is increased by "1", and thereafter, the process returns to step M3. In this case, since there are no dots inside the outline, the process proceeds to step M18, where the saved drawing result is recalled, the periphery thereof is painted black (see FIG. 27C), and in the next step M19, The result is inverted between black and white (see FIG. 27D). Then, it is checked whether or not all are white (step M20). Since the vicinity of the “ball” is now black, the process returns to step M3. As a result, the presence of the first dot is detected. Thereafter, steps M4 to M14 are executed, and data for one part is registered in the frequency font storage unit 2-3. Then, the inside of the processed outline is painted white (step M15), and the outline of the rectangle shown in FIG. 27 (E) is stored as a drawing result (step M16). Further, the number of parts is incremented (step M17), and the first dot is searched (step M3). In this case as well, the process proceeds to step M18, where the periphery of the drawing result is blacked out, and then black and white is inverted (step M19). As a result, only the “ball” portion becomes black as shown in FIG. Then, returning to step M3, steps M4 to M17 are executed. In this case, the "king" portion is processed as data for one part (see FIG. 27 (G)), and subsequently, steps M4 to M17 are performed. Then, the “dot” portion is processed as data for one part (see FIG. 27H). Therefore, the “king” part and the “point” part are registered as separate parts. When such processing is completed, as shown in FIG. 27 (I), the color becomes all white, so the process proceeds to step M21, and the number of parts is registered in the frequency font storage unit 2-3.
Such processing is not limited to the character of "country", and is the same for all characters, but since the character of "ten" does not have an outlined portion inside, if the outermost contour is processed, The flowchart of 26 ends at that point. In the case of transforming the frequency font based on the frequency font generated as described above, if a transformed font is generated by applying a low-pass filter to the frequency font as described above, as shown in FIG. "Smearing" is created at the intersection of. That is, FIG. 28A shows a modified character obtained by cutting the high-frequency component of a frequency font obtained by sampling the character “10” as a component for each stroke as in the other embodiments described above. FIG. 28 (B) shows a modification of the fifth embodiment, in which one character is made into one part so that the intersections are smoothly connected to each other to form a "sumi-drim" as if drawn with a brush. Occurs.
[0032]
(Sixth embodiment)
Hereinafter, a sixth embodiment of the present invention will be described with reference to FIGS. In the sixth embodiment, a high-frequency component (addition frequency) of a set of frequency components constituting a frequency font is subjected to a predetermined deformation process of changing its value, and the value of the component is changed to a stronger value. In addition, a modified font is generated by replacing the corresponding higher-frequency component in the collection with the higher-frequency component subjected to the deformation processing. FIG. 29 is a flowchart showing the modification process in this case. In step N1, the addition frequency is set to a higher frequency close to half the sampling frequency, and the average value of F1 and F2 is reflected on the addition frequency to reflect the values of F1 and F2. Is added to the addition frequency component (steps N2 and N3).
FIG. 30 is a diagram for explaining the deformation in this case. In the sixth embodiment, a deformation effect is obtained in which the original characters shown in FIG. )reference).
[0033]
(Seventh embodiment)
Hereinafter, a seventh embodiment of the present invention will be described with reference to FIGS. In the seventh embodiment, a predetermined deformation process is performed to change the value of the closest frequency component of the set of frequency components constituting the frequency font, and the value of the imaginary axis portion is changed to a value multiplied by a constant. In addition, the thickness is changed by generating a modified font in which the corresponding lowest frequency component in the collection is replaced by the deformed lowest frequency component. FIG. 31 shows the deformation process in this case, in which the real number axis portion of F1 is multiplied by a constant K1 and multiplied by a constant (step P1). In this case, since the sampling start is the start or end of writing of the character, the imaginary number data of the lowest frequency component is multiplied by a constant. However, if such sampling is not performed, the data of the real axis part may be multiplied by a constant. . In addition, even if it is one stroke, it is easiest to control the boldness if the unit of the parts is every continuous brush stroke (straight line) based on a straight line. In the seventh embodiment, the same addition processing as in step P1 is performed for the frequency (F2) next to the lowest frequency (F1) because one image on the right side of the image is one part (step P2). . This is because F2 is a base that governs the shape of the character. FIG. 32A shows a modified example in which the original character is changed, and FIG. 32B shows a modified example in which the thickness is changed. The left side is deformed thick by setting a constant> 1, and the right side is thinned by setting a constant <1. Is the case.
[0034]
(Eighth embodiment)
Hereinafter, an eighth embodiment of the present invention will be described with reference to FIGS. In the eighth embodiment, the lowest frequency component of the set of frequency components constituting the frequency font is subjected to a predetermined deformation process of changing its value, and the value of the real axis portion is multiplied by a constant to thereby obtain the character of the character. It was to change the momentum. FIG. 33 shows the deformation process in this case. The imaginary axis part of F1 is left as it is, and the real axis part is multiplied by a constant K1 to multiply by a constant (step Q1). In this case, since the sampling start is the start or end of writing of the character, the real number data of the lowest frequency component is multiplied by a constant. However, if such sampling is not performed, the data of the imaginary axis part may be multiplied by a constant. . Also, as in the seventh embodiment, the momentum can be most easily controlled by setting the unit of each part to a continuous stroke (each straight line) based on a straight line, even for one stroke. For example, since one image on the right side of “9” is defined as one part, also in the eighth embodiment, the same addition processing as in step Q1 is performed for the frequency (F2) next to the lowest frequency (F1). (Step Q2). FIG. 32A shows a modified example in which the original character is changed, and FIG. 32C shows a modified example in which the momentum is changed. By setting a constant> 1, the left side is a deformation giving a strong and unbridled impression, and the right side is a constant <1. By doing so, the deformation gives a gentle impression. It is to be noted that what changes by the deformation processing in FIG. 33 is the size of the font in the longitudinal direction. If the individual parts constituting the font are large, the momentum is strongly felt, and if the individual parts are small, the momentum is weakly felt. .
[0035]
(Ninth embodiment)
The ninth embodiment of the present invention will be described below with reference to FIGS. In the ninth embodiment, a predetermined deformation process is performed to change the value of the middle frequency component of the set of frequency components constituting the frequency font, and a constant value is subtracted from the value of the real axis portion in the X direction. (Invert the polarity) and add the other constant values to generate a transformed font in which the corresponding middle frequency component in the set is replaced with the transformed middle frequency component. To give a contour like a cloud. FIG. 34 is a flowchart showing the modification process in this case. A middle (approximately 2π × 40 to 50) frequency is determined as an addition frequency (step R1), and the value of the real axis portion in the X direction is a fixed value. K1 is subtracted, and the other values are added by a constant value K1 (step R2). In this case, the reason for subtracting only the value of the real axis part is that the sampling operation is clockwise as described above, and if sampling is performed counterclockwise, the imaginary axis part in the Y direction is obtained. It is only necessary to subtract only the data of. When performing such a transformation process, the frequency component to be transformed is determined for each element constituting the character according to its length, and a predetermined transformation process is performed on the determined frequency. By applying, the number of vibrations appearing in the outline of the character can be visually aligned for each component of the character. Such an optimization process is basically the same as the flowchart of FIG. 22, and a description thereof will be omitted. FIG. 35 shows a modification example in this case, in which (A) shows a case before deformation, (B) shows a case after deformation, and (C) shows a case after filling, and a cycloid curve appears in the outline of each part. , Cloud-like deformation is obtained. Here, in the flowchart of FIG. 34, another medium frequency component is determined as an addition frequency (step R3), and the value of the real axis portion in the X direction is subtracted by a fixed value, and the other values are added. (Step R4). As a result, two types of cycloid curves having different periods appear, which results in more complicated deformation.
[0036]
(Tenth embodiment)
Hereinafter, a tenth embodiment of the present invention will be described with reference to FIGS. The tenth embodiment is basically the same as the ninth embodiment, except that in the tenth embodiment, an inverse cycloid curve is expressed in each contour, thereby performing a deformation like a holly leaf. . FIG. 36 is a flow chart showing the modification process in this case, in which the middle frequency component is used as the addition frequency (step S1), but a certain value is subtracted from the value of the imaginary axis part in the X direction (the polarity is inverted). (D) Others are added (step S2). Further, another middle frequency is determined as an addition frequency component (step S3), and a constant value is subtracted from the imaginary axis portion in the X direction, and the others are added (step S4). Note that, as in the ninth embodiment, the real number axis portion in the Y direction may be subtracted according to the sampling direction, and the others may be added.
FIG. 37 shows a modified example of this case, in which (B) shows a case in which addition processing is performed on a character shown in (A) at a constant frequency, and the period of the inverse cycloid curve changes depending on the length of the contour of each part. . (C) shows the case where the addition frequency is determined according to the length of the contour of each part. In this case, the addition frequency is set to three types of the basic frequency, twice the frequency, and four times the frequency. , And the period of the vibration is apparently close to constant according to the length of the outline of each part. Further, if the optimization process is performed according to the flowchart of FIG. 22, the apparent cycle becomes closer to a constant. FIG. 38 shows a modification in this case, in which (A) shows a case before the original character, (B) shows a case after the transformation, and (C) shows a case where the painting is performed after the transformation.
It is to be noted that the present invention is not limited to the modifications of the above-described embodiments, but may be freely modified such as a combination thereof.
[0037]
【The invention's effect】
According to the present invention, a frequency font generation function of generating a frequency font formed by expressing the outline of a character by a set of discrete spatial frequency components using a normal character font, and a character font based on the frequency font By simply incorporating a deformed font generation function that generates a deformed font with a deformed outline, you can significantly change the basic outline of the character or freely change the shape of the character with various expressions while suppressing the increase in data volume This makes it possible to easily apply the present invention to a word processor or the like.
[Brief description of the drawings]
FIG. 1A is a block diagram illustrating an overall configuration of a document data processing apparatus, and FIG. 1B is a diagram illustrating a main configuration of a
FIG. 2 is a diagram showing a configuration of a frequency font storage unit 2-3 and a data structure showing the size of a real part and an imaginary part on a complex plane for each frequency component constituting the frequency font. .
FIG. 3 is a diagram illustrating a process of sampling a contour of a normal font for each part, performing FFT processing, generating a frequency font, and registering the frequency font in a frequency font storage unit 2-3.
FIG. 4 is a diagram showing another data structure in which a value is represented by an amplitude and a phase component for each frequency component constituting a frequency font.
FIG. 5 is a flowchart showing an overall operation at the time of outputting a modified character string.
FIG. 6 is a flowchart detailing step A3 (one-character creation processing) in FIG. 5;
FIG. 7 is a flowchart detailing step A4 (font transformation processing) in FIG. 5;
FIG. 8 is a flowchart detailing step C2 (copy processing to a modified font storage unit) in FIG. 7;
FIG. 9 is a flowchart detailing step C3 (data addition processing) in FIG. 7;
FIG. 10 is a flowchart showing step A5 (single-character print development processing) of FIG. 5;
FIGS. 11A to 11C are diagrams for explaining an operation when sampling is performed by following the contour of a bitmap drawn for one part.
FIG. 12 shows a state in which one character is decomposed into parts and subjected to FFT processing, and values of a real part and an imaginary part obtained by performing FFT processing are discretely distributed on a frequency axis. The figure which showed the frequency distribution diagram.
FIG. 13 is a diagram showing specific numerical values of each part constituting the frequency font and showing a correspondence relationship between which part corresponds to which data.
FIG. 14 is a diagram illustrating a process from IFFT processing of a frequency font to character printing.
FIG. 15 is a flowchart illustrating font deformation processing according to the second embodiment.
FIGS. 16A to 16E are diagrams for explaining a modification obtained by the modification processing of FIG. 15;
17A and 17B are diagrams for explaining another example in the second embodiment, in which FIG. 17A shows a data structure of a frequency font in this case, and FIG. 17B is a diagram for explaining a modified example thereof.
FIG. 18 is a flowchart showing a font modification process in still another example in the second embodiment.
FIGS. 19A to 19C are diagrams for explaining a modification obtained by the modification processing in FIG. 18;
FIG. 20 is a flowchart illustrating font deformation processing according to the third embodiment.
FIGS. 21A to 21C are diagrams for explaining a modification obtained by the modification processing of FIG. 20;
FIG. 22 is a flowchart showing another example of the font modification process in the third embodiment.
FIG. 23 is a flowchart illustrating font deformation processing according to the fourth embodiment.
FIGS. 24A and 24B are diagrams for explaining a modification obtained by the modification processing of FIG. 23;
FIGS. 25A and 25B are diagrams for explaining a modification example obtained by another example of the font modification process in the fourth embodiment.
FIG. 26 is a flowchart detailing a one-character creation process according to the fifth embodiment.
FIG. 27 is a view for specifically explaining the creation processing of FIG. 26 in the order of the processing steps;
FIGS. 28A and 28B are diagrams for explaining a modification example obtained by performing a font modification process after the creation process of FIG. 26;
FIG. 29 is a flowchart illustrating font deformation processing according to the sixth embodiment.
FIGS. 30A and 30B are diagrams for explaining a modification obtained by the modification processing of FIG. 29;
FIG. 31 is a flowchart illustrating font transformation processing according to the seventh embodiment.
FIGS. 32A and 32B are diagrams showing an original character, FIG. 32B showing a modification of the seventh embodiment, and FIG. 32C showing a modification of the eighth embodiment.
FIG. 33 is a flowchart illustrating font deformation processing according to the eighth embodiment.
FIG. 34 is a flowchart illustrating font deformation processing according to the ninth embodiment;
FIGS. 35A to 35C are views for explaining a modification of the ninth embodiment;
FIG. 36 is a flowchart showing font transformation processing according to the tenth embodiment.
FIGS. 37A to 37C are views for explaining a modification of the tenth embodiment;
FIGS. 38A to 38C are diagrams for explaining a modification example obtained by another font modification process in the tenth embodiment.
[Explanation of symbols]
1 CPU
2 RAM
2-1 Character string storage
2-2 Frequency conversion work part
2-3 Frequency font storage
2-4 Deformed font storage
2-5 Print buffer
3 Storage device
3-1 Normal font storage
4 Storage media
5 Input device
6 Display device
7 Printer
Claims (3)
前記空間周波数成分の集合体のうち高域の周波数成分を削除し、文字の大体の形状を支配する低域の周波数成分のみから成る変形フォントを生成する変形フォント生成手段と、
この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、
この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段とを具備したことを特徴とする文字フォント変形出力装置。Read out the existing normal character font for one character , analyze the outermost contour that constitutes this character, the nested structure such as the contour that exists inside it, and sample the continuous contour for each nest as a unit , Font conversion means for converting it into a frequency font formed by expressing the outline of a character as a set of discrete spatial frequency components by discrete frequency decomposition,
A modified font generation means for deleting a high-frequency component of the set of spatial frequency components and generating a modified font consisting of only a low-frequency component that governs the approximate shape of the character ;
Inverse conversion means for generating original coordinate data by inversely converting the deformed font generated by the deformed font generation means;
Output means for developing and outputting a character font based on the coordinate data generated by the inverse conversion means.
前記周波数フォントを構成する空間周波数成分の集合体のうち、文字の大体の形状を支配する低域の周波数成分以外を削除し、この低域周波数成分とサンプリング周波数に近い高周波数成分との組み合せから成る変形フォントを生成する変形フォント生成手段と、
この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、
この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段と、
を具備したことを特徴とする文字フォント変形出力装置。An existing ordinary character font is read for one character, and sampling is performed by tracing the outline of the character, and the frequency is obtained by expressing the outline of the character as a set of discrete spatial frequency components by discrete frequency decomposition. Font conversion means for converting to a font,
Of the set of spatial frequency components that make up the frequency font, except for the low-frequency components that govern the general shape of the character, delete the combination of this low-frequency component and the high-frequency component close to the sampling frequency. Font generating means for generating a deformed font comprising :
Inverse conversion means for generating original coordinate data by inversely converting the deformed font generated by the deformed font generation means;
Output means for developing and outputting a character font based on the coordinate data generated by the inverse conversion means;
A character font transformation output device characterized by comprising:
空間周波数成分の集合体のうち中位の周波数成分にその値を変更する所定の変形処理を施してその実数軸部分または虚数軸部分を極性反転した値に変更すると共に、前記集合体内の対応する中位の周波数成分を前記変形処理された中位の周波数成分に置き換えた変形フォントを生成する変形フォント生成手段と、
この変形フォント生成手段によって生成された変形フォントを逆変換することによって元の座標データを生成する逆変換手段と、
この逆変換手段によって生成された座標データに基づいて文字フォントを展開出力する出力手段と、
を具備したことを特徴とする文字フォント変形出力装置。An existing ordinary character font is read for one character, and the character outline is sampled by tracing the outline of the character. The outline of the character is separated by discrete frequency decomposition into real axis portions on a complex plane for each discrete frequency component. Font conversion means for converting into a frequency font represented by a set of numerical information representing the size of the imaginary part,
A predetermined deformation process of changing the value of the middle frequency component of the set of spatial frequency components is performed to change the value of the real axis part or the imaginary axis part to a value whose polarity is inverted, and the corresponding value in the set is changed. A modified font generating means for generating a modified font in which the middle frequency component is replaced with the transformed middle frequency component ,
Inverse conversion means for generating original coordinate data by inversely converting the deformed font generated by the deformed font generation means;
Output means for developing and outputting a character font based on the coordinate data generated by the inverse conversion means;
A character font transformation output device characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22111998A JP3567748B2 (en) | 1998-07-22 | 1998-07-22 | Character font generator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22111998A JP3567748B2 (en) | 1998-07-22 | 1998-07-22 | Character font generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000039880A JP2000039880A (en) | 2000-02-08 |
JP3567748B2 true JP3567748B2 (en) | 2004-09-22 |
Family
ID=16761780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22111998A Expired - Fee Related JP3567748B2 (en) | 1998-07-22 | 1998-07-22 | Character font generator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3567748B2 (en) |
-
1998
- 1998-07-22 JP JP22111998A patent/JP3567748B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000039880A (en) | 2000-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5155805A (en) | Method and apparatus for moving control points in displaying digital typeface on raster output devices | |
JP4418044B2 (en) | Method for displaying characters in a digital font, method for defining characters in a digital font, and method for generating characters in a digital font | |
JP4762901B2 (en) | How to render an area of a composite glyph | |
US7002598B2 (en) | Method for generating a composite glyph and rendering a region of the composite glyph in object-order | |
KR0167618B1 (en) | Character generating apparatus and method of the same | |
JP2006521629A (en) | Method and apparatus for anti-aliasing a region of a two-dimensional distance field representing an object | |
JP4869920B2 (en) | Method and apparatus for determining anti-aliasing strength of pixel components from a two-dimensional distance field representing an object | |
US7042458B2 (en) | Methods for generating an adaptively sampled distance field of an object with specialized cells | |
JPH0850470A (en) | Method and apparatus for storage and retrieval of font data | |
WO2005088536A1 (en) | Method, apparatus and system for rendering using a cache | |
US5489920A (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
US7176926B2 (en) | Method for animating two-dimensional objects | |
US7030881B2 (en) | Method for converting two-dimensional objects to distance fields | |
US7106332B2 (en) | Method for converting two-dimensional pen strokes to distance fields | |
JP2006521628A (en) | Method for generating a two-dimensional distance field in a cell associated with a corner of a two-dimensional object | |
JP3567748B2 (en) | Character font generator | |
JP7154633B2 (en) | FONT GENERATING APPARATUS AND METHOD THAT CAN MODIFY STYLE OF SUBSTITUTES OF CHARACTERS | |
JP2006521625A (en) | A method for converting a two-dimensional distance field into a set of boundary descriptors | |
JP2000039879A (en) | Character font transformation output device and program recording medium | |
JP3344538B2 (en) | Character generator | |
JP2000330980A (en) | Handwriting-like character output device and its program recording medium | |
JP2000039881A (en) | Character font storing device, character font output device and record medium for its program | |
JP2908194B2 (en) | Character transformation control method | |
JP2000347647A (en) | Handwriting-like character outputting device, and program storage medium for the device | |
JP3347756B2 (en) | Character generation method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040408 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040607 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |