説明

情報処理装置、プログラム及び情報処理方法

【課題】漢字などの種類の多い文字のための新たなフォントをより容易に作成することを可能とすること。
【解決手段】複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、を備える情報処理装置を提供する。上記情報処理装置は、上記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース(GUI)をユーザに提供するユーザインタフェース部、をさらに備えてもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【0002】
近年、インターネット上には、主にアルファベットを用いて欧文を記述するための様々な種類のフォントが公開されている。一方、和文を記述するために利用可能なフォントの種類は少なく、利用可能であっても高価である場合が多い。これは、日本語において使用される文字の種類が欧米の言語と比較して格段に多く存在しており、新たなフォントを設計及び作成するための負担が大きいためである。特に、漢字の種類は多く、例えばUnicodeには約7万字の漢字が収録されている。このような状況は、例えば中国語についても同様であろう。
【0003】
新たなフォントの設計に関連する技術として、下記特許文献1は、ユーザがペンタブレットで入力した手書き文字のストロークに基づいて、標準のフォントをユーザ個人の筆跡の特徴を反映した新たなフォントに変換する技術を提案している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−85130号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載された技術は、筆跡に依存しない新たなフォントを自由に作成できるものではない。また、個人の筆跡の特徴を反映したフォントは、一般に公開して他のユーザに利用させる目的にはあまり適さない。
【0006】
そこで、本発明は、漢字などの種類の多い文字のための新たなフォントをより容易に作成することを可能とする、新規かつ改良された情報処理装置、プログラム及び情報処理方法を提供しようとするものである。
【課題を解決するための手段】
【0007】
本発明のある実施形態によれば、複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、を備える情報処理装置が提供される。
【0008】
また、上記情報処理装置は、上記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース(GUI)をユーザに提供するユーザインタフェース部、をさらに備えてもよい。
【0009】
また、上記情報処理装置は、上記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する1つ以上の主成分を決定する分析部、をさらに備え、上記合成比率は、上記GUIを通じて調整される上記1つ以上の主成分の値に応じて決定されてもよい。
【0010】
また、上記GUIは、上記1つ以上の主成分の値を調整するためのスライダを含んでもよい。
【0011】
また、上記情報処理装置は、上記合成部により生成される上記新たなフォントのための骨格データが表す骨格に肉付けすることにより上記新たなフォントを生成する肉付け部、をさらに備えてもよい。
【0012】
また、各フォントの骨格データは、当該フォントに含まれる各文字を構成する1つ以上のストロークのストローク種別を含み、上記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、上記新たなフォントのための骨格データが表す骨格に肉付けをしてもよい。
【0013】
また、上記情報処理装置は、既存のフォントを解析することにより上記既存のフォントの骨格データを抽出する抽出部、をさらに備えてもよい。
【0014】
また、本発明の別の実施形態によれば、情報処理装置を制御するコンピュータを、複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得し、取得した上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部、として機能させるためのプログラムが提供される。
【0015】
また、上記プログラムは、上記コンピュータを、上記合成部における骨格データの合成比率を調整するためのGUIをユーザに提供するユーザインタフェース部、としてさらに機能させてもよい。
【0016】
また、上記プログラムは、上記コンピュータを、上記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する1つ以上の主成分を決定する分析部、としてさらに機能させ、上記合成比率は、上記GUIを通じて調整される上記1つ以上の主成分の値に応じて決定されてもよい。
【0017】
また、上記GUIは、上記1つ以上の主成分の値を調整するためのスライダを含んでもよい。
【0018】
また、上記プログラムは、上記コンピュータを、上記合成部により生成される上記新たなフォントのための骨格データが表す骨格に肉付けすることにより上記新たなフォントを生成する肉付け部、としてさらに機能させてもよい。
【0019】
また、各フォントの骨格データは、当該フォントに含まれる各文字を構成する1つ以上のストロークのストローク種別を含み、上記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、上記新たなフォントのための骨格データが表す骨格に肉付けをしてもよい。
【0020】
また、上記ユーザインタフェース部は、上記輪郭データを編集するためのGUIをユーザにさらに提供してもよい。
【0021】
また、上記プログラムは、上記コンピュータを、既存のフォントを解析することにより上記既存のフォントの骨格データを抽出する抽出部、としてさらに機能させてもよい。
【0022】
また、本発明の別の実施形態によれば、情報処理装置において、複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得するステップと、取得した上記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成するステップと、を含む情報処理方法が提供される。
【発明の効果】
【0023】
以上説明したように、本発明に係る情報処理装置、プログラム及び情報処理方法によれば、漢字などの種類の多い文字のための新たなフォントをより容易に作成することが可能となる。
【図面の簡単な説明】
【0024】
【図1】一実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図2】既存のフォントから抽出される文字の骨格の一例について説明するための説明図である。
【図3】骨格データの修正の一例について説明するための説明図である。
【図4】骨格データの一例について説明するための第1の説明図である。
【図5】骨格データの一例について説明するための第2の説明図である。
【図6】骨格データ分析処理の一例について説明するための説明図である。
【図7】骨格合成画面の一例を示す説明図である。
【図8】輪郭データの一例について説明するための説明図である。
【図9】輪郭データ編集画面の一例を示す説明図である。
【図10】一実施形態に係る骨格データ生成処理の流れの一例を示すフローチャートである。
【図11】一実施形態に係る新規フォント生成処理の流れの一例を示すフローチャートである。
【図12】一変形例に係るシステムの構成について説明するためのブロック図である。
【発明を実施するための形態】
【0025】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0026】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
1.一実施形態に係る装置の構成例
1−1.骨格データ生成部
1−2.骨格データベース
1−3.新規フォント生成部
2.一実施形態に係る処理の流れ
2−1.骨格データ生成処理
2−2.新規フォント生成処理
3.変形例
4.まとめ
【0027】
<1.一実施形態に係る装置の構成例>
まず、図1〜図9を用いて、本発明の一実施形態に係る情報処理装置の構成の一例を説明する。本明細書において説明する情報処理装置は、例えば、PC(Personal Computer)若しくはワークステーションなどの汎用的な情報処理装置、スマートフォン、携帯情報端末若しくはゲーム端末などの端末装置、又はデジタル家電機器などのその他の種類の装置であってもよい。
【0028】
図1は、本実施形態に係る情報処理装置100の構成の一例を示すブロック図である。図1を参照すると、情報処理装置100は、骨格データ生成部110、骨格データベース(DB)130及び新規フォント生成部140を備える。
【0029】
[1−1.骨格データ生成部]
骨格データ生成部110は、新たなフォントの作成のために使用される後述する骨格データを予め生成するための処理ブロックである。骨格データ生成部110は、既存フォントDB114、骨格抽出部118及び骨格修正部122を含む。骨格抽出部118及び骨格修正部122は、骨格DB130と接続される。
【0030】
(1)既存フォントDB
既存フォントDB114は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、複数の既存のデジタルフォントについてのフォントデータ(以下、既存フォントデータという)を予め記憶している。フォントデータは、例えば、個々のグリフのデザインを表すビットマップ又は制御点座標などを文字コードごとに定義するグリフデータを含む。本実施形態では、情報処理装置100が漢字のフォントについてのフォントデータを処理する例を主に説明する。しかしながら、後の説明から明らかであるように、本実施形態は、漢字以外のフォントについても同様に適用可能である。既存フォントDB114により記憶される既存フォントデータは、例えば、市場で一般的に入手可能な任意のデジタルフォントについてのフォントデータであってよい。
【0031】
(2)骨格抽出部
骨格抽出部118は、既存フォントDB114により記憶されている既存フォントデータを読み込み、各フォントを解析することにより、各フォントに含まれる文字の骨格(skeleton)を表す骨格データを抽出する。例えば、既存のフォントの1つがビットマップフォントである場合には、骨格抽出部118は、当該フォントの各グリフのビットマップにHilditch法又はZhang Suen法などの細線化(Thinning)アルゴリズムを適用することにより、骨格データを抽出することができる。また、例えば、既存のフォントの1つがスケーラブルフォントである場合には、骨格抽出部118は、当該フォントのフォントデータからストロークの位置座標等を収集することにより、骨格データを抽出することができる。さらに骨格抽出部118は、抽出した骨格データを構成する各ストロークの種類をストロークの形状に基づいて認識し、各ストロークにストローク種別を付与する。そして、骨格抽出部118は、複数の既存のデジタルフォントについての骨格データを、骨格DB130に記憶させる。
【0032】
図2は、既存のフォントから抽出される文字の骨格の一例について説明するための説明図である。図2を参照すると、既存のフォントの1つであるフォントF1についての3つの文字のグリフ(図中上部)及び対応する3つの骨格(図中下部)が示されている。このうち、左の文字(文字コード=12838)の骨格は、3本の横線と1本の縦線を含む4つのストロークからなる。中央の文字(文字コード=13900)の骨格は、3本の横線と1本の縦線と1つの点とを含む5つのストロークからなる。右の文字(文字コード=14705)の骨格は、5本の横線と3本の縦線と1つの点とを含む8つのストロークからなる。このような骨格を表現する骨格データの例について、後にさらに説明する。
【0033】
(3)骨格修正部
骨格修正部122は、骨格抽出部118により抽出された骨格データを、必要に応じて修正する。例えば、一部の種類の既存のフォント(例えば明朝体など)は、グリフの中にいわゆる飾り(serif)を有する。この飾り部分は、細線化アルゴリズムにより1つのストロークとして誤認される可能性がある。この場合、骨格修正部122は、誤認された不要なストローク(例えば、所定の閾値よりも長さの短いストローク)を骨格データから削除してよい。また、骨格修正部122は、骨格データを手動で修正するためのユーザインタフェースを提供し、オペレータに手動で骨格データを修正させてもよい。
【0034】
図3は、骨格データの修正の一例について説明するための説明図である。図3を参照すると、飾りを端部に有する文字(文字コード=12396)についての、修正前の骨格、及び骨格修正部122による修正後の骨格が示されている。図3の例において、修正前の骨格は、ストロークS01に加えて、5つのストロークS02〜S06を含む。これら5つのストロークS02〜S06は、飾りを原因として誤認されたストロークである。骨格修正部122は、例えば、これらストロークS02〜S06を骨格データから削除し、ストロークとしてストロークS01のみを含む骨格データを生成する。
【0035】
[1−2.骨格データベース]
骨格DB130は、骨格抽出部118により抽出され、必要に応じて骨格修正部122により修正される複数のフォントについての骨格データを、記憶媒体を用いて記憶する。そして、骨格DB130は、新規フォント生成部140からの要求に応じて、記憶している骨格データを新規フォント生成部140へ出力する。
【0036】
図4及び図5は、骨格データの一例について説明するための説明図である。図4を参照すると、骨格データ132の構成の一例が示されている。骨格データ132は、例えば、フォントID「F1」、フォント名「ABC」である既存のフォント(以下、フォントF1という)についての骨格データを含む。フォントF1についての骨格データは、フォントF1に含まれる各文字を構成する1つ以上のストロークの各々についての、ストロークID、ストローク種別、始点、終点及び制御点という5つのデータ項目を有する。例えば、文字コード=13900である文字(漢字の“玉”)は、それぞれストロークID=ST01、ST02、ST03、ST04及びST05である5つのストロークにより構成される。
【0037】
ストロークIDは、1つの文字の中で各ストロークを一意に識別するための識別子である。ストローク種別は、ストロークの形状に関する種類を示す情報である。ストローク種別は、典型的には、予め固定的な数だけ定義される。そして、骨格抽出部118は、予め定義されたストローク種別のうち各ストロークに最も適合するストローク種別を、当該ストロークのストローク種別として付与する。例えば、文字コード13900のストロークS01及びS02のストローク種別は、「横線」である。また、文字コード13900のストロークS05のストローク種別は、「点」である。始点及び終点は、各ストロークの線分の端点の位置座標をそれぞれ表す。なお、1つの文字の中で2番目以降のストロークに関し、当該ストロークが直前のストロークから連続的に筆記される(即ち、2つのストロークで1つの“画”をなす)場合には、始点の位置座標の代わりに、直前のストロークの終点への参照が用いられてもよい。制御点は、各ストロークの制御点の位置座標を表す。図4では、1つのストロークが1つの制御点を有する例を示しているが、1つのストロークが有する制御点の数は複数であってもよい。例えば、始点、制御点及び終点により決定されるベジエ曲線を用いて、曲線状のストロークを表現することができる。
【0038】
骨格データ132は、このようなフォントF1についての骨格データに加えて、他の既存のフォントについての骨格データを含む。図5を参照すると、3つの既存のフォントF1、F2及びF3に含まれる文字コード=14705の文字(漢字の“国”)についてのグリフ(図中上部)及び対応する骨格(図中下部)が示されている。図5から理解されるように、文字コードが共通する文字の骨格は、フォントが異なる場合であっても、通常、同じ数及び同種のストロークから構成される。従って、これら複数の既存のフォントについての骨格データを何らかの合成比率で合成することにより、新たなフォントのための不自然でない骨格データを作成することができる。
【0039】
[1−3.新規フォント生成部]
新規フォント生成部140は、ユーザの要望に応じて新たなフォントをより容易に作成することを可能とするための処理ブロックである。図1に示したように、新規フォント生成部140は、分析部144、ユーザインタフェース部148、骨格合成部152、輪郭DB156、肉付け部160及び新規フォントDB164を含む。分析部144及び骨格合成部152は、骨格DB130と接続される。
【0040】
(1)分析部
分析部144は、骨格データを分析することにより、骨格データの合成比率に関するパラメータを決定する。より具体的には、本実施形態において、分析部144は、骨格DB130により記憶されている骨格データが表す文字の骨格を標本とし、主成分分析の手法に従って、注目される文字(以下、分析対象文字という)の骨格に寄与する1つ以上の主成分を決定する。分析部144により決定される1つ以上の主成分は、後に説明するように、骨格合成部152により骨格データの合成比率に関するパラメータとして利用される。
【0041】
図6は、分析部144による骨格データ分析処理の一例について説明するための説明図である。図6には、ある分析対象文字についての骨格データ空間Vが概念的に示されている。本明細書において、骨格データ空間とは、ある分析対象文字の骨格が有する1つ以上のストロークの始点、終点及び制御点の位置座標が取り得るデータのデータ空間をいう。なお、骨格データ空間の変量は、ストロークに関する上記位置座標とは異なる何らかの特徴量を含んでもよい。図6では、説明の簡明さの観点から、骨格データ空間を3次元空間として示している。しかしながら、実際には、骨格データ空間の次元は、分析対象文字の骨格が有するストローク数、並びに各ストロークの始点、終点及び制御点の数に依存し、一般的に3次元よりも大きい。1つの分析対象文字に着目した場合、図5に関連して説明したように、フォントが異なる場合であっても当該分析対象文字を構成するストロークの数及び種類は共通である。そのため、分析対象文字が決定されると、対応する骨格データ空間が定まり、分析部144は、当該骨格データ空間内に各フォントに含まれる分析対象文字の骨格をプロットすることができる。図6左の例では、フォントF1〜F4を含む複数のフォントの分析対象文字の骨格が、骨格データ空間V内にそれぞれプロットされている。
【0042】
分析部144は、このようにプロットした各フォントの分析対象文字の骨格を標本として主成分分析を行う。分析部144は、分析対象文字の骨格に寄与する1つ以上の主成分を決定する。図6の右の例では、分析部144による分析の結果として導出される第1主成分の主成分軸AX1及び第2主成分の主成分軸AX2が示されている。これら2つの主成分軸AX1及びAX2は、例えば、プロットされた複数のフォントの分析対象文字の骨格を平均化した平均的骨格に対応する点Fmを通るように決定される。
【0043】
また、後の説明のために、フォントF1の骨格に対応する点から主成分軸AX1に下ろした垂線と主成分軸AX1との交点をEP1、フォントF4の骨格に対応する点から主成分軸AX1に下ろした垂線と主成分軸AX1との交点をEP2とする。また、これら2つの垂線の外側には、分析部144によりプロットされた点が存在しないものとする。
【0044】
(2)ユーザインタフェース部
ユーザインタフェース部148は、後に説明する骨格合成部152における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース(GUI)をユーザに提供する。また、ユーザインタフェース部148は、後に説明する輪郭DB156により記憶される輪郭データを編集するためのGUIをユーザにさらに提供する。
【0045】
図7は、ユーザインタフェース部148により提供される一例としての骨格合成画面170を示している。図7を参照すると、骨格合成画面170は、分析対象文字指定欄171、文字コード指定欄172、第1のスライダ174、第2のスライダ175、骨格表示領域176及び作成実行ボタン178を含む。
【0046】
ユーザは、例えば、分析対象文字指定欄171に分析対象文字として指定したい一字を入力し、又は文字コード指定欄172に分析対象文字の文字コードを入力することにより、分析部144による主成分分析の対象とする文字を指定することができる。そして、分析対象文字指定欄171又は文字コード指定欄172を介して指定された文字が、分析部144による骨格データ分析処理の分析対象文字となる。
【0047】
第1のスライダ174は、第1主成分の値を調整するためのUIである。第2のスライダ175は、第2主成分の値を調整するためのUIである。例えば、ユーザは、第1のスライダ174を操作することにより、第1主成分の値をゼロから100までのいずれかの値に設定する。また、ユーザは、第2のスライダ175を操作することにより、第2主成分の値をゼロから100までのいずれかの値に設定する。ここで、第1主成分の値ゼロの指定は、例えば、図6の右の骨格データ空間Vにおける端点EP1が指定されることを意味する。また、第1主成分の値100の指定は、例えば、図6の右の骨格データ空間Vにおける端点EP2が指定されることを意味する。さらに、ユーザは、第2のスライダ175を用いて同様に第2主成分の値を設定する。即ち、ユーザは、第1のスライダ174及び第2のスライダ175を用いて、骨格データ空間V内の第1主成分軸AX1及び第2主成分軸AX2により張られる平面上の一点を指定することができる。ユーザインタフェース部148は、このようにユーザにより設定される第1主成分の値及び第2主成分の値を、骨格合成部152へ出力する。
【0048】
骨格表示領域176は、骨格合成部152による暫定的な骨格データの合成の結果として得られる分析対象文字の骨格を表示する領域である。ユーザは、骨格表示領域176に表示される合成結果を確認しながら、第1のスライダ174及び第2のスライダ175を用いて、骨格データの合成比率を調整することができる。また、図7には示していないが、骨格合成画面170は、新たなフォントの各文字の骨格を共通的に回転させ又は変形させるためのGUIを追加的に含んでもよい。
【0049】
なお、分析部144は、骨格データ分析処理において第1主成分のみを決定してもよい。その場合には、ユーザインタフェース部148は、第1主成分の値を調整するためのGUI(例えば、第1のスライダ174)のみをユーザに提供する。また、分析部144は、骨格データ分析処理において3つ以上の主成分を決定してもよい。その場合には、ユーザインタフェース部148は、3つ以上の主成分の値をそれぞれ調整するためのユーザインタフェースをユーザに提供する。ユーザが指定可能な主成分の数が多くなれば、新たなフォントの作成におけるユーザの自由度は高まる。一方、主成分の数が少なければ、ユーザは、より簡易に新たなフォントを作成することができる。主成分の値を調整するためのユーザインタフェースとして、スライダの代わりに、数値入力欄、ラジオボタン又はスピンボタンなどの他の形態のGUIが提供されてもよい。
【0050】
ユーザが骨格合成画面170の作成実行ボタン178を押下すると、次に説明する骨格合成部152による新たなフォントのための骨格データの生成が開始され得る。
【0051】
(3)骨格合成部
骨格合成部152は、骨格DB130に記憶されている複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する。より具体的には、骨格合成部152は、まず、分析部144による骨格データ分析処理の結果として得られる、1つ以上の主成分の各々を導く(骨格データ空間の変量にそれぞれ対応する)係数のセットを取得する。また、骨格合成部152は、ユーザインタフェース部148により提供されるGUIを通じて調整された1つ以上の主成分の値を取得する。次に、骨格合成部152は、取得した係数セット及び主成分の値に基づいて、骨格データの合成のための合成比率を決定する。そして、骨格合成部152は、決定した合成比率を用いて、複数のフォントについての骨格データを合成する。骨格合成部152による骨格データの合成は、分析対象文字だけでなく、複数のフォントに共通する全ての文字について行われ得る。それにより、新たなフォントのための一群の骨格データが生成される。
【0052】
(4)輪郭DB
輪郭DB156は、記憶媒体を用いて、ストローク種別ごとのストロークの輪郭を定義する輪郭データを記憶する。本実施形態において、輪郭データは、ストロークに輪郭を与えるためのテンプレートとしての役割を有する。
【0053】
図8は、輪郭DB156により記憶される輪郭データの一例について説明するための説明図である。図8を参照すると、輪郭データ162において、例えば「横線」、「縦線」、…、「左払い」、「点」などのストローク種別ごとに、ストロークの輪郭と当該ストロークの始点、終点及び制御点との相対的な位置関係が定義されている。図8ではこれら輪郭を図形的に示しているが、実際の輪郭の定義は、例えば輪郭線上の点の位置座標の集合により与えられる。このような輪郭データを定義することで、骨格合成部152により生成される骨格データを輪郭データに従って肉付けすることができる。
【0054】
ユーザインタフェース部148は、輪郭DB156により記憶される上述した輪郭データを編集するためのGUIをユーザに提供する。図9は、ユーザインタフェース部148により提供される一例としての輪郭データ編集画面180を示している。図9を参照すると、輪郭データ編集画面180は、ストローク種別選択欄181、輪郭表示領域182、カーソル183及び保存ボタン184を含む。
【0055】
例えば、ユーザがストローク種別選択欄181において編集したいストローク種別を選択すると、選択されたストローク種別に対応するストロークの標準的な骨格及び輪郭が、輪郭表示領域182に表示される。ユーザは、例えば、輪郭表示領域182に表示された輪郭線上の点をカーソル183を用いて動かすことで、表示されたストローク種別の輪郭を編集することができる。そして、ユーザが保存ボタン184を押下すると、輪郭データ編集画面180において編集された輪郭を表す輪郭データが、対応するストローク種別と関連付けて輪郭DB156に記憶される。
【0056】
なお、ユーザが輪郭データを編集しない場合には、輪郭DB156により予め記憶される既定の輪郭データが次に説明する肉付け部160による肉付け処理のために使用され得る。
【0057】
(5)肉付け部
肉付け部160は、骨格合成部152により生成される新たなフォントのための骨格データが表す骨格に肉付けすることにより、新たなフォントを生成する。例えば、本実施形態において、肉付け部160は、上述した輪郭DB156により記憶されている輪郭データに基づいて、新たなフォントのための骨格データが表す骨格に肉付けをする。より具体的には、肉付け部160は、新たなフォントに含まれる文字の各ストロークのストローク種別に対応する輪郭データにより表される輪郭を、始点、終点及び制御点の位置が適合するように変形させる。そして、肉付け部160は、変形させた輪郭を各ストロークに重ね合わせる。また、肉付け部160は、例えば、処理対象のストロークと近傍のストロークとの間の距離に応じて、処理対象のストロークの輪郭の太さを動的に変化させてもよい。例えば、一定の領域内にストロークが込み入っている(即ち、近傍のストロークとの間の距離が短い)場合には、肉付け部160は、処理対象のストロークの輪郭を相対的に細く変化させる。肉付け部160は、このような処理を、各文字の各ストロークについて繰り返す。新たなフォントをビットマップフォントとして生成する場合には、肉付け部160は、さらに輪郭の内側を塗りつぶす。肉付け部160は、このように生成した新たなフォントのグリフデータを含む新規フォントデータを、新規フォントDB164へ出力する。
【0058】
なお、新たなフォントをアウトラインフォントとして生成する場合には、肉付け部160による塗りつぶし処理は省略されてよい。また、新たなフォントをストロークフォントとして生成する場合には、肉付け部160による肉付け処理が省略されてもよい。
【0059】
(6)新規フォントDB
新規フォントDB164は、記憶媒体を用いて、肉付け部160から入力される新規フォントデータを記憶する。新規フォントデータは、例えば、ユーザにより個人的に利用されてもよく、他のユーザのために公開されてもよい。
【0060】
<2.一実施形態に係る処理の流れ>
次に、図10及び図11を用いて、本実施形態に係る情報処理の流れについて説明する。情報処理装置100による処理は、骨格データ生成部110による骨格データ生成処理及び新規フォント生成部140による新規フォント生成処理に分けられる。
【0061】
[2−1.骨格データ生成処理]
図10は、本実施形態に係る骨格データ生成処理の流れの一例を示すフローチャートである。図10を参照すると、まず、骨格データ生成部110の骨格抽出部118は、既存フォントDB114から1種類の既存のフォントについての既存フォントデータを取得する(ステップS102)。次に、骨格抽出部118は、取得した既存フォントデータに含まれる文字ごとに、ステップS106からステップS112までの処理を繰り返す(ステップS104)。
【0062】
ステップS106において、骨格抽出部118は、例えば細線化アルゴリズムを用いて、処理対象の文字の骨格を構成するストロークを抽出する(ステップS106)。次に、骨格抽出部118は、抽出したストロークにストローク種別を付与する(ステップS108)。そして、骨格抽出部118は、ストローク種別を付与した1つ以上のストロークに関するデータを含む処理対象の文字についての骨格データを、骨格DB130に記憶させる(ステップS110)。次に、骨格修正部122は、必要に応じて、骨格DB130により記憶された骨格データを修正する(ステップS112)。
【0063】
その後、ステップS102において取得された既存フォントデータ内の全ての文字についてのループが終了すると、骨格抽出部118は、既存フォントDB114に記憶されている全ての既存フォントについて処理が終了したか否かを判定する(ステップS114)。ここで、処理が終了していない既存フォントが残っていれば、処理はステップS102に戻り、残っている既存フォントについて骨格データの抽出及び修正が繰り返される。一方、全ての既存フォントについて処理が終了した場合には、図10のフローチャートは終了する。
【0064】
[2−2.新規フォント生成処理]
図11は、本実施形態に係る新規フォント生成処理の流れの一例を示すフローチャートである。図11を参照すると、まず、新規フォント生成部140のユーザインタフェース部148は、ユーザからの要求に応じて、図7に例示したような骨格合成画面170を表示する(ステップS202)。次に、分析部144は、ユーザにより指定される分析対象文字についての複数の既存フォントの骨格データを、骨格DB130から取得する(ステップS204)。次に、分析部144は、主成分分析により、取得した骨格データの骨格データ空間内での1つ以上の主成分を決定する(ステップS206)。
【0065】
次に、骨格合成部152は、骨格合成画面170を介してユーザにより調整された骨格データの合成比率を、分析部144による主成分分析の結果を用いて決定する(ステップS208)。次に、骨格合成部152は、決定した合成比率で、複数の既存フォントの骨格データを共通する文字ごとに順次合成することにより、新たなフォントのための骨格データを生成する(ステップS210)。次に、肉付け部160は、新たな骨格データが現す骨格を輪郭DB156に記憶されている輪郭データを用いて肉付けすることにより、新規フォントデータを生成する(ステップS212)。そして、肉付け部160は、生成した新規フォントデータを新規フォントDB164に記憶させる(ステップS214)。
【0066】
<3.変形例>
図12は、上述した実施形態の一変形例に係るシステムの構成について説明するためのブロック図である。図12を参照すると、情報処理システム10は、骨格抽出装置112、骨格DB130及び情報処理装置142を含む。情報処理装置142は、ネットワーク12を介して端末装置20と接続される。ネットワーク12は、インターネット又はホームネットワークなどの任意の種類のネットワークであってよい。端末装置20は、ユーザにより利用される装置である。端末装置20は、PC(Personal Computer)又はスマートフォンなどの任意の種類の装置であってよい。
【0067】
骨格抽出装置112は、既存フォントDB114、骨格抽出部118及び骨格修正部122を含み、上述した骨格データ生成処理を行う。そして、骨格抽出装置112は、生成した骨格データを骨格DB130に記憶させる。骨格DB130は、骨格抽出装置112又は情報処理装置142の一部であってもよい。
【0068】
情報処理装置142は、分析部144、ユーザインタフェース部148、骨格合成部152、輪郭DB156及び肉付け部160を含み、上述した新規フォント生成処理を行う。本変形例において、情報処理装置142による新規フォント生成処理は、例えば、ネットワーク12を介して端末装置20から送信される要求に応じて行われ得る。また、ユーザインタフェース部148が提供する骨格合成画面170及び輪郭データ編集画面180は、端末装置20の画面上に表示される。そして、情報処理装置142により生成される新規フォントデータは、例えば、情報処理装置142から端末装置20へダウンロードされる。それにより、ユーザは、自らが情報処理装置142の機能を利用して作成した新たなフォントを、端末装置20上で活用することができる。
【0069】
<4.まとめ>
ここまで、図1〜図12を用いて、本発明の一実施形態及びその変形例について説明した。上述した実施形態によれば、複数のフォントについての各フォントに含まれる文字の骨格を表す骨格データを合成することにより、新たなフォントのための骨格データが生成される。従って、ユーザは、合成比率を指定するだけの簡易な操作で、漢字などの種類の多い文字のための新たなフォントを容易に作成することができる。
【0070】
また、本実施形態によれば、合成比率を調整するためのGUIがユーザに提供される。かかるGUIは、例えば、骨格データが表す文字の骨格を標本として主成分分析により決定された1つ以上の主成分の値を調整可能なGUIである。このようなGUIにより、簡易な操作でフォントの全体的な骨格をユーザの好みに合わせて比較的自由に調整することが可能となる。
【0071】
また、本実施形態によれば、骨格データが表す骨格に肉付けをする際に利用される輪郭データを編集するためのGUIがユーザに提供される。かかる輪郭データは、所定の数のストローク種別と関連付けて定義されるデータである。従って、多様な文字についての肉付けの傾向を、ユーザがより容易に編集することができる。
【0072】
また、本実施形態によれば、既存のフォントから上述した骨格データが自動的に抽出される。従って、既存の多数のフォントを分析の対象として扱うことが可能である。
【0073】
なお、本明細書において説明した各装置による一連の処理は、典型的には、ソフトウェアを用いて実現される。一連の処理を実現するソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPU(Central Processing Unit)などのプロセッサにより実行される。
【0074】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0075】
100,142 情報処理装置
114 骨格抽出部
130 骨格データベース(記憶部)
144 分析部
148 ユーザインタフェース部
152 骨格合成部
160 肉付け部


【特許請求の範囲】
【請求項1】
複数のフォントについて、各フォントに含まれる文字の骨格を表す骨格データを記憶する記憶部と、
前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部と、
を備える情報処理装置。
【請求項2】
前記情報処理装置は、
前記合成部における骨格データの合成比率を調整するためのグラフィカルユーザインタフェース(GUI)をユーザに提供するユーザインタフェース部、
をさらに備える、請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置は、
前記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する1つ以上の主成分を決定する分析部、
をさらに備え、
前記合成比率は、前記GUIを通じて調整される前記1つ以上の主成分の値に応じて決定される、
請求項2に記載の情報処理装置。
【請求項4】
前記GUIは、前記1つ以上の主成分の値を調整するためのスライダを含む、請求項3に記載の情報処理装置。
【請求項5】
前記情報処理装置は、
前記合成部により生成される前記新たなフォントのための骨格データが表す骨格に肉付けすることにより前記新たなフォントを生成する肉付け部、
をさらに備える、請求項1に記載の情報処理装置。
【請求項6】
各フォントの骨格データは、当該フォントに含まれる各文字を構成する1つ以上のストロークのストローク種別を含み、
前記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、前記新たなフォントのための骨格データが表す骨格に肉付けをする、
請求項5に記載の情報処理装置。
【請求項7】
前記ユーザインタフェース部は、前記輪郭データを編集するためのGUIをユーザにさらに提供する、請求項6に記載の情報処理装置。
【請求項8】
前記情報処理装置は、
既存のフォントを解析することにより前記既存のフォントの骨格データを抽出する抽出部、
をさらに備える、請求項1に記載の情報処理装置。
【請求項9】
情報処理装置を制御するコンピュータを、
複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得し、取得した前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成する合成部、
として機能させるための、プログラム。
【請求項10】
前記コンピュータを、
前記合成部における骨格データの合成比率を調整するためのGUIをユーザに提供するユーザインタフェース部、
としてさらに機能させるための、請求項9に記載のプログラム。
【請求項11】
前記コンピュータを、
前記複数のフォントについての注目される文字の骨格データが表す骨格を標本として、当該骨格に寄与する1つ以上の主成分を決定する分析部、
としてさらに機能させ、
前記合成比率は、前記GUIを通じて調整される前記1つ以上の主成分の値に応じて決定される、
請求項10に記載のプログラム。
【請求項12】
前記GUIは、前記1つ以上の主成分の値を調整するためのスライダを含む、請求項11に記載のプログラム。
【請求項13】
前記コンピュータを、
前記合成部により生成される前記新たなフォントのための骨格データが表す骨格に肉付けすることにより前記新たなフォントを生成する肉付け部、
としてさらに機能させるための、請求項9に記載のプログラム。
【請求項14】
各フォントの骨格データは、当該フォントに含まれる各文字を構成する1つ以上のストロークのストローク種別を含み、
前記肉付け部は、各ストローク種別と関連付けて定義される輪郭データに基づいて、前記新たなフォントのための骨格データが表す骨格に肉付けをする、
請求項13に記載のプログラム。
【請求項15】
前記ユーザインタフェース部は、前記輪郭データを編集するためのGUIをユーザにさらに提供する、請求項14に記載のプログラム。
【請求項16】
前記コンピュータを、
既存のフォントを解析することにより前記既存のフォントの骨格データを抽出する抽出部、
としてさらに機能させるための、請求項9に記載のプログラム。
【請求項17】
情報処理装置において、
複数のフォントについて各フォントに含まれる文字の骨格を表す骨格データを記憶媒体から取得するステップと、
取得した前記複数のフォントについての骨格データを合成することにより、新たなフォントのための骨格データを生成するステップと、
を含む情報処理方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−78600(P2012−78600A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−224346(P2010−224346)
【出願日】平成22年10月1日(2010.10.1)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】