[go: up one dir, main page]

JP2001109455A - アウトラインスムージング処理方法ならびにその装置 - Google Patents

アウトラインスムージング処理方法ならびにその装置

Info

Publication number
JP2001109455A
JP2001109455A JP28721899A JP28721899A JP2001109455A JP 2001109455 A JP2001109455 A JP 2001109455A JP 28721899 A JP28721899 A JP 28721899A JP 28721899 A JP28721899 A JP 28721899A JP 2001109455 A JP2001109455 A JP 2001109455A
Authority
JP
Japan
Prior art keywords
vector
line
outline
dot
data
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.)
Granted
Application number
JP28721899A
Other languages
English (en)
Other versions
JP3791259B2 (ja
JP2001109455A5 (ja
Inventor
Juichi Yanagisawa
重一 柳澤
Ryuji Omoto
隆二 大本
Noriaki Miyasaka
徳章 宮坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP28721899A priority Critical patent/JP3791259B2/ja
Priority to TW089120929A priority patent/TW509888B/zh
Priority to US09/684,799 priority patent/US6753862B1/en
Priority to CNB001355392A priority patent/CN1160667C/zh
Priority to KR10-2000-0059074A priority patent/KR100376196B1/ko
Publication of JP2001109455A publication Critical patent/JP2001109455A/ja
Priority to HK01107668.5A priority patent/HK1036865B/xx
Publication of JP2001109455A5 publication Critical patent/JP2001109455A5/ja
Application granted granted Critical
Publication of JP3791259B2 publication Critical patent/JP3791259B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J5/00Devices or arrangements for controlling character selection
    • B41J5/30Character or syllable selection controlled by recorded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

(57)【要約】 【課題】 拡大率が大きくなっても滑らかなフォントを
再現する。 【解決手段】 文字フォントメモリ14に用意されたビ
ットマップデータを、フォント加工装置(CPU11)
で一旦ベクトルデータに置き換え、ベクトルデータ上で
の平滑化により、拡大率が大きくなっても滑らかなフォ
ントを再現する。このために、ビットマップを8方向の
ベクトル(上下左右4方向と斜め4方向)で表現し、連
続する6ベクトルの変化量から最適なベクトル方向を決
定し、更に、6ベクトルの変化量から、ベクトルで表現
しきれない1ドット単位での補正を行なう。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、テープ印刷装置、
ワープロやパソコンにおける印刷装置または表示装置
等、ビットマップフォントを持つ文字出力装置に用いて
好適な、アウトラインスムージング処理方法ならびにそ
の装置に関する。
【0002】
【従来の技術】従来、様々なサイズの文字を印刷あるい
は表示する方法に、(1) 対象となる文字データを全
て持つ方法、(2) ビットマップフォントを持ち、拡
大縮小する方法、(3) アウトラインフォントを持
ち、拡大縮小する方法、があった。
【0003】
【発明が解決しようとする課題】しかしながら(1)に
ついては、データ量が膨大となり現実的でない。(2)
については、(1)に比べて印刷品質が劣り、その欠点
を解消しようとした場合にはソフトウェアにかかる負担
が大きくなってその処理に時間を要す。
【0004】具体的に、ビットマップフォントを持つ印
刷装置において、印字品質向上のための処理として、文
字の拡大時における「段差」の平滑化処理がある。ここ
で、「段差」とは、ビットマップフォントの斜め方向に
おいて隣接するドット配列が不連続となり、文字の拡大
に伴ってくずれが生じる部分である。従来は平滑化のた
めにこの「段差」を検出し、拡大時にその「段差」を埋
めるように補正ドットを追加していた。
【0005】ところが、この平滑化処理において、補正
ドットを多くすると文字の輪郭がくずれてデザインが損
なわれ、また、補正ドットの数を少なくすれば凹凸が残
り、拡大率が大きくなるほど補正のための効果がさほど
得られないという欠点があった。
【0006】一方、(3)については、(2)に比べて
システム規模が大きくなり、また、データ量も大とな
り、たとえばテープ印刷装置のような比較的規模の小さ
い印刷装置においては、処理時間、価格のいずれかを犠
牲にしていたものである。
【0007】本発明は上述した諸々の欠点を解消するた
めになされたものであり、ビットマップフォントを持つ
印字、表示等のための文字出力装置において、ビットマ
ップフォントを一旦ベクトルデータに置換し、ベクトル
データ上での平滑化により、拡大率が大きくなっても滑
らかなフォントを再現できるアウトラインスムージング
処理方法ならびに装置を提供することを目的とする。
【0008】
【課題を解決するための手段】本発明の請求項1のアウ
トラインスムージング処理方法は、文字フォントをドッ
トマトリクス状のビットマップデータとして持ち、その
文字フォントを印刷もしくは表示する文字出力装置にお
いて、前記文字フォントの拡大時、そのビットマップデ
ータに基づき一旦ベクトルデータに変換し、前記ビット
マップデータの斜め方向において隣接するデータ配列が
不連続となる部分を含め、前記変換されたベクトルの始
点からそのベクトル方向の終点に向かって新たな線引き
を行ない、内部を塗り潰してビットマップデータの再生
成を行うことを特徴とする。
【0009】また、本発明の請求項3のアウトラインス
ムージング処理方法は、同文字出力装置において、前記
ビットマップデータに対し、あらかじめ規定された条件
に従いベクトルの始点となる座標を求める始点検索のた
めの処理工程と、前記始点から順にドットの変化方向を
調べ、上下左右4方向の直交ベクトル行列に変換すると
共に、そのドットがベクトル化済みであることを示すベ
クトル化済み情報を更新する直交ベクトルへの変換のた
めの処理工程と、前記変換された直交ベクトル行列の連
続する複数のベクトルの変化量から、あらかじめ斜線化
すべきパターンが定義される斜線化テーブルを参照して
斜線ベクトル行列に変換する斜線ベクトルへの変換のた
めの処理工程と、加工されたビットマップ座標に対し前
記斜線ベクトル行列の連続する複数のベクトルの変化量
からあらかじめ定義される補正データを参照して前記線
引きを行う座標をドット単位で補正して線引きを行う線
引きのための処理工程と、前記ベクトル化済み情報を参
照して新たな始点がなくなるまで前記始点検索、直交ベ
クトルへの変換、斜線ベクトルへの変換、線引きのため
の各処理工程を繰り返し、生成された線データの内部を
塗り潰す塗り潰しのための処理工程と、を備えて成るこ
とを特徴とする。
【0010】また、本発明の請求項11のアウトライン
スムージング処理装置は、文字フォントをドットマトリ
クス状のビットマップデータとして記憶する記憶装置
と、前記文字フォントの加工時、そのビットマップデー
タに基づき一旦ベクトルデータに変換し、前記ビットマ
ップデータの斜め方向において隣接するデータ配列が不
連続となる部分を含み、前記ベクトルの始点からそのベ
クトル方向の終点に向かって線引きを行ない、内部を塗
り潰してビットマップデータの再生成を行なうフォント
加工装置と、前記再生成されたビットマップデータを印
字もしくは表示する文字出力装置と、を備えたことを特
徴とする。
【0011】また、本発明の請求項13のアウトライン
スムージング処理装置は、文字フォントをドットマトリ
クス状のビットマップデータとして持ち、その文字フォ
ントを印字もしくは表示する文字出力装置において、前
記ビットマップデータに対し、あらかじめ規定された条
件に従いベクトルの始点となる座標を求める始点検索・
決定部と、前記始点から順にドットの変化方向を調べ、
上下左右4方向の直交ベクトル行列に変換すると共に、
そのドットがベクトル化済みであることを示すベクトル
化済み情報を更新する直交ベクトル抽出部と、前記変換
された直交ベクトル行列の連続する複数のベクトルの変
化量から、あらかじめ斜線化すべきパターンが定義され
る斜線化判定テーブルを参照して斜線ベクトル行列に変
換する斜線ベクトル変換部と、加工されたビットマップ
座標に対し前記斜線ベクトル行列の連続する複数のベク
トルの変化量からあらかじめ定義される補正データを参
照して前記線引きを行う座標をドット単位で補正して線
引きを行う線引き処理部と、前記ベクトル化済み情報を
参照して新たな始点がなくなるまで前記各処理部による
始点検索・決定、直交ベクトルの抽出、斜線ベクトルへ
の変換、線引きのための処理を繰り返し、生成された線
データの内部を塗り潰す塗り潰し部と、を備えたことを
特徴とする。
【0012】本発明は、上述した構成により、フォント
メモリに用意されたビットマップデータを一旦ベクトル
データに置き換え、ベクトルデータ上での平滑化によ
り、拡大率が大きくなっても滑らかなフォントを再現す
ることを特徴とする。このためにビットマップを8方向
のベクトル(上下左右4方向と斜め4方向)で表現し、
連続する6ベクトルの変化量から最適なベクトル方向を
決定し、更に、6ベクトルの変化量から、ベクトルで表
現しきれない1ドット単位での補正を行う。
【0013】本発明によれば、拡大しても品質の良い印
刷もしくは表示が可能である他、ビットマップフォント
を使用しているため圧縮が可能である。通常、アウトラ
インフォントを搭載する機器においても解像度の低い小
さなサイズの文字を扱う場合、印刷品位劣化のためにビ
ットマップフォントを用いて印字することがあるが、本
発明によれば、文字の大小にかかわらず同じ品質で文字
の印刷が可能となる。
【0014】
【発明の実施の形態】以下、図面を参照しながら本発明
の一実施形態について詳細に説明する。
【0015】図1は、本発明が採用される文字出力装置
の内部構成を示すブロック図である。本発明実施形態で
は、文字出力装置としてテープ印刷装置を例示して説明
する。テープ印刷装置は、キー入力した所望の文字など
に基づいて作成した印刷画像をカートリッジ内のテープ
にサーマル方式で印刷すると共にそのテープの印刷部分
を切断してラベルを作成するものである。
【0016】図1に示すように、テープ印刷装置は、基
本的な構成として、CPUを制御中枢とする制御部1、
キーボードやディスプレイを持ちユーザとのインタフェ
ースとなる操作部2、サーマル式の印刷ヘッドによりテ
ープカートリッジにあるテープに印刷を行う印刷部3か
ら成る。操作部2と印刷部3は、各種ドライバを内蔵し
て各部回路を駆動する駆動部4を介して制御部1に接続
される。操作部2、印刷部3、駆動部4については本発
明の主旨とは直接関係しないためこれ以上の詳細説明は
省略する。
【0017】制御部1は、CPU11、プログラムメモ
リ12、ワークRAM13、フォントメモリ14、入出
力制御部15から構成され、これら各ブロック11,1
2,13,14,15は、双方向の内部バス16を介し
て共通に接続される。CPU11は、プログラムメモリ
12に格納された後述する各プログラムに従いワークR
AM13を使用して本発明のアウトラインスムージング
処理装置として機能する他、テープ印刷装置全体の制御
を行う。
【0018】ワークRAM13は作業領域として使用さ
れ、プログラムによるアウトラインスムージング処理の
経過データが都度書き込まれる。フォントメモリ14に
は、文字等のフォントデータがドットマトリクス状のビ
ットマップ形式で格納され、文字等を特定するコードデ
ータが与えられたときに対応するフォントデータを出力
する。
【0019】入出力制御部(IOC)15は、CPU1
1の機能を補うとともに、各種周辺回路とのインタフェ
ース信号を扱うための論理回路が、ゲートアレイやカス
タムLSIなどにより構成され組み込まれている。例え
ば、キーボードからの各種指令や入力データなどをその
まま、あるいは加工して内部バス16に取込むととも
に、CPU11と協動してCPU11により内部バス1
6に出力されたデータや制御信号を、そのまま、あるい
は加工して駆動部4に出力する。
【0020】図2は、図1に示す制御部1が持つ機能を
メモリ上に展開して示した図である。上述したように、
制御部1はアウトラインスムージング処理装置として機
能し、ここでは、文字フォントの加工時、そのビットマ
ップデータに基づき一旦ベクトルデータに変換し、ビッ
トマップデータの斜め方向において隣接するデータ配列
が不連続となる部分を含み、ベクトルの始点からそのベ
クトル方向の終点に向かって線引きを行なってドット補
正を施し、かつ、内部を塗り潰してビットマップデータ
を再生成して印刷もしくは表示出力を行なうための制御
を行う。
【0021】図2に示すように、本発明のアウトライン
スムージング処理装置(制御部1)は、フォントメモリ
14と、フォント加工装置(CPU11)と文字出力部
20で構成される。フォント加工装置11は、機能的
に、始点検索・決定部111、直交ベクトル抽出部11
2、斜線ベクトル化変換部113、線引き処理部11
4、塗り潰し処理部115、線幅補正処理部116で構
成される。これら各ブロック111〜116は後述する
ロジックに従うプログラムによって動作する。
【0022】始点検索・決定部111は、フォントメモ
リ14にあるビットマップデータに対し、あらかじめ規
定された条件に従いベクトルの始点となる座標を求め、
直交ベクトル抽出部112に供給する。直交ベクトル抽
出部112は、始点検索・決定部111によって出力さ
れる始点座標から順にドットの変化方向を調べ、上下左
右4方向の直交ベクトル行列に変換すると共に、そのド
ットがベクトル化済みであることを示すベクトル化済み
情報(フラグメモリ131)の内容を更新する。
【0023】斜線ベクトル変換部113は、変換された
直交ベクトル行列の連続する6ベクトルの変化量から、
あらかじめ斜線化すべきパターンが定義される斜線化判
定テーブル132の内容を参照して斜線ベクトル行列に
変換して線引き処理部114へ供給する。
【0024】線引き処理部114は、拡大等加工された
ビットマップ座標に対し斜線ベクトル行列の連続する6
ベクトルの変化量からあらかじめ定義される補正データ
を参照して線引きを行う座標をドット単位で補正し、補
正されたアウトライン座標間を線で結ぶ。線引き処理部
114は、変換されたベクトル行列から基準となるアウ
トライン座標を求める基準アウトライン演算部と、連続
したベクトル値のパターンによってあらかじめ定義され
る補正データが設定される補正テーブルと、前記補正テ
ーブルを参照することにより前記基準となるアウトライ
ン座標を補正し、この補正されたアウトライン座標間を
線で結ぶ線分生成部を備えている。ここでアウトライン
座標として、外枠用線と塗り潰し用線の2種類が生成さ
れる。
【0025】塗り潰し処理部115は、先のアウトライ
ン座標補正を行うことにより得られるフィルラインの内
側を塗り潰した後、フォント外枠が描画されているワー
クメモリ13のアウトライン用描画領域ならびにフィル
ライン用描画領域(いずれもビットマップ領域134)
に展開された内容を論理和演算して重ね合わせる処理を
行う。
【0026】線幅補正処理部116は、線引き処理部1
14によって生成されたビットマップデータを追って定
義するXY両方向にそれぞれ1ドット分削除することに
よってベクトル化によりXY方向に1ドット分太くなっ
たビットマップの線幅補正を行う。
【0027】文字出力部20は、印刷のためにワーク用
ビットマップ領域134からから所望のビットマップを
読み出しドット展開して入出力制御部15、駆動部4を
介し印字部3に出力する。
【0028】尚、上述した各処理部111〜116の詳
細なロジックはフローチャートを使用して以降詳細に説
明する。
【0029】本発明の動作説明に先立ち、以降に説明す
る座標とビットマップデータの定義について図3を参照
しながら説明する。図3では、座標とビットマップの定
義を(a)に、ベクトルの定義を(b)に示してある。
【0030】図3(a)に示すように、座標XとYを定
義し、以降で座標値を表す場合、[X,Y]で表記す
る。また、便宜上、Xの正方向を「右」、負方向を
「左」、Yの正方向を「下」、負方向を「上」と表現す
る。ビットマップデータは、白が0x0(「0」を16
進表記したもの),黒が0x1(「1」を16進表記し
たもの)とし、与えられたビットマップデータの座標外
([0,−1]など)は白(0x0)であるとする。
【0031】ベクトルの向きと番号は図3(b)で示す
ように定義される。すなわち、ベクトルは上下左右0〜
7の8方向で表現され、従って下に示すように表記され
るものとする。尚、ベクトルの1と5、3と7は1文字
では区別できないため、脇に「’」または「.」を付し
て区別するものとする。
【0032】図53にベクトル定義が示されている。図
53に(a)で示されるように、ベクトルは有向線分O
Pで表され、ベクトルを太字表現するのが一般的である
が、ここでは↑aで表記する。また、図53に(b)で
示すように、X−Y座標上のベクトル↑vは、基本ベク
トル↑i、↑jを使用して、↑v=x・↑i+y・↑j
で表される。ここでは単に↑vと表記する。また、図5
3に(c)で示すように、各方向ベクトルを定義し、そ
れぞれが行列に置換される。この各ベクトルの集合をベ
クトル空間、ベクトル群といい、↑vctと表すことと
する。
【0033】各方向ベクトルについて、x軸を基準とし
た回転角度は以下のようになる。 ∠(↑a)=0,∠(↑b)=π/4,∠(↑c)=π
/2,∠(↑d)=3π/4,∠(↑e)=π,∠(↑
b)=π/4 (↑f)=5π/4,∠(↑g)=3π/2,∠(↑
h)=7π/4 各ベクトル間の回転角度は、上記各値の減算で求めら
れ、∠(↑f−↑d)=∠(↑f)−π/4∠(↑d)
=π/2となる。
【0034】ここで、回転角度の計算等を簡単にするた
め、各ベクトルに「シンボル」として、0〜7の数字を
割り当てる。すなわち、以下のような割り当てがなされ
る。 ↑a→“0” ↑b→“1” ↑c→“2” ↑d→
“3” ↑e→“4” ↑f→“5” ↑g→“6” ↑h→“7” この場合、上述した↑vctは以下のようになる。 ↑vct={↑a,↑b,↑c,↑d,↑e,↑f,↑
g,↑h,} ={0,1,2,3,4,5,6,7} ベクトル群↑vctのn番目のベクトルは、↑vct
[n]と表記し、例えば、↑vct[2]=↑c=
“2”となる。
【0035】図4は、本発明実施形態による処理とデー
タの流れをフローチャートで示した図である。以下、動
作の流れを概略説明する。
【0036】まず、始点検索・決定部111は、文字フ
ォントメモリ14から読み出されたビットマップデータ
に対し、ベクトルの始点候補となる座標を求める。ま
た、そのビットマップと後述するベクトル化済み情報か
ら新たなベクトルの始点座標を求め、その始点座標を都
度直交ベクトル抽出部112へ渡す(ステップS41,
S42)。
【0037】直交ベクトル抽出部112は、始点からビ
ットマップをスキャンし、上下左右4方向の直交ベクト
ル行列に置換することにより始点から1周分の直交ベク
トルを抽出し、抽出された直交ベクトル行列を斜線ベク
トル変換部113へ渡す(ステップS43)。斜線ベク
トル変換部113は、得られた直交ベクトル行列の連続
する6ベクトルの変化量から後述する斜線化判定テーブ
ル132を参照し、斜線ベクトル行列に変換し、線引き
処理部114に処理を委ねる(ステップS44)。この
時点で上下左右4方向に斜め4方向を加えた8方向のベ
クトルになる。
【0038】線引き処理部114は、座標を補正しなが
らアウトラインを作成するもので、拡大加工したビット
マップ座標に対してベクトルを辿って線を引く際、得ら
れた斜線ベクトル行列の連続する6ベクトルの変化量か
ら後述する補正テーブル133を参照し、線を引く座標
を1ドット単位で補正する(ステップS45)。ここ
で、線は外枠用線と塗り潰し用の線の2種類を作成し、
この線データは、全ての始点に対する処理が終了するま
でワーク用ビットマップ領域134に保持される。この
ように、斜線ベクトルからアウトライン座標に補正を加
えて線引きを行う。そして、再度ベクトル始点の検索
(ステップS41)を行い、新たな始点が無くなるまで
上述したステップS41〜S45に示す処理を繰り返
し、塗り潰し処理部115へ処理を委ねる。
【0039】塗り潰し処理部115は、線引き処理部1
14により生成される塗り潰し用の線の内部を塗り潰し
た後、外枠用の線と重ね合わせる(ステップS46)。
線幅補正処理部116は、ベクトル化により全体に線幅
が太くなるため縦横1ドット線を細くするための処理を
行う(ステップS47)。
【0040】以下、ベクトル始点の検索(ステップS4
1)から線幅補正処理(ステップS47)に至る処理の
詳細について図5〜図10に示す詳細フローチャートを
参照しながら説明する。
【0041】まず、始点検索・決定部111による始点
検索・決定のための処理(図4におけるステップS4
1,S42)から説明する。
【0042】図5に、始点検索・決定のための処理手順
がフローチャートで示されている。ここでは、まず、座
標[0,0]から始点検索を開始する(ステップS41
1)。そして、X方向に座標をスキャンし、1ドットず
つ始点の条件に合うか否かをチェックする(ステップS
412)。
【0043】始点の条件としては、現座標位置ドット
([X,Y])が黒、1ドット前([X−1,Y])が
白であって、フラグメモリ131に設定されてあるベク
トル化済み情報の対応するドットがセットされていな
い、いわゆる未だベクトル化が済んでいないドットを始
点とする。尚、フラグメモリ131に設定されるベクト
ル化済み情報は、後述する直交ベクトル抽出処理(ステ
ップS43)において更新される。初期値は全てクリア
されているものとする。
【0044】そして上述した始点条件に合ったドットを
始点とし、後述する直交ベクトルの抽出処理に進む。こ
こで、始点が見つからなければYを+1(Yが端の座標
まで到達しているときにはXを+1、Y=0に)更新し
て(ステップS413)、ステップS411以降の処理
を繰り返す。
【0045】始点決定の例につき、図11に示すビット
マップを参照しながら説明する。図11において、
(a)は1回目、(b)は2回目、(c)は3回目の始
点検索の場合におけるビットマップとベクトル化済み情
報のそれぞれを示している。
【0046】1回目の検索では、フラグメモリ131に
おけるベクトル化済み情報が全てクリアされているた
め、最初に「白→黒」となり、ここでは[6,2]が始
点となる。2回目の検索の場合、[6,2]に対する直
交ベクトル化により、「ベクトル化済み情報」が更新さ
れている。「白→黒」となるドット[6,3][6,
4][6,5][6,6]等はベクトル化済み情報がセ
ットされているため始点にはならない。従って、条件に
合う最初のドット[15,5]が始点となる。3回目の
検索の場合、1,2回目の直交ベクトル化により、「白
→黒」となるドットは全て「ベクトル化済み情報」とし
てフラグメモリ131にセットされる。従って、3回目
の始点は無しと判断され、後述する塗り潰し処理(ステ
ップS46)に進む。
【0047】次に、直交ベクトル抽出部112による直
交ベクトルへの変換処理(図4ステップS42)につい
て詳細に説明する。図6に直交ベクトル変換処理のため
の手順がフローチャートで詳細に示されている。
【0048】以下、図6に示すフローチャートを参照し
ながら詳細に説明する。直交ベクトルへの変換処理と
は、ビットマップを直交ベクトル値(→、↓、←、↑の
4種)に変換する処理をいい、始点から順にドットの変
化方向を調べ、ベクトル化されたデータは、↑VCT=
[0,0,2,4,....]のような行列となって位
置情報は無くなる。
【0049】まず、始点のベクトル値を求める(ステッ
プS431)。次にベクトル化するドット位置を始点か
らベクトル方向に移動(ステップS432)して移動し
たドット位置の周辺ドットを調べ、ベクトル値を決める
(ステップS433)。そして、ベクトル化するドット
位置をベクトル方向に移動(ステップS434)してベ
クトル化したドット位置が始点候補になり得る場合(ス
テップS435)、ベクトル化済み情報をセットし(ス
テップS436)、そうでなければ、ドット位置の移動
以降(ステップS432〜S435)を繰り返す。
【0050】尚、始点のベクトル値の決定は、図12に
示す<表1>に従って決定し、ドット位置を始点からベ
クトル方向に移動する。ここでは、現位置ドットに対し
てベクトル値を決定するものであり、1つ前のベクトル
値からベクトル検索方向パターン順序を決め、その順序
に従い各ベクトル検索方向のパターンの条件を調べ、最
初に一致した条件に対応する値をベクトル値としてい
る。図13に、1つ前のベクトルと検索順位の関係が、
図14に検索順位と検索方向パターンの条件との関係
が、それぞれ、<表2><表3>として示されている。
【0051】尚、検索条件は、排他的でなく、ベクトル
0と4、また、2と6が決定される条件は両立する。従
って、検索条件に従って処理を進めないと正しいベクト
ルは得られない。ここでの検索順序は、ベクトルが「左
に回転する方を優先」するように決められている。
【0052】ところで、現位置ベクトル値が上方向
“6”である場合、上方向へ移動したドットは始点候補
となる。従って、始点の検索処理でこのドットは除外す
る必要があるため、フラグメモリ131に「ベクトル化
済み情報」としてセットする。ベクトル方向へのドット
移動は、図15に示す<表4>に従う。つまり、<表4
>に従いベクトル化を行うドット座標位置を移動する。
そして、ベクトル化するドット位置が始点に戻るまで上
述したステップS432〜S436の処理を繰り返す
(ステップS437)。
【0053】図16を参照しながら直交ベクトル化の例
を説明する。対応する「ベクトル化済み情報」は、上述
した始点検索の例として示し、(a)は1回目の始点検
索時、(b)は2回目の始点検索時における、それぞれ
の直交ベクトルデータ、直交ベクトル変換終了時におけ
る「ベクトル化済み情報」が示されている。1回目は始
点[6,2]、直交ベクトルデータ↑VCT1=[0,
0,0,0,0,0,0,0,0,2,0,0,2,
0,2,0,2,2,0,2,2,2,2,2,2,
2,2,4,2,2,4,2,4,2,4,4,2,
4,4,4,4,4,4,4,4,4,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6]、2回目は、始点[15,5]、直交ベク
トルデータ↑VCT2=[4,4,4,4,4,4,
2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,6,0,6,0,6,6,
6,6,6,6,6,6,4,6,4,6]となる。
【0054】次に斜線ベクトルへの変換部113による
斜線ベクトルへの変換処理について説明する。図7に斜
線ベクトル変換のための処理手順がフローチャートで示
されている。以下、図7に示すフローチャートを参照し
ながら斜線ベクトル変換処理について詳細に説明する。
【0055】ここでは、直交ベクトル↑VCT=
{ ... ,VCT[n−2],VCT[n−1],V
CT[n],VCT[n+1],VCT[n+2],
... }において、VCT[n−2]とVCT[n−
1]や、VCT[n]とVCT[n+1]などの連続す
る2つのベクトル要素の変化方向につき、図17に示す
<表5>のように定義する。尚、同じ値である場合には
同方向と定義する。
【0056】ここで、ベクトル行列の最終要素と初期要
素は、連続しているものとする。例えば、ベクトル行列
↑VCT={VCT[0],VCT[1], ... ,
VCT[n−2],VCT[n−1],VCT[n]}
において、VCT[n]とVCT[0]は連続した要素
である。
【0057】また、直交ベクトル行列↑VCT=
{ ... ,VCT[n−2],VCT[n−1],V
CT[n],VCT[n+1],VCT[n+2],V
CT[n+3], ... }において、VCT[n−
2]=Vn2(2つ前の直交ベクトル),VCT[n−
1]=Vn1(1つ前の直交ベクトル),VCT[n]
=V0(現直交ベクトル),VCT[n+1]=V1
(1つ先の直交ベクトル),VCT[n+2]=V2
(2つ先の直交ベクトル),VCT[n+3]=V3
(3つ先の直交ベクトル)と定義する。
【0058】斜線ベクトル変換部113は、直交ベクト
ルの左方向変化個所で条件に合う場合、斜線ベクトル
(右上ベクトル、右下ベクトル、左下ベクトル、左上ベ
クトル)に置換する機能を持つ。置換の様子を図18に
<表6>として示す。ここでの処理は、2直交ベクトル
を1斜線ベクトルに変換するため、変換した分だけベク
トルが少なくなる。
【0059】変換条件は以下のとおりである。すなわ
ち、まず、連続したベクトル要素Vn2〜V3について
変化方向を調べ、V0→V1が左回転で、かつ、各ベク
トル要素の変化が図19に<表7>で示す条件に一致し
た場合にV0とV1を斜線ベクトルに変換する。上述し
た変換条件をV0=「↓」のときのベクトルパターンと
したのが図20に<表8>として示してある。
【0060】ここでベクトル演算方法について説明す
る。直交ベクトル抽出部112によって作成された直交
ベクトル行列に対して斜線化条件を調べ、新たな斜線化
ベクトル行列に出力するものである。斜線化されたベク
トルは、次の斜線化条件には影響しない。
【0061】図7に示すフローチャートを参照しながら
ベクトル演算のための処理の流れを説明する。ベクトル
演算は直交ベクトル行列の先頭位置から開始する(ステ
ップS441)。Vn2〜V2の位置は↑VCT={V
0,V1,V2, ... ,Vn2,Vn1}となる。
次に、V0→V1の回転方向を調べる(ステップS44
2)。ここで、左回転ならばステップS444以降の処
理に進み、左回転以外の場合、現直交ベクトル値V0を
斜線化ベクトル値とし、検査する直交ベクトル行列の要
素位置を次のベクトルに移動する(ステップS44
3)。
【0062】例えば、Vn2〜V2の位置を↑VCT=
{V0,V1,V2, ... ,Vn2,Vn1}か
ら、↑VCT={Vn1,V0,V1,V2, ...
,Vn2}のように1つシフトする。
【0063】ステップS444では、Vn2〜V3のベ
クトルの変化方向を以下の演算式(1)により算出す
る。 dr(V[n−1]→V[n])= (V[n]−V[n−1]+10)AND 0x07 …(1) 演算の結果、“0”は左回転、“2”は同方向、“4”
は右回転、“6”は反対(ありえない)を意味する。
【0064】次に、変化方向を現ベクトルの前後に分
け、以下の演算式(2)(3)に従い重み付けを行う
(ステップS445)。 ・後方向の変化重みW1= {dr(V1−V2)×3+dr(V2→V3)}/2、 …(2) ・前方向の変化重みW2= {dr(Vn1−V0)×3+dr(Vn2→Vn1)}/2 …(3)
【0065】そして、このw1、w2に対する斜線化判
定テーブル132の値を調べる(ステップS446)。
ここで、値を調べ(ステップS447)、“1”の場
合、現ベクトルを斜線化して斜線化ベクトル行列に入れ
る。演算式は以下の(4)に従う。 斜線化ベクトル値=(現ベクトル値+0x07)AND 0x07 …(4)
【0066】このことにより、“0”は“7”、“2”
は“1”、“4”は“3”、“6”は“5”に変換され
る。また、斜線化対象になった直交ベクトル配列要素の
次の要素は斜線化ベクトルに含まれるため、検査する直
交ベクトル行列の要素位置を2つ移動する(ステップS
448)。
【0067】一方、値が“0”の場合、現直交ベクトル
値V0を斜線化ベクトル値とし、検査する直交ベクトル
行列の要素位置を次のベクトルに移動する(ステップS
449)。そして、直交ベクトルの先頭位置に戻るまで
上述したステップS441〜ステップS449までの処
理を繰り返す(ステップS450)。
【0068】尚、最終ベクトルを斜線化した場合の始点
の移動処理に関し、直交ベクトル行列の最後のベクトル
と先頭ベクトルが斜線化対象となった場合(↑VCT=
{V1,V2, ... ,Vn2,Vn1,V0}にお
いてV0−V1が斜線化される場合)、斜線化ベクトル
行列に入れた先頭ベクトルを削除し、始点座標から、削
除した先頭ベクトル方向に移動した座標を新たな始点と
する。
【0069】斜線化判定テーブル132の内容を図21
に示す。斜線化判定テーブル132には、上述したよう
に重み付け演算して得られるw1,w2が示す値に対し
て斜線化するか否かのデータが設定される。このテーブ
ル値を変更することによって斜線化するパターンを変更
できる。
【0070】ベクトル斜線化の例につき、図22を参照
しながら説明する。図22において、(a)は、1回目
の始点決定時、(b)は、2回目の始点決定時における
斜線化ベクトルデータが示されている。
【0071】(a)は、始点[6,2]、斜線化ベクト
ルデータ↑VCT1B=[0,0,0,0,0,0,
0,0,0,1,0,1,1,2,1,2,2,2,
2,2,2,2,2,3,2,3,3,4,3,4,
4,4,4,4,4,4,4,4,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,
6,6]である。
【0072】(b)は、初期始点が[15,5]、斜線
化ベクトルデータ↑VCT2B=[4,4,4,4,
4,2,2,2,2,2,2,2,2,2,2,2,
2,0,0,0,0,0,7,7,7,6,6,6,
6,6,6,5,5,5]となっている。
【0073】ここでは、最終ベクトルと先頭ベクトルが
斜線化され削除された先頭ベクトルは“4”、従って、
始点は[−1,0]移動し、新始点は[14,5]にな
る。
【0074】次に、線引き処理部114によるドット補
正を含む線引き処理(図4におけるステップS45)に
ついて説明する。ここで、線引き処理は、アウトラン座
標補正のための処理と、補正によって選られる座標間の
線引きするまで処理を含むものとする。図8に線引き処
理のための処理手順がフローチャートで示されている。
以下、フローチャートを参照しながら詳細に説明する。
【0075】まず、アウトライン座標補正のための処理
から説明する。ここでは、基のビットマップから抽出さ
れた斜線化ベクトル行列から、ベクトルの始点、終点座
標を求め、X方向、Y方向に拡大した新たなビットマッ
プ領域(ワーク用ビットマップ134)にアウトライン
(線)を描画する。ベクトルの始点、終点座標は、斜線
化ベクトル領域の連続する6つの要素を参照することに
よって1ドット単位で補正を加えるものである。ここで
はアウトラインとして、外枠用線と塗り潰し用線の2種
類を作成する。従って、拡大加工処理のためのビットマ
ップ領域を2つ必要とする。
【0076】まず、始点とベクトル値から基準となるア
ウトライン座標を決める(ステップS451)。ここで
は、補正データを参照する前の基準となるアウトライン
座標を求めるために演算を行う。
【0077】具体的に、X,Y方向の倍率をそれぞれB
X、BYとし、元の始点をX0,Y0とした場合、拡大
加工後の始点[X1,Y1]は、[BX×X0,BY×
Y0]で求める。以降の基準アウトライン座標の演算
は、前の座標(最初は始点座標)から斜線化ベクトル値
に応じた移動量を加えた値を次の座標位置とする。斜線
化ベクトル値と移動量の関係を図23に<表9>として
示す。
【0078】アウトライン基準座標の例を以下に示す。
すなわち、斜線化ベクトル変換部113により作成され
た斜線化ベクトル行列を、BX=2,BY=3で拡大し
たアウトライン座標は、始点座標[X0,Y0]を
[6,2]、斜線化ベクトル行列↑VCT1B=[0,
0,0,0,0,0,0,0,0,1,0,1,1,
2,1,2,2,2,2,2,2,2,2,3,2,
3,3,4,3,4,4,4,4,4,4,4,4,
4,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6]として、拡大後の始点座
標[X1,Y1]は[12,6]となり、始点座標以降
の座標演算は図24に<表10>で示すようになる。
【0079】アウトラインからビットマップデータを得
るためには、図25に<表11>として示す座標間に順
に線引きを行うことになる。しかしながら、これだけで
は単に斜め線を45度方向にしただけであって、ビット
マップデータは滑らかにならない。そこで、以下に説明
するように、各座標を前後のベクトルデータを参照する
ことにより、1ドット座標単位で補正を加えてより滑ら
かなビットマップデータとなるように配慮がなされてい
る。
【0080】すなわち、基準となるアウトライン座標を
決めた後、ステップS452以降の補正データによる基
準座標の補正処理が行われる。ここでは上述のようにし
て求めた基準アウトライン座標に対し、前後のベクトル
値を参照して補正データにより補正を加えた線引き用ア
ウトライン座標を求める。補正には、基準座標をそのま
ま線引き用座標とする「補正なし」と、その基準座標は
線引きに使用せず、次回以降の線引き処理に含める「ス
キップ」と、基準座標に対し、1ドット単位で座標位置
を移動する「ドット補正」の3種類がある。尚、補正デ
ータは前後のベクトル値のパターンによって個々に決め
られた値であって補正テーブル133にその値が設定さ
れる。
【0081】以下、補正データの参照方法について説明
する。説明に先立ち、現ベクトルとその周辺ベクトルを
以下のように定義する。すなわち、斜線化ベクトル行列
↑VCTB={ ... ,VCTB[n−3],VCT
B[n−2],VCTB[n−1],VCTB[n],
VCTB[n+1],VCT[n+2], ... }に
おいて、連続する6つのベクトル要素、VCTB[n−
3]をVn3(3つ前のベクトル)、VCTB[n−
2]をVn2(2つ前のベクトル),VCTB[n−
1]をVn1(1つ前のベクトル),VCTB[n]を
V0(現ベクトル),VCTB[n+1]をV1(1つ
先のベクトル),VCTB[n+2]をV2(2つ先の
ベクトル)と定義する。
【0082】この場合、まず、現ベクトルV0が直交ベ
クトル(0,2,4,6)か斜線化ベクトル(1,3,
5,7)かを調べる。直交ベクトルの場合、フラグa0
を“0”とし、斜線ベクトルの場合、フラグa0を
“1”にセットする。
【0083】そして、Vn2〜V3のベクトルの変化方
向を以下の演算式(5)により算出する(ステップS4
52)。 dr(V(n−1)→V(n))= (V(n)−V(n−1)+10)AND 0x07 …(5) ここで、drの演算結果が“0”のとき左回転、“1”
のとき左45度回転、“2”のとき同方向、“3”のと
き右45度回転、“4”のとき右回転、“5”のとき右
135度回転(ありえない)、“6”のとき反対(あり
えない)、“7”のとき左135度回転(ありえない)
とする。
【0084】次に、以下の演算式(6)により、現ベク
トルに対応する補正データが設定されたテーブル132
のアドレスaddrを算出する(ステップS453)。 addr= 1250×dr(V1→V2)+250×dr(V0→V1)+ 125×a0+25×dr(Vn3→Vn2)+5×dr(Vn1→V0) …(6 )
【0085】そして、補正データHのaddrバイト目
のデータとして求める。ここで補正データHは、“0”
〜“8”の9値をとるものとする。Hが“0”の場合、
「補正なし」(ステップS456)、Hが“8”の場
合、現ベクトルにより決められた基準座標は線引きに使
用せず、次回以降の線引き処理に含める「スキップ」
(ステップS458)、Hが“1”〜“7”の場合、後
述するアウトライン座標補正処理を行い1ドット単位で
座標位置を補正する。補正データHと補正方向の関係
は、図26に<表12>として示されている。
【0086】アウトライン座標補正処理方法について説
明する。補正の方向Hdrは、以下の演算式(6)を演
算することにより決定する(ステップS457)。 Hdr=(H+V0+7)AND 7 …(6)
【0087】そして、図27に示す<表13>に従いX
Y方向の補正ドット数を求める(ステップS459)。
ここで、HX、HYは、拡大倍率毎に定める補正ドット
数であり、補正後に隣の線とつながってしまわないよう
に拡大倍率の1/2以下とする。図28に<表14>と
して倍率毎の補正ドット数が参考値として示されてい
る。現ベクトルによって確定された基準座標に対して補
正ドット数だけ移動した座標を線引き用座標とする(ス
テップS480)。
【0088】尚、上述したベクトル計算は、補正データ
を格納しているテーブル132のアドレスを求めている
にすぎず、ここでは、補正データそのものは計算で求め
ておらず、連続したベクトル値のパターンによって個々
に補正データを決めておき、その補正データの集合体で
ある補正テーブル132を参照する形式を採用してい
る。これは、例えば、フォント書体別に補正データを差
し替えることによって書体の特徴を生かしたアウトライ
ンスムージング処理を可能にするものである。
【0089】ドット補正の例について2つ例示して説明
する。図29に<表15>として示す例は、始点座標
[X0,Y0]を[6,2]、斜線化ベクトル行列↑V
CT1B=[0,0,0,0,0,0,0,0,0,
1,0,1,1,2,1,2,2,2,2,2,2,
2,2,3,2,3,3,4,3,4,4,4,4,
4,4,4,4,4,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6]、X方
向3倍、Y方向4倍の拡大文字につき、X方向補正ドッ
ト値“1”、Y方向補正ドット値“2”で線引きするケ
ースを例示している。表中、LINE{(X1,Y1)
−(X2,Y2)}は、座標(X1,Y1)−(X2,
Y2)間に線を引くための処理を示す。また、LINE
SKIPは、線を引く処理をスキップすることを示
す。
【0090】図30に<表16>として示す例は、始点
[14,5]、斜線化ベクトルデータ↑VCT2B=
[4,4,4,4,4,2,2,2,2,2,2,2,
2,2,2,2,2,0,0,0,0,0,7,7,
7,6,6,6,6,6,6,5,5,5]、X方向3
倍、Y方向4倍の拡大加工文字につき、X方向補正ドッ
ト値“1”、Y方向補正ドット値“2”で線引きするケ
ースを例示している。
【0091】ステップS480以降の線引きについて詳
細説明を行う。ここでいう線引き処理は、基のビットマ
ップデータサイズにX,Y方向の拡大率を乗じたサイズ
のデータ領域を2つ確保し、上述したように決められた
線引き用座標の2点間に外枠用線、及び塗り潰し用線と
してドット補間して描画するものである。ここでは、外
枠用線をストロークライン、外枠用描画領域をストロー
ク領域、塗り潰し用線をフィルライン、塗り潰し用描画
領域をフィル領域と呼称して説明を継続する。また、線
を引く対象の2点をP1=(X1,Y1)、P2=(X
2,Y2)とする。
【0092】まずストロークライン処理から説明する。
ここでは、ストローク領域にフォント外枠用線として上
述のように決められた線引き用座標の2点間にドットを
補間して描画する。このとき、滑らかな線を得るため
に、線の傾きによっては基準軸を入れ替え(ステップS
482)ドット補間する。
【0093】具体的には、線引き基準軸決定のために、
X、Yの変化量の大きい方を基準軸とし、2点間のX,
Yの差分ΔX=ABS(X2−X1)、ΔY=ABS
(Y2−Y1)を求め、ΔX≧ΔYのときX軸基準とし
てX方向をスキャンし、ΔX<ΔYのときY軸を基準と
してY方向をスキャンする。ここでABSは絶対値を求
めるための関数である。
【0094】X軸基準線引き処理(X方向スキャン)に
おいて、X1、X2を比較し、X座標の小さいほうから
順にドットを描画する。ここでX1≧X2のとき、P2
→P1順に描画(開始点PS=P2、終了点PE=P
1)し、X1<X2のとき、P1→P2の順に描画(開
始点PS=P2、終了点PE=P2)する。
【0095】Y軸基準線引き処理(Y方向スキャン)に
おいて、Y1、Y2を比較し、Y座標の小さい方から線
を引く。ここで、Y1≧Y2のとき、P2→P1順に描
画(開始点PS=P2、終了点PE=P1)し、Y1<
Y2のとき、P1→P2の順に描画(開始点PS=P
2、終了点PE=P2)する。
【0096】ストロークライン処理は、始点、終点、補
間点全てにドットを描画し、描画されるドットは、スト
ローク領域のデータとの論理和(OR)演算とする(ス
テップS483)。
【0097】次にフィルライン処理について説明する。
ここでは、フィル領域にフォント塗り潰し用線として、
上述のようにして決められた線引き用座標の2点間にド
ットを補間して描画する。ドット補間のための基準軸は
X方向のみとする。
【0098】具体的に、X軸基準線引き処理(X方向ス
キャン)は、X1、X2を比較し、X座標の小さい方か
ら順にドットを描画する(ステップS484)。X1≧
X2のときにP2→P1順に描画(開始点PS=P2、
終了点PE=P1)し、X1<X2のとき、P1→P2
の順に描画(開始点PS=P2、終了点PE=P2)す
る。フィルライン処理は、始点、補間点にドットを描画
し、終点は未処理とする。また、描画されるドットは、
フィル領域のデータとの排他的論理和(XOR)演算と
する(ステップS485)。
【0099】上述したストロークライン、フィルライン
処理において、2点間に直線を描画するアルゴリズムに
ついて図31〜図41を参照しながら詳細に説明する。
図31に示す<グラフ1>において、2点間(図中★
印)に直線を引く場合、グラフ上に直線を描くかのよう
にメモリ上に小数点付きの値の座標にドットを描画する
ことはできない。実際には、図中、●で示すように、2
点間の直線に最も近い整数値の座標上にドットを補間す
ることになる。
【0100】このような補間点群は、図32に<リスト
1>として示すアルゴリズムにより順に求めることがで
きる。ここで、補間点群は、(x+x1,y)で表され
る。つまり、xが1ステップカウントされる毎に、小数
点付きの座標値を最も近い整数へ丸める演算(roun
d関数)を行う。図32に示す例では整数への丸め関数
roundを使用したが、これを通常の四則演算に置き
換えた場合は図33に<リスト2>で示すアルゴリズム
が得られる。ここで補間点群は(x,y)である。
【0101】実際、図33に示す演算式をプログラムで
実行する場合は別として、ハードウェアで実現しようと
した場合、dy/dxの除算、小数点付き変数1,1/
2との比較などを含んでいることがネックとなる。この
ため、図34または図35に、それぞれ<リスト3><
リスト4>として示すようにアルゴリズムを変形してお
く。図32〜35にリスト表示したアルゴリズムについ
ては本発明要旨と直接関係しないためここでの説明は省
略する。
【0102】尚、これまでの説明はdx>=dyとして
説明してきた。これは、「xを1ステップカウントイン
クリメントする毎にyを1ステップカウントインクリメ
ントするか否か」という判断をしているためであり、増
分dy/dxが1ステップカウント以上になる場合には
適用できない。試しに、dx<dyの場合で実行してみ
れば図36にグラフ表示(<グラフ2>)したようにな
ってしまう(Y座標正方向=下方向)。
【0103】これを回避するためには、1とdxとの比
較を繰り返し処理に変更すればよい。このためのアルゴ
リズムは図37に<リスト5>として示すようになる。
このアルゴリズムによって、増分dy/dxが1より大
きい場合でも図38にグラフ表示(<グラフ3>)する
ように直線に最も近い座標点群が得られる。
【0104】ところで、dx<dyの場合の処理は、上
述したアルゴリズムで問題なく直線生成アルゴリズムに
なる。しかしながら、dxがdyに対してより大きな値
(傾きが急な場合)は、図39にグラフ表示(<グラフ
4>)するように補間されるドットが極端に少なくなっ
てしまう。
【0105】実際、塗り潰し用のアルゴリズムとしては
有用である。しかしながら、フォント外枠を得るための
線引きとして用いた場合は、図39に示すように、ドッ
トが密の部分とドットが疎の部分と入り混じり奇麗な外
形を持つフォントにはならない。
【0106】線の傾きによらず、補間点群が密になるよ
うにするには、dx,dyの大小によってケース分けを
行う。dx<dyの場合は、ちょうどX軸とY軸を入れ
替えて演算するような処理を行う。つまり、yを1ステ
ップカウントインクリメントする毎にxを1ステップカ
ウントインクリメントするか否かの判断を行ない、増分
dy/dxまたはdx/dyを1以下に正規化する。こ
の場合、アルゴリズムは、図40に<リスト6>として
示す形態となる。このアルゴリズムによれば、結果、図
41に示すようにグラフ表示(<グラフ5>)され、ド
ットが密に描画される。
【0107】以上まとめると、ストロークライン(外枠
用線引き)用アルゴリズムは以下のようになる。つま
り、dx>=dyの場合、xを1ステップカウントイン
クリメントする毎にyをインクリメントするか否かの判
断を行う処理(Xスキャン線引き処理)が行われる。d
x<dyの場合、yを1ステップカウントインクリメン
トする毎にxをインクリメントするか否か判断する処理
(Yスキャン線引き処理)が行われ、始点、終点、補間
点は、ストローク領域データと論理和(OR)演算が行
われる。
【0108】次にストロークラインを用いた塗り潰し処
理について説明する。塗り潰しのアルゴリズムは、図4
2に<リスト7>として示されるように、Y方向の1つ
前のドットとの排他的論理和(XOR)演算を行うこと
により実現される。これを図43(a)に示す図形(<
グラフ6>)の例で実行した場合、図43(b)のよう
になり、特に問題は生じない。
【0109】次に、ストロークライン処理を使って描か
れた図44(a)の例(<グラフ7>)で実行した場
合、結果は図44(b)のようになり、うまく塗り潰し
が行われない。同じく図45(a)に示す長方形(<グ
ラフ8>)を使って実行した場合、図45(b)のよう
になり、辺a−d、辺b−c間の塗り潰しがうまくでき
ない。
【0110】これらの原因として、塗り潰しアルゴリズ
ムが1つの点から1つの点の間を埋める処理を目的とす
るのに対して、例では、線分a−c,b−c,a−d,
b−cが塗り潰し方向であるY方向からみて1ドット以
上の点で描かれているためである。
【0111】線分a−c,b−cが1ドット以上の点で
描かれるのは、それらがXスキャン線引き処理で描かれ
たためであるため、この問題を解決するためには、線分
の傾きに関係なく、Xスキャン線引き処理を行えばよ
い。
【0112】座標点間を単純にXスキャン線引き処理を
行った例、図46(a)を例示(<グラフ9>)して塗
り潰しを行ってみる。この場合、図46(b)に示すよ
うに、Xスキャン、Yスキャン線引き処理を併用した例
より改善はされたが、頂点A,Bが1ドットのみであっ
たために、塗り潰し終点が存在せず、線を引いてしま
う。
【0113】フィルライン(塗り潰し用線引き)処理に
ついて説明する。図46(b)において、点A,Bは図
形の頂点であり、塗り潰す終点を描くことは難しい。そ
のために、頂点A,Bには、線引き処理において、黒点
を描かずに白点にすればよいが、単純に線引き処理の始
点、終点を白点にするような処理では、頂点Cまでも白
点になってしまい、今度は点C以降に線が引かれてしま
う。
【0114】そこで、線引き処理の始点、終点は、前回
または次回の線引きと重なり、2回処理されることを利
用して、始点から終点の1つ前の補間点群については、
フィル領域のデータと排他的論理和演算、終点について
は未処理とすることで、頂点を白点にすることができ
る。フィルラインの補間点群生成アルゴリズムは、図4
7にリスト形式で示すようになる。
【0115】フィルライン処理によって図48<グラフ
10>における△図形(頂点A,B,C)は以下の手順
に従う。すなわち、図48(a)におけるフィルライン
A−B処理で、A点に黒点、B点は未処理(白点)、フ
ィルラインC−B処理で、C点に黒点、B点は未処理
(白点)、フィルラインA−C処理で、A点は排他的論
理和演算で白点、C点は未処理で黒点となる。図48
(a)で示す△図形に塗り潰し処理を施すと図48
(b)のようになる。
【0116】フィルライン(塗り潰し用線引き)アルゴ
リズムについてまとめると以下のようになる。すなわ
ち、2点間の座標のうち、X座標が小さい方を開始点と
する。そして、xを1ステップカウントインクリメント
する毎に、yをインクリメントするか否かを判断(Xス
キャン線引き処理)する。始点、補間点群はフィル領域
データと排他的論理和演算を実行する。終点は未処理と
する。
【0117】次に塗り潰し処理部115による塗り潰し
処理(図4におけるステップS46)について説明す
る。図9に処理手順がフローチャートで示されている。
以下、図9に示すフローチャートを参照しながら説明す
る。
【0118】塗り潰し処理部115では、線引き処理部
114により作成されたフィルラインの内側を塗り潰
す。フィルラインの塗り潰しは、Y方向の1つ前のドッ
トとの排他的論理和演算XORを実行(ステップ゜S4
61)することによりなされる。アルゴリズムを図49
にリスト形式(<リスト9>)で示す。
【0119】ストローク領域、フィル領域の重ね合わせ
について説明する。ここでは、フォント外枠が描かれて
いるストローク領域と、塗り潰しフォントが描かれてい
るフィル領域の内容を論理和演算することによって重ね
合わせる(ステップS462)。この模様は図50に動
作概念図として示されている。
【0120】最後に、線幅補正処理部116による太さ
補正処理(図4におけるステップS47)について説明
する。図10に処理手順がフローチャートで示されてい
る。ここでは、線引き処理部114により作成されたビ
ットマップは、ベクトル化によりX方向、Y方向共に1
ドット分太くなってしまうことから、ビットマップを
X,Y両方向にそれぞれ1ドツト分削除する機能を実行
する。
【0121】処理方法について具体的に説明する。ま
ず、Y方向に座標をスキャン(ステップS471)し、
ドット削除の条件を調べ(ステップS472)、以下に
示す条件のドットを「白」にする(ステップS47
3)。ここで、ドット削除の条件とは、現座標ドットが
「黒」、次座標ドット(=Y+1)が「白」であって、
座標端のドットについては未処理とする。
【0122】次に、X方向に座標をスキャン(ステップ
S472)し、ドット削除の条件を調べ(ステップS4
72)、以下の条件のドットを「白」にする(ステップ
S473)。ここで、ドット削除の条件とは、現座標ド
ットが「黒」、次座標ドット(=X+1)が「白」であ
って、座標端のドットについては未処理とする。
【0123】太さ補正の例につき、図51に示すビット
マップを参照しながら説明する。図51(a)に示すビ
ットマップ例につき、アウトラインを抽出して拡大す
る。ここでは、ベクトルデータ↑VCT1=[0,0,
2,2,0,0,2,2,4,4,4,4,6,6,
6,6]とする。そして、X方向2倍、Y方向2倍とし
て、線引き、塗り潰し、重ね合わせ処理を実行すると、
それぞれ、図51(b)のようになってしまう。
【0124】図51(b)は、X方向2倍、Y方向2倍
に拡大して描画したときのビットマップである。X,Y
方向に2倍した場合、図形の大きさは本来、4×2の8
ドット分であるはずであるが、ベクトル化した場合、図
のように+1ドット分太くなってしまう。ここで、+1
ドットは、この例に限らず、また、拡大率の値によるこ
となく一律である。尚、LINE{(X1,Y1)−
(X2,Y2)}は、座標(X1,Y1)から座標(X
2,Y2)に向けて線分を引く処理を示す。
【0125】このため、太さ補正処理を行うが、ここで
はまず、Y方向に座標をスキャンし、F[x,y]=0
x1(黒)、F[x,y+1]=0x0(白)の場合、
F[x,y]=0x0(白)に置換する。このことによ
り、図51(c)に示すビットマツプが生成される。具
体的に、□で表されるドットが補正される。
【0126】続いてX方向に座標をスキャンし、F
[x,y]=0x1(黒)、F[x,y+1]=0x0
(白)の場合、F[x,y]=0x0(白)に置換す
る。このことにより、図49(d)に示すビットマツプ
が生成される。具体的に、◇で表されるドットが補正さ
れる。この太さ補正を行った結果、XY方向に2倍した
図形の大きさは本来の4×2の8ドットになる。
【0127】次に、太さ補正の例外処理(ステップS4
74)について図52に示すビットマツプを参照しなが
ら説明する。基のビットマップデータが図52(a)に
示すように、24×24ドットフォントサイズの端に接
している場合について太さ補正をかけるものとする。
【0128】X方向Y方向共に2倍として、線引き、塗
り潰し、重ね合わせ処理を実行すると図52(b)に示
すようなビットマップになる。線引き処理において、終
点座標が拡大後のビットマップサイズを超えた座標は描
画されないため、図形の大きさは、1ドット分大きくな
る個所とならない個所が存在する。
【0129】単純に太さ補正処理を行うと図52(c)
に示すビットマップになる。基の図形がビットマツプサ
イズの端にある場合は、拡大後に1ドット分小さくなっ
てしまう。これは線引き処理を行う際に、拡大後のビッ
トマップサイズの座標範囲外の点を描画しないために起
こる。拡大後の図形でビットマップの座標端にあるドッ
トについて未処理とした場合、図52(d)に示すビッ
トマップになる。図52(c)(d)において、□は補
正されるドットを示す。
【0130】
【発明の効果】以上説明のように、本発明は、フォント
メモリに用意されたビットマップデータを一旦ベクトル
データに置き換え、ベクトルデータ上での平滑化によ
り、拡大率が大きくなっても滑らかなフォントを再現す
るものである。このためにビットマップを8方向のベク
トル(上下左右4方向と斜め4方向)で表現し、連続す
る6ベクトルの変化量から最適なベクトル方向を決定
し、更に、6ベクトルの変化量から、ベクトルで表現し
きれない1ドット単位での補正を行う。
【0131】本発明によれば、拡大しても品質の良い印
字もしくは表示が可能である他、ビットマップフォント
を使用しているため圧縮が可能であり、算術符号化によ
る圧縮アルゴリズムにより、文字サイズ等にもよるが、
例えば40%程度の圧縮ができる。通常、アウトライン
フォントを搭載する機器においても解像度の低い小さな
サイズの文字を扱う場合、印字品位劣化のためにビット
マップフォントを用いて印字することがあるが、本発明
によれば、文字の大小にかかわらず同じ品質で文字の印
刷が可能となり、また、メモリ容量の節約も可能となる
ものである。
【0132】また、ワープロやパソコン等の印刷装置、
表示装置への適用は勿論のこと、テープ印刷装置等比較
的装置規模の小さい機種においても、印字品位、処理速
度、価格のいずれも犠牲にすることなく、文字拡大時に
おける滑らかなアウトラインスムージング処理が可能と
なる。
【図面の簡単な説明】
【図1】 本発明の実施形態を示すブロック図である。
【図2】 図1における制御部の詳細を示すブロック図
である。
【図3】 本発明実施形態において使用される座標、ベ
クトルの定義を説明するために引用した図である。
【図4】 本発明実施形態の処理手順を説明するために
引用したフローチャートである。
【図5】 図4におけるベクトルの始点検索処理の具体
的な処理手順を示すフローチャートである。
【図6】 図4における直交ベクトルへの変換処理の具
体的な処理手順を示すフローチャートである。
【図7】 図4における斜線ベクトルへの変換処理の具
体的な処理手順を示すフローチャートである。
【図8】 図4における線引き処理の具体的な処理手順
を示すフローチャートである。
【図9】 図4における塗り潰し処理の具体的な処理手
順を示すフローチャートである。
【図10】 図4における線幅補正処理の具体的な処理
手順を示すフローチャートである。
【図11】 始点検索決定の例をビットマップ上に展開
して示した図である。
【図12】 始点ベクトル決定のための条件とベクトル
値との関係を表形式(<表1>)で示した図である。
【図13】 1つ前のベクトルと検索順位との関係を表
形式(<表2>)で示した図である。
【図14】 検索方向パターンと条件、ベクトルの関係
を表形式(<表3>)で示した図である。
【図15】 ベクトルとベクトル化位置との関係を表形
式(<表4>)で示した図である。
【図16】 直交ベクトル化の例をビットマップ上に展
開して示した図である。
【図17】 ベクトル変化方向と連続する2つのベクト
ルとの関係を表形式(<表5>)で示した図である。
【図18】 直交ベクトルと変換された斜線ベクトルと
の関係を表形式(<表6>)で示した図である。
【図19】 ベクトル変換条件を表形式(<表7>)で
示した図である。
【図20】 変換条件をベクトルパターンとして表形式
(<表8>)で示した図である。
【図21】 斜線化判定テーブルの内容を示した図であ
る。
【図22】 ベクトル斜線化の例をビットマップ上に展
開して示した図である。
【図23】 ベクトル値と座標移動量との関係を表形式
(<表9>)で示した図である。
【図24】 ベクトル値と前回座標からの移動量、アウ
トライン基準座標との関係を表形式(<表10>)で示
した図である。
【図25】 線引き座標を表形式(<表11>)で示し
た図である。
【図26】 補正データと補正方向の関係を表形式(<
表12>)で示した図である。
【図27】 補正方向と座標移動量との関係を表形式
(<表13>)で示した図である。
【図28】 拡大倍率と補正ドット数との関係を表形式
(<表14>)で示した図である。
【図29】 ドット補正の例を表形式(<表15>)で
示した図である。
【図30】 ドット補正の例を表形式(<表16>)で
示した図である。
【図31】 ドット補間を説明するために例示したグラ
フ(<グラフ1>)である。
【図32】 補間点群演算アルゴリズムをリスト形式
(<リスト1>)で示す図である。
【図33】 補間点群演算アルゴリズムをリスト形式
(<リスト2>)で示す図である。
【図34】 補間点群演算アルゴリズムをリスト形式
(<リスト3>)で示す図である。
【図35】 補間点群演算アルゴリズムをリスト形式
(<リスト4>)で示す図である。
【図36】 ドット補間を説明するために例示したグラ
フ(<グラフ2>)である。
【図37】 補間点群演算アルゴリズムをリスト形式
(<リスト5>)で示す図である。
【図38】 ドット補間を説明するために例示したグラ
フ(<グラフ3>)である。
【図39】 ドット補間を説明するために例示したグラ
フ(<グラフ4>)である。
【図40】 補間点群演算アルゴリズムをリスト形式
(<リスト6>)で示す図である。
【図41】 ドット補間を説明するために例示したグラ
フ(<グラフ5>)である。
【図42】 ストロークラインの塗り潰しアルゴリズム
をリスト形式(<リスト7>)で示す図である。
【図43】 ストロークラインを用いた塗り潰しを説明
するために例示したグラフ(<グラフ6>)である。
【図44】 ストロークラインを用いた塗り潰しを説明
するために例示したグラフ(<グラフ7>)である。
【図45】 ストロークラインを用いた塗り潰しを説明
するために例示したグラフ(<グラフ8>)である。
【図46】 Xスキャン線引き処理を用いたた塗り潰し
を説明するために例示したグラフ(<グラフ9>)であ
る。
【図47】 フィルラインの補間点群発生アルゴリズム
をリスト形式(<リスト8>)で示す図である。
【図48】 フィルライン処理による塗り潰しを説明す
るために例示したグラフ(<グラフ10>)である。
【図49】 フィルライン塗り潰しのためのアルゴリズ
ムをリスト形式(<リスト9>)で示す図である。
【図50】 ストローク領域とフィル領域の重ね合わせ
をグラフ表示した動作概念図である。
【図51】 太さ補正の例をビットマップ上に展開して
示した図である。
【図52】 太さ補正の例外処理をビットマップ上に展
開して示した図である。
【図53】 本発明実施形態において使用されるベクト
ル定義の更に詳細な例を示す図である。
【符号の説明】
1…制御部、2…操作部、3…印字部、4駆動部、11
CPU(フォント加工装置)、12プログラムメモリ、
13ワークRAM、14文字フォントメモリ15入出力
制御部(IOC)、16内部バス、20…文字出力部、
111…始点検索・決定部、112…直交ベクトル抽出
部、113…斜線ベクトル変換部、114…線引き処理
部、115…塗り潰し処理部、116…線幅補正処理
部、131…フラグメモリ(ベクトル化済み情報)、1
32…斜線化判定テーブル、133…補正テーブル、1
34…ワーク用ビットマップ領域
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04N 1/387 G06F 15/66 355P (72)発明者 宮坂 徳章 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 2C062 AA24 AB02 AB11 5B057 AA20 CA02 CA06 CA12 CA16 CB02 CB06 CB12 CB16 CD05 CE05 CG06 DA20 DB02 DB05 DB08 DC17 5C076 AA21 AA32 AA40 BA06 BB45 5C082 AA01 BA02 BB15 BB34 CA22 CA33 CA85 CB01 DA32 DA44 DA49 MM10

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 文字フォントをドットマトリクス状のビ
    ットマップデータとして持ち、その文字フォントを印刷
    もしくは表示する文字出力装置において、 前記文字フォントの拡大時、そのビットマップデータに
    基づき一旦ベクトルデータに変換し、 前記ビットマップデータの斜め方向において隣接するデ
    ータ配列が不連続となる部分を含め、前記変換されたベ
    クトルの始点からそのベクトル方向の終点に向かって新
    たな線引きを行ない、内部を塗り潰してビットマップデ
    ータの再生成を行うことを特徴とするアウトラインスム
    ージング処理方法。
  2. 【請求項2】 前記新たな線引きは、変換されたベクト
    ルデータから基準となるアウトライン座標を求め、あら
    かじめ連続したベクトルパターンによって定義される補
    正データを参照することにより前記基準となるアウトラ
    イン座標を補正し、この補正されたアウトライン座標間
    を線で結ぶことを特徴とする請求項1に記載のアウトラ
    インスムージング処理方法。
  3. 【請求項3】 文字フォントをドットマトリクス状のビ
    ットマップデータとして持ち、その文字フォントを印刷
    もしくは表示する文字出力装置において、 前記ビットマップデータに対し、あらかじめ規定された
    条件に従いベクトルの始点となる座標を求める始点検索
    のための処理工程と、 前記始点から順にドットの変化方向を調べ、上下左右4
    方向の直交ベクトル行列に変換すると共に、そのドット
    がベクトル化済みであることを示すベクトル化済み情報
    を更新する直交ベクトルへの変換のための処理工程と、 前記変換された直交ベクトル行列の連続する複数のベク
    トルの変化量から、あらかじめ斜線化すべきパターンが
    定義される斜線化テーブルを参照して斜線ベクトル行列
    に変換する斜線ベクトルへの変換のための処理工程と、 加工されたビットマップ座標に対し前記斜線ベクトル行
    列の連続する複数のベクトルの変化量からあらかじめ定
    義される補正データを参照して前記線引きを行う座標を
    ドット単位で補正して線引きを行う線引きのための処理
    工程と、 前記ベクトル化済み情報を参照して新たな始点がなくな
    るまで前記始点検索、直交ベクトルへの変換、斜線ベク
    トルへの変換、線引きのための各処理工程を繰り返し、
    生成された線データの内部を塗り潰す塗り潰しのための
    処理工程と、を備えて成ることを特徴とするアウトライ
    ンスムージング処理方法。
  4. 【請求項4】 前記線引きは、アウトライン用と塗り潰
    し用の2種類生成し、塗り潰し用の線の内部を塗り潰し
    た後アウトライン用の線と重ね合わせ、前記ベクトル化
    によって太くなった線幅を細くするための線幅補正のた
    めの処理工程を更に備えたことを特徴とする請求項3に
    記載のアウトラインスムージング処理方法。
  5. 【請求項5】 前記始点検索のための処理工程は、マト
    リクス座標を所定の方向に順次スキャンし、前記ベクト
    ル化済み情報の対応するドットがセットされておらず、
    かつ、隣接するビットマップデータが変化するドット位
    置を始点検索のための条件とすることを特徴とする請求
    項3に記載のアウトラインスムージング処理方法。
  6. 【請求項6】 前記直交ベクトルへの変換のための処理
    工程は、 ベクトル化するドット位置を始点からベクトルの方向に
    移動する工程と、 移動したドット位置の周辺ドットを調べ、ベクトル値を
    決定する工程と、 次にベクトル化するドット位置をベクトル方向に移動す
    る工程と、 ベクトル化したドット位置が始点候補になり得る場合前
    記ベクトル化済み情報をセットする工程と、 ベクトル化するドット位置が始点に戻るまで、前記ベク
    トル値決定、移動、ベクトル化済み情報セットのための
    各処理工程を繰り返す工程と、を更に備えて成ることを
    特徴とする請求項3に記載のアウトラインスムージング
    処理方法。
  7. 【請求項7】 前記線引きのための処理工程は、 前記ビットマップデータに対しあらかじめ規定された条
    件に従い補正前の基準となるアウトラインの始点座標を
    決定し、以降、前の座標から斜線化ベクトル値に応じた
    移動量を加えた座標を次の座標位置とする工程と、 前記各座標間を線引きするにあたり、各基準アウトライ
    ン座標に対し、前後のベクトル値のパターンによって個
    々に定義された補正データを参照して補正を施した線引
    き用アウトライン座標を生成する工程と、を更に有して
    成ることを特徴とする請求項3に記載のアウトラインス
    ムージング処理方法。
  8. 【請求項8】 線引きは、前記決定された線引き用座標
    の2点間にアウトライン用線及び塗り潰し用線としてド
    ットを補間して描画することによりなされ、前記アウト
    ライン用線は、前記線引き用座標の直交する2軸のうち
    直線の傾きによって変化量の大きい方を基準軸として、
    始点、終点および補間点に、前記塗り潰し用線は、ドッ
    ト補間の基準軸を前記2軸の所定の一方のみとして、始
    点および補間点に、2点間の直線に最も近い整数値の座
    標上にドットを補間して描画することを特徴とする請求
    項7に記載のアウトラインスムージング処理方法。
  9. 【請求項9】 前記塗り潰しのための処理工程は、アウ
    トライン用線が描画されたビットマップのストローク領
    域と塗り潰し用線が描画されたビットマップのフィル領
    域の内容を論理和演算して重ね合わせることを特徴とす
    る請求項3に記載のアウトラインスムージング処理方
    法。
  10. 【請求項10】 前記線幅補正のための処理工程は、座
    標を縦方向にスキャンし、現座標ドットが「黒」で、次
    座標ドットが「白」であった場合に「白」とし、横方向
    に座標をスキャンし、現座標ドットが「黒」であり、次
    座標ドットが「白」であった場合に「白」とし、ベクト
    ル化により縦横両方向にN(整数)ドット分太くなった
    ビットマップをそれぞれNドット分削除することを特徴
    とする請求項3に記載のアウトラインスムージング処理
    方法。
  11. 【請求項11】 文字フォントをドットマトリクス状の
    ビットマップデータとして記憶する記憶装置と、 前記文字フォントの加工時、そのビットマップデータに
    基づき一旦ベクトルデータに変換し、前記ビットマップ
    データの斜め方向において隣接するデータ配列が不連続
    となる部分を含み、前記ベクトルの始点からそのベクト
    ル方向の終点に向かって線引きを行ない、内部を塗り潰
    してビットマップデータの再生成を行なうフォント加工
    装置と、 前記再生成されたビットマップデータを印字もしくは表
    示する文字出力装置と、を備えたことを特徴とするアウ
    トラインスムージング処理装置。
  12. 【請求項12】 前記フォント加工装置は、変換された
    ベクトル行列から基準となるアウトライン座標を求める
    基準アウトライン演算部と、 連続したベクトル値のパターンによってあらかじめ定義
    される補正データが設定される補正テーブルと、前記補
    正テーブルを参照することにより前記基準となるアウト
    ライン座標を補正し、この補正されたアウトライン座標
    間を線で結ぶ線分生成部と、を備えたことを特徴とする
    請求項11に記載のアウトラインスムージング処理装
    置。
  13. 【請求項13】 文字フォントをドットマトリクス状の
    ビットマップデータとして持ち、その文字フォントを印
    字もしくは表示する文字出力装置において、 前記ビットマップデータに対し、あらかじめ規定された
    条件に従いベクトルの始点となる座標を求める始点検索
    ・決定部と、 前記始点から順にドットの変化方向を調べ、上下左右4
    方向の直交ベクトル行列に変換すると共に、そのドット
    がベクトル化済みであることを示すベクトル化済み情報
    を更新する直交ベクトル抽出部と、 前記変換された直交ベクトル行列の連続する複数のベク
    トルの変化量から、あらかじめ斜線化すべきパターンが
    定義される斜線化判定テーブルを参照して斜線ベクトル
    行列に変換する斜線ベクトル変換部と、 加工されたビットマップ座標に対し前記斜線ベクトル行
    列の連続する複数のベクトルの変化量からあらかじめ定
    義される補正データを参照して前記線引きを行う座標を
    ドット単位で補正して線引きを行う線引き処理部と、 前記ベクトル化済み情報を参照して新たな始点がなくな
    るまで前記各処理部による始点検索・決定、直交ベクト
    ルの抽出、斜線ベクトルへの変換、線引きのための処理
    を繰り返し、生成された線データの内部を塗り潰す塗り
    潰し部と、を備えたことを特徴とするアウトラインスム
    ージング処理装置。
  14. 【請求項14】 前記線引き処理部により外枠用線と塗
    り潰し用線の2種類を生成し、塗り潰し用線を塗り潰し
    た後外枠用線と重ね合わせ、前記ベクトル化によって太
    くなった線幅を細くする線幅補正部を更に備えたことを
    特徴とする請求項13に記載のアウトラインスムージン
    グ処理装置。
  15. 【請求項15】 連続したベクトル値のパターンに応じ
    て個々に補正データが設定され、その補正データの集合
    体である前記補正テーブルは、フォント書体別に補正デ
    ータを差し替えて成ることを特徴とする請求項13に記
    載のアウトラインスムージング処理装置。
JP28721899A 1999-10-07 1999-10-07 アウトラインスムージング処理方法 Expired - Fee Related JP3791259B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP28721899A JP3791259B2 (ja) 1999-10-07 1999-10-07 アウトラインスムージング処理方法
US09/684,799 US6753862B1 (en) 1999-10-07 2000-10-06 Outline smoothing method and system
TW089120929A TW509888B (en) 1999-10-07 2000-10-06 Method and device for processing outline smoothing
KR10-2000-0059074A KR100376196B1 (ko) 1999-10-07 2000-10-07 아웃라인 스무딩 처리 방법, 장치 및 기억매체
CNB001355392A CN1160667C (zh) 1999-10-07 2000-10-07 轮廓平滑化处理方法及其装置
HK01107668.5A HK1036865B (en) 1999-10-07 2001-11-02 Processing method for outline smoothing and the device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28721899A JP3791259B2 (ja) 1999-10-07 1999-10-07 アウトラインスムージング処理方法

Publications (3)

Publication Number Publication Date
JP2001109455A true JP2001109455A (ja) 2001-04-20
JP2001109455A5 JP2001109455A5 (ja) 2005-02-24
JP3791259B2 JP3791259B2 (ja) 2006-06-28

Family

ID=17714582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28721899A Expired - Fee Related JP3791259B2 (ja) 1999-10-07 1999-10-07 アウトラインスムージング処理方法

Country Status (5)

Country Link
US (1) US6753862B1 (ja)
JP (1) JP3791259B2 (ja)
KR (1) KR100376196B1 (ja)
CN (1) CN1160667C (ja)
TW (1) TW509888B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007531078A (ja) * 2003-07-16 2007-11-01 ハンヤン ハク ウォン カンパニー,リミテッド 3次元メッシュ情報の符号化及び復号化方法並びにその装置
CN100377578C (zh) * 2005-08-02 2008-03-26 北京北大方正电子有限公司 一种电视字幕文字的处理方法
US7636097B1 (en) * 2006-02-15 2009-12-22 Adobe Systems Incorporated Methods and apparatus for tracing image data
US7778492B2 (en) 2006-04-04 2010-08-17 Oldford Group Limited System and method for scaling digital images
US8107091B2 (en) * 2007-01-08 2012-01-31 Samsung Electronics Co., Ltd. Image forming apparatus and image forming method thereof
US8384917B2 (en) * 2010-02-15 2013-02-26 International Business Machines Corporation Font reproduction in electronic documents
CN101908216B (zh) * 2010-07-20 2014-04-30 中兴通讯股份有限公司 一种实现矢量字体的方法及装置
CN101957998B (zh) * 2010-10-09 2012-07-04 深圳市布易科技有限公司 把位图表达的图转为矢量阴影线表达的图的方法和装置
CN102637195A (zh) * 2012-02-27 2012-08-15 王涛 一种基于矢量图形播放的终端系统及其实现方法
CN107292936B (zh) * 2017-05-18 2020-08-11 湖南大学 一种汉字字体矢量化方法
CN110996026B (zh) * 2019-12-18 2022-05-24 普联技术有限公司 一种osd显示方法、装置、设备及存储介质
JP7432418B2 (ja) * 2020-03-26 2024-02-16 株式会社オーク製作所 露光装置および露光方法
CN111797843B (zh) * 2020-07-10 2022-10-11 济南中正金码科技有限公司 一种激光标刻汉字轮廓的提取方法、系统、存储介质及设备
US11915071B1 (en) * 2022-10-26 2024-02-27 Kyocera Document Solutions Inc. Caching outline characters in printed documents
CN119380677B (zh) * 2024-12-27 2025-05-16 江苏泽景汽车电子股份有限公司 显示控制方法、装置及投影装置、计算机可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60113289A (ja) * 1983-11-25 1985-06-19 セイコーインスツルメンツ株式会社 図形表示装置用ライン・スム−ジング回路
US4777651A (en) * 1984-06-25 1988-10-11 Tektronix, Inc. Method of pixel to vector conversion in an automatic picture coding system
US5027304A (en) * 1987-10-02 1991-06-25 Telecommunication Laboratories, Directorate General of Telecommunications , Ministry of Communications Character multifont compression and restoration device
JPH0832471B2 (ja) * 1988-08-31 1996-03-29 キヤノン株式会社 出力方法
US5475807A (en) * 1988-12-19 1995-12-12 Canon Kabushiki Kaisha Character processing apparatus
JP2935510B2 (ja) * 1989-09-26 1999-08-16 キヤノン株式会社 出力装置及び出力方法
JPH03233689A (ja) * 1990-02-09 1991-10-17 Fuji Xerox Co Ltd アウトラインデータ描画装置
US5233685A (en) * 1990-06-12 1993-08-03 Wordperfect Corporation Method and apparatus for integrated graphical and textual character printing
JP2980732B2 (ja) 1991-07-05 1999-11-22 沖電気工業株式会社 アウトラインフォントの生成方法
US5301267A (en) * 1991-09-27 1994-04-05 Adobe Systems Incorporated Intelligent font rendering co-processor
US5428728A (en) * 1991-09-30 1995-06-27 Destiny Technology Corporation Method and apparatus for outline font character generation in dot matrix devices
JP2990671B2 (ja) 1992-05-30 1999-12-13 京セラ株式会社 画像平滑化処理方式
JP2959612B2 (ja) 1994-02-14 1999-10-06 キヤノン株式会社 ドットパターンからのベクトル座標発生方法及び装置
US5600772A (en) * 1994-08-17 1997-02-04 Printronix, Inc. Bit map character convertor using chain-codes for the character filling process
US6226400B1 (en) * 1998-06-24 2001-05-01 Colorcom, Ltd. Defining color borders in a raster image by identifying and breaking contrast ties
KR100361387B1 (ko) * 1999-01-06 2002-11-21 마츠시타 덴끼 산교 가부시키가이샤 다각형 묘화 방법, 및 다각형 묘화 장치

Also Published As

Publication number Publication date
US6753862B1 (en) 2004-06-22
TW509888B (en) 2002-11-11
CN1160667C (zh) 2004-08-04
KR100376196B1 (ko) 2003-03-15
JP3791259B2 (ja) 2006-06-28
CN1295309A (zh) 2001-05-16
HK1036865A1 (en) 2002-01-18
KR20010050918A (ko) 2001-06-25

Similar Documents

Publication Publication Date Title
JP2001109455A (ja) アウトラインスムージング処理方法ならびにその装置
JPH0345076A (ja) 画像データの処理方式
US5524198A (en) Character or graphic processing method and apparatus
US5537131A (en) Character generating method and apparatus
JP3037854B2 (ja) 文字生成方法及びその装置
JP2010224145A (ja) 情報処理装置、制御装置及びプログラム
JP3416489B2 (ja) フォント処理装置およびフォント処理用プログラムを記録した記録媒体
JP3034140B2 (ja) 文字生成方法及びその装置
JP2000066658A (ja) 画像処理装置および記録媒体
JP3315861B2 (ja) 文字生成装置
JP2637921B2 (ja) 文字記号発生装置
JP2000242461A (ja) 画像処理装置
JP2806790B2 (ja) 文字発生装置およびその方法
JPH09281947A (ja) 印刷画像作成方法およびその装置
JPH10222146A (ja) 文字表示装置と表示方法及びフォント情報
JP2700124B2 (ja) 図形表示方法及びその実施装置
JP2976671B2 (ja) データ展開方法
JPH09138679A (ja) データ処理装置
JP2000305551A (ja) アウトラインフォントデータによる文字発生装置
JPH1145343A (ja) 多角形図形描画装置
JPH0239361A (ja) 文書処理装置
JPH0950272A (ja) アウトラインフォント生成方法およびアウトラインフォント生成装置
JPH09274654A (ja) 出力制御装置及び出力制御方法及び制御プログラムを記憶した記憶媒体
JPH0239359A (ja) 文書処理装置
JPH07244473A (ja) 文字生成方法及びその装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050630

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: 20060314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060327

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: 20090414

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140414

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees