JP2015106289A - 表示装置、表示方法、コンピュータプログラム - Google Patents
表示装置、表示方法、コンピュータプログラム Download PDFInfo
- Publication number
- JP2015106289A JP2015106289A JP2013248036A JP2013248036A JP2015106289A JP 2015106289 A JP2015106289 A JP 2015106289A JP 2013248036 A JP2013248036 A JP 2013248036A JP 2013248036 A JP2013248036 A JP 2013248036A JP 2015106289 A JP2015106289 A JP 2015106289A
- Authority
- JP
- Japan
- Prior art keywords
- display
- area
- determined
- text
- width
- 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
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】本文よりも小さな文字の文(小文字文)が、本文よりも大きく表示されないように制御することにより、ユーザが文の重要度を正しく認識できるようにする。
【解決手段】部分領域表示モードにおいて、小文字文の文字領域を表示する場合、表示対象の小文字文の文字領域の幅が、画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示する。
【選択図】図20
【解決手段】部分領域表示モードにおいて、小文字文の文字領域を表示する場合、表示対象の小文字文の文字領域の幅が、画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示する。
【選択図】図20
Description
本発明は、画像データ内の部分領域を拡大して表示する表示装置および表示方法に関する。
従来、スマートフォンやタブレットなど比較的小さな表示装置によって、ページ画像を表示する際に、ページ画像の一部を拡大して逐次表示することが行われている。ページ画像は、テキスト・見出し・図・写真・表などの複数の部分領域から構成されており、ユーザは、これらの部分領域を順番に閲覧していく。したがって、ユーザは、文書を読み進めるために順次、ページ内の所望の部分領域(所望の範囲)が表示画面に表示されるように、ページ画像の表示位置の移動(スクロール)や拡大縮小の操作を繰り返す必要がある。
スマートフォンやタブレットは、タッチスクリーンを備え、スワイプ操作やフリック操作による縦・横・斜めの任意の方向への表示位置の移動や、ピンチアウトおよびピンチイン操作による拡大縮小を行うことができる。
また、特許文献1には、次の技術が開示されている。ページ画像を解析して部分領域を抽出すると共にその読み順を決定する。そして、一次元的な移動指示(前方および後方の移動指示)によって、部分領域を読み順にしたがって順に表示する。このとき、部分領域が文字属性である場合には、行方向の幅が表示画面幅に合うように表示倍率を決定する。これにより、前述の従来技術における操作の煩雑さ(縦横斜め方向のスワイプによる二次元的なスクロールと、ピンチアウト・ピンチインによる拡大縮小を行って部分領域の表示位置とサイズを調整する煩雑さ)が低減される。また、特許文献1では、前方・後方の一次元的な操作でページ画像内の部分領域を順に閲覧することができるため、片手でも操作しやすい。
ページ画像を解析することにより抽出される文字属性の部分領域は、文書内の本文を構成するテキスト領域や、注釈やキャプションなどのテキスト領域である。注釈やキャプションは、本文よりも小さな文字サイズで記載された文である場合が多い。なお、以下では、本文より小さい文字サイズで記載された文章を「小文字文」と呼称することとする。特許文献1では、各テキスト領域の行方向の幅が表示画面幅に合うように表示倍率が決定されるので、小文字文の部分領域の幅が本文領域の幅に比べてかなり小さい場合、小文字文の領域の方が本文領域よりも表示倍率が大きくなってしまう。これにより、本文よりも小文字文の方が大きな文字として表示されてしまう場合がある。一般的な文書に含まれる文章の文字サイズは、その文章の重要度を示唆するものであるが、本文よりも小文字文の方が大きく表示されてしまうと、閲覧するユーザに各文章の重要性を誤解させてしまう場合があった。
上記課題を解決するために、本発明の表示装置は、画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段を有する表示装置であって、前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする。
本発明によれば、本文よりも小さな文字の文(小文字文)が、本文よりも大きく表示されないように制御することにより、ユーザが文の重要度を正しく認識できるようになる。
[実施例1]
図1は、本実施形態に係る画像処理システムの構成を示すブロック図である。
図1は、本実施形態に係る画像処理システムの構成を示すブロック図である。
図1において、オフィス内に構築されたLAN102には、複数種類の機能(複写機能、印刷機能、送信機能等)を実現する複合機であるMFP100と、クライアントPC101が接続されている。更に、LAN102には、プロキシサーバ103と、文書管理サーバ106、文書管理サーバ106のためのデータベース105、携帯情報端末107、サーバ108が、無線または有線で接続されている。また、LAN102は、プロキシサーバ103を介してネットワーク104に接続されている。クライアントPC101は、例えば、印刷データをMFP100へ送信することで、その印刷データに基づく印刷物をMFP100で印刷することが可能である。なお、図1の構成は一例であり、同様の構成要素を有する複数のオフィスがネットワーク104上に接続されていても良い。
クライアントPC101、プロキシサーバ103、サーバ108の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素(例えば、CPU、RAM、ROM、ハードディスク、ネットワークI/F、ディスプレイ、キーボード、マウス等)を有している。また、ネットワーク104は、典型的にはインターネットやLANやWANや電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかで実現されている。もちろん、それらの組み合わせにより実現されるいわゆる通信ネットワークであっても良いことは言うまでもなく、データの送受信が可能であれば良い。
図2は、図1におけるMFP100の構成例を示すブロック図である。図2において、MFP100は、画像読取部200、記憶装置201、印刷装置202、入力装置203、ネットワークI/F204、データ処理装置205、表示装置209で構成される。画像読取部200は、図示しないAuto Document Feeder(以降「ADF」)を有し、束状、或いは1枚の原稿の画像を光源で照射し、反射画像をレンズで固体撮像素子上に結像する。固体撮像素子は所定解像度(例えば600dpi)および所定輝度レベル(例えば8ビット)の画像読み取り信号を生成し、該画像読み取り信号に基づきラスターデータから成るビットマップ画像データが構成される。
記憶装置201は、HDDなどの、読み出しと書き込みが可能な不揮発メモリである。画像読み取り装置200からのデータや、クライアントPC101からプリンタドライバを経由して出力されるPDLデータをレンダリングして得たデータなど、様々なデータを保存する機能を有する。印刷装置202は、記録信号を記録紙上に印刷するものである。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して記録紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。入力装置203は、タッチパネルやキーボード、マウス等から成る入力装置である。ユーザは、入力装置203を通じて、MFP100を操作することができる。ネットワークI/F204は、LAN102を介して、別体の外部機器と、各種データの送信あるいは受信を行う。
データ処理装置205は、MFP100全体を制御して、本発明に関するデータ処理を実現するものである。データ処理装置205は、CPU206、ROM207、RAM208を有する。ROM207には、データ処理プログラムが格納されており、CPU206は当該プログラムを読み出してRAM208に記憶することにより、これを実行することができる。これによりデータ処理装置205のデータ処理機能を実現するものである。表示装置209は、入力装置203を通じて成された操作入力の状態を表示することができる。
MFP100は、複写機能を実行する際には、画像読み取り装置200で得たビットマップ画像データを、データ処理装置205によってスキャン画像処理(後述)して記録信号に変換し、印刷装置202で画像形成(印刷出力)する。複数枚複写の場合には、1頁分の記録信号を一旦記憶装置201に記憶保持した後、印刷装置202に順次出力して記録紙上に記録画像を形成する。また、MFP100は、クライアントPC101(もしくは他の汎用PC)からプリンタドライバを利用して出力されてくるPDLデータを、LAN102とネットワークI/F204を介して受信する。そして、当該受信したPDLデータに基づく画像を、印刷装置202によって記録し得る。すなわち、クライアントPC101からプリンタドライバを経由して出力されるPDLデータは、LAN107からネットワークI/F204を経てデータ処理装置205に入力される。そして、データ処理装置205でPDLデータを解釈・処理することで記録可能な記録信号に変換された後、印刷装置202に出力して記録紙上に記録画像を形成する。あるいは、データ処理装置205でPDLデータを解釈・処理することでビットマップ画像データに変換された後、記憶装置201に保存する。データ処理装置205は、さらに、ビットマップ画像データ(スキャン画像またはPDLデータをレンダリングして得た画像)を携帯端末で表示するのに適した所定フォーマットのデータに変換する機能を有する画像変換装置である。データ処理装置115はCPUを含み、メモリに格納されたプログラムを実行することにより後述するフローチャートの処理を実行する各処理部として機能する。なお、データ処理装置115は、後述するフローチャートの処理の一部または全部を、CPUではなく、ASIC等の電子回路で実現するように構成しても構わない。
図3を用いて、データ処理装置が、ビットマップ画像データを、携帯情報端末107で表示するのに適した所定のフォーマットのデータ(以降「アプリケーション画像データ」と呼称)に変換する処理を説明するためのフローチャートである。本フローチャートは、データ処理装置205において、ROM207に格納されているデータ処理プログラムを、CPU206が実行することにより実現される。尚、ビットマップ画像データは、MFP100の画像読取部200により文書をスキャンすることにより得るか、クライアントPC101がアプリケーションソフトを実行することで作成されたドキュメントを、MFP100内部でレンダリングして生成して得たものである。
まず、ステップS301において、データ処理装置205は、処理対象として入力されたビットマップ画像データを属性毎の部分領域(属性毎のオブジェクト)に分割する部分領域分割処理を行う。この処理により、各部分領域に関する情報として、部分領域情報を得ることができる。部分領域分割処理と部分領域情報の詳細は後述する。部分領域分割処理後の各部分領域は、文字、写真、グラフィック(図面、線画、ライン)、表のいずれかの属性に分類される。
ステップS302において、データ処理装置205は、部分領域全てについて、ステップS302からステップS304の処理を行ったかを判定する。YESの場合には、ステップS305へ遷移する。NOの場合には、ステップS301で分割した部分領域のうち未処理の部分領域の1つを処理対象の部分領域としてステップS303へ遷移する。すなわち、データ処理装置205は、ステップS302〜ステップS304の処理を、ステップS301で得た部分領域の数だけ繰り返す。
ステップS303において、データ処理装置205は、処理対象の部分領域について、属性を判定する。属性が文字である場合には、ステップS304へ遷移する。属性が文字以外(グラフィック、写真、表)である場合には、ステップS302へ遷移する。
ステップS304において、データ処理装置205は、属性が文字と判定された部分領域について、文字認識処理を行う。文字解析処理の詳細は後述するが、この処理の結果、当該部分領域に含まれる文字の文字コードと文字サイズとを得ることができる。
次に、ステップS305において、データ処理装置205は、ステップS301で得た部分領域とステップS304で得た文字サイズとに基づいて、文字属性部分領域情報集計処理を行う。この処理により、属性が文字である部分領域に関する情報(文字属性部分領域情報)を得ることができる。文字属性部分領域情報集計処理と文字属性部分領域情報の詳細については後述する。以上の処理により、ビットマップ画像データ、部分領域情報、文字属性部分領域情報が得られる。ステップS306において、データ処理装置205は、これらの情報(ビットマップ画像データ、部分領域情報、文字属性部分領域情報)を統合し、アプリケーション画像データを生成する。アプリケーション画像データの詳細は後述する。ステップS307において、データ処理装置205は、生成したアプリケーション画像データを携帯情報端末107に送信する。
以上、図3を用いてビットマップ画像データからアプリケーション画像データを生成する処理の概要を説明した。以降では、上述の各処理ステップの詳細を順に説明していく。
図4と図5を用いて、S301で処理対象として入力されるビットマップ画像データがどのように作成されたものかについて説明する。図4は、MFP100の画像読取部200を使用した場合のビットマップ画像データ生成処理の手順を示したフローチャートである。また、図5は、クライアントPC101が各種アプリケーションを実行して作成したドキュメントからビットマップ画像データを生成する処理の手順を示したフローチャートである。これらのフローチャートは、データ処理装置205において、ROM207に格納されているデータ処理プログラムを、CPU206が実行することにより実現される。
MFP100の画像読取部(スキャナ)200を使用した場合、まず、図4のステップS401において、データ処理装置205は、画像読み取り部200に原稿を読み込ませて画像を得る。次に、ステップS402において、データ処理装置205は、S401で得られた画像データに対して、画像読取部200の特性に依存するスキャナ画像処理を行うことにより、ビットマップ画像データを生成する。ここで言うスキャナ画像処理とは、例えば、色処理やフィルタ処理を指す。
一方、クライアントPC101のアプリケーションから得られるデータに基づいて処理対象のビットマップ画像を生成する場合は以下のようになる。まず、図5のステップS501において、データ処理装置205は、ネットワークI/F204を介して、PC101よりプリントデータを受信する。プリントデータは、PC101が、アプリケーションを実行して作成したドキュメントを、プリンタドライバにより変換して得たものである。なお、プリントデータとはPDLを意味し、例えば、LIPS(商標)、PostScript(商標)等のページ記述言語を指す。次に、ステップS502において、データ処理装置205内のインタープリタは、受信したPDLを解釈してディスプレイリストを生成する。さらに、ステップS503において、データ処理装置205内のレンダラが、当該生成されたディスプレイリストをレンダリングすることによりビットマップ画像データを生成する。
尚、画像読取部200により読み取った原稿が複数枚であったり、プリントデータに変換するドキュメントが複数ページから成る場合には、生成したビットマップ画像データ内には、複数のページ画像データ(以降単に「ページ」と呼称)が含まれる。
次に、図6と図7を用いて、図3のステップS301の部分領域分割処理で得られるデータの詳細を説明する。図6は、部分領域分割処理によって、ビットマップ画像データを複数の部分領域に分割した結果の一例を示す図である。また、図7は、部分領域分割したときに得る部分領域情報のデータ構成例を示す図である。
処理対象のビットマップ画像データ(例として図6の左)に対して部分領域分割処理を行うと、図6右のように属性ごとの矩形ブロックに分割される。前述したように、矩形ブロックの属性としては、文字、写真、グラフィック(図面、線画、ライン)、表がある。部分領域分割処理の一手法としては、例えば以下のような手法がある。まず、RAMに格納されたビットマップ画像データを白黒に2値化し、該2値画像において黒画素輪郭で囲まれる画素塊を抽出する。更に、このように抽出された黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊については内部に文字を含むもの(表領域など)である可能性があるので、その黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。白画素塊に対する大きさ評価、内部黒画素塊の追跡というように、内部の画素塊が所定値以上である限り、再帰的に内部画素塊の抽出し輪郭追跡を行う。画素塊の大きさは、例えば画素塊の面積によって評価される。このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさや形状に基づき属性を判定する。例えば、縦横比が1に近く、かつ大きさが一定の範囲(文字として通常使用されるサイズ)の矩形ブロックは、文字矩形ブロックの可能性がある文字相当ブロックとする。また、近接する文字相当ブロックが規則正しく整列しているときに、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、この新たな矩形ブロックを文字領域矩形ブロックとする。また、一定の大きさ以上でかつ四角形の白画素塊を整列よく内包する黒画素塊を表ブロック、また、扁平な画素塊をグラフィック矩形ブロック、それ以外の不定形の画素塊を写真矩形ブロックとする。
このようにして生成された矩形ブロックのそれぞれについて、図7に示すように、属性毎の部分領域情報を生成し、一時データとしてRAM208に記憶する。部分領域情報には、ブロック情報と入力ファイル情報を含む。ブロック情報には各ブロックの属性、ページ上の位置(座標Xおよび座標Y)、幅W、高さHが含まれる。属性は1〜4の数値で与えられ、1は文字矩形ブロック、2は写真矩形ブロック、3はグラフィック矩形ブロック、4は表矩形ブロックを示す。座標X、座標Yは入力画像における各矩形ブロックの始点のX座標とY座標(矩形ブロックの左上端点の座標)である。幅W、高さHは矩形ブロックのX座標方向の幅、Y座標方向の高さである。更に、入力ファイル情報として矩形ブロックの個数を示すブロック総数Nも保存しておく。
以上により得たブロック情報と、それが示すビットマップ画像データ上の各矩形ブロックとの組が、部分領域分割処理により得られる個々の各部分領域を構成する。
次に、図8のフローチャートを用いて、図3のステップS304の文字認識処理について詳細を説明する。
ステップS801において、データ処理装置205は、図7に示したブロック情報をもとに、処理対象の部分領域が、文字矩形ブロックであるか否かを判定する。文字矩形ブロックである場合には、ステップS802へ遷移し、文字矩形ブロックでない場合には、文字認識処理を終了する。
ステップS802〜ステップS807においては、データ処理装置205は、パターンマッチング等の手法を用いて文字認識処理を行い、対応する文字コードを得る。例えば、ステップS802において、データ処理装置205は、処理対象の部分領域に対し横書き・縦書きの判定(組み方向判定)を行うために、処理対象の部分領域内で、画素値に対する水平・垂直の射影を取る。ステップS803において、データ処理装置205は、ステップS802の射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判断する。ステップS804において、データ処理装置205は、ステップS803の評価結果に基づいて組み方向を判定し、文字行の切り出しを行い、その後、文字行から文字を切り出して文字画像を得る。文字行および文字への分解は、横書きならば水平方向の射影を利用して文字行を切り出し、切り出された文字行に対する垂直方向の射影から文字を切り出す。縦書きの文字領域に対しては、水平と垂直について逆の処理を行う。行や文字の切り出しに際して、文字のサイズも検出する。ステップS805において、データ処理装置205は、ステップS804で切り出された各文字について、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルを生成する。特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。ステップS806において、データ処理装置205は、ステップS805で得られた観測特徴ベクトルと、あらかじめフォントの種類ごとに求められている辞書特徴ベクトルとを比較し、観測特徴ベクトルと辞書特徴ベクトルとの距離を算出する。ステップS807において、データ処理装置205は、ステップS806で算出された距離を評価し、最も距離の近い文字を文字認識結果とし、文字コードを得る。ステップS808において、データ処理装置205は、ステップS807における距離評価の最短距離が所定値よりも大きいか否かを判定する(類似度を判定する)。類似度が小さい(最短距離が所定値よりも大きい)場合は、辞書特徴ベクトルにおいて形状が類似する他の文字に誤認識している可能性が高い。この場合は、ステップS807の認識結果を採用せず、処理を終了する。類似度が大きい(最短距離が所定値より小さい)場合は、ステップS807の認識結果を採用し、ステップS809へ遷移する。ステップS809において、データ処理装置205は、ステップS802で判定した組み方向と、ステップS804で検出した文字のサイズと、ステップS807で認識した文字コードとを文字認識結果としてRAM208に記録する。以上のようにして、属性が文字である部分領域に含まれる文字について、文字のサイズと文字コードとを得ることができる。
次に、図9と図10を用いて、図3のステップS305の文字属性部分領域情報集計処理について詳細を説明する。図9は、文字属性部分領域情報集計処理の手順を示したフローチャートである。本フローチャートは、データ処理装置205において、ROM207に格納されているデータ処理プログラムを、CPU206が実行することにより実現される。図10は、文字属性部分領域情報集計処理により得られる文字属性部分領域情報のデータ構成例を示す図である。
まず、ステップS901において、データ処理装置205は、次の処理を行い本文の文字サイズ(以降「本文文字サイズ」と呼称)を決定する。データ処理装置205は、ステップS807で記憶した文字認識結果(文字のサイズ)をRAM208より読み出す。そして、全ての文字属性の部分領域に含まれる文字の文字サイズに基づいて、文字サイズの最頻値を求める。求めた最頻値を本文文字サイズとする。
ステップS902において、データ処理装置205は、次の4つの変数を初期化する。第1の変数は、属性が文字でありかつ横書きの部分領域の矩形ブロックの行方向の長さの中から最大値を求めるための変数(以降「最大横書き行長」と呼称)である。第2の変数は、属性が文字でありかつ横書きの部分領域の矩形ブロックの行方向の長さの中から最小値を求めるための変数(以降「最小横書き行長」と呼称)である。第3の変数は、属性が文字でありかつ縦書きの部分領域の矩形ブロックの行方向の長さの中から最大値を求めるための変数(以降「最大縦書き行長」と呼称)である。第4の変数は、属性が文字でありかつ縦書きの部分領域の矩形ブロックの行方向の長さの中から最小値を求めるための変数(以降「最小縦書き行長」と呼称)である。
データ処理装置205は、ステップS903〜ステップS915の処理を、ステップ301で得た部分領域の数(RAM208に記憶した入力ファイル情報のブロック総数Nに等しい)だけ繰り返す。
ステップS903において、データ処理装置205は、部分領域全てについて、ステップS903からステップS915の処理を行ったかを判定する。YESの場合には、ステップ917へ遷移する。NOの場合には、未処理の部分領域のうちの1つを処理対象にしてステップS904へ遷移する。
ステップS904において、データ処理装置205は、処理対象の部分領域について、属性を判定する。属性が文字である場合には、ステップS905へ遷移する。属性が文字以外(グラフィック、写真、表のいずれか)である場合には、ステップS903へ遷移する。
ステップS905において、データ処理装置205は、処理対象の部分領域に含まれる文字について文字サイズの最頻値を求めて、当該部分領域における文字のサイズ(以降「個別文字サイズ」と呼称)として決定する。
ステップS906において、データ処理装置205は、個別文字サイズと本文文字サイズとを比較して、処理対象の部分領域に含まれる文が本文であるかを判定する。すなわち、個別文字サイズと本文文字サイズが等しければ本文と判定する。YESの場合には、ステップS907へ遷移する。NOの場合には、ステップS903へ遷移する。
ステップS907において、データ処理装置205は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向は、図3のステップS302(文字認識)の過程で得られている。組み方向が横である場合、ステップS908に遷移する。組み方向が縦である場合、ステップS912に遷移する。
ステップS908において、データ処理装置205は、処理対象の部分領域について、矩形ブロックの行方向の長さが最大横書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最大横書き行長よりも大きければ、当該行方向の長さが最大横書き行長となり得る。YESの場合には、ステップS909へ遷移し、最大横書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ(幅)で更新する。NOの場合にはステップS910へ遷移する。
ステップS910において、データ処理装置205は、処理対象の部分領域について、矩形ブロックの行方向の長さが最小横書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最小横書き行長よりも小さければ、当該行方向の長さが最小横書き行長となり得る。YESの場合には、ステップS911へ遷移し、最小横書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ(幅)で更新する。NOの場合にはステップS916へ遷移する。
一方、ステップS912において、データ処理装置205は、処理対象の部分領域について、矩形ブロックの行方向の長さが最大縦書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最大縦書き行長よりも大きければ、当該行方向の長さが最大縦書き行長となり得る。YESの場合には、ステップS913へ遷移し、最大縦書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ(高さ)で更新する。NOの場合にはステップS914へ遷移する。
ステップS914において、データ処理装置205は、処理対象の部分領域について、矩形ブロックの行方向の長さが最小縦書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最小縦書き行長よりも小さければ、当該行方向の長さが最小縦書き行長となり得る。YESの場合には、ステップS915へ遷移し、最小縦書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ(高さ)で更新する。NOの場合にはステップS916へ遷移する。
ステップS916において、データ処理装置205は、ステップS304で取得した、処理対象の部分領域に含まれる文字コードを解析して、リンク情報を生成する。リンク情報とは、例えば、URLやE−Mailアドレス、電話番号である。当該文字コードより生成可能な文字列について、これらリンク情報のフォーマット規定に基づいて解析処理を行い、リンク情報と成り得る文字列部分を抽出する。フォーマット規定とは、URLであればRFC1738であり、E−MailアドレスであればRFC5321,5322に基づく。また、電話番号であれば、予め電話番号の正規表現パターンを記憶しておき、これに基づいて解析すればよい。
ステップS917において、データ処理装置205は、以上の処理により求めた本文文字サイズ、個別文字サイズ、最大横書き行長、最小横書き行長、最大縦書き行長、最小縦書き行長、リンク情報をまとめて、図10のような文字属性部分領域情報として、RAM208に一時データとして記憶する。以上により、属性が文字である部分領域について、文字属性部分領域情報を得ることができる。
次に、アプリケーション画像データの詳細(フォーマット)について説明する。アプリケーション画像データは、ビットマップ画像データと、図3のステップS301〜S305の処理により得た情報を統合して得た文書構造情報の2つの部分から成る。そして図11は、文書構造情報の一例を示した図である。本実施例では、文書構造情報のフォーマットとして、Extensible Markup Language(以下、「XML」)形式を用いて説明する。
文書構造情報には、例えば次のタグで情報を記述することができる。“doc”タグは一つのドキュメントを示す。“page”タグは一つのページを示す。“area”タグは一つの部分領域を示す。
“doc”タグの属性として、“CS”, “LHmax”, “LHmin”,“LVmax”, “LVmin”を記述することができる。これらは文字属性部分領域情報から得たものであり、それぞれ順に、本文文字サイズ、最大横書き行長、最小横書き行長、最大縦書き行長、最小縦書き行長である。
“area”タグの属性として次を記述することができる。“x”, “y”, “w”, “h”は、部分領域の部分領域情報から得たものであり、それぞれ順に、ページ上の位置の座標XおよびY、幅W,高さHである。“type”は、部分領域の属性を示し、部分領域情報から得たものである。“cs”は、文字属性部分領域情報から得た個別文字サイズである。“dir”は、文字属性部分領域情報から得た組み方向である(横ならば値を“h”、縦ならば値を“v”とする)。“link”は、文字属性部分領域情報から得たリンク情報である。
なお、本実施例ではアプリケーション画像データをXML形式で表記しているが、文書の意味や構造を記述・保持できる画像フォーマットであれば良く、これに限定されるものではない。
以上ここまでにおいて、アプリケーション画像データの構成と、これを生成する方法について説明した。以降では、当該アプリケーション画像データを表示する方法について説明していく。
図12は、携帯情報端末107の構成例を示すブロック図である。携帯情報端末107は、メインボード1200、LCD1201、タッチパネル1202、ボタンデバイス1203から構成される。また、LCD1201とタッチパネル1202をまとめてタッチUI1204と呼称する。尚、本実施例では、タッチUI1204の(LCD1201の)表示領域のサイズ(ピクセル数)について、幅を「DW」、高さを「DH」と記載する。
メインボード1200の主な構成要素は以下である。CPU1205、無線LANモジュール1206、電源コントローラ1207、ディスプレイコントローラ(DISPC)1208、パネルコントローラ(PANELC)1209、ROM1210、RAM1211、二次電池1212、タイマー1213。そして、1205〜1213の各モジュールは、バス(不図示)によって接続されている。
CPU1205は、この携帯情報端末107全体を制御するためのコントローラである。CPU1205は、バスに接続されている各モジュールを制御する。CPU1205は、ROM1210に格納されているブートプログラムによりOS(オペレーティングシステム)を起動する。このOSの上で、同じくROM1210に格納されているアプリケーションプログラムを実行する。このアプリケーションプログラムは、アプリケーション画像データの内容を閲覧するプログラムである。
RAM1211は、CPU1205のメインメモリやワークエリア、LCD1201に表示するビデオイメージ用エリア、アプリケーション画像データの保存領域として機能する。
ディスプレイコントローラ(DISPC)1208は、CPU1205の要求に応じて、RAM1211に展開されたビデオイメージ出力を高速に切り替えるとともに、LCD1201に同期信号を出力する。結果として、RAM1211のビデオイメージが、DISPC1908の同期信号に同期してLCD1201に出力され、LCD1201上にイメージが表示される。
パネルコントローラ(PANELC)1209は、CPU1205の要求に応じて、タッチパネル1202およびボタンデバイス1203を制御する。その制御によって、タッチパネル1202へのタッチ(指またはスタイラスペンなどの指示物がタッチパネル1202に接近または接触すること)位置や、押下されたボタンデバイス1203のキーコードなどが、CPU1205に通知される。タッチ位置は、タッチパネル1202の横方向の絶対位置を示す座標値(以下、「X座標」)と、縦方向の絶対位置を示す座標値(以下、「Y座標」)から成る。タッチパネル1202は複数箇所の押下を検知することが可能で、その場合CPU1205にはタッチ入力位置数分の押下位置情報が通知される。
無線LANモジュール1206は、CPU1205の制御に基づいて、前記LAN102に接続された無線アクセスポイント(不図示)上の無線LANモジュールとの無線通信を確立し、携帯情報端末107との通信を仲介する。無線LANモジュール1206には、例えばIEEE802.11bなどがある。
電源コントローラ1207は、外部電源(不図示)と接続され電力の供給を受ける。これによって、電源コントローラ1207に接続された二次電池1212を充電しながら、且つ、携帯情報端末107全体に電力を供給する。電源コントローラ1207により外部電源から電力が供給されないときは、二次電池1212が電力を携帯情報端末107全体に供給する。
タイマー1213は、CPU1205の制御に基づいて、ジェスチャイベント発生部1301(後述)へのタイマー割込を発生させる。
次に、携帯情報端末107のCPU1205が実行するアプリケーションプログラムについて説明する。図13は、CPU1205が実行するアプリケーションプログラムの構成概念を示すブロック図である。
ジェスチャイベント発生部1301は、タッチパネル1202で検知したユーザのタッチ入力を、パネルコントローラ1909を介して受け付けて、後述する各種ジェスチャイベントを発生させる。ジェスチャイベント発生部1301は、発生させたジェスチャイベントを、ジェスチャイベント処理部1302へ送信する。
ジェスチャイベント処理部1302は、ジェスチャイベント発生部1301が発生させたジェスチャイベントを受信して、各ジェスチャイベントと、アプリケーション画像データに記述された文書構造に応じた処理を実行する。ジェスチャイベント処理部1302は、表示モード処理部1303と表示位置移動処理部1304と拡大・縮小処理部1305から成る。
表示モード処理部1303は、アプリケーション画像データをタッチUI1204に表示する際の表示モード(後述)の切り替えや、表示する部分領域の選択を行う。表示位置移動処理部1304は、ユーザによるタッチパネル1202上のスワイプ操作に応答して表示位置の移動処理を行う。拡大・縮小処理部1305は、ユーザによるタッチパネル1202へのダブルタップ操作やピンチアウト・ピンチイン操作に応じて、タッチUI1204上の表示内容を拡大・縮小して更新させる。
次に、ジェスチャイベント発生部1301が発生させるジェスチャイベントについて説明する。図14は、ジェスチャイベントの名称と、各イベントが発生したときにジェスチャイベント発生部1301がジェスチャイベント処理部1302へ送信する情報を示した概念図である。
(a)は、タッチ押下イベントであり、タッチパネル1202へのタッチ入力位置の座標値とタッチ座標数を送信する。タッチ座標とは、最新のタッチ位置を示すX座標とY座標の組で表される座標値である。また、タッチ座標数とは、タッチ位置の数を示している。なお、タッチ座標は、タッチパネル1202へユーザの指が触れたとき、指が移動したとき、指が離れたときに、タイマー1213からの割り込みが発生し、更新する。
(b)は、スワイプイベントであり、最新のタッチ座標の座標値と、最新と直前の座標値の差分から計算した移動距離を送信する。ここで、スワイプとは、指先をタッチパネル1202に接触させたまま、1方向に移動(滑らすような)動作のことをいう。
(c)は、ピンチインイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の中心座標値、及び、2点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率を送信する。ここで、ピンチインとは、ユーザが2つの指先をタッチパネル1202に接触させたまま、互いに近づける(つまむような)動作のことをいう。
(d)は、ピンチアウトイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の中心座標値、及び、2点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率を送信する。ここで、ピンチアウトとは、2つの指先をタッチパネル1202に接触させたまま、互いに遠ざける(指を広げるような)動作のことをいう。
(e)は、2点スワイプイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の座標値、及び、2点のタッチ座標の最新と直前の座標値の差分から計算した移動距離を送信する。2点スワイプイベントは、2点のタッチ座標が同じ方向に移動している場合に発生させる。
(f)は、ローテートイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の座標値から計算した回転の中心座標値、及び、2点のタッチ座標の最新と直前の座標値から計算した回転角度を送信する。ここで、ローテートとは、2つの指先をタッチパネル1202に接触させたまま、2つの指先をタッチパネル1202に対して回転させる動作のことを言う。
(g)は、フリックイベントであり、最新のタッチ座標の座標値、及び、最新と直前の座標値から計算した指の移動速度を送信する。ここで、フリックとは、スワイプ中に指を離す(指をはじくような)動作のことを言う。
(h)は、タッチ解除イベントであり、タッチパネル1202からユーザの指が離れたときの最新のタッチ座標の座標値、及び、座標数を送信する。
(i)は、ダブルタップイベントであり、最新のタッチ座標の座標値を送信する。ここで、ダブルタップとは、タッチパネル1202へ指を接触させる動作と、これより所定の時間内に指を離す操作を一組の動作(後述のシングルタップイベント)とし、これを所定の時間内に連続して2回実施する動作のことを言う。
(j)は、シングルタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、シングルタップとは、前述のとおり、タッチパネル1202へ指を接触させる動作から、所定の時間内に指を離す動作のことを言う。
(k)は、ロングタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、ロングタップとは、タッチパネル1202へ指を接触させる動作から、所定の時間以上経過した後に、タッチパネルから指を離す動作のことを言う。
(l)は、タッチアンドホールドイベントであり、最新のタッチ座標の座標値が送信される。ここで、タッチアンドホールドイベントとは、タッチパネル1202にユーザの指が触れてから一度も移動することなく所定の時間以上経過させる動作を言う。
なお、ここでは、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
次に、アプリケーション画像データの内容を、タッチUI1204に表示する処理の詳細を説明する。
図15および図16を用いて、アプリケーション画像データの内容の初期表示処理を説明する。図15は、アプリケーション画像データの内容の初期表示処理の手順を示したフローチャートである。本フローチャートは、CPU1205がアプリケーションプログラムを実行して表示モード処理部1303として機能することにより実現される。表示モード処理部1303は、アプリケーション画像データを、無線LANモジュール1206を介して外部装置(ここではMFP100)から受信すると、本処理を開始する。
まず、ステップS1501において、表示モード処理部1303は、受信したアプリケーション画像データをRAM1211に記憶する。
ステップS1502において、表示モード処理部1303は、RAM1211に保存したアプリケーション画像データの構文を解析し、先頭ページを読み込む。そして、ステップS1503において、表示モード処理部1303は、後述のとおり表示倍率を決定し、ビットマップ画像データに含まれる先頭ページの画像データを変倍して表示画像を生成する。そして、RAM1211のビデオイメージエリアに当該表示画像を書き込み、ディスプレイコントローラ1208を介して、タッチUI1204に表示内容を更新させる。(尚、以下の説明では、前述の表示画像の生成からタッチUI1204に表示内容を更新させるまでの処理を、単に「タッチUI1204に表示内容を更新させる」のように記載する。)
図16は、携帯情報端末107のタッチUI1204の表示例を示す画面図である。表示モード処理部1303がステップS1503を実行し終えると、タッチUI1204には図16(a)に示すように、ビットマップ画像データの先頭ページ(ページ1600)の内容が表示される。
図16は、携帯情報端末107のタッチUI1204の表示例を示す画面図である。表示モード処理部1303がステップS1503を実行し終えると、タッチUI1204には図16(a)に示すように、ビットマップ画像データの先頭ページ(ページ1600)の内容が表示される。
このとき、表示モード処理部1303は、タッチUI1204の表示領域の幅ないし高さに合わせてページ全体が表示されるように、ページの表示倍率を決定する。ここで、ページの幅および高さ(いずれもピクセル数)を「PW」および「PH」と記載すれば、表示倍率Rは次の式により決定する。
R=MIN((DW−mw*2)/PW, (DH−mh*2)/PH)
なお、関数MIN(a,b)は、変数(a,b)から最小値を選ぶ関数である。また、mwやmhは、ページを表示した場合における、表示領域の左右端部および上下端部からマージンである。上記式により、ページの画像の幅および高さが、表示領域の幅および高さの範囲に含まれてかつ、最大限大きくなるようページの表示倍率を決定する。そして、表示モード処理部1303は、上記表示倍率に変倍したときのページが、タッチUI1204の中央に表示されるように、タッチUI1204上の座標において、ページの表示位置の始点を決定する。このように、タッチUI1204においてページ全体を表示する表示制御方法を、本実施例では「ページ表示モード」を呼ぶこととする。
なお、関数MIN(a,b)は、変数(a,b)から最小値を選ぶ関数である。また、mwやmhは、ページを表示した場合における、表示領域の左右端部および上下端部からマージンである。上記式により、ページの画像の幅および高さが、表示領域の幅および高さの範囲に含まれてかつ、最大限大きくなるようページの表示倍率を決定する。そして、表示モード処理部1303は、上記表示倍率に変倍したときのページが、タッチUI1204の中央に表示されるように、タッチUI1204上の座標において、ページの表示位置の始点を決定する。このように、タッチUI1204においてページ全体を表示する表示制御方法を、本実施例では「ページ表示モード」を呼ぶこととする。
また、図16(a)において、モード切替ボタン1601は、表示モードを、「ページ表示モード」と「部分領域表示モード」の間で切り替えるためのボタンである。「部分領域表示モード」とは、現在表示中のページに含まれる部分領域を順番に拡大表示するモードである。表示モード処理部1303は、モード切替ボタン1601がユーザにより指示されるのに応じて、後述するモード切替処理を実行する。
「次へボタン」1602は、部分領域表示モードにおいて、現在表示中の部分領域を、その次の順番の部分領域に切り換えて表示するためのものである。表示モード処理部1303は、「次へボタン」1602への指示に応じて、後述する次選択処理を実行する。
「前へボタン」1603は、部分領域表示モードにおいて、現在表示中の部分領域を、その前の順番の部分領域に切り換えて表示するためのものである。表示モード処理部1303は、「前へボタン」1603への指示に応じて、後述する前選択処理を実行する。
ここで、図16(b)を用いて、ページ1600に含まれる各部分領域について説明する。部分領域1604は、属性が文字の部分領域であり、文章におけるタイトル文が含まれている。このタイトル文は18ptの文字サイズで記載されたものである。
部分領域1605,1607,1612は、属性が文字の部分領域であり、文章における本文が含まれている。これらの本文は10.5ptの文字サイズで記載されたものである。
部分領域1608は、属性が文字の部分領域であり、文章における重要ポイントを示す文である。この重要文は、本文よりもやや大きな文字サイズ(14pt)で記載されたものである。
部分領域1611は、属性が文字の部分領域であり、文章における注釈が含まれている。この注釈文(小文字文)は8ptで記載されたものである。
部分領域1613は、属性が文字の部分領域であり、リンク情報(URL)を含んでいる。この文は8ptで入力されたものである。
部分領域1606は、属性が写真の部分領域である。部分領域1609は、属性が表の部分領域である。部分領域1610は、属性がグラフィックの部分領域である。
尚、図16(b)の各部分領域を囲む破線は、説明をわかり易くするために描いたものであり、実際にはページ1600上には存在しない。
次に、図16〜18を用いて、モード切替処理について説明する。図17は、モード切替処理の手順を示したフローチャートである。本フローチャートは、CPU1205がアプリケーションプログラムを実行して表示モード処理部1303として機能することにより実現される。表示モード処理部1303は、タッチUI1204を介して、ユーザによるモード切替ボタン1601へのシングルタップ操作を検知すると、本処理を開始する。また、図18は、携帯情報端末107のタッチUI1204の表示例を示す画面図である。
まず、ステップS1701において、表示モード処理部1303は、モード切替ボタンが指示された時点における、携帯情報端末107に設定中の表示モードを判定する。携帯情報端末107は、ページ全体を表示するのに適したページ表示モード(前述)と、図18に示すように、ページ内の各部分領域を順番に拡大表示するのに適した部分領域表示モードとの2つの表示モードを有する。アプリケーション画像データを携帯情報端末107が受信した直後は、ページ表示モードが設定されている。部分領域表示モードは、図18に示すように、ページ内の各部分領域が大きく表示されるように、ページの表示倍率と表示位置を制御する表示モードである。部分領域表示モードにおける、属性が文字,写真,表,グラフィクスである各部分領域の表示例を、それぞれ図18(a),図18(b),図18(c),図18(d)に示す。また、本実施例では、図18に示すように、拡大表示対象の部分領域(ここでは部分領域1605、部分領域1606、部分領域1609、部分領域1610)以外の領域を半透明グレーがかかって見えるように、半透明マスク1801をページの上に重ねて表示する。このような半透明マスクを重ねて表示することにより、表示対象の部分領域以外が暗く表示されるので、表示対象の部分領域が強調表示され、ユーザは表示対象になっている部分領域を認識しやすくなる。ステップS1701において、表示モード処理部1303は、現在の表示モードが、部分領域表示モードであると判定した場合はステップS1702へ遷移し、ページ表示モードであると判定した場合はステップS1704へ遷移する。
ステップS1702において、表示モード処理部1303は、図18の半透明マスク1801を非表示設定にして、ページ表示モードへの切り替えを行う。ステップS1703において、表示モード処理部1303は、前述したページ表示モードの表示方法にしたがって、タッチUI1204の表示領域の幅と高さに収まるようにページの表示倍率と表示位置を決定する。
ステップS1704において、表示モード処理部1303は、表示モードを部分領域表示モードへ切り替え、ステップS1705において、ページ内の先頭の部分領域の情報を読み込む。これは、文書構造情報のXMLの中で最初に登場する“area”タグの情報を読み込むことであり、これにより当該部分領域のページ上の位置、幅、高さ、属性などの情報を取得する。
ステップS1706において、表示モード処理部1303は、後述する部分領域表示範囲決定処理を実行する。ステップS1706の部分領域表示範囲決定処理では、ステップS1705で読み込んだ部分領域の属性に応じて、ページの表示倍率および表示位置と、半透明マスクの表示位置とを決定する。ステップS1707において、表示モード処理部1303は、以上の処理により決定したページの表示倍率や表示位置に基づき、タッチUI1204の表示内容を更新する。
次に、図19と図20を用いて、図17のステップS1706に示した部分領域表示範囲決定処理の詳細を説明する。図19および図20のフローチャートは、CPU1205がアプリケーションプログラムを実行して表示モード処理部1303として機能することにより実現される。図19および図20の処理により、表示モード処理部1303は、処理対象の部分領域を表示するためのページの表示倍率と表示位置を、部分領域の属性に応じて決定する。文字属性の部分領域(テキスト領域)に対しては、該部分領域に含まれる文章が、本文、小文字文(本文よりも小さな文字サイズで記載された注釈などの文章)、大文字文(本文よりも大きな文字サイズで記載されたタイトルなどの文章)のいずれであるかに基づいて決定する。
ステップS1901において、表示モード処理部1303は、読み込んだ部分領域の属性を判定する。属性が表である場合には、ステップS1902へ遷移し、属性が写真またはグラフィックである場合には、ステップS1908へ遷移し、属性が文字である場合には、図20のステップS2001へ遷移する。
まず、処理対象の部分領域の属性が表である場合のページの表示倍率と表示位置を決定する手順について説明する。ステップS1902において、表示モード処理部1303は、表のヘッダ(表の見出し項目が記載されている先頭行または先頭列)の位置を検出する。ヘッダ位置は、例えば、先頭行(一番上の行)と先頭列(一番左の列)の表罫線の太さ、表の各セルの背景色、表内の文字列などによって判断することができる。
ステップS1903において、表示モード処理部1303は、ステップS1902で取得したヘッダ位置より、先頭行と先頭列のいずれを優先して表示するかを判定する。ヘッダ位置が先頭列のみである場合は、ステップS1904へ遷移する。ヘッダ位置が先頭行のみである場合は、ステップS1905へ遷移する。なお、本実施形態では、表のヘッダが先頭行と先頭列の両方に記載されている場合や表のヘッダ位置が判定できなかった場合は、先頭行を優先して表示するようにS1905に遷移するものとするが、これに限るものではない。例えば、表の高さと幅とを比較して、高さの方が長い場合は先頭列を優先して表示するようにS1904に遷移し、幅の方が長い場合は先頭行を優先して表示するようにS1905に遷移するように構成してもよい。また、列方向のセル数と行方向のセル数を比較して、セル数の多い方が優先されるように構成してもよい。
ステップS1904において、表示モード処理部1303は、当該部分領域の高さがタッチUI1204の高さに収まるように、ページの表示倍率を決定する(すなわち、先頭列全てが表示されるように表示倍率を決定する)。ここで、部分領域の高さ(ピクセル数)を「OH」とした場合、表示倍率Rは次の式により決定する。
R=(DH−mh*2)/OH
ここで、DHはタッチUI1204の高さであり、mhは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
R=(DH−mh*2)/OH
ここで、DHはタッチUI1204の高さであり、mhは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
また、ステップ1905において、表示モード処理部1303は、当該部分領域の幅がタッチUI1204の幅に収まるように、ページの表示倍率を決定する(すなわち、先頭行全てが表示されるように表示倍率を決定する)。ここで、部分領域の幅(ピクセル数)を「OW」とした場合、表示倍率は次の式により決定する。
R=(DW−mw*2)/OW
ここで、DWはタッチUI1204の幅であり、mwは部分領域を表示する場合における表示領域の左右端それぞれからのマージンである。
R=(DW−mw*2)/OW
ここで、DWはタッチUI1204の幅であり、mwは部分領域を表示する場合における表示領域の左右端それぞれからのマージンである。
ステップ1906において、表示モード処理部1303は、ステップS1904またはステップS1905で決定した表示倍率でページを表示した場合に、タッチUI1204に当該処理対象の部分領域の全体を表示できるかを判定する。部分領域全体を表示できない(部分領域のサイズがタッチUIの表示領域のサイズより大きい)と判定した場合には、ステップS1907へ遷移する。一方、部分領域全体を表示できる(部分領域のサイズがタッチUIの表示領域のサイズ以下である)と判定した場合には、ステップS1909へ遷移する。
ステップS1907において、表示モード処理部1303は、表示位置の始点をタッチUI1204の左上端と決定する。これは、表のヘッダは一番上の行や一番左の列に存在することが一般的であることによる。一方、ステップS1909において、表示モード処理部1303は、部分領域全体がタッチUI1204の画面内に収まるので、当該部分領域の中央がタッチUI1204の中央に合うように表示位置の始点を決定する。
次に、ステップS1901において、処理対象の部分領域の属性が写真またはグラフィックであると判定された場合のページ表示倍率と表示位置を決定する手順について説明する。ステップS1908において、表示モード処理部1303は、処理対象の部分領域全体がタッチUI1204の表示領域のサイズに収まるように、表示倍率を決定する。すなわち、次の式により表示倍率Rを決定する。
R=MIN((DW−mw*2)/OW, (DH−mh*2)/OH)
ここで、OWは部分領域の幅、OHは部分領域の高さ、DWはタッチUIの幅、DHはタッチUIの高さ、mwは部分領域を表示する場合における表示領域の左右端それぞれからのマージン、mhは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
R=MIN((DW−mw*2)/OW, (DH−mh*2)/OH)
ここで、OWは部分領域の幅、OHは部分領域の高さ、DWはタッチUIの幅、DHはタッチUIの高さ、mwは部分領域を表示する場合における表示領域の左右端それぞれからのマージン、mhは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
次に、ステップS1901において、処理対象の部分領域の属性が文字であると判定された場合のページの表示倍率と表示位置を決定する手順について説明する。まず、図20のステップS2001において、表示モード処理部1303は、処理対象の部分領域の個別文字サイズを本文文字サイズと比較することにより、当該部分領域が本文であるか小文字文であるか大文字文であるかを判定する。なお、個別文字サイズは、文書構造情報から読み出して取得することができる。また、本文文字サイズも文書構造情報から読み出して取得する。そして、本文文字サイズと個別文字サイズを比較して、個別文字サイズ=本文文字サイズならば、処理対象の部分領域は本文であると判定しステップS2013へ遷移する。個別文字サイズ<本文文字サイズならば、処理対象の部分領域は小文字文であると判定し、ステップS2002へ遷移する。個別文字サイズ>本文文字サイズならば、処理対象の部分領域は大文字文であると判定し、ステップS2008へ遷移する。
小文字文である場合、ステップS2002において、表示モード処理部1303は、文書構造情報を参照して、処置対象の部分領域がリンク情報を含むか否かを判定する。これは文書構造譲情報参照することにより判定することができる(処理対象の部分領域に該当する“area”タグに“link”属性が存在すれば、リンク情報を含むと判定する)。リンク情報を含むと判定した場合には、ステップS2013へ遷移する(本文と同様に、当該処理対象の部分領域の行方向の長さを基準に表示倍率を決定することになる)。リンク情報を含まないと判定した場合は、ステップS2003へ遷移する。
ステップS2003において、表示モード処理部1303は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向は、文書構造情報より得ることができる(処理対象の部分領域に該当する“dir”属性を参照する)。組み方向が横である場合、ステップS2004へ遷移する。組み方向が縦である場合、ステップS2006へ遷移する。
S2003で組み方向が横であると判定された場合、ステップS2004において、表示モード処理部1303は、最大横書き行長と当該処理対象の部分領域の幅とを比較する。最大横書き行長は文書構造情報より得ることができる(“page”タグの“LHmax”を参照する)。最大横書き行長>処理対象の部分領域の幅であれば、ステップS2005へ遷移する。最大横書き行長>処理対象の部分領域の幅でなければ、ステップS2013へ遷移する。
ステップS2005において、表示モード処理部1303は、最大横書き行長がタッチUI1204の表示領域に合うように、ページの表示倍率を決定する。すなわち、最大横書き行長を「LHMAX」とした場合、表示倍率Rは、次の式“R=(DW−mw*2)/LHMAX”により決定する。
S2003で組み方向が縦であると判定された場合、ステップS2006において、表示モード処理部1303は、最大縦書き行長と当該処理対象の部分領域の高さとを比較する。最大縦書き行長は文書構造情報より得ることができる(“page”タグの“LVmax”を参照する)。最大縦書き行長>処理対象の部分領域の高さであれば、ステップS2007へ遷移する。最大縦書き行長>処理対象の部分領域の高さでなければ、ステップS2013へ遷移する。
ステップS2007において、表示モード処理部1303は、最大縦書き行長がタッチUI1204の表示領域に合うように、ページの表示倍率を決定する。最大縦書き行長を「LVMAX」とした場合、表示倍率Rは、次の式“R=(DH−mh*2)/LVMAX”により決定する。
ステップS2005またはステップS2007では、最大横書き行長または最大縦書き行長に基づいて表示倍率を決定するので、小文字文である処理対象の部分領域は、本文の部分領域のうち、最も小さな表示倍率で表示される本文の部分領域と同じ表示倍率で表示されることになる。同じ表示倍率であれば、小文字文の文字サイズの方が本文の文字サイズよりも小さく表示されることになる。すなわち、小文字文の文字サイズが本文の文字サイズよりも大きく表示されないように制御できる。
ステップS2001で大文字文と判定された場合、ステップS2008において、表示モード処理部1303は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップS2009に遷移し、組み方向が縦である場合、ステップS2011に遷移する。
S2008で組み方向が横であると判定された場合、ステップS2009において、表示モード処理部1303は、最小横書き行長と当該処理対象の部分領域の幅とを比較する。最小横書き行長は文書構造情報より得ることができる(“page”タグの“LHmin”を参照する)。最小横書き行長<処理対象の部分領域の幅であれば、ステップS2010へ遷移する。最小横書き行長<処理対象の部分領域の幅でなければ、ステップS2013へ遷移する。
ステップS2010において、表示モード処理部1303は、最小横書き行長がタッチUI1204の表示領域に合うように、ページの表示倍率を決定する。すなわち、最小横書き行長を「LHMIN」とした場合、表示倍率Rは、次の式“R=(DW−mw*2)/LHMIN”により決定する。
S2008で組み方向が縦であると判定された場合、ステップS2011において、表示モード処理部1303は、最小縦書き行長と当該処理対象の部分領域の高さとを比較する。最小縦書き行長は文書構造情報より得ることができる(“page”タグの“LVmin”を参照する)。最小縦書き行長<処理対象の部分領域の高さであれば、ステップS2012へ遷移する。最小縦書き行長<処理対象の部分領域の高さでなければ、ステップS2013へ遷移する。
ステップS2012において、表示モード処理部1303は、最小縦書き行長がタッチUI1204の表示領域に合うように、ページの表示倍率を決定する。すなわち、最小縦書き行長を「LVMIN」とした場合、表示倍率Rは、次の式“R=(DH−mh*2/LVMIN”により決定する。
ステップS2010またはステップS2012では、最小横書き行長または最小多々書き行長に基づいて表示倍率を決定するので、大文字文である処理対象の部分領域は、本文の部分領域のうち、最も大きな表示倍率で表示される本文の部分領域と同じ表示倍率で表示されることになる。同じ表示倍率であれば、大文字文の文字サイズの方が本文の文字サイズよりも大きく表示されることになる。すなわち、大文字文の文字サイズが本文の文字サイズよりも小さく表示されないように制御できる。
ステップS2013において、表示モード処理部1303は、処理対象の部分領域表示倍率が既に決定されているか否かを判定する。すなわち、ステップS2005、S2007、S2010、S2012のいずれかの処理を実行している場合には、表示倍率が既に決定されていると判定する。表示倍率が決定済みと判定した場合には、ステップS2014へ遷移し、表示倍率が未決定であると判定した場合には、ステップS2017へ遷移する。
ステップS2014において、表示モード処理部1303は、処理対象の部分領域に含まれる文字の組み方向を判定する。
S2014で組み方向が横であると判定された場合、ステップS2015へ遷移し、表示モード処理部1303は、処理対象の部分領域の幅がタッチUI1204の表示領域の幅に合うように、ページの表示倍率を決定する。ここで、表示倍率Rは、次の式“R=(DW−mw*2)/OW”により決定する。
S2014で組み方向が縦であると判定された場合、ステップS2016へ遷移し、表示モード処理部1303は、処理対象の部分領域の高さがタッチUI1204の表示領域の高さに合うように、ページの表示倍率を決定する。ここで、表示倍率Rは、次の式“R=(DH−mh*2)/OH”により決定する。
ステップS2017において、表示モード処理部1303は、S2005、S2007、S2010、S2012、S2015、S2016のいずれかで決定した表示倍率で表示した場合に、タッチUI1204に当該処理対象の部分領域の全体を表示できるかを判定する。部分領域全体を表示できない(部分領域のサイズがタッチUIの表示領域のサイズより大きい)と判定した場合には、ステップS2018へ遷移する。一方、部分領域全体を表示できる(部分領域のサイズがタッチUIの表示領域のサイズ以下である)と判定した場合には、ステップS2021へ遷移する。
ステップS2018において、表示モード処理部1303は、処理対象の部分領域に含まれる文字の組み方向を判定する。組
S2018で組み方向が横であると判定した場合は、ステップS2019へ遷移し、表示モード処理部1303は、表示位置の始点をタッチUI1204の左上端と決定する。
S2018で組み方向が横であると判定した場合は、ステップS2019へ遷移し、表示モード処理部1303は、表示位置の始点をタッチUI1204の左上端と決定する。
S2018で組み方向が縦であると判定した場合は、ステップS2020へ遷移し、表示モード処理部1303は、表示位置の始点をタッチUI1204の右上端と決定する。
ステップS2021において、表示モード処理部1303は、当該処理対象の部分領域全体がタッチUI1204の画面内に収まるので、当該部分領域の中央がタッチUI1204の中央に合うように表示位置の始点を決定する。
以上のように、部分領域表示範囲決定処理により、部分領域表示モードにおけるページの表示範囲(表示倍率と表示位置)を決定することができる。小文字文の部分領域の表示倍率は、小文字文の文字サイズが本文よりも小さく表示されるように決定される。また大文字文の部分領域の表示倍率は、大文字文の文字サイズが本文よりも大きく表示されるように決定される。そして本文の部分領域の表示倍率は、行方向の長さが表示領域の幅または高さに合うように決定される。なお、部分領域表示範囲決定処理により決定された表示倍率は、後述の処理のためにRAM1211に記憶される。
次に、図21を用いて、次選択処理の詳細について説明する。図21のフローチャートは、CPU1205がアプリケーションプログラムを実行して表示モード処理部1303として機能することにより実現される。表示モード処理部1303は、タッチUI1204を介して、ユーザによる「次へボタン」1602へのシングルタップ操作を検知すると、本処理を開始する。
ステップS2101において、表示モード処理部1303は、「次へボタン」1602がタップされた時点で設定されている表示モードを判定する。現在の表示モードが部分領域表示モードである場合には、ステップS2102へ遷移し、現在の表示モードがページ表示モードである場合にはステップS2106へ遷移する。
ステップS2102において、表示モード処理部1303は、次の順番の部分領域の情報を読み込む。これは、文書構造情報のXMLの中で、現在表示中の部分領域に該当する“area”タグの次に記述されている“area”タグの情報を読み込むことであり、これにより次の部分領域のページ上の位置や幅、高さ、属性などの情報を取得することができる。
ステップS2103において、表示モード処理部1303は、ボタンがタップされた時点で表示されていた部分領域が、当該ページにおける末尾(最後)の部分領域であるか否かを判定する。この判定は、ステップS2102で次の部分領域の情報を読み込めなかったかどうかに基づいて行えばよい。すなわち、ステップS2102で次の部分領域の情報が読み込めた場合、「次へボタン」1602がタップされた時点で表示されていた部分領域は末尾の部分領域ではなかったと判定し、当該読み込んだ部分領域を処理対象としてステップS1706へ遷移して、図19〜20に示した部分領域表示範囲決定処理が行われる。そして、ステップS2104では、部分領域表示範囲決定処理で決定されたページの表示倍率と表示位置に基づいて、タッチUI1204の表示内容が更新される。
一方、ステップS2102で次の部分領域が読み込めずに、ステップS2103において、当該表示されていた部分領域は末尾の部分領域であったと判定された場合、ステップS2105へ遷移する。ステップS2105において、表示モード処理部1303は、部分領域表示モードを終了して半透明マスク1801を非表示にして、ページ表示モードへと切り替える。
ステップS2106において、表示モード処理部1303は、表示モードがページ表示モードであるので、RAM1211に保存したアプリケーション画像データの文書構造情報を参照し、次のページ(“page”タグ)の情報を読み込む。
ステップS2107において、表示モード処理部1303は、ステップS2106で次のページが読み込めたか否かを判定する。ステップS2106で次のページが読み込めた場合は、ステップS2108へ遷移する。一方、「次へボタン」1602がタップされた時点で表示されていた最終ページの情報であり、S2106で次に読み込み可能なページの情報が無かった場合は、ステップS2108へ遷移する。ステップS2108において、表示モード処理部1303は、文書構造情報から先頭ページの情報を読み込む。
次に、ステップS2109において、表示モード処理部1303は、前述したとおり、タッチUI1204の幅および高さに基づいて、処理対象のページ全体が表示されるようにページの表示倍率とページの始点とを決定することにより、ページの表示範囲を決定する。そして、ステップS2104へ遷移して、決定したページの表示倍率と表示位置に基づいてタッチUI1204の表示内容が更新される。
次に、図22を用いて、前選択処理の詳細について説明する。図22のフローチャートは、CPU1205がアプリケーションプログラムを実行して表示モード処理部1303として機能することにより実現される。表示モード処理部1303は、タッチUI1204を介して、ユーザによる「前へボタン」1603へのシングルタップ操作を検知すると、本処理を開始する。
前選択処理は、図21を用いて説明した次選択処理と処理内容の類似点が多いため、ここでは差異点であるステップS2201〜S2203についてのみ説明する。
ステップS2201において、表示モード処理部1303は、前の順番の部分領域の情報を読み込む。これは、文書構造情報のXMLの中で、現在表示中の部分領域に該当する“area”タグの前に記述されている“area”タグの情報を読み込むことであり、これにより前の部分領域のページ上の位置や幅、高さ、属性などの情報を取得することができる。
ステップS2202において、表示モード処理部1303は、表示モードがページ表示モードであるので、RAM1211に保存したアプリケーション画像データの文書構造情報を参照し、前のページ(“page”タグ)の情報を読み込む。
ステップS2203において、表示モード処理部1303は、文書構造情報から最終ページの情報を読み込む。
ここで、図16、図23、図24を用いて、属性が文字である部分領域について、部分領域表示モードにおけるタッチUI1204の表示の様子を、従来技術による表示形態と比較しながら説明する。尚、属性が写真、表、グラフィクスである部分領域の表示の様子は図18(b)および図18(c)、図18(d)に示したとおりである。
ページ1600の例では、部分領域1605、1607、1612が本文領域(文字サイズが本文文字サイズ)となる。この場合、最大横書き行長は部分領域1605の幅であり、最小横書き行長は部分領域1612の幅である。また、部分領域1611は小文字文の領域であり、部分領域1604と1608は大文字文の領域である。
まず、従来技術(特許文献1)のように、各テキスト領域の行方向の幅が表示画面幅に合うように表示倍率を決定した場合の表示例について説明する。小文字文である部分領域1611は、図23(a)のように表示される。また、大文字文である部分領域1608は、図23(b)のように表示される。また、本文である部分領域1605,1612は、図23(c)および図23(d)のように表示される。図23の表示例を見れば分かるように、従来技術によれば、小文字文が本文と同等あるいはそれよりも大きく表示されたり、大文字文が本文と同等あるいはそれよりも小さく表示される場合があった。したがって、小文字文や大文字文について、本文に対する重要性の関係が分かりにくくなってしまっていた。
次に、本発明による部分領域の表示例について説明する。本発明の部分領域表示範囲決定処理によって決定された表示倍率で、小文字文である部分領域1611を表示した場合、図24(a)のように表示される。また、本発明の部分領域表示範囲決定処理によって決定された表示倍率で、大文字文である部分領域1608を表示した場合、図24(b)のように表示される。なお、本発明の部分領域表示範囲決定処理によって決定された表示倍率で、本文である部分領域1605,1612を表示した場合は、従来技術と同様に、図23(c)および図23(d)のように表示される。これらの例を比較すれば分かるように、本発明によれば、小文字文の部分領域1611は本文よりも小さく表示される。また、大文字文の部分領域1608は本文よりも大きく表示される。したがって、本発明によれば、部分領域表示モードにおいても、小文字文や大文字文について、本文に対する重要性を把握しやすい。
なお、図24(c)は、本発明の部分領域表示範囲決定処理に基づいて、小文字文である部分領域1613を表示した場合の表示例である。部分領域1613は小文字文だが、リンク情報を含んでいるため、この部分領域の幅がタッチUI1204の幅に合うように表示し、本文よりも小さく表示する制御を行わない。ここで、URLのリンク情報を含んでいるならば、当該部分領域のURL部分に対するシングルタップ指示を検知して、他のWeb閲覧用のブラウザ画面(不図示)に遷移して当該URLのWebサイトの内容を表示するよう構成する。この際、ユーザが、当該URLがアクセスするのに妥当なサイトを示しているかを、URLアドレスに基づいて確認しやすくさせるためにこのように制御する。
次に、上述したような部分表示モードで表示した表示内容に対して、ユーザによる自動変倍指示を検知した場合の自動変倍処理について図25を用いて説明する。図25のフローチャートは、CPU1205がアプリケーションプログラムを実行して拡大・縮小処理部1305として機能することにより実現される。拡大・縮小処理部1305は、部分表示モードにおいて、タッチUI1204を介して、ユーザによる部分領域表示部分へのダブルタップ操作を検知すると、本処理を開始する。
ステップS2501において、拡大・縮小処理部1305は、処理対象の部分領域の個別文字サイズを評価する。これはステップS2001と同様の処理である。文字サイズが本文または大文字文であると判定した場合には、ステップS2502へ遷移する。文字サイズが小文字文であると判定した場合には、ステップS2505へ遷移する。
ステップS2502において、拡大・縮小処理部1305は、現在の表示が、既に自動拡大した状態であるか否かを判定する。この判定は、後述のフラグ情報をRAM1211より読み出してその値に基づき行われる。現在の表示が既に自動拡大した状態であると判定した場合は、ステップS2504へ遷移する。現在の表示がまだ自動拡大されていない状態であると判定した場合は、ステップS2503へ遷移する。
ステップS2503において、拡大・縮小処理部1305は、自動拡大する表示倍率を決定する。例えば、自動拡大する表示倍率は、元の表示倍率を単純にN倍(N=2,3,…)することにより決定してもよい。あるいは、予め決定しておいた可読に適した表示文字サイズになるように、本文文字サイズに基づいて表示倍率を求めてもよい。また、S2503で、自動拡大した状態であることを示すフラグ情報をYESに変更してRAM1211に記憶しておく。
ステップS2504において、拡大・縮小処理部1305は、表示倍率を自動拡大する以前の状態に戻す。すなわち、前述の部分領域表示範囲決定処理においてRAM1211に記憶した表示倍率を読み出してこれを用いる。また、S2504で、前記フラグ情報をNOに変更してRAM1211に記憶しておく。
一方、S2501で小文字文であると判定された場合には、ステップS2505において、拡大・縮小処理部1305は、前述の部分領域表示範囲決定処理において最大横書き行長または最大縦書き行長を用いて表示倍率を決定したか否かを判定する。すなわち、図20のステップS2005またはステップS2007で表示倍率を決定したものかを判定する。YESと判定する場合には、ステップS2506へ遷移する。NOと判定する場合には、ステップS2502へ遷移する。
ステップS2506において、拡大・縮小処理部1305は、現在の部分領域の表示が、既に自動拡大した状態であるか否かを判定する。これはステップS2502と同様に、自動拡大した状態かどうかを示すフラグ情報に基づいて判定する。現在の表示が既に自動拡大した状態であると判定した場合には、ステップS2504へ遷移する。現在の表示がまだ自動拡大されていない状態であると判定した場合には、ステップS2507へ遷移する。
ステップS2507において、拡大・縮小処理部1305は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップS2508へ遷移する。組み方向が縦である場合、ステップS2509へ遷移する。
ステップS2508において、拡大・縮小処理部1305は、処理対象の部分領域の幅がタッチUI1204の表示領域の幅に合うように、ページの表示倍率を決定する。これは、図20のステップS2015と同様の処理である。また、S2508で、自動拡大した状態であることを示すフラグ情報をYESに変更してRAM1211に記憶しておく。
ステップS2509において、拡大・縮小処理部1305は、処理対象の部分領域の高さがタッチUI1204の表示領域の高さに合うように、ページの表示倍率を決定する。これは、図20のステップS2016と同様の処理である。また、S2509で、自動拡大した状態であることを示すフラグ情報をYESに変更してRAM1211に記憶しておく。
ステップS2510において、拡大・縮小処理部1305は、ダブルタップ位置の座標を取得し、当該座標に該当するページ上の位置を取得する。そして、S2503,S2504,S2508,S2509のいずれかで決定した表示倍率でページを変倍した場合に、前記ページ上の位置がダブルタップ位置の座標となるよう、ページの表示位置の始点を決定する。
最後に、ステップS2511において、拡大・縮小処理部1305は、当該決定した表示倍率と表示位置とに基づいて、タッチUI1204の表示内容を更新する。
以上説明したように、部分領域表示モードにおいてダブルタップ操作を検知すると、自動的に表示倍率を決定して拡大・縮小の処理を行う。小文字文であることを理解しつつも、大きく表示して内容を確認したい場合に便利である。
なお、自動変倍処理の前後における表示例は以下のようになる。すなわち、図24(a)の小文字文である部分領域1611がダブルタップされると、図23(a)のように拡大表示する。そして、当該拡大表示された図23(a)の部分領域1611がダブルタップされると、図24(a)の表示に戻る。また、図23(c)の本文である部分領域1605がダブルタップされると、図26のように拡大表示する。そして、当該拡大表示された図26の部分領域1605がダブルタップされると、図23(c)の表示に戻る。
なお、「モード切替ボタン」1601と「次へボタン」1602、「前へボタン」1603の表示位置は、図18(a)、図18(b)、図18(c)に示したように、タッチUI1204の中央下端/左下端/右下端のいずれかに設定変更できるように構成してもよい。片手で操作する際に、自分のきき手や手の大きさに合わせて変更することができる。
最大横書き行長や最大縦書き行長に基づいて表示倍率を決定した小文字である部分領域は、図24(a)に示したように、タッチUI1204の中央に表示される。しかし、表示モード処理部1303は、「次へボタン」1601などのボタン群の表示位置設定を考慮して、上記小文字である部分領域の水平方向の表示位置は、上記ボタン群に合わせて変更するようにしてもよい。このようにした場合の表示例を図27に示す。すなわち、図27(a)のように、ボタン群が中央下部に表示されている場合は、小文字である部分領域も水平方向の中央に表示する。また、図27(b)のように、ボタン群が左下部に表示されている場合は、小文字である部分領域も水平方向の左に表示する。また、図27(c)のように、ボタン群が右下部に表示されている場合は、小文字である部分領域も水平方向の右に表示する。このようにボタンの近くに部分領域を表示することで、ユーザは、ボタン群を操作している手で上記小文字である部分領域に対してダブルタップ操作しやすくなるので、片手での操作をより良好に成すことができる。
次に、部分領域表示モードにおいて、属性が文字である部分領域の表示内容に対するスワイプ操作に応じて表示位置を移動させる際の、移動範囲制限処理について図28を用いて説明する。図28のフローチャートは、CPU1205がアプリケーションプログラムを実行することで、表示位置移動処理部1304として機能することにより実現される。表示位置移動処理部1304は、部分領域表示モードにおいて、タッチUI1204を介して、属性が文字である部分領域の表示部分に対して、ユーザによるスワイプ操作を検知すると、本処理を開始する。
ステップS2801において、表示位置移動処理部1304は、制御矩形を、表示中の部分領域と同じ位置に設定する。制御矩形の位置は、ページ上の位置と幅と高さで規定される。ここで制御矩形とは、ページ上の部分領域を囲む矩形であるが、S2802〜S2805において、小文字の部分領域の表示倍率の決定方法に応じて、その幅と高さを最大横書き行長や最大縦書き行長で補正される。
ステップS2802において、表示位置移動処理部1304は、前述の部分領域表示範囲決定処理において最大横書き行長または最大縦書き行長を用いて表示倍率を決定したか否かを判定する。YESと判定する場合には、ステップS2803へ遷移する。NOと判定する場合には、ステップS2806へ遷移する。
ステップS2803において、表示位置移動処理部1304は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップS2804へ遷移し、表示位置移動処理部1304は、制御矩形の幅を最大横書き行長に変更する。一方、組み方向が縦である場合、ステップS2805へ遷移し、表示位置移動処理部1304は、制御矩形の高さを最大縦書き行長に変更する。
ステップS2806において、表示位置移動処理部1304は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップS2807へ遷移する。組み方向が縦である場合、ステップS2809へ遷移する。
ステップS2807において、表示位置移動処理部1304は、現在のページの表示倍率と表示位置を基に、スワイプ操作によって、制御矩形の左右端のどちらかが、タッチUI1204の表示領域外に移動したかを判定する。YESと判定する場合には、ステップS2808へ遷移する。NOと判定する場合には、ステップS2811へ遷移する。
ステップS2808において、表示位置移動処理部1304は、ページの表示位置の始点のX座標を補正して、表示領域の外に移動された制御矩形の左端または右端を表示領域の端に戻すように移動させる。
ステップS2809において、表示位置移動処理部1304は、現在のページの表示倍率と表示位置を基に、スワイプ操作によって、制御矩形の上下端のどちらかが、タッチUI1204の表示領域外に移動したかを判定する。YESと判定する場合には、ステップS2810へ遷移する。NOと判定する場合には、ステップS2811へ遷移する。
ステップS2810において、表示位置移動処理部1304は、ページの表示位置の始点のY座標を補正して、表示領域の外に移動された制御矩形の上端または下端を表示領域の端に戻すように移動させる。
以上の処理により、部分領域表示モードにおいてスワイプ操作で部分領域の移動(スクロール)が指示された場合でも、横書きならば横方向にずれて表示されないようにし、縦書きならば縦方向にずれて表示されないようにする。最大横書き行長や最大縦書き行長に基づいて表示倍率を決定した場合(表示領域に対して小さく表示)にも、部分領域が横方向/縦方向にずれないよう制御できる。これにより、部分領域表示モードでは、部分領域のスクロールを一方向に制限できるので、片手でも操作しやすくなる。
以上述べたように、本実施例によれば、ページ画像を解析して得た部分領域を、一元的な操作で順に表示していく際に、部分領域に含まれる小文字文が、本文よりも大きく表示されないように制御するので、ユーザは本文の部分領域を読んでいるのか小文字文の部分領域を読んでいるのかを把握しやすくなり、ユーザは文の重要度を正しく認識できようになる。
尚、上述した実施例では、本文文字サイズを、ビットマップ画像データ全体に含まれる文字属性の部分領域に含まれる文字を対象に最頻値を求めて決定したが、ビットマップ画像データに含まれるページ毎に決定するように構成してもよい。すなわち、ページごとに含まれる文字属性の部分領域に含まれる文字を対象に最頻値を求めて、ページ毎に本文文字サイズを決定してもよい。
また、本実施例において、ページの表示倍率を算出する際に、マージン(mwおよびmh)を考慮した。これは、ページや部分領域の表示部分とタッチUI1204との境界を見易くするためであり、通常数ピクセルに固定的に設定すればよい。しかし、mv=0、mh=0として計算し、タッチUI1204の表示領域で部分領域が最大限大きく表示されるようにしてもよい。
また、最大横書き行長や最大縦書き行長は、文書の構造によっては、本文の部分領域の長さの平均値に対して極端に長くなる場合がある。また、最小横書き行長や最小縦書き行長は、本文の部分領域の長さの平均値に対して極端に短くなる場合がある。こうした際には、小文字文や大文字文が極端に小さく/大きく表示されてしまうため、予め閾値を設けて上下限を規定してもよい。あるいは、区間別にヒストグラムを求めて、中央値から連続した区間で初めて頻度が0になる区間の直前の区間の値を最大横書き行長や最大縦書き行長、最小横書き行長や最小縦書き行長としてもよい。
[その他の実施例]
本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施例の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施例の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される。
また、上述した実施形態では、コンピュータがプログラムを実行することにより、各処理部として機能するものとしたが、処理の一部または全部を専用の電子回路(ハードウェア)で構成するようにしても構わない。
Claims (10)
- 画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段を有する表示装置であって、
前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする表示装置。 - 前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも大きいサイズの文字で構成される大文字文の文字領域を表示対象として表示する場合、当該表示対象の大文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も小さい幅よりも大きいか否か判定し、該判定において大きいと判定した場合は、前記本文の文字領域の幅のうちの最も小さい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御し、該判定において大きくないと判定した場合は、前記大文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御することを特徴とする請求項1に記載の表示装置。
- 前記制御手段は、更に、前記部分領域表示モードにおいて、縦書きの本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御することを特徴とする請求項1に記載の表示装置。
- 前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの縦書きの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の高さが、前記画像データ内の本文の文字領域の高さのうちの最も大きい高さよりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の高さのうちの最も大きい高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする請求項1に記載の表示装置。
- 前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも大きいサイズの縦書きの文字で構成される大文字文の文字領域を表示対象として表示する場合、当該表示対象の大文字文の文字領域の高さが、前記画像データ内の本文の文字領域の高さのうちの最も小さい高さよりも大きいか否か判定し、該判定において大きいと判定した場合は、前記本文の文字領域の高さのうちの最も小さい高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御し、該判定において大きくないと判定した場合は、前記大文字文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御することを特徴とする請求項1に記載の表示装置。
- 前記制御手段は、前記画像データのページ全体を表示するページ表示モードがユーザにより指定された場合、前記画像データのページ全体が前記表示手段の表示領域に収まるように表示倍率を決定して、当該決定された表示倍率で前記画像データのページ全体を表示するように制御することを特徴とする請求項1乃至5のいずれか1項に記載の表示装置。
- 画像データに対して領域分割処理を実行することによって文字領域の情報を求める領域分割手段と、前記領域分割手段で求めた本文の文字領域の幅のうちの最も大きい幅を求める文字領域情報集計手段と、前記画像データと前記文字領域の情報と前記本文の文字領域の幅のうちの最も大きい幅の情報とを含むアプリケーション画像データを生成する生成手段とを有するデータ生成装置から、当該生成されたアプリケーション画像データを受信する受信手段を更に有し、
前記制御手段は、前記受信手段で受信した前記アプリケーション画像データに含まれる情報に基づいて、前記部分領域表示モードにおいて使用される前記表示倍率を決定して、前記画像データの各文字領域を前記表示手段に表示するように制御することを特徴とする請求項1乃至6のいずれか1項に記載の表示装置。 - 画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する表示方法であって、
表示装置の制御手段が、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御する工程と、
前記制御手段が、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御する工程と、
を有することを特徴とする表示方法。 - コンピュータを、
画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段、として機能させるためのコンピュータプログラムであって、
前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とするコンピュータプログラム。 - 請求項9に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248036A JP2015106289A (ja) | 2013-11-29 | 2013-11-29 | 表示装置、表示方法、コンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248036A JP2015106289A (ja) | 2013-11-29 | 2013-11-29 | 表示装置、表示方法、コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015106289A true JP2015106289A (ja) | 2015-06-08 |
Family
ID=53436348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013248036A Pending JP2015106289A (ja) | 2013-11-29 | 2013-11-29 | 表示装置、表示方法、コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015106289A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019050620A (ja) * | 2015-08-10 | 2019-03-28 | コニカミノルタ株式会社 | 表示装置 |
JP2019159212A (ja) * | 2018-03-15 | 2019-09-19 | 富士通コネクテッドテクノロジーズ株式会社 | 表示装置、表示制御プログラムおよび表示制御方法 |
-
2013
- 2013-11-29 JP JP2013248036A patent/JP2015106289A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019050620A (ja) * | 2015-08-10 | 2019-03-28 | コニカミノルタ株式会社 | 表示装置 |
JP2019159212A (ja) * | 2018-03-15 | 2019-09-19 | 富士通コネクテッドテクノロジーズ株式会社 | 表示装置、表示制御プログラムおよび表示制御方法 |
JP7260080B2 (ja) | 2018-03-15 | 2023-04-18 | Fcnt株式会社 | 表示装置、表示制御プログラムおよび表示制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9922400B2 (en) | Image display apparatus and image display method | |
US10296559B2 (en) | Display apparatus, control method therefor, and storage medium | |
US10222971B2 (en) | Display apparatus, method, and storage medium | |
US7821690B2 (en) | Information processing apparatus, image forming apparatus and method, and storage medium readable by computer therefor | |
US10013147B2 (en) | Image display apparatus | |
US10650489B2 (en) | Image display apparatus, control method therefor, and storage medium | |
CN107133615B (zh) | 信息处理设备和信息处理方法 | |
JP7262993B2 (ja) | 画像処理システム、画像処理方法、画像処理装置 | |
JP2016200860A (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
JP5769131B2 (ja) | 画像処理装置およびプログラム | |
US10609249B2 (en) | Scanner and scanning control program which outputs an original image and an extracted image in a single file | |
JP2015106289A (ja) | 表示装置、表示方法、コンピュータプログラム | |
CN112805664A (zh) | 输入装置、输入方法、程序和输入系统 | |
JP6601143B2 (ja) | 印刷装置 | |
JP2015225509A (ja) | 情報処理装置、情報処理システム、情報処理装置の制御方法およびコンピュータプログラム | |
JP2015049656A (ja) | 情報処理装置、方法及びプログラム | |
JP6223077B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP4305385B2 (ja) | 画像処理装置、プログラム、及び、画像データの出力方法 | |
JP7379063B2 (ja) | 画像処理システム、画像処理方法、及びプログラム | |
JP2015046041A (ja) | 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム | |
US20190102618A1 (en) | Information processing apparatus, method, and storage medium | |
JP2016143135A (ja) | 情報処理装置、制御方法、及びプログラム | |
JP2020060963A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2015103086A (ja) | 画像変換装置、画像変換方法、コンピュータプログラム |