JP2014142789A - 情報処理装置、情報処理方法 - Google Patents
情報処理装置、情報処理方法 Download PDFInfo
- Publication number
- JP2014142789A JP2014142789A JP2013010468A JP2013010468A JP2014142789A JP 2014142789 A JP2014142789 A JP 2014142789A JP 2013010468 A JP2013010468 A JP 2013010468A JP 2013010468 A JP2013010468 A JP 2013010468A JP 2014142789 A JP2014142789 A JP 2014142789A
- Authority
- JP
- Japan
- Prior art keywords
- character
- character string
- information processing
- processing apparatus
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】 文字列を、視認性の低減を抑えつつ規定の範囲内に収まるように描画するための技術を提供すること。
【解決手段】 領域の高さをRHとすると、0<θ<1を満たす規定のθを用いて、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を第1の縮小率として求める。文字列中の各文字について、該文字を第1の縮小率で縮小した縮小文字の高さが領域の高さを超えているか否かを判断し、超えていれば対象文字として特定する。対象文字を第1の縮小率で縮小した縮小文字の高さをHとすると、第1の縮小率×RH/Hを第2の縮小率として求める。非対象文字は第1の縮小率で縮小して描画し、対象文字は、高さを第2の縮小率で縮小してから描画する。
【選択図】図1
【解決手段】 領域の高さをRHとすると、0<θ<1を満たす規定のθを用いて、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を第1の縮小率として求める。文字列中の各文字について、該文字を第1の縮小率で縮小した縮小文字の高さが領域の高さを超えているか否かを判断し、超えていれば対象文字として特定する。対象文字を第1の縮小率で縮小した縮小文字の高さをHとすると、第1の縮小率×RH/Hを第2の縮小率として求める。非対象文字は第1の縮小率で縮小して描画し、対象文字は、高さを第2の縮小率で縮小してから描画する。
【選択図】図1
Description
本発明は、文字の描画技術に関するものである。
所定の範囲に文字列を収めるには、文字列全体を縮小させるか、所定の範囲からはみ出した文字だけをはみ出した方向に縮小させるのが一般的である。従来、所定の領域内に文字を収めるために、平仮名やアルファベット、漢字のような種類や、文字の複雑さに応じて縦横の伸縮率を独立して変倍することで所定の矩形内に文字列を収める方法が提案されている(特許文献1)。この方法では、入力された文字列によっては個々の文字の大きさにばらつきが生じ、読みにくくなる場合がある。そのため、表示する際の仮倍率を決定し、第1の種類の文字コードのみからなる文字列に関しては表示する際の倍率を統一し、仮倍率と統一された倍率にしたがって描画する方法が提案されている(特許文献2)。
しかしながら、所定の範囲内に文字列を収めるために文字列全体を縮小させると、文字によっては所定の範囲と比べてかなり小さくなる場合がある。また、所定の範囲からはみ出す文字だけをはみ出す方向に縮小させると、例えば大文字と小文字のような本来の文字の大小関係が崩れてしまい、入力した文字列によっては違和感のある描画結果となり得る。特に、入力する文字列にダイアクリティカルマークが付された文字が含まれていると、これらの課題は顕著なものとなる。ダイアクリティカルマークとは、ラテン文字等の文字で、同じ字形の文字であるが発音が区別されるべき場合に、母音を表す文字の上や下に付される記号のことである。従来技術ではこれらの課題を十分に解決できていない。
本発明はこのような問題に鑑みてなされたものであり、文字列を、視認性の低減を抑えつつ規定の範囲内に収まるように描画するための技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は、文字列を規定の領域内に描画する情報処理装置であって、前記文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する手段と、前記領域の、前記文字列を構成する各文字の並び方向に対して垂直方向におけるサイズをRHとすると、0<θ<1を満たす規定のθを用いて、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を第1の縮小率として求める計算手段と、前記文字列中の各文字について、該文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する特定手段と、前記対象文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズをHとすると、前記第1の縮小率×RH/Hを第2の縮小率として求める手段と、前記文字列を構成する各文字のうち、非対象文字は第1の縮小率で縮小して前記領域内に描画し、前記対象文字は、前記垂直方向のサイズを前記第2の縮小率で縮小してから前記領域内に描画する描画手段とを備えることを特徴とする。
本発明の構成により、文字列を、視認性の低減を抑えつつ規定の範囲内に収まるように描画することができる。
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
[第1の実施形態]
先ず、文字列を描画する装置(文字描画処理装置)として機能する情報処理装置の機能構成例について、図2のブロック図を用いて説明する。なお、図2に示した構成は、以下に説明する各処理に関係する構成であり、本実施形態に係る情報処理装置の全ての構成を示したものではない。また、以下に説明する各処理を実行可能な構成であれば、図2に示した構成は適宜変更/変形させてもよい。
先ず、文字列を描画する装置(文字描画処理装置)として機能する情報処理装置の機能構成例について、図2のブロック図を用いて説明する。なお、図2に示した構成は、以下に説明する各処理に関係する構成であり、本実施形態に係る情報処理装置の全ての構成を示したものではない。また、以下に説明する各処理を実行可能な構成であれば、図2に示した構成は適宜変更/変形させてもよい。
文字列取得部201は、規定の領域(描画領域)内に描画する文字列を取得する。この「規定の領域」とは、例えば、情報処理装置に接続されている不図示のモニタ上の領域であってもよい。
文字種分類部202及び文字種情報取得部205は本実施形態では使用せず、後述するケースにおいて使用する。然るに本実施形態では文字種分類部202及び文字種情報取得部205は情報処理装置に組み入れる必要はない。
形状情報取得部203は、文字列取得部201が取得する文字列を構成する各文字の形状を表す形状情報をフォントデータ204(実際にはメモリ中のフォントデータ204)から取得する。本実施形態では、文字列のフォントメトリクス情報を取得する。
描画範囲取得部206は、文字列取得部201が取得した文字列を描画する領域(上記の規定の領域に相当)を示す情報(例えば描画する領域の左上隅の位置と右下隅の位置や、該領域の高さと幅)を取得する。
閾値取得部207は、後述する閾値を取得する。この閾値は予め定められたものを外部から若しくは情報処理装置内のメモリから取得するようにしてもよいし、ユーザ操作により適宜設定されたものを取得するようにしてもよい。
第1伸縮率決定部208は、形状情報取得部203が取得したフォントメトリクス情報、描画範囲取得部206が取得した情報、閾値取得部207が取得した閾値、を用いて、文字列取得部201が取得した文字列に対する伸縮率(第1の伸縮率)を求める。
収まり判定部209は、第1の伸縮率で伸縮した文字列(伸縮文字列)を描画範囲取得部206が取得した情報によって規定される描画領域内に描画した場合に、該描画領域からはみ出している文字があるか否かをチェックする。そして収まり判定部209は、はみ出している文字があると判断した場合には、その旨を第2伸縮率決定部210に通知する。なお、収まり判定部209は、はみ出している文字はないと判断した場合には、その旨を描画処理部211に通知する。
第2伸縮率決定部210は、収まり判定部209がはみ出している文字として特定した文字(対象文字)を描画領域内に納めるための伸縮率(第2の伸縮率)を求める。そして第2伸縮率決定部210は、求めた第2の伸縮率を、描画処理部211に対して送出する。
描画処理部211は、文字列を構成する各文字を、該文字に対する伸縮率で伸縮して描画領域内に描画する。即ち、対象文字は、第2の伸縮率で伸縮して描画し、非対象文字は、第1の伸縮率で伸縮して描画する。実施形態としては、対象文字や非対象文字は、伸長してもよいし、縮小してもよいが、以降の説明では、縮小する場合の例を説明する。
ここで、従来の方法で文字列を描画領域内に描画する場合に発生する問題点について、図3を用いて説明する。図3(a)〜(c)の描画領域301はいずれも同じサイズである。
ここで、文字列302にはアルファベットの大文字と小文字が混在しており、左から1文字目の大文字「A」と7文字目の小文字「o」にはそれぞれ、ダイアクリティカルマークであるリング記号とウムラウト記号が上部に付されている。ダイアクリティカルマークとは、ラテン文字などの文字で同じ字形の文字であるが発音が区別されるべき場合に母音を表す文字の上や下に付される記号のことである。ダイアクリティカルマークにはリングやウムラウトのほかにセディーユ、チルダなどがある。
図3(a)には、描画領域301の高さ100ピクセルと同じフォントサイズ100ピクセルで描画した文字列302が示されている。図3(a)では、ダイアクリティカルマークの付された文字「A」や「o」の上部が描画領域301からはみ出している。図3(b)には、100ピクセルの高さに全て収まるように文字列302全体を縮小して描画した結果を示している。図3(b)では、文字列302の全ての文字が描画領域301内に収まるが、小文字の大きさが描画領域301に対してかなり小さくなる。大文字の上にダイアクリティカルマークのような記号が付される文字と、小文字が混在する文字列においては、このような課題が顕著になる。図3(a)においてはみ出している文字(ここではダイアクリティカルマークの付された「A」と「o」)だけを、はみ出した方向(この場合高さ方向)に縮小して描画領域301に収めた結果を図3(c)に示す。図3(c)に示した描画結果では、文字「A」が小文字の高さ303よりも低くなってしまい、違和感のある表示となる。これは、はみ出した方向にさらに縮小させたときの縮小率が大きい場合にこのような課題が生じる。
本実施形態ではこのような問題を解消すべく以下に説明する各処理を実行し、文字列を違和感なく描画領域内に納めて描画する。本実施形態に係る情報処理装置が、与えられた文字列を規定のサイズ(高さ)の描画領域内に描画するために行う処理について、同処理のフローチャートを示す図4を用いて説明する。
ステップS401では、文字列取得部201は、描画領域に描画する文字列を取得する。以下の説明では、文字列取得部201が図3に示した文字列302を取得したケースについて説明するが、以下の説明はこのようなケースに限るものではない。また、本実施形態では、この文字列302において左端の文字から右端の文字までの各文字を順に描画する。文字列302は大文字と小文字で構成されたラテン文字である。
ステップS402では、描画範囲取得部206は、文字列302の描画領域を示す情報を取得する。本実施形態では、描画領域の高さ(文字列302を構成する各文字の並び方向(ここでは水平方向)に対して垂直方向)である「100ピクセル」の情報を取得する。しかし、文字の並び順によっては、取得するものは水平方向の幅でもよく、その両方による矩形領域でも構わない。
ステップS403では、形状情報取得部203は、文字列302のフォントメトリクス情報をフォントデータ204(実際にはメモリ中のフォントデータ204)から取得する。取得するフォントのメトリクス情報について図5を用いて説明する。
フォントデータ204に格納されているメトリクス情報の種類は多数あるが、本実施形態ではアウトラインフォントのフォントデータに対し、図5に示す各高さの情報を取得する。
baseline501は、欧文に限らず様々な文字体系に存在する仮想的なラインであり、アルファベットの場合では大文字の下端が揃う水平線である。maxHeight502は、フォントデータに格納されている文字の中で最大の高さである。capHeight503は、欧文書体での大文字の高さを指す。xHeight504は、小文字の高さを指す。descend505は、小文字におけるbaseline501よりはみ出た部分の下端の高さである。これらの高さは全てbaseline501からの高さである。
図4に戻って、次に、ステップS405では、閾値取得部207は、閾値θを取得する。本実施形態では、この閾値θは、大文字の高さに対する小文字の高さの比率の閾値であり、図5に示したcapHeightに対するxHeightの比率の閾値である。ここでは一例としてこの閾値θは0.9(90%)とする。これは、小文字の高さが大文字の高さに対して90%より大きくなるような縮小を文字列に対して行ってはいけないことを示している。
そして、ステップS406では、第1伸縮率決定部208は、第1の縮小率を求める。ステップS406における処理の詳細を、図6のフローチャートを用いて説明する。もちろん、図6のフローチャートにおける各ステップの処理の主体はいずれも、第1伸縮率決定部208である。
ステップS601では、フォントメトリクス情報からcapHeightとxHeightとを取得する。そしてステップS602では、xHeight/capHeightが閾値θ以上であるか否かを判断する。この判断の結果、xHeight/capHeightが閾値θ以上であれば、処理はステップS603に進み、xHeight/capHeightが閾値θ未満であれば、処理はステップS604に進む。
本実施形態では、描画領域の高さ(100ピクセル)に文字を収めることが目的であるため、はみ出すような文字があることを前提としており、はみ出した場合には描画領域に収まるようにその文字をはみ出した方向に縮小させる。そのため、比率(xHeight/capHeight)が閾値θ以上であれば、縮小させるとその比率はさらに大きくなる。よってこの比率が閾値θ以上であれば、閾値θを考慮する必要がなくなる。
そのため、ステップS603では、capHeightとdescendとの和が、描画領域の高さとなるように第1の縮小率を決定する。即ち、第1の縮小率は、描画領域の高さ/(capHeight+descend)を計算することによって求める。
一方、比率(xHeight/capHeight)が閾値θ未満の場合、それは仮にはみ出す文字があってもそれを更に縮小できる余地があることを意味する。前述した課題の1つでもある「文字が小さくなりすぎる」ことを抑制するためには、はみ出した文字に対する縮小率を、小文字の大文字に対する高さの比率が90%を超えない最大の値にすることが望ましいことになる。
以下では説明上、maxHeightが2171ピクセル、capHeightが1493ピクセル、xHeightが1120ピクセル、descendが483ピクセルであるとする。しかし、これらの値はあくまでも一例であり、以下の説明は、このケースに限るものではない。
大文字の高さに対して小文字の高さが90%となるような大文字の高さ、即ち、大文字の最大縮小高さは、1120/0.9=約1245ピクセルである。然るに、大文字に対して適用できる最大縮小率は1245/1493=約0.84倍となる。これは、たとえ大文字が描画領域からはみ出したとしてもこの値までは垂直方向(高さ方向)に縮小できることを表す。
然るに、maxHeightの0.84倍の高さである約1284ピクセルと、descendの和(ここの例では約0.04335倍)である1823ピクセルが、描画領域の高さ(100ピクセル)に収まるような縮小率が第1の縮小率となる。具体的には、描画領域の高さ/(maxHeight×0.84+descend)を計算することで第1の縮小率を求める。ステップS604では、このような計算を行うことで、第1の縮小率を求める。
図7(a)には、描画領域701の高さ100ピクセルと同じフォントサイズ100ピクセルで描画した文字列が示されている。図7(a)〜(c)の描画領域701はいずれも同じサイズである。この文字列に対してステップS604で求めた第1の縮小率を用いた縮小処理を行うと、図7(b)に示す如くの結果となる。
図3(b)の文字列は、maxHeightの2171ピクセルとdescendの483ピクセルの和である2654ピクセルが描画領域301の高さ100ピクセルに収まるような縮小率で縮小して描画したものである。この縮小率は100/2654=約0.03768倍である。そのため、図3(b)の小文字に比べると図7(b)の小文字は若干大きい。
図7(a)の文字列はcapHeightの1493ピクセルとdescendの483ピクセルの和である1976ピクセルが描画領域701の高さ100ピクセルに収まるような縮小率で縮小して描画したものである。この縮小率は100/1976=約0.05061倍である。そのため図7(b)は図7(a)と比べると全体的に小さくなっているが、それでもリング記号が付された文字「A」の上部は描画領域701から少しはみ出している。このリング記号が付された文字「A」はこのフォントの最大の高さを有する文字である。このはみ出した部分を描画領域701に収めるためには、大文字の高さを、先に算出した大文字に適用できる最大縮小率である0.84倍に縮小すればよい(この処理は後述する図4のS408に相当する)。そのときの描画結果が図7(c)である。このときの「A」部分の高さは、1493×0.04335×0.84=約54.366ピクセルであり、小文字の高さは1120×0.04335=48.552ピクセルである。大文字に対する小文字の高さの比率は48.552/54.366×100=約89.3%となり、閾値である90%より小さく、かつ描画領域に文字列が収まっている。然るに、ステップS604で求めた第1の縮小率で縮小した文字であれば、描画領域からはみ出た方向に対して収まるようにさらに縮小しても、比率に関する閾値90%を超えないことが示される。
ステップS407では、収まり判定部209は、文字列302の先頭文字から順に参照し、未選択の文字を1つ選択する。そしてこの選択した文字を包含する外接矩形をステップS406で求めた第1の縮小率で縮小した縮小外接矩形の高さが描画領域の高さを超えているか否かを判断する。この判断の結果、超えていると判断した場合には、処理はステップS408に進み、超えていないと判断した場合には、処理はステップS409に進む。
ステップS408では、第2伸縮率決定部210は、縮小外接矩形の高さが描画領域の高さを超えていると判断された文字を対象文字とし、該対象文字に対する縮小率である第2の縮小率を求める。
第2の縮小率は水平方向と垂直方向それぞれ独立して決めることができるが、本実施形態では、垂直方向のはみ出しだけを考慮しているため、垂直方向の縮小率のみが変更される。第1の縮小率をS、対象文字を包含する外接矩形の高さをHピクセルとすると、水平方向の第2の縮小率SxはSx=S、垂直方向の第2の縮小率SyはSy=S×(描画領域の高さ)/Hとなる。
第2の縮小率Syを大文字の垂直方向にかけても、小文字の高さが大文字の高さに対して90%より大きくならないのは、前述の説明より明らかである。このSx,Syを、対象文字に対する第2の縮小率とする。
ステップS409では描画処理部211は、ステップS407で選択した文字が対象文字であれば、この対象文字を第2の縮小率に従って縮小して描画する。一方、描画処理部211は、ステップS407で選択した文字が非対象文字であれば、この非対象文字を第1の縮小率に従って縮小して描画する。
ステップS410では、収まり判定部209は、文字列302を構成する全ての文字を選択したか否かを判断する。この判断の結果、全ての文字を選択した場合には、図4のフローチャートに従った処理は終了し、まだ未選択の文字が残っている場合には、処理はステップS407に戻り、未選択の文字について以降の処理を行う。
本実施形態では、欧文を例に横書きの文字列に対して文字列全体を縮小後、垂直方向にはみ出した文字を垂直方向にさらに縮小することで文字列を構成する全ての文字を描画領域内に収めた。しかし、縦書きの文字列に対しても、はみ出す方向および縮小させる方向が水平方向に変わるだけで、はみ出す方向に対してさらに縮小させる本実施形態で示した方法が成り立つことは言うまでもない。
ここで、第1の実施形態をまとめると、第1の実施形態に係る情報処理装置は、ようは、文字列を規定の領域内に描画する情報処理装置である。先ず、文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する。そして、この領域の、文字列を構成する各文字の並び方向に対して垂直方向におけるサイズをRHとすると、0<θ<1を満たす規定のθを用いて第1の縮小率を求める。第1の縮小率は、RH/{maxHeight×xHeight/(θ×capHeight)+descend}である。
そして、文字列中の各文字について、該文字を第1の縮小率で縮小した縮小文字の上記垂直方向のサイズが領域の垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する。そして、対象文字を第1の縮小率で縮小した縮小文字の上記垂直方向のサイズをHとすると、第1の縮小率×RH/Hを第2の縮小率として求める。
そして、文字列を構成する各文字のうち、非対象文字は第1の縮小率で縮小して領域内に描画し、対象文字は、上記垂直方向のサイズを第2の縮小率で縮小してから領域内に描画する。
[第2の実施形態]
大文字と小文字とが混在する文字列を規定のサイズの描画領域内に納めて描画する場合における新たな課題について、図8を用いて説明する。図8(a)は描画領域801の高さ100ピクセルに基づき、フォントサイズ100pxで文字列802を描画した結果を示している。文字列802は図3で用いた文字列302のうち左から4文字目の小文字「s」が大文字「S」に変更されている。図8(b)は、この文字列802を第1の実施形態に従って描画領域801内に描画した結果を示している。図8(a)ではみ出していた1文字目のリング記号の付された「A」は描画領域801に収まるように垂直方向に縮小されている。しかし、4文字目の「S」は図8(a)ではみ出していないのではみ出しを修正する垂直方向への縮小がなされていない。そのため、この2文字は同じ文字種(大文字)であるにも関わらず、高さが異なっていて若干の違和感を覚える。線803は1文字目のリング記号の付された文字の「A」部分の高さを示している。
大文字と小文字とが混在する文字列を規定のサイズの描画領域内に納めて描画する場合における新たな課題について、図8を用いて説明する。図8(a)は描画領域801の高さ100ピクセルに基づき、フォントサイズ100pxで文字列802を描画した結果を示している。文字列802は図3で用いた文字列302のうち左から4文字目の小文字「s」が大文字「S」に変更されている。図8(b)は、この文字列802を第1の実施形態に従って描画領域801内に描画した結果を示している。図8(a)ではみ出していた1文字目のリング記号の付された「A」は描画領域801に収まるように垂直方向に縮小されている。しかし、4文字目の「S」は図8(a)ではみ出していないのではみ出しを修正する垂直方向への縮小がなされていない。そのため、この2文字は同じ文字種(大文字)であるにも関わらず、高さが異なっていて若干の違和感を覚える。線803は1文字目のリング記号の付された文字の「A」部分の高さを示している。
この課題の解決方法の一例である処理について、同処理のフローチャートを示す図9を用いて説明する。なお、本実施形態においてもこの処理は図2に示した機能構成例を有する情報処理装置が行うものとする。
ステップS901では、図4,6を用いて説明した上記処理を実行することで、第1の縮小率、第2の縮小率を求める。なお、第2の縮小率は必ず求まるものではないが、ここでは第1の縮小率及び第2の縮小率が求まったとして説明する。これにより、各文字の縮小率が得られたことになる。
ステップS902では、文字列(図8の場合は文字列802)を構成する各文字のうち、最大の縮小率を求めた文字と、該最大の縮小率と、を特定する。特定する文字は、文字列の中で最も大きな文字である。
ステップS903では、文字列を構成する各文字を順に参照し、未選択の文字を1つ選択する。そしてこの選択した文字の文字種が、ステップS902で特定した文字種と同じであるか否かを判断する。ここでは文字種として大文字、小文字を用いるので、例えば、ステップS902で特定した文字が大文字である場合には、ステップS903では、選択した文字が大文字であるか否かを判断する。
そしてこの判断の結果、選択した文字の文字種が、ステップS902で特定した文字種と同じである場合には、処理はステップS904に進み、同じではない場合には、処理はステップS905に進む。
ステップS904では、選択した文字に対する縮小率を、ステップS902で特定した最大の縮小率に変更する。そしてステップS906では、文字列を構成する全ての文字をステップS903で選択したか否かを判断する。この判断の結果、全ての文字を選択した場合には、図9のフローチャートに従った処理は終了し、まだ未選択の文字が残っている場合には、処理はステップ903に戻り、未選択の文字について以降の処理を行う。
このように、図9のフローチャートに従った処理によれば、最大の縮小率を求めた文字と同じ文字種の文字は全て最大の縮小率を有することになり、それぞれ同じ縮小率となる。従って、このように、第1の実施形態で決定した各文字の縮小率をこのようにして更新すると、この更新した縮小率に従って文字列を構成する各文字を縮小して描画領域内に描画する。
本実施形態では、入力された文字列全てにおいてステップS903での判断を行ったが、例えば同じ行、あるいは規定の文字数やピクセル数、幅などの範囲内において、同じ文字種かどうかを判断してもよい。
図9のフローチャートに従った処理により決まった縮小率で文字列802を縮小して描画領域801内に描画した文字列802を図8(c)に示す。線804は小文字の高さを示している。大文字である1文字目の「A」部分の高さと4文字目の「S」の高さが揃い、かつ他の小文字の高さは大文字の90%より大きくならず、描画領域に収める事ができる。
[第3の実施形態]
第1,2の実施形態では、欧文で使用されるダイアクリティカルマークが付された大文字と小文字が混在する文字列を例に説明したが、本実施形態においては、日本語のルビ文字についても本手法が適用できることを説明する。
第1,2の実施形態では、欧文で使用されるダイアクリティカルマークが付された大文字と小文字が混在する文字列を例に説明したが、本実施形態においては、日本語のルビ文字についても本手法が適用できることを説明する。
図10(a)はルビを含む文字列1001を、従来の方法で、描画領域1002(高さ100px)に対し、フォントサイズ100pxで描画したときの描画結果である。ルビ文字1003が描画領域1002からはみ出している。このルビ文字1003までを描画領域1002に収めるために文字列1001全体を縮小した結果を示したものが図10(b)である。点線1004は文字「憂鬱」のルビ文字を含まない部分の高さを示している。全体は収まり文字のバランスもよいが、全体が小さくなりすぎてしまう。図10(a)ではみ出しているルビ文字1003を含む文字「憂鬱」だけを垂直方向に縮小した結果を示したものが同図10(c)である。平仮名の高さとルビの親文字である「憂鬱」の高さがかなり違うため、これも違和感を覚える。
そこで本実施形態では、文字種分類部202は、文字列取得部201が取得した文字列を構成する各文字を第1の文字(第1の文字種)と第2の文字(第2の文字種)とに分類する。即ち、ルビ文字がふられている文字とルビ文字がふられていない文字とに分類する。文字種情報取得部205は、この分類内容を第1伸縮率決定部208に通知する。以降の処理は第1の実施形態で説明したとおりである。即ち、ルビ文字がふられている文字を、ダイアクリティカルマークの付された「A」や「o」と同様にして取り扱う。
ルビ文字をHTMLで表記する場合、文字列1001を例に挙げると、図10(f)のようになる。また、Unicodeで表記する場合は以下に示すルビ表示のための制御文字を使用する。ルビを乗せる文字を親文字と呼び、その親文字の開始指定文字であるU+FFF9、ルビの開始指定文字であるU+FFFA、ルビの終止指定文字であるU+FFFBの3つである。これらを用いて文字列1001を表記すると図10(g)のようになる。
第1、第2の文字種を識別するためには、ルビのためのHTLMタグやルビ表示制御文字を解析し、どの文字にルビがふられているかを判別する必要がある。第1の実施形態では、図4のステップS410での処理にこの処理が含まれることになる。なお、親文字の上にどの程度の大きさや幅(図10の幅1005に相当する)でルビをふるかは描画装置に依存するため、ルビ文字を振るのに必要な幅やフォントサイズを取得する構成が図6のステップS601で必要となる。これにより、ルビ文字及び親文字を、ダイアクリティカルマークの付された「A」や「o」と同様にして取り扱うことができる。
図4のステップS406で決定された文字列全体にかける縮小率で描画した結果が図10(d)であり、第2の縮小率を用いてルビ文字を含む親文字を縮小した結果が図10(e)となる。図10(b)、(e)を比べると、後者の方が、全体が大きく読みやすい。また、図10(c)、(e)を比べると、ルビ文字無しの文字とルビ文字有りの文字の高さは図10(e)の方が、図10(c)と比べると差が無く、違和感を低減できていると言える。
なお、第1〜3の実施形態は、例えば次のような状況に適用が可能である。例えば、情報処理装置上で動作するGUI(グラフィカルユーザインターフェース)をユーザが操作することで描画対象となる文字列を選択すると共に、描画領域を設定する。この選択する文字は、第1の実施形態で説明したような「ダイアクリティカルマークが付された大文字と小文字が混在する文字列」であってもよい。また、第2の実施形態で説明したような「ダイアクリティカルマークが付された大文字と付されていない大文字と小文字が混在する文字列」であってもよい。また、第3の実施形態で説明したような、「ルビ文字がふられている文字を含む文字列」であってもよい。また、ユーザはGUIを操作して、上記のθなどのパラメータを設定/再設定してもよい。そして、ユーザがGUIを操作して文字列の描画指示を与えると、情報処理装置は該文字列を構成する各文字を該文字に対応する縮小率で縮小し、設定した描画領域内に描画する。また、第1〜3の実施形態のうち2以上を適宜組み合わせて用いてもよい。
[第4の実施形態]
図2に示した各部はハードウェアで構成してもよいが、ソフトウェアで構成してもよい。その場合、このソフトウェアを実行する装置には、例えば、図1に示した構成を有する装置100が適用可能である。
図2に示した各部はハードウェアで構成してもよいが、ソフトウェアで構成してもよい。その場合、このソフトウェアを実行する装置には、例えば、図1に示した構成を有する装置100が適用可能である。
CPU101は、ROM102やRAM103に格納されているコンピュータプログラムやデータを用いて処理を実行することで、本装置100全体の動作制御を行うと共に、各種の処理を実行する。
ROM102には、本装置の設定データやブートプログラムなどが格納されている。RAM103は、外部記憶装置106からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアや、CPU101が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM103は各種のエリアを適宜提供することができる。
表示部105は、CRTや液晶画面などにより構成されており、CPU101による処理結果を画像や文字などでもって表示することができる。例えば、上記のGUIなどを表示してもよい。
描画処理部104は、画像や文字を描画するためのもので、例えば、図2の描画処理部211をハードウェアで構成する場合には、描画処理部104がこの描画処理部211に相当する。
外部記憶装置106は、ハードディスク装置などの大容量情報記憶装置である。この外部記憶装置106には、OS(オペレーティングシステム)や、第1〜3の実施形態において情報処理装置が行うものとして説明した各処理をCPU101に実行させるためのコンピュータプログラムやデータが保存されている。また、第1〜3の実施形態において予め定められている情報として説明したものも、この外部記憶装置106に保存されている。また、描画対象の文字のデータやフォントデータ204もこの外部記憶装置106に保存されている。
外部記憶装置106に保存されているコンピュータプログラムやデータは、CPU101による制御に従って適宜RAM103にロードされ、CPU101による処理対象となる。然るに、CPU101が「第1〜3の実施形態において情報処理装置が行うものとして説明した各処理をCPU101に実行させるためのコンピュータプログラムやデータ」を用いて処理を実行することで、図2の各部の機能が実現されることになる。これにより、装置100は、第1〜3の実施形態において説明した情報処理装置として機能することになる。上記の各部はいずれも、バス107に説明されており、互いにこのバス107を介して通信可能である。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (10)
- 文字列を規定の領域内に描画する情報処理装置であって、
前記文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する手段と、
前記領域の、前記文字列を構成する各文字の並び方向に対して垂直方向におけるサイズをRHとすると、0<θ<1を満たす規定のθを用いて、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を第1の縮小率として求める計算手段と、
前記文字列中の各文字について、該文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する特定手段と、
前記対象文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズをHとすると、前記第1の縮小率×RH/Hを第2の縮小率として求める手段と、
前記文字列を構成する各文字のうち、非対象文字は第1の縮小率で縮小して前記領域内に描画し、前記対象文字は、前記垂直方向のサイズを前記第2の縮小率で縮小してから前記領域内に描画する描画手段と
を備えることを特徴とする情報処理装置。 - 前記計算手段は、
xHeight/capHeightがθ以上であれば、RH/(capHeight+descend)を前記第1の縮小率として求め、
xHeight/capHeightがθ未満であれば、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を前記第1の縮小率として求める
ことを特徴とする請求項1に記載の情報処理装置。 - 前記描画手段は、
前記対象文字の前記並び方向のサイズを前記第1の縮小率で縮小することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記特定手段は、前記文字列中の各文字について、該文字を包含する外接矩形を前記第1の縮小率で縮小した縮小外接矩形の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された外接矩形の文字を対象文字として特定することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
- 更に、
前記文字列を構成する各文字に対して求めた縮小率のうち最大の縮小率を求めた文字と同じ文字種の文字の縮小率を該最大の縮小率に変更する手段を備え、
前記描画手段は、前記変更の後の各文字に対する縮小率を用いて該文字を縮小して前記領域内に描画する
ことを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。 - 文字列を規定の領域内に描画する情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、前記文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する工程と、
前記情報処理装置の計算手段が、前記領域の、前記文字列を構成する各文字の並び方向に対して垂直方向におけるサイズをRHとすると、0<θ<1を満たす規定のθを用いて、RH/{maxHeight×xHeight/(θ×capHeight)+descend}を第1の縮小率として求める計算工程と、
前記情報処理装置の特定手段が、前記文字列中の各文字について、該文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する特定工程と、
前記情報処理装置の第2の縮小率を求める手段が、前記対象文字を前記第1の縮小率で縮小した縮小文字の前記垂直方向のサイズをHとすると、前記第1の縮小率×RH/Hを第2の縮小率として求める工程と、
前記情報処理装置の描画手段が、前記文字列を構成する各文字のうち、非対象文字は第1の縮小率で縮小して前記領域内に描画し、前記対象文字は、前記垂直方向のサイズを前記第2の縮小率で縮小してから前記領域内に描画する描画工程と
を備えることを特徴とする情報処理方法。 - コンピュータを、請求項1乃至5の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
- 文字列を規定の領域内に描画する情報処理装置であって、
前記文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する手段と、
前記領域の、前記文字列を構成する各文字の並び方向に対して垂直方向におけるサイズ、前記maxHeight、前記capHeight、前記xHeight、前記descendを用いて、第1の伸縮率を求める計算手段と、
前記文字列中の各文字について、該文字を前記第1の伸縮率で伸縮した伸縮文字の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する特定手段と、
前記対象文字を前記第1の伸縮率で伸縮した伸縮文字の前記垂直方向のサイズを用いて、第2の伸縮率を求める手段と、
前記文字列を構成する各文字のうち、非対象文字は第1の伸縮率で伸縮して前記領域内に描画し、前記対象文字は、前記垂直方向のサイズを前記第2の伸縮率で伸縮してから前記領域内に描画する描画手段と
を備えることを特徴とする情報処理装置。 - 文字列を規定の領域内に描画する情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、前記文字列のフォントメトリクス情報で定義されているmaxHeight、capHeight、xHeight、descendを取得する工程と、
前記情報処理装置の計算手段が、前記領域の、前記文字列を構成する各文字の並び方向に対して垂直方向におけるサイズ、前記maxHeight、前記capHeight、前記xHeight、前記descendを用いて、第1の伸縮率を求める計算工程と、
前記情報処理装置の特定手段が、前記文字列中の各文字について、該文字を前記第1の伸縮率で伸縮した伸縮文字の前記垂直方向のサイズが前記領域の前記垂直方向のサイズを超えているか否かを判断し、該判断により超えていると判断された文字を対象文字として特定する特定工程と、
前記情報処理装置の第2の伸縮率を求める手段が、前記対象文字を前記第1の伸縮率で伸縮した伸縮文字の前記垂直方向のサイズを用いて、第2の伸縮率を求める工程と、
前記情報処理装置の描画手段が、前記文字列を構成する各文字のうち、非対象文字は第1の伸縮率で伸縮して前記領域内に描画し、前記対象文字は、前記垂直方向のサイズを前記第2の伸縮率で伸縮してから前記領域内に描画する描画工程と
を備えることを特徴とする情報処理方法。 - コンピュータを、請求項8に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013010468A JP2014142789A (ja) | 2013-01-23 | 2013-01-23 | 情報処理装置、情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013010468A JP2014142789A (ja) | 2013-01-23 | 2013-01-23 | 情報処理装置、情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014142789A true JP2014142789A (ja) | 2014-08-07 |
Family
ID=51424021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013010468A Pending JP2014142789A (ja) | 2013-01-23 | 2013-01-23 | 情報処理装置、情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014142789A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307712A (zh) * | 2019-07-31 | 2021-02-02 | 株式会社理光 | 文本评价装置和方法以及存储介质和计算机装置 |
-
2013
- 2013-01-23 JP JP2013010468A patent/JP2014142789A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307712A (zh) * | 2019-07-31 | 2021-02-02 | 株式会社理光 | 文本评价装置和方法以及存储介质和计算机装置 |
CN112307712B (zh) * | 2019-07-31 | 2024-04-16 | 株式会社理光 | 文本评价装置和方法以及存储介质和计算机装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540744B2 (en) | Flexible control in resizing of visual displays | |
US10366147B2 (en) | Techniques for programmatic magnification of visible content elements of markup language documents | |
US8839095B2 (en) | User interface to define and/or communicate space between objects | |
US10491756B2 (en) | Information processing apparatus, information processing method, and non-transitory computer readable recording medium | |
US9983764B2 (en) | Method, electronic device, and non-transitory storage medium for adjusting icons | |
US20160203628A1 (en) | Information processing device editing map acquired from server | |
US20170098433A1 (en) | Information processing apparatus, information processing method, and program | |
CN111783007B (zh) | 一种显示渲染方法、装置、电子设备及存储介质 | |
US20160078847A1 (en) | Reflecting handwriting attributes in typographic characters | |
JP4812077B2 (ja) | データ表示方法及びデータ表示装置並びにプログラム | |
CN107122104B (zh) | 数据显示方法及装置 | |
JP6287498B2 (ja) | 電子ホワイトボード装置、電子ホワイトボードの入力支援方法、及びプログラム | |
JP2014142789A (ja) | 情報処理装置、情報処理方法 | |
JP6547244B2 (ja) | 動作処理装置、動作処理方法及びプログラム | |
US9229608B2 (en) | Character display apparatus, character display method, and computer readable medium | |
US11763064B2 (en) | Glyph accessibility and swash control system | |
CN110996020B (zh) | Osd叠加方法、装置及电子设备 | |
US11288778B2 (en) | Creation and rasterization of shapes using geometry, style settings, or location | |
WO2013175520A1 (ja) | 文字描画装置 | |
JP5527991B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2014206712A (ja) | 文字情報出力装置 | |
JP2015075884A (ja) | 描画装置、描画方法及びプログラム | |
JP6115389B2 (ja) | 情報処理装置、判定方法及びプログラム | |
JP2015206986A (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
JP2022056059A (ja) | 情報処理装置及びプログラム |