以下、図面を参照して実施の形態を詳細に説明する。
<構成>
図1は、本実施形態の情報処理装置のハードウェア構成図である。情報処理装置101は、画像形成装置やスマートフォンのようにディスプレイ119(表示装置)を備えるコンピュータである。情報処理装置101は、OSやウィンドウシステム等のシステムレベルの拡大機能を有していない。情報処理装置101は、ディスプレイ119の他に、制御部110、タッチパネル118、及び外部メモリ120を備える。制御部110は、CPU(Central Processing Unit)111、RAM(Random Access Memory)112、及びROM(Read Only Memory)113を備え、情報処理装置101全体の動作を制御する。そのために制御部110は、タッチパネル118に接続される入力制御部114、ディスプレイ119に接続される表示制御部115、外部メモリ120に接続される外部メモリインタフェース(I/F)116を備える。また制御部110は、LAN(Local Area Network)等のネットワーク102との通信制御を行う通信I/Fコントローラ117を備える。CPU111、RAM112、ROM113、入力制御部114、表示制御部115、外部メモリI/F116、及び通信I/Fコントローラ117は、システムバスBを介して相互に通信可能に接続される。
CPU111は、ROM113や外部メモリ120に格納されるコンピュータプログラムを読み出し、RAM112をワークエリアとして用いて実行することで、情報処理装置101の各部の動作を制御する。ROM113は不揮発性メモリであり、コンピュータプログラムの他に、処理に必要な各種のデータを保持する記憶媒体である。RAM112は揮発性メモリであり、処理を行う際の一時記憶領域を提供する。
入力制御部114は、入力デバイスを用いたユーザの操作を受け付けて、受け付けた操作に応じた制御信号をCPU111に送信する。図1では、入力デバイスとしてタッチパネル118を用いる。入力デバイスには、タッチパネル118の他に、キーボード等の文字入力デバイスやマウス等のポインティングデバイスを用いることができる。タッチパネル118は、ユーザの指やスタイラスペン等によりタッチされた位置を検出するポインティングデバイスである。タッチパネル118は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等、様々な方式のものを用いることができる。入力制御部114は、タッチパネル118が検出した位置に応じた制御信号をCPU111に送信する。CPU111は、該制御信号に基づいて処理を実行する。CPU111は、これにより情報処理装置101に対してユーザが行う操作に応じた処理を行う。
表示制御部115は、CPU111の制御により、ディスプレイ119に画像を表示させる。表示制御部115は、例えば、ディスプレイ119に、処理に関連付けられたオブジェクトを含む画像を表示させる。本実施形態の表示制御部115は、ディスプレイ119に拡大率100%の画像を表示させる他に、この画像を所定の拡大率で拡大した拡大画像を表示させることも可能である。
ディスプレイ119の表示画面には、タッチパネル118が一体になるように設けられる。タッチパネル118は、ディスプレイ119の表示を妨げないような透過率で構成される。CPU111は、ディスプレイ119に表示されるオブジェクトの位置と、タッチパネル118で検出されたタッチ位置とから、ユーザが操作(タッチ)したオブジェクトを特定し、該オブジェクトに関連付けられた処理を実行する。このようにタッチパネル118及びディスプレイ119により、ユーザがディスプレイ119に表示された画像を直接的に操作して入力を行うようなGUI(Graphical User Interface)を構成することができる。
外部メモリI/F116は、ハードディスク、フレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disc)、メモリカード等の外部メモリ120が装着可能である。外部メモリI/F116は、CPU111の制御に基づき、装着された外部メモリ120からのデータの読み出しや、当該外部メモリ120へのデータの書き込みを行う。通信I/Fコントローラ117は、ネットワーク102を介して、ネットワーク102に接続された他の装置との通信を制御する。
なお、CPU111は、タッチパネル118への以下の操作や状態を検知することができる。
タッチダウン:タッチパネル118を指等の指示体が触れたこと(タッチ開始)
ムーブ:タッチパネル118を指示体が触れたままの状態(タッチ継続中)。
タッチアップ:タッチパネル118に触れていた指示体が離れたこと(タッチ終了)。
これらの操作や、タッチパネル118上でユーザがタッチする位置を表す位置座標等の情報は、入力制御部114及びシステムバスBを介してCPU111に通知される。CPU111は、通知された情報に基づいてタッチパネル118上でどのような操作が行なわれたかを判定する。CPU111は、ムーブ時の指やスタイラスペンの移動方向についても、位置座標の変化に基づいて、タッチパネル118上の垂直成分・水平成分毎に判定する。例えば、ユーザがタッチパネル118に指をタッチし、そのまま指をスライドさせるドラッグ操作を行ったものとする。この場合、CPU111は、最初にタッチダウンとその位置座標を検出し、その後所定周期でムーブとその位置座標を検出することとなる。そして、移動距離が所定値以上であれば、CPU111は、ドラッグ操作が行われたと判断する。
タッチパネル118は、タッチダウンやムーブの位置を複数同時に検出するマルチタッチに対応する。ユーザは、タッチパネルを2本の指やスタイラスペンで触れている状態から、その2点を結ぶ線分の方向に対して、2点間の距離を縮めたり伸ばしたりするように指を移動することがある。ユーザが2本の指を近づけたり離したりする操作は、ちょうど指で物をつまんだり、引き延ばす行為に似ていることから「ピンチ操作」と呼ばれる。通常、ピンチ操作は、ユーザの親指と人差し指を使って行われることが多い。CPU111は、2点同時にタッチされている状態から、それぞれもしくは一方のタッチ位置が移動したとき、すなわち2点のムーブが同時に検出され、そのムーブの位置座標が変化した場合、ピンチ操作が行われたと判断する。また、CPU111は、ピンチ操作している2点を結ぶ線分の中心点座標、2点間の距離を算出することができる。CPU111は2点間の距離が大きくなった場合、ピンチアウト操作が行われたと判断し、2点間の距離が小さくなった場合、ピンチイン操作が行われたと判断する。
図2は、情報処理装置101の制御部110に実現される表示制御のための機能を表す機能ブロック図である。各機能は、CPU111がROM113や外部メモリ120等の記憶媒体からコンピュータプログラムを読み出して実行することで形成されるが、ハードウェアとして構成されてもよい。情報処理装置101には、画面制御部201、拡大制御部301、アプリケーション部401、及びデバイス制御部501が形成される。これらの機能により、情報処理装置101はディスプレイ119に表示されている画像を拡大する拡大機能を実現する。情報処理装置101が有する拡大機能には、「全体拡大機能」と「拡大鏡機能」との二つの機能がある。全体拡大機能は、ディスプレイ119の表示画面の全面に拡大した画像を表示する。拡大鏡機能は、ディスプレイ119の一部に、拡大していない画像に重畳して、拡大した画像を表示する。拡大した画像は、虫眼鏡のようにディスプレイ119の表示サイズよりも小さい枠に表示される。以下、全体拡大機能を単に「全体拡大」といい、拡大鏡機能を単に「拡大鏡」という。
画面制御部201は、拡大機能を含めたAPの管理、表示する画像の画像情報をディスプレイ119に転送する処理、ユーザによるタッチパネル118へのタッチ操作に応じたイベントをAPに通知する処理等を行う。画面制御部201は、画面情報制御部202、画面情報格納部203、画面表示部204、入力情報制御部205、及び入力情報通知部206を備える。
画面情報制御部202は、デバイス制御部501から拡大モード(拡大機能)が切り替わったことを表す拡大モード通知を受信し、画面情報格納部203へ拡大モード通知を格納する。拡大モード通知には、拡大機能が有効か否かを表す情報、拡大率、全体拡大か拡大鏡かを表す情報等が含まれる。同時に、画面情報制御部202は、拡大制御部301に対して拡大モード通知を送信し、拡大制御部301からの指示により、画面表示部204に表示領域の切り替えを指示する。
画面表示部204は、ディスプレイ119に表示される画像を表示領域に描画する。表示領域は、それぞれ画像が描画される同じ表示サイズの2つの表示領域を備えている。画面表示部204は、画面情報制御部202から表示領域の切り替えの指示を受信して、ディスプレイ119に表示する表示領域の切り替え処理を行う。
図3は、表示領域の切り替え処理の説明図である。図3は、最終的な画像の転送先であるディスプレイ119と、ディスプレイ119に転送される画像が描画される仮想ディスプレイ領域601とを表している。仮想ディスプレイ領域601は、例えばRAM112に設けられる。仮想ディスプレイ領域601は、それぞれ同じ表示サイズ(例えば横幅が1024ピクセル、高さが600ピクセル)の通常表示領域602と拡張表示領域603とで構成される。表示サイズは、ディスプレイ119の表示サイズ(例えば横幅が1024ピクセル、高さが600ピクセル)に応じて決められる。ディスプレイ119には、仮想ディスプレイ領域601から、通常表示領域602に描画される画像と拡張表示領域603に描画される画像とのいずれか一方が表示される。
通常表示領域602には、画面表示部204が、開始座標604のX座標「0」、Y座標「0」を始点として画像を描画する。通常表示領域602に描画される画像は、アプリケーション部401で生成される。拡張表示領域603には、画面表示部204が、開始座標605のX座標「1024」、Y座標「0」を始点として画像を描画する。拡張表示領域603に描画される画像は、拡大表示制御部307で生成される。つまり、アプリケーション部401でAPの実行により生成されるAPの実行画像が通常表示領域602に描画され、拡大制御部301で生成される実行画像の拡大画像が拡張表示領域603に描画される。図3の例では、コピーアプリケーションにより生成されるコピー設定画面が通常表示領域602に描画されている。また、コピー設定画面の一部を拡大した拡大画像が拡張表示領域603に表示されている。
画面表示部204は、画面情報制御部202からの表示領域の切り替えの指示により、通常表示領域602に描画された画像と、拡張表示領域603に描画された画像とのいずれか一方を、ディスプレイ119に転送する。図3では、拡大機能が有効となっており、拡張表示領域603の画像がディスプレイ119に転送、表示されていることを表している。
入力情報制御部205は、ユーザのタッチパネル118への操作に応じた制御信号を解析して、APで処理可能なイベント情報の形式に変換し、入力情報通知部206に送信する。イベント情報は、タッチパネル118への操作や状態を表し、タッチ操作されたタッチ位置の座標情報等が含まれる。
入力情報通知部206は、入力情報制御部205からイベント情報を受信する。入力情報通知部206は、画面情報格納部203に格納されている拡大モード通知を参照して、拡大機能が無効であればアプリケーション部401へイベント情報を送信し、拡大機能が有効であれば拡大制御部301へイベント情報を送信する。また、入力情報通知部206は、イベント情報の受信によりタッチパネル118が操作されたと判断して、後述のタイマ制御部503に対してタイマのリセットを指示する。
拡大制御部301は、アプリケーション部401が通常表示領域602に描画した画像をキャプチャし、そのキャプチャ画像を拡大して拡張表示領域603に描画する。拡大制御部301は、拡大情報制御部302、画像キャプチャ部303、キャプチャ画像格納部304、拡大入力制御部305、拡大入力情報格納部306、拡大表示制御部307、及び拡大表示情報格納部308を備える。
拡大情報制御部302は、画面情報制御部202からの拡大モード通知を受信し、受信した拡大モード通知を拡大表示制御部307に送信する。拡大情報制御部302は、拡大モード通知により拡大機能が有効か否かを判断し、判断結果に応じて、画面情報制御部202に表示領域の切り替えを指示する。
画像キャプチャ部303は、拡大表示制御部307からの指示により、画面表示部204で通常表示領域602に描画された画像をキャプチャし、キャプチャ画像格納部304にキャプチャ画像を格納する。
拡大入力制御部305は、入力情報通知部206からイベント情報を受信して、受信したイベント情報を拡大入力情報格納部306に格納するとともに、拡大表示制御部307にイベント情報を受信したことを通知する。拡大入力情報格納部306に格納されるイベント情報は、例えば、前述したタッチダウン、タッチアップ、ムーブ等のイベント種類、タッチされた位置を表す位置座標等を含む。イベント情報は、複数の位置のタッチによるイベント情報を1つのイベント情報として格納する場合もある。
拡大表示制御部307は、大きく以下の3つの処理を行う。
拡大表示制御部307は、拡大入力制御部305からの通知を受け付けると、拡大入力情報格納部306に格納されているイベント情報及び拡大表示情報格納部308に格納されている情報を取得する。拡大表示情報格納部308は、全体拡大機能の拡大率、全体画像の表示位置座標情報、拡大鏡の拡大率、拡大鏡の表示位置座標情報等の拡大表示情報が格納される。拡大表示制御部307は、取得した拡大表示情報を用いて新たな拡大率又は表示位置座標等を算出して、拡大表示情報格納部308の内容を更新する。拡大鏡、全体拡大の表示位置座標については後述する。
拡大表示制御部307は、常時、拡大表示情報格納部308を監視しており、拡大機能が有効であれば、画像キャプチャ部303に対して画像キャプチャを指示し、キャプチャ画像格納部304に格納されているキャプチャ画像を取得する。拡大表示制御部307は、取得したキャプチャ画像を拡大表示情報格納部308に格納されている拡大率に基づいて拡大縮小を行い、拡大鏡の表示位置座標情報に従って、画面表示部204に描画指示を行う。拡大機能が無効であれば、拡大表示制御部307は、これらの画面表示制御を行わない。
拡大表示制御部307は、拡大情報制御部302から拡大モード通知を受信し、拡大機能が有効か否かに応じて、拡大情報制御部302に表示領域の切り替えを指示させる。拡大表示制御部307は、拡大機能が無効になったと判断した場合には、拡大情報制御部302に通常表示領域602への切り替えを指示させる。拡大表示制御部307は、拡大機能が有効になったと判断した場合には、拡大情報制御部302に拡張表示領域603への切り替えを指示させる。
アプリケーション部401は、ディスプレイ119への表示及びタッチパネル118による操作のための画像を生成するアプリケーション群である。アプリケーション部401は、デバイス設定アプリケーション402及び一般アプリケーション403を備える。アプリケーション部401が画面表示部204に描画指示を送信することで、通常表示領域602に画像が描画される。
デバイス設定アプリケーション402は、主に管理者となるユーザが情報処理装置101本体の各種設定値を使用環境に合わせて設定するためのAPである。例えば、デバイス設定アプリケーション402は、言語設定、省電力設定、ネットワーク設定、拡大機能設定等の設定に用いられる。設定値に応じて情報処理装置101の動作が決定される。本実施形態においては、拡大機能の設定として、全体拡大機能の有効/無効、拡大鏡機能の有効/無効が設定される。なお、全体拡大機能と拡大鏡機能は排他関係にあり、いずれか一方のみ有効に設定できる。例えば、全体拡大機能を有効に設定した場合は、拡大鏡機能は無効となる。デバイス設定アプリケーション402による拡大機能の設定に応じて拡大モード通知に含まれる情報が設定される。一般アプリケーション403は、一般のユーザが使用するAPであり、情報処理装置101が備える機能に対応するAPである。ここでは説明を簡略化するために一つの一般アプリケーション403のみ示しているが、一般アプリケーション403が複数あってもよい。一般アプリケーション403としては例えばコピー、スキャン、スキャンしたデータの送信(センド)、スキャンしたデータの保存(ボックス)、プリント等、様々なAPがある。
デバイス制御部501は、情報処理装置101の状態の監視及び管理を行う。デバイス制御部501は、デバイス情報制御部502、タイマ制御部503、及びデバイス情報格納部504を備える。
デバイス情報制御部502は、常時、デバイス情報格納部504を監視しており、デバイス設定アプリケーション402により設定値が更新されたことを検知すると、画面情報制御部202に更新内容を送信する。例えば、デバイス情報制御部502は、デバイス設定アプリケーション402により全体拡大機能又は拡大鏡機能が有効に設定されると、拡大モード通知を生成して画面情報制御部202に送信する。デバイス情報格納部504は、デバイス設定アプリケーション402により設定された設定値を格納する他に、省電力モードへの移行時間やオートクリアする時間を格納する。
タイマ制御部503は、情報処理装置101が一定時間操作されなかった場合に移行する省電力モードや、ユーザが途中まで操作していた画像をデフォルト画像に戻すオートクリア等の管理を行う。具体的には、タイマ制御部503は時間をカウントアップしておき、デバイス情報格納部504に格納されている省電力モードへの移行時間やオートクリアする時間と比較を行う。タイマ制御部503は、比較の結果、それらの時間を過ぎた場合に、デバイス情報制御部502に対して、省電力モードやオートクリアの要求を行う。デバイス情報制御部502は、タイマ制御部503からの通知要求を受けると、画面情報制御部202にオートクリア、省電力モードに入ったことを通知する。また、タイマ制御部503は、入力情報通知部206からタイマのリセットの指示があれば、自身のタイマをリセットすることで、省電力モードやオートクリア等の処理を遅延させる。
<拡大鏡>
図4は、拡大鏡機能が有効に設定されたときにディスプレイ119に表示される拡大鏡枠の説明図である。ディスプレイ119には、拡張表示領域603の画像が表示される。拡大鏡枠705は、拡張表示領域603よりも小さい大きさであり、拡張表示領域603内に表示され、表示位置が中心座標701(x1,y1)で表される。拡大鏡枠705は、ユーザによるドラッグ操作に応じて拡張表示領域603内で移動可能である。図4では、拡大鏡枠705が移動して、中心座標702(x2,y2)の拡大鏡枠706となる。
拡張表示領域603に描画される画像は、拡張表示領域603の左上の座標(1024,0)を原点として描画される。この画像は、通常表示領域602に描画される画像と同じであり、拡大されていない。拡大鏡枠705内に描画される拡大鏡画像は、拡大鏡枠705の左上の座標(0,0)を原点として描画される。拡大鏡枠705の中心座標701は、拡張表示領域603の左上の座標(1024,0)を原点として表される。拡大鏡枠705に描画される拡大鏡画像は、拡大鏡枠705の中心座標701と同座標の拡張表示領域603に描画される画像を拡大鏡の拡大率に応じて拡大し、その一部をクリップした画像である。拡大鏡枠705の中心座標701、横幅707、及び高さ708は、拡大鏡枠705の表示位置座標情報として、拡大表示情報格納部308に格納される。
ユーザは、ディスプレイ119上で拡大鏡枠705を拡大鏡枠706の位置に移動させるために、移動開始点703(xx1,yy1)でタッチダウンし、そのままムーブして移動終了点704(xx2,yy2)でタッチアップする。タッチダウン、ムーブ、タッチアップといった一連の操作によるイベントの座標は、通常表示領域602の横幅を含んだ仮想ディスプレイ領域601の座標としてタッチパネル118から画面制御部201に通知される。
移動後の拡大鏡枠706の中心座標702を求めることで、拡大鏡枠706には、中心座標702と同座標の拡張表示領域603に描画される画像を拡大し、その一部をクリップした拡大鏡画像が表示される。移動後の拡大鏡枠706の中心座標702(x2,y2)は、例えば以下のように求められる。新たに求められた表示位置座標情報は、拡大表示情報格納部308に格納される。
x2=x1+(xx2-xx1)
y2=y1+(yy2-yy1)
図4では移動開始点の拡大鏡枠705及び移動終了点の拡大鏡枠706のみ表しているが、実際には移動開始点と移動終了点との間のムーブイベント中にも複数の移動点が存在する。このムーブイベント中の移動点についても、同様に、座標計算及び拡大鏡の表示が行われる。以上の拡大鏡の座標計算及び拡大鏡の表示に関する処理は、拡大表示制御部307が行う。
<全体拡大>
図5は、全体拡大表示の説明図である。全体拡大された画像は、拡張表示領域603に描画され、ディスプレイ119に表示される。
通常表示領域602に表示される画像を特定の拡大率で拡大した拡大画像801は、ディスプレイ119に表示可能な大きさだけクリップされて、拡張表示領域603に描画される。拡大画像801は、例えば通常表示領域602の画像がディスプレイ119に表示された状態で、ピンチアウト操作されることで得られる。
図5の例では、拡大画像801の原点809が、元の画像の原点から見て(-50,-30)となる。拡大画像801の原点809から見て(50,30)の位置から拡張表示領域603の横幅1024ピクセル、高さ600ピクセルの範囲をクリップした画像が、拡張表示領域603に描画されることになる。
ピンチアウト操作により画像を拡大するときの拡大率及び拡大画像801の原点809は、以下のように求められる。ピンチアウト操作では、タッチパネル118上の2点がタッチされる。1点目は、ピンチ操作開始時のピンチ開始座標802からピンチ操作終了時のピンチ終了座標803まで、タッチ位置が移動する。2点目は、ピンチ操作開始時のピンチ開始座標804からピンチ操作終了時のピンチ終了座標805まで、タッチ位置が移動する。これらの座標は、図3の通常表示領域602の横幅を含んだ情報として、タッチパネル118から制御部110に入力される。
ピンチアウト操作では、ピンチ開始座標802とピンチ開始座標804との間の距離D1に比べて、ピンチ終了座標803とピンチ終了座標805と間の距離D2が大きい。そのために制御部110は、ピンチアウト操作が画像の拡大を指示していると判断する。距離D1、D2は、ピンチ開始座標802を(xx11,yy11)、ピンチ開始座標804を(xx21,yy21)、ピンチ終了座標803を(xx12,yy12)、ピンチ終了座標805を(xx22,yy22)とすると、以下の式で表される。
D1=√((xx21-xx11)2+(yy21-yy11)2)D2=√((xx22-xx12)2+(yy22-yy12)2)
通常表示領域602に表示される画像の現在の拡大率R1(通常は100%)、距離D1、D2とすると、ピンチ操作による画像の拡大率R2は、以下の式で表される。拡大表示制御部307はこの新しい拡大率R2で画像を拡大する。
R2=R1×D2/D1
拡大画像801の原点809の座標(x01,y01)は、新しい拡大率R2により求められる。ここでは、ピンチ操作を行う2点の中心点の座標を起点に画像を拡大する場合について説明する。ピンチ開始時の中心点806とピンチ終了時の中心点807とが同じ位置である場合、中心点の座標(x1,y1)は通常表示領域602の横幅を減算して以下の式で表される。
x1=(xx11-1024+xx21-1024)/2
y1=(yy11+yy21)/2
拡大前の画像の原点808の座標(x00,y00)から中心点までの距離は、以下の式で表される。
(拡大画像の原点から中心点までの距離)=x1-x00
(拡大画像の原点から中心点までの距離)=y1-y00
これらの式により、拡大画像801の原点809の座標(x01,y01)は、以下の式で表すことができる。
x01=x1-(x1-x00)×R2
y01=y1-(y1-y00)×R2
ピンチ開始時の中心点とピンチ終了時の中心点とが同じ位置であることは希であり、実際には、微妙にずれが生じる。そのために、中心点の座標の移動量を算出し、これを加味して拡大画像801の原点809の位置を求める。ピンチ開始時の中心点806及びピンチ終了時の中心点807の各中心点座標(x1,y1)、(x2,y2)は、以下の式で表される。
x1=(xx11-1024+xx21-1024)/2
y1=(yy11+yy21)/2
x2=(xx12-1024+xx22-1024)/2
y2=(yy12+yy22)/2
中心点806から中心点807への移動量(Xd,Yd)は、以下の式で表される。
Xd=x2-x1
Yd=y2-y1
以上により、拡大画像801の原点809の座標(x01,y01)は、以下の式で表される。
x01=x1-(x1-x00)×R2+Xd
y01=y1-(y1-y00)×R2+Yd
ピンチ操作以外にも、ムーブ操作により画像を拡大することも可能である。この場合、例えば中心点806、807が、ムーブ操作の開始点及び終了点となる。中心点806、807間の移動量(Xd,Yd)がムーブ操作による移動量となり、拡大画像801の原点809の座標が算出でき、拡張表示領域603に表示される画像の領域を決定することができる。
なお、ピンチ操作時、ムーブ操作時のいずれでも、操作の開始位置から終了位置まで連続して、位置を表す座標がタッチパネル118から制御部110に入力される。制御部110は、その間も連続して、座標計算及び全体拡大した画像の表示を行う。拡大表示制御部307が、座標位置情報の計算及び全体拡大した画像の表示を行い、拡大率、拡大画像の原点座標、拡大画像の横幅、拡大画像の高さ等の拡大表示情報を拡大表示情報格納部308に格納する。
本実施形態では拡張表示領域603を通常表示領域602の右横に設けた構成としているが、下に設けてもよい。その場合、拡張表示領域603は、座標(0、600)から設けられる。操作によるタッチイベントに関しても、Y方向に600ピクセル加算された値が操作された位置を表す座標としてタッチパネル118から制御部110に入力される。
なお、本実施形態の計算式においては同様の座標を求められるものであれば、他の計算式によって計算することでもよい。
以上のような構成の情報処理装置101により実行される、ディスプレイ119への画像表示処理について説明する。
<第1実施形態>
<拡大機能による画像の切り替え>
図6は、拡大機能(全体拡大又は拡大鏡)が有効か否かにより、ディスプレイ119に表示される画像を切り替える処理を表すフローチャートである。
画面情報制御部202は、デバイス情報制御部502から拡大モード通知を受け付けると(S101)、画面情報格納部203に、受け付けた拡大モード通知を格納する(S102)。また、画面情報制御部202は、受け付けた拡大モード通知を拡大情報制御部302に送信する(S103)。
拡大情報制御部302は、画面情報制御部202から送信された拡大モード通知を受信して、拡大表示制御部307に送信する(S104)。拡大表示制御部307は、拡大情報制御部302から送信された拡大モード通知を受信して、拡大表示情報格納部308に格納する(S105)。
拡大表示制御部307は、拡大モード通知により拡大機能が有効にされたか否かを判断する(S106)。拡大機能が無効にされていれば(S106:N)、拡大表示制御部307は、拡大情報制御部302を介して、画面情報制御部202に、ディスプレイ119に表示される画像の通常表示領域602の画像への切り替えを要求する(S107)。拡大機能が有効であれば(S106:Y)、拡大表示制御部307は、拡大情報制御部302を介して、画面情報制御部202に、ディスプレイ119に表示される画像の拡張表示領域603の画像への切り替えを要求する(S108)。
画面情報制御部202は、拡大情報制御部302からの画像の切り替え要求を受信して(S109)、要求が通常表示領域602の画像への切り替えであるか否かを判断する(S110)。通常表示領域602の画像への切り替え要求であれば(S110:Y)、画面情報制御部202は、画面表示部204により、ディスプレイ119に表示される画像を通常表示領域602の画像に切り替える(S111)。拡張表示領域603の画像への切り替え要求であれば(S110:N)、画面情報制御部202は、画面表示部204により、ディスプレイ119に表示される画像を拡張表示領域603の画像に切り替える(S111)。
以上のように、拡大機能が切り替わったことを示す拡大モード通知をデバイス制御部501から受信したことに応じて、通常表示領域602の画像と拡張表示領域603の画像のいずれをディスプレイ119に表示させるかが切り替わる。
<拡大機能へのイベントの送信>
図7A~図7Cは、ユーザの操作によるタッチパネル118からの入力に応じたイベントの処理を表すフローチャートである。
入力情報制御部205は、ユーザのタッチパネル118への操作に応じた制御信号を受信して(S201)、受信した制御信号をイベント情報に変換して入力情報通知部206に入力する(S202)。入力情報通知部206は、画面情報格納部203に格納されている拡大モード通知を取得して(S203)、拡大モード通知に応じて、拡大機能が有効か否かを判断する(S204)。拡大機能が無効で有れば(S204:N)、入力情報通知部206は、アプリケーション部401にイベント情報を送信する(S205)。アプリケーション部401は、イベント情報に応じた処理を実行して処理を終了する。例えば、コピーアプリケーションのコピー設定画面において、用紙選択ボタンが選択されたことを示すイベント情報を受信すると、コピーアプリケーションは、用紙選択画面(不図示)へ画面を切り替える。拡大機能が有効であれば(S204:Y)、入力情報通知部206は、拡大入力制御部305にイベント情報を送信する(S206)。
拡大入力制御部305は、入力情報通知部206からイベント情報を受信する(S207)。拡大入力制御部305は、受信したイベント情報を拡大入力情報格納部306に格納し(S208)、拡大表示制御部307にイベント情報が入力されたことを通知する(S209)。
拡大表示制御部307は、拡大入力制御部305からの通知に応じて、拡大入力情報格納部306からイベント情報を取得する(S210)。拡大表示制御部307は、拡大表示情報格納部308に格納されている拡大モード通知に基づき、全体拡大機能と拡大鏡機能とのいずれが有効かを判断する(S211)。拡大鏡機能が有効な場合(S211:拡大鏡)、拡大表示制御部307は、拡大鏡のイベント処理を実行する(図7B参照)。全体拡大機能が有効な場合(S211:全体拡大)、拡大表示制御部307は、画像の全体拡大のイベント処理を実行する(図7C参照)。
図7Bは、拡大鏡のイベント処理を示すフローチャートである。ここでは、ユーザによるドラッグ操作により拡大鏡枠を所定の位置に移動させるための処理について説明する。拡大表示制御部307は、拡大表示情報格納部308から拡大鏡の表示位置座標情報を取得する(S301)。拡大表示制御部307は、イベント情報から得られるタッチ位置が、取得した表示位置座標情報から得られる拡大鏡枠の表示エリア内か否かを判断する(S302)。タッチ位置が拡大鏡枠の表示エリア内でなければ(S302:N)、拡大制御部301は、拡大鏡のイベント処理を終了する。
タッチ位置が拡大鏡枠の表示エリア内であれば(S302:Y)、拡大表示制御部307は、イベント情報がムーブを表すか否かを判断する(S303)。イベント情報がムーブであれば(S303:Y)、拡大表示制御部307は、イベントフラグがオンか否かを判断する(S304)。イベントフラグは、タッチパネル118がタッチダウンされているときにオンになり、タッチアップされているときにオフになるフラグである。つまり、イベントフラグは、タッチパネル118のタッチ状態を表す。初期状態では、イベントフラグはオフに設定されている。イベントフラグがオフであれば(S304:N)、拡大制御部301は、拡大鏡のイベント処理を終了する。イベントフラグがオンであれば(S304:Y)、拡大表示制御部307は、拡大鏡枠の表示位置座標を算出して、算出結果に応じて拡大表示情報格納部308の拡大表示情報を更新する(S305、S306)。
イベント情報がムーブでなければ(S303:N)、拡大表示制御部307は、イベント情報がタッチアップを表すか否かを判断する(S307)。イベント情報がタッチアップであれば(S307:Y)、拡大表示制御部307は、イベントフラグをオフに設定する(S308)。イベント情報がタッチアップでなければ(S307:N)、拡大表示制御部307は、イベント情報がタッチダウンを表すか否かを判断する(S309)。イベント情報がタッチダウンであれば(S309:Y)、拡大表示制御部307は、イベントフラグをオンに設定する(S310)。イベント情報がタッチダウンでなければ(S309:N)、拡大制御部301は、拡大鏡のイベント処理を終了する。
図7Bのフローチャートについて、具体例を挙げて説明する。ユーザが拡大鏡枠のドラッグ操作を行う場合、最初に拡大鏡枠を触れることによりタッチダウンが検出され(S309:Y)、イベントフラグがオンに設定される(S310)。続いて、ムーブが検出されることとなり(S303:Y)、イベントフラグがオンに設定されているため(S304:Y)、拡大鏡枠の表示位置座標の算出、拡大表示情報の更新が行われる(S305、S306)。その後、ユーザが拡大鏡枠から指を離すと、タッチアップが検出され(S307:Y)、イベントフラグがオフに設定される(S308)。
図7Cは、全体拡大のイベント処理を示すフローチャートである。ここでは、ユーザによるピンチ操作によりディスプレイ119に表示される画像を拡大し、その後のドラッグ操作により表示位置を移動させるための処理について説明する。拡大表示制御部307は、拡大表示情報格納部308から全体拡大の表示位置座標情報を取得する(S401)。表示位置座標情報を取得した拡大表示制御部307は、イベント情報が1点の座標情報のみを含んでいるか否かを判断する(S402)。
1点でなければ(S402:N)、拡大表示制御部307は、2点以上のタッチ操作が行われたと判断して、イベント情報に応じて複数の座標情報を用いた全体の拡大率を算出する(S403)。また、拡大表示制御部307は、複数の座標情報を用いて表示位置座標を算出する(S404)。拡大表示制御部307は、算出した拡大率及び表示位置座標に基づいて、拡大表示情報格納部308の拡大表示情報を更新する(S405)。
1点であれば(S402:Y)、拡大表示制御部307は、イベント情報がムーブか否かを判断する(S406)。イベント情報がムーブであれば(S406:Y)、拡大表示制御部307は、イベントフラグがオンか否かを判断する(S407)。イベントフラグがオフであれば(S407:N)、拡大制御部301は、拡大鏡のイベント処理を終了する。イベントフラグがオンであれば(S407:Y)、拡大表示制御部307は、全体拡大の表示位置座標を算出する(S408)。拡大表示制御部307は、算出した表示位置座標に基づいて、拡大表示情報格納部308の拡大表示情報を更新する(S409)。
イベント情報がムーブでなければ(S406:N)、拡大表示制御部307は、イベント情報がタッチアップか否かを判断する(S410)。イベント情報がタッチアップであれば(S410:Y)、拡大表示制御部307は、イベントフラグをオフに設定する(S411)。イベント情報がタッチアップでなければ(S410:N)、拡大表示制御部307は、イベント情報がタッチダウンか否かを判断する(S412)。イベント情報がタッチダウンであれば(S412:Y)、拡大表示制御部307は、イベントフラグをオンに設定する(S413)。イベント情報がタッチダウンでなければ(S412:N)、拡大制御部301は、全体拡大のイベント処理を終了する。
図7Cのフローチャートについて、具体例を挙げて説明する。全体拡大を行う場合、ユーザが最初にピンチアウト操作を行うため、2点の座標情報を含むイベント情報が検出されることとなる(S402:N)。そして全体拡大の拡大率の算出(S403)表示位置座標の算出(S404)、拡大表示情報の更新(S405)が行われる。続いて、表示位置を移動させるため、ユーザが拡大された画面のドラッグ操作を行うと、まずはタッチダウンが検出され(S412:Y)、イベントフラグがオンに設定される(S413)。続いて、ムーブが検出されることとなり(S406:Y)、イベントフラグがオンに設定されているため(S407:Y)、全体拡大の表示位置座標の算出、拡大表示情報の更新が行われる(S408、S409)。その後、ユーザがタッチパネル118から指を離すと、タッチアップが検出され(S307:Y)、イベントフラグがオフに設定される(S308)。
<キャプチャ画像処理>
図8は、拡大機能が有効である場合に、キャプチャ画像を取得して拡張表示領域603に描画する処理を表すフローチャートである。この処理は拡大機能が有効になると開始され、情報処理装置101がシャットダウンされるまで一定の時間間隔で行われる。
拡大表示制御部307は、拡大表示情報格納部308に格納されている拡大モード通知を取得する(S501)。拡大表示制御部307は、拡大モード通知により拡大機能が有効か否かを判断する(S502)。拡大機能が無効であれば(S502:N)、拡大表示制御部307は、再度、拡大モード通知を取得する。拡大表示制御部307は、拡大機能が有効になるまでこの処理を繰り返す。
拡大機能が有効になると(S502:Y)、拡大表示制御部307は、画像キャプチャ部303に通常表示領域602に描画された画像をキャプチャさせる。画像キャプチャ部303は、キャプチャしたキャプチャ画像を、キャプチャ画像格納部304に格納する(S503)。
拡大表示制御部307は、拡大モード通知に基づき、全体拡大機能と拡大鏡機能のいずれか有効かを判断する(S504)。拡大鏡機能が有効な場合(S504:Y)、拡大表示制御部307は、拡大鏡の描画処理を行う(S505)。全体拡大機能が有効な場合(S504:N)、拡大表示制御部307は、全体拡大の描画処理を行う(S506)。
<拡大鏡の描画処理及び全体拡大の描画処理>
図9(a)は、拡大鏡の描画処理を表すフローチャートである。
拡大表示制御部307は、キャプチャ画像格納部304に格納されているキャプチャ画像を取得して複製する(S601)。また拡大表示制御部307は、拡大表示情報格納部308に格納されている拡大鏡の拡大率及び表示位置座標情報を取得する(S602)。拡大表示制御部307は、複製したキャプチャ画像を取得した拡大率に応じて拡大する(S603)。拡大表示制御部307は、拡大したキャプチャ画像を、表示位置座標情報に基づいて、拡大鏡枠の大きさにクリップする(S604)。
拡大表示制御部307は、拡大していないキャプチャ画像の表示位置座標情報で示す位置に、クリップした拡大キャプチャ画像を合成する(S605)。拡大表示制御部307は、画面表示部204を介して、拡張表示領域603に合成した画像を描画する(S606)。そして、図6で示した処理によって画面制御部201が拡張表示領域603への表示切替えを行うことにより、ディスプレイ119には、キャプチャ画像の上に、拡大されたキャプチャ画像のクリップされた部分が重畳された画像が表示される。
図9(b)は、全体拡大の描画処理を表すフローチャートである。
拡大表示制御部307は、キャプチャ画像格納部304に格納されているキャプチャ画像を取得する(S701)。また拡大表示制御部307は、拡大表示情報格納部308に格納されている全体拡大の拡大率及び表示位置座標情報を取得する(S702)。拡大表示制御部307は、キャプチャ画像を取得した拡大率に応じて拡大する(S703)。拡大表示制御部307は、拡大したキャプチャ画像を、表示位置座標情報に基づいてディスプレイ119の大きさにクリップする(S704)。拡大表示制御部307は、画面表示部204を介して、拡張表示領域603にクリップした画像を描画する(S705)。そして、図6で示した処理によって画面制御部201が拡張表示領域603への表示切替えを行うことにより、ディスプレイ119には、拡大されたキャプチャ画像のクリップされた部分が表示される。
以上のように、本実施形態の情報処理装置101は、OSやシステムをカスタマイズすることなく、アプリケーションにより生成された画像全体を拡大表示することができる。また、アプリケーションにより生成された画像の一部を拡大表示する拡大鏡表示を可能とする。全体拡大機能を有効にした場合、ユーザはピンチ操作により画面全体の拡大縮小を行うことができるとともに、ドラッグ操作により拡大画像の表示位置を任意の位置に変更することができる。また、拡大鏡機能を有効にした場合、ユーザはドラッグ操作により拡大鏡枠を任意の位置に移動させることができる。これにより視力の弱いユーザであっても操作に支障をきたすことが少なくなり、アクセシビリティが向上する。
なお、上記の説明では、デバイス設定アプリケーション402により拡大機能の設定が変更されたときに、デバイス制御部501が拡大モード通知を生成する。生成された拡大モード通知は、画面制御部201を介して拡大制御部301に送信される(図2、図6)。また、拡大制御部301では、拡大モード通知により拡大機能が有効と判断したときに、通常表示領域の画像キャプチャ処理及び拡張表示領域への画像の描画を行うとともに(図8、図9)、拡張表示領域への表示切替えを行う(図6)。よって、例えば全体拡大機能が無効から有効に変更された場合、ユーザがピンチアウト操作を行う前であっても、通常表示領域の画像キャプチャ処理、拡張表示領域への画像の描画、及び拡張表示領域への切替え処理が行われる。その結果、拡大される前の画像がキャプチャされ、キャプチャされた画像がディスプレイ119に表示されることとなる。
この変更例として、全体拡大機能が有効にされた時点では画像キャプチャ以降の処理を行わずに、ピンチアウト操作が行われたとき又はピンチアウト操作により拡大率が所定値(例えば100%)を超えたときに画像キャプチャ以降の処理を行うようにしてもよい。ここでは、ピンチアウト操作による拡大率が100%を超えたことを条件として画像キャプチャ以降の処理を行う場合を例として説明する。
この場合、拡大制御部301は、図8のS502で拡大機能が有効と判断した時点ではS503の処理を行わず、全体拡大機能か拡大鏡機能のいずれが有効かを判定し、拡大鏡機能が有効な場合にS503以降の処理を行う。全体拡大機能が有効な場合は、ピンチ操作による拡大率が100%を超えたか否かを判定し、100%を超えたと判定した場合にS503以降の処理を行う。また、拡大制御部301は図6のS106で拡大機能が有効と判断した時点ではS108の処理を行わず、全体拡大機能と拡大鏡機能のいずれが有効かを判定し、拡大鏡機能が有効な場合にS108の処理を行う。全体拡大機能が有効な場合は、ピンチ操作による拡大率が100%を超えたか否かを判定し、100%を超えたと判定した場合にS108の処理を行い、拡張表示領域の画像への切替えを画面制御部201に要求する。なお、拡大率には、画面制御部201の入力情報通知部206から通知されたイベント情報に基づいて拡大制御部301が算出した値(図7CのS403)を使用可能である。本変形例によれば、全体拡大機能が有効になったときではなく、ピンチアウト操作が行われたときに画像キャプチャ以降の処理が行われる。そのため、画面拡大のための操作が行われていないときにまで画像キャプチャ等を行うことによる処理負荷を抑えることが可能となる。
<第2実施形態>
第1実施形態ではアプリケーションにより生成された画面の全体拡大表示、拡大鏡表示の仕組みについて説明した。しかし第1実施形態では、拡張表示領域603に描画されている画像がディスプレイ119に表示されているときに、ユーザが画面上のボタンやリスト等のオブジェクトを操作する場合については考慮されていなかった。よって、例えば全体拡大機能を有効にして画面全体を拡大表示しながら、拡大されたボタンを選択するタッチ操作を行ったとしても、アプリケーションは反応しないこととなる。第2実施形態では、拡大表示した画像上に表示されているボタンやリスト等のオブジェクトを通常と同様に操作可能とする。
ここで、第1実施形態で説明した通り、拡大鏡機能が有効な場合、ドラッグ操作により拡大鏡枠を移動させることができ、全体拡大機能が有効な場合、ドラッグ操作により拡大画像の表示位置を移動させることができる。一方、拡大鏡枠内に表示されているボタンを選択するためにタッチ操作を行うことや、全体拡大機能により拡大表示されている画像に含まれるリストをスクロール表示させるためにドラッグ操作を行うことが考えらえる。よって、例えば全体拡大機能が有効時にドラッグ操作が行われた場合、拡大画像の表示位置を移動させるための操作なのか、拡大表示されている画像に含まれるリストをスクロールするための操作なのかを適切に判断する必要がある。本実施形態では、最初にタッチパネル118の同じ位置を所定時間タッチし続ける長押し操作が行われたか否かに応じて、いずれを目的とした操作なのかを判断する例について説明する。第2実施形態における情報処理装置のハードウェア構成及び機能ブロックは、第1実施形態の情報処理装置と同様である(図1、図2参照)。第1実施形態との相違点について説明する。
図10は、拡大鏡のイベント処理を表すフローチャートである。図7Bの処理に代えて、図10の処理が行われる。
拡大表示制御部307は、拡大表示情報格納部308から拡大鏡の表示位置座標情報を取得する(S800)。拡大表示制御部307は、イベント情報から得られるタッチ位置が、取得した表示位置座標情報から得られる拡大鏡枠の表示エリア内か否かを判断する(S801)。
タッチ位置が拡大鏡枠の表示エリア内であれば(S801:Y)、拡大表示制御部307は、イベント情報が1点の座標情報のみを含んでいるか否かを判断する(S802)。1点であれば(S802:Y)、拡大表示制御部307は、イベント情報がムーブか否かを判断する(S803)。イベント情報がムーブであれば(S803:Y)、拡大表示制御部307は、APイベント送信フラグがオンか否かを判断する(S804)。APイベント送信フラグは、アプリケーション部401にタッチイベントを送信中の場合にオンになるフラグである。つまり、APイベント送信フラグがオンである場合、拡大表示制御部307が受けたタッチパネル118からのイベントはすべて通常表示領域のAPに送信するため、拡大画像の移動等は行われない。一方、APイベント送信フラグがオフである場合には、通常表示領域のAPにはタッチパネルからのイベントを送らず、拡大画像を動かすなど、拡大画像を操作するための処理が行われる。初期状態では、APイベント送信フラグはオフに設定されている。
APイベント送信フラグがオフであれば(S804:N)、拡大表示制御部307は、タッチダウン後のイベントを待機中か否か判断する(S805)。S814、S815の処理で後述するように、最初にタッチダウンを検出した際、長押しか否かを判断するために、APへのイベント送信や拡大画像の操作等を即座に行わずに、一定時間待機する。S805の処理では、この待機時間中にムーブイベントを受信したか否かが判断される。待機中であれば(S805:Y)、拡大表示制御部307は、ムーブイベントで受信した座標とタッチダウンイベントで受信した座標とを比較し、タッチ位置が閾値以上移動したか否かを判断する(S806)。
閾値以上移動した場合(S806:Y)、拡大表示制御部307は、長押しではないと判断し、待機状態を終了し(S807)、同様に長押しフラグをオフに設定する(S809)。閾値以上移動していないと判断した場合(S806:N)、拡大表示制御部307は、長押しフラグをオンに設定し(S808)処理を終了する。長押しフラグは、ユーザによるタッチ操作が、同じ位置を所定時間タッチし続ける長押し操作か否かを判断するためのフラグである。タッチダウン検出後の待機中にタッチ位置がほぼ動いてない場合に、長押しフラグはオンになり、タッチ位置が所定以上移動した場合にオフになる。
S805の処理において待機状態でない場合(S805:N)、もしくはS809の処理で長押しフラグをオフに設定した後、拡大表示制御部307は、拡大鏡枠の表示位置座標を算出する(S810)。拡大表示制御部307は、算出結果に応じて拡大表示情報格納部308の拡大表示情報を更新する(S811)。なお、S810、S811の処理は、図7BのS305、S306の処理と同様の処理である。
S803の処理においてイベント情報がムーブでなければ(S803:N)、拡大表示制御部307は、イベント情報がタッチアップか否かを判断する(S812)。イベント情報がタッチアップであれば(S812:Y)、拡大表示制御部307は、APイベント送信フラグがオンか否かを判断する(S813)。APイベント送信フラグがオフの場合(S813:N)、拡大表示制御部307は、処理を終了する。イベント情報がタッチアップでなければ(S812:N)、拡大表示制御部307は、イベント情報がタッチダウンであるか否かを判断する(S814)。
イベント情報がタッチダウンであれば(S814:Y)、拡大表示制御部307は所定時間待機する(S815)。所定時間が経過すると、拡大表示制御部307は、長押しフラグがオンであるか否かを判断する(S816)。長押しフラグがオフであれば(S816:N)、拡大表示制御部307は、処理を終了する。なお、イベント情報がタッチダウンでない場合(S814:N)、拡大表示制御部307は、処理を終了する。
長押しフラグがオンである場合(S816:Y)、及びAPイベント送信フラグがオンである場合(S804:Y又はS813:Y)、拡大表示制御部307は、APにイベント送信を開始すると判断する。拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を、通常表示領域602の座標に変換する(S817)。つまり、タッチイベントをすべてアプリケーション部401に送るために、拡大表示制御部307は、拡張表示領域603の座標から通常表示領域602の座標への座標変換を行う。座標変換について、図4により説明する。
図4の中心座標701(x1,y1)が拡大鏡枠705の中心位置を表し、移動開始点703(xx1,yy1)がイベント情報に含まれるタッチ位置を表す座標である。拡大鏡の拡大率はRである。座標変換後の通常表示領域602の座標(x,y)は、拡張表示領域603の左上の座標(1024,0)を用いて以下の式で表される。
x=((xx1-1024)-x1)/R+x1
y=(yy1-y1)/R+y1
拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新し、アプリケーション部401に、画面制御部201を介してイベント情報を送信する(S818)。このように、ユーザが拡大鏡枠内に拡大表示された画像に対してタッチ操作を行うことで、該タッチ操作によるイベント情報が、通常表示領域602の画像に対して行われたイベント情報に変換される。変換されたイベント情報は、通常表示領域602に画像を表示するAPに通知される。APは通知されたイベント情報に基づいて所定の動作を行う。よって、ユーザは、拡大鏡枠内に拡大表示された画像を見ながらAPの操作を行うことができる。
イベント情報の送信後、拡大表示制御部307は、イベント情報がタッチアップであるか否かを判断する。イベント情報がタッチアップであれば(S819:Y)、拡大表示制御部307は、APイベント送信フラグをオフにする(S820)。イベント情報がタッチアップ以外であれば(S819:N)、拡大表示制御部307は、APイベント送信フラグをオンにする(S821)。拡大表示制御部307はAPイベント送信フラグを設定後、拡大鏡のイベント処理を終了する。
S801の処理において、タッチ位置が拡大鏡枠の表示エリア外であれば(S801:N)、拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S822)。同様に、S802の処理において、イベント情報が1点の座標情報でなければ(S802:N)、拡大表示制御部307は、2点以上のタッチ操作が行われたと判断する。拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S822)。また、図4により説明すると、座標変換後の通常表示領域602の座標(x,y)は、拡張表示領域603の左上の座標(1024,0)を用いて以下の式で表される。
x=xx1-1024
y=yy1
拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新して、アプリケーション部401に画面制御部201を介して送信する(S823)。このように、ユーザが拡大鏡枠外に表示された画像に対してタッチ操作を行った場合や拡大鏡枠内の画像に対してピンチ操作を行った場合、該タッチ操作によるイベント情報が通常表示領域602の画像に対して行われたイベント情報に変換される。変換されたイベント情報は、通常表示領域602に画像を表示するAPに通知される。APは、通知されたイベント情報に基づいて所定の動作を行う。よって、ユーザは、拡大鏡枠の内外を問わず、表示された通りのAP操作を行うことができる。
図10のフローチャートについて、具体例を挙げて説明する。情報処理装置101ではスキャンしたデータを送信するためのセンドアプリケーションが起動しているものとする。そして、センドアプリケーションにおいてデータの送信先を選択するためのアドレス帳画面が表示されているものとする。ここで、拡大鏡機能が有効に設定され、拡大鏡がアドレス帳の一部を拡大表示しているものとする。
ユーザが拡大鏡枠内に表示されたアドレス帳のリスト部分をスクロールするために、拡大鏡枠内のアドレス帳リストを最初に長押ししてからドラッグ操作を行うものとする。この場合、最初にS814の処理でタッチダウンが検出され、待機状態となる(S815)。続いてこの待機状態の間に、ムーブが検出されることとなる(S803)。しかしこの時点ではAPイベント送信フラグがオフであり、指も動かしていないため、S804→S805→S806と処理が進み、長押しフラグがオンになる(S808)。待機時間が経過するまでの間は、ムーブイベントが周期的に検出され続けるため、S803~S808の処理が繰り返し行われる。待機時間が経過すると、S816の処理に進む。この時点では、長押しフラグがオンになっているため、座標の変換処理、座標変換後のセンドアプリケーションへのイベント送信処理が行われる(S817、S818)。また、S819の処理ではイベント情報がタッチアップではないため、S821の処理に進み、APイベント送信フラグがオンになる。
ユーザが長押し後にドラッグ操作を行うと、S803の処理で再びムーブが検出されることになる。この時点ではAPイベント送信フラグがオンになっているため(S804:Y)、座標の変換処理、座標変換後のセンドアプリケーションへのイベント送信処理が行われる(S817、S818)。こうして、長押し後にユーザがドラッグ操作をしている間、タッチ位置に基づいて座標変換されたイベント情報がセンドアプリケーションに送信され、センドアプリケーションでは当該イベント情報に基づいてアドレス帳リストをスクロールする。なお、センドアプリケーションによるスクロール中の画像は、図8の処理により拡大制御部301によりキャプチャされ、図9(b)の処理によりディスプレイ119に表示されることとなる。
続いて、ユーザが拡大鏡枠を移動させるために、拡大鏡枠をドラッグ操作するものとする。この場合、S814の処理でタッチダウンが検出され、待機状態になった後(S815)、ムーブが検出される(S803)。この時点ではAPイベント送信フラグがオフであり(S804:N)、待機中であるため(S805)、タッチダウンイベントで受信した座標とムーブイベントで受信した座標に基づいて、タッチ位置が閾値以上移動したか否かが判断される(S806)。ここでは、閾値以上移動しているため(S806:Y)、待機状態が終了となり(S807)、長押しフラグがオフとなる(S809)。そして、拡大鏡枠の表示位置座標の算出、拡大表示情報の更新が行われることとなる(S810、S811)。
以上の通り、拡大鏡枠内でタッチダウンした後すぐにドラッグ操作を開始した場合、拡大制御部がイベントを処理して拡大鏡枠を移動させる。一方、拡大鏡枠外でドラッグ操作を行った場合および、拡大鏡枠内でタッチダウンした後、所定時間指を動かさずに待機した後でドラッグ操作を行った場合、拡大制御部301は拡大率を考慮して座標変換を行ってAPにイベントを通知する。従って、ユーザは例えばAPが表示したリストをスクロールさせるなどドラッグ操作によるAP操作を行うことができる。また、ピンチイベントなど拡大鏡表示中は、拡大制御部301が処理しないイベントは拡大率を考慮して座標変換が行われ、APに通知される。従って、ユーザは例えばAPが表示した画像を拡大・縮小表示させるなどのAP操作を行うことができる。
図11は、全体拡大のイベント処理を表すフローチャートである。図7Cの処理に代えて、図11の処理が行われる。
拡大表示制御部307は、拡大表示情報格納部308から全体拡大の表示位置座標情報を取得する(S900)。表示位置座標情報を取得した拡大表示制御部307は、イベント情報が1点の座標情報のみを含んでいるか否かを判断する(S901)。
1点でなければ(S901:N)、拡大表示制御部307は、2点以上のタッチ操作が行われたと判断して、APイベント送信フラグがオンか否かを判断する(S902)。前述した通り、APイベント送信フラグは、アプリケーション部401にタッチイベントを送信中の場合にオンになるフラグである。APイベント送信フラグがオフであれば(S902:N)、拡大表示制御部307は、イベント情報に応じて複数の座標情報を用いた全体の拡大率を算出する(S903)。また、拡大表示制御部307は、複数の座標情報を用いて表示位置座標を算出する(S904)。拡大表示制御部307は、算出した拡大率及び表示位置座標に基づいて、拡大表示情報格納部308の拡大表示情報を更新する(S905)。なお、S903~S905の処理は、図7CのS403~405の処理と同様の処理である。
イベント情報が1点の座標情報のみを含んでいる場合(S901:Y)、拡大表示制御部307はイベント情報がムーブか否かを判断する(S906)。イベント情報がムーブであれば(S906:Y)、拡大表示制御部307は、APイベント送信フラグがオンか否かを判断する(S907)。APイベント送信フラグがオフであれば(S907:N)、拡大表示制御部307は、タッチダウン後のイベントを待機中か否か判断する(S908)。S917、S918の処理で後述するように、最初にタッチダウンを検出した際、長押しか否かを判断するために、APへのイベント送信や拡大画像の操作等を即座に行わずに、一定時間待機する。S908の処理では、この待機時間中にムーブイベントを受信したか否かが判断される。
待機中であれば(S908:Y)、拡大表示制御部307は、ムーブイベントで受信した座標とタッチダウンイベントで受信した座標と比較し、タッチ位置が閾値以上移動したか否かを判断する(S909)。閾値以上移動した場合(S909:Y)、長押しではないと判断し、待機状態を終了し(S910)、長押しフラグをオフに設定する(S911)。S911の処理後、或いはS908の処理において待機状態でない場合(S908:N)、拡大表示制御部307は、全体拡大の表示位置座標を算出する(S912)。拡大表示制御部307は、算出結果に応じて拡大表示情報格納部308の拡大表示情報を更新する(S913)。なお、S912、S913は、図7CのS408、S409と同様の処理である。
閾値以上移動していないと判断したら(S909:N)、長押しフラグをオンに設定し(S914)、処理を終了する。前述した通り、長押しフラグは、ユーザによるタッチ操作が、同じ位置を所定時間タッチし続ける長押し操作か否かを判断するためのフラグである。
S906の処理においてイベント情報がムーブでなければ(S906:N)、拡大表示制御部307は、イベント情報がタッチアップか否かを判断する(S915)。イベント情報がタッチアップであれば(S915:Y)、拡大表示制御部307は、APイベント送信フラグがオンか否かを判断する(S916)。
イベント情報がタッチアップでなければ(S915:N)、拡大表示制御部307は、イベント情報がタッチダウンであるか否かを判断する(S917)。イベント情報がタッチダウンであれば(S917:Y)、拡大表示制御部307は、所定時間待機する(S918)。所定時間が経過すると、拡大表示制御部307は、長押しフラグがオンであるか否かを判断する(S919)。長押しフラグがオンであれば(S919:Y)、APにイベント送信を開始すると判断し、拡大表示制御部307は、S920以降の処理を行う。長押しフラグがオフであれば(S919:N)処理を終了する。イベント情報がタッチダウンでない場合(S917:N)、処理を終了する。
長押しフラグがオンである場合(S919:Y)、拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S920)。APイベント送信フラグがオンである場合(S902:Y、S907:Y、又はS916:Y)も同様に、拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する。つまりタッチイベントをすべてアプリケーション部401に送るために、拡大表示制御部307は、拡張表示領域603の座標から通常表示領域602の座標への座標変換を行う。
座標変換は、以下のように行われる。例えば、拡大画像の原点を(x01,y01)、拡大率をR、イベント情報に含まれるタッチ位置を表す座標を(xx1,yy1)とする。座標変換後の通常表示領域602の座標(x,y)は、拡張表示領域603の左上の座標(1024,0)を用いて以下の式で表される。
x=((xx1-1024)-x01)/R
y=(yy1-y01)/R
拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新して、アプリケーション部401に画面制御部201を介してイベント情報を送信する(S921)。このように、ユーザが拡大表示された画像に対してタッチ操作を行うと、該タッチ操作によるイベント情報が通常表示領域602の画像に対して行われたイベント情報に変換される。変換されたイベント情報は、通常表示領域602に画像を表示しているAPに対して通知され、APは通知されたイベント情報に基づいて所定の動作を行う。よって、ユーザは、拡大表示された画像を見ながらAPの操作を行うことができる。
イベント情報の送信後、拡大表示制御部307は、イベント情報がタッチアップであるか否かを判断する。イベント情報がタッチアップであれば(S922:Y)、拡大表示制御部307は、APイベント送信フラグをオフにする(S923)。イベント情報がタッチアップ以外であれば(S922:N)、拡大表示制御部307は、APイベント送信フラグをオンにする(S924)。拡大表示制御部307はAPイベント送信フラグを設定後、全体拡大のイベント処理を終了する。
図11のフローチャートについて、具体例を挙げて説明する。情報処理装置101ではセンドアプリケーションが起動しており、データの送信先を選択するためのアドレス帳画面が表示されているものとする。ここで、全体拡大機能が有効に設定され、アドレス帳のリスト部分が拡大表示されているものとする。
まず、ユーザが拡大表示されたアドレス帳のリスト部分をスクロールするために、拡大画像上のアドレス帳リストを最初に長押ししてからドラッグ操作を行うものとする。この場合、最初にS901の処理でタッチダウンが検出され、待機状態となる(S918)。続いて、この待機状態の間にムーブが検出されることとなるが(S906)、この時点ではAPイベント送信フラグがオフであり、指も動かしていないため、S907→S908→S909の処理が行われ、長押しフラグがオンになる(S914)。待機時間が経過するまでの間は、ムーブイベントが周期的に検出され続けるため、S906~S914の処理が繰り返し行われる。待機時間が経過すると、S919の処理が行われる。この時点では、長押しフラグがオンになっているため、座標の変換処理、座標変換後のセンドアプリケーションへのイベント送信処理が行われる(S920、S921)。また、S922の処理ではイベント情報がタッチアップではないため、S924の処理が行われ、APイベント送信フラグがオンになる。
ユーザが長押し後にドラッグ操作を行うと、S906の処理で再びムーブが検出されることになる。この時点ではAPイベント送信フラグがオンになっているため(S907:Y)、座標の変換処理、座標変換後のセンドアプリケーションへのイベント送信処理が行われる(S920、S921)。こうして、長押し後にユーザがドラッグ操作をしている間、タッチ位置に基づいて座標変換されたイベント情報がセンドアプリケーションに送信され、センドアプリケーションでは当該イベント情報に基づいてアドレス帳のリスト部分がスクロールされる。なお、センドアプリケーションによるスクロール中の画像は、図8の処理によりキャプチャされ、図9(b)の処理によりディスプレイ119に表示されることとなる。
続いて、ユーザが全体拡大された画像の表示位置を移動させるために、拡大画像をドラッグ操作するものとする。この場合、S917の処理でタッチダウンが検出され、待機状態になった後(S918)、ムーブが検出される(S906)。この時点ではAPイベント送信フラグがオフであり(S907:N)、待機中であるため(S908)、タッチダウンイベントで受信した座標とムーブイベントで受信した座標に基づいて、タッチ位置が閾値以上移動したか否かが判断される(S909)。ここでは、閾値以上移動しているため(S909:Y)、待機状態が終了となり(S910)、長押しフラグがオフとなる(S911)。そして、全体拡大の表示位置座標の算出、拡大表示情報の更新が行われることとなる(S912、S913)。
以上の通り、ユーザがタッチダウンした後すぐにドラッグ操作を行った場合、拡大制御部301がイベントを処理して拡大表示位置を移動させる。一方、ユーザがタッチダウンした後、所定時間指を動かさずに待機した後でドラッグ操作を行った場合、拡大制御部301は拡大表示位置を移動させる処理を行わず、拡大率を考慮して座標変換を行ってAPにイベントを通知する。従って、ユーザは例えばAPが表示したリストをスクロールさせるなどドラッグ操作によるAP操作を行うことができる。
また、タッチダウンした後すぐにピンチ操作を行った場合、拡大制御部301がイベントを処理して全体拡大の拡大率を変更する。一方、ユーザがタッチダウンした後、所定時間指を動かさずに待機した後でピンチ操作を行った場合、拡大制御部301が全体拡大の拡大率を変更する処理を行わず、拡大率を考慮して座標変換を行ってAPに通知する。従って、ユーザは例えばAPが表示した画像を拡大・縮小表示させるなど、ドラッグ操作によるAP操作を行うことができる。
なお、上記説明では、最初に長押し操作が行われたか否かに応じて、APにイベントを送信するか、拡大画像に対する操作を行うかを切り替える例について説明したが、他の方法により上記切り替えを行うようにしてもよい。例えば、ユーザが所定の短い間隔で2回タッチダウンを行った場合(ダブルタップ)にAPへイベントを送信するようにしてもよい。また、APへのイベント送信を指示するための専用のボタンを表示し、当該ボタンが押下された場合にその後に行われたタッチイベントをAPに送信するようにしてもよい。
<第3実施形態>
次に第3実施形態について説明する。第2実施形態では、拡大画面を表示中にユーザがタッチダウンやムーブ等のタッチ操作を行うと、拡大率や表示位置を考慮して座標変換を行った上で、実行中のAPにイベント情報を通知する例について説明した。本実施形態では、実行中のAPから、AP側でイベントを処理する座標範囲の通知を受けて、イベントの座標がこの座標範囲に含まれているか否かによってAPにイベント情報を通知するか否かを判断する。第3実施形態における情報処理装置のハードウェア構成は、第1実施形態の情報処理装置と同様である(図1参照)。以下、第2実施形態との相違点を中心に説明する。
図12は第3実施形態における情報処理装置101の機能ブロック図である。情報処理装置101は、図2に示した第1実施形態の構成に加えて、拡大制御部301内にAPイベント送信依頼受信部309を備える。その他の構成は同じである。
APイベント送信依頼受信部309は、アプリケーション部401からAPイベント送信依頼を受信し、拡大表示情報格納部308にAPイベント送信依頼を格納する。APイベント送信依頼には、APに対してイベントを送信することを要求する領域範囲の情報が含まれる。アプリケーション部401のアプリケーション(デバイス設定アプリケーション402又は一般アプリケーション403)は、画面表示部204に描画指示を送信する。また、アプリケーション部401のアプリケーション(デバイス設定アプリケーション402又は一般アプリケーション403)は、表示画面に応じてAPイベント送信依頼受信部309にAPイベント送信依頼を行う。
拡大表示制御部307はイベント情報を受け取ると、拡大表示情報格納部308からAPイベント送信依頼情報を取得する。そして、拡大表示制御部307は、イベント情報から得られるタッチ位置が、APイベント送信依頼情報から得られる領域範囲内か否かを判断する。拡大表示制御部307は、判断結果に応じて、領域範囲内であれば座標変換してアプリケーション部401に画面制御部201を介してイベントを送信する処理を行う。処理の詳細は後述する。
図13及び図14は、ユーザの操作によるタッチパネル118からの入力に応じたイベントの処理を表すフローチャートである。ユーザの操作によるタッチパネル118からの入力に応じたイベントがあると、まず図7Aの処理を行う。S211の判断処理により、拡大鏡機能が有効な場合(S211:拡大鏡)、拡大表示制御部307は、図13に示す拡大鏡のイベント処理を実行する。全体拡大機能が有効な場合(S211:全体拡大)、拡大表示制御部307は、図14に示す全体拡大のイベント処理を実行する。
図13は、拡大鏡のイベント処理を表すフローチャートである。
拡大鏡のイベント処理を実行する場合、拡大表示制御部307は、拡大表示情報格納部308から拡大鏡の表示位置座標情報を取得する(S1000)。拡大表示制御部307は、イベント情報から得られるタッチ位置が、取得した表示位置座標情報から得られる拡大鏡枠の表示エリア内か否かを判断する(S1001)。
タッチ位置が拡大鏡枠の表示エリア内であれば(S1001:Y)、拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S1002)。この座標変換は図10におけるS817の処理と同様の処理である。続いて、拡大表示制御部307は、拡大表示情報格納部308からAPイベント送信依頼情報を取得する(S1003)。次に拡大表示制御部307は、S1002の処理で変換した座標が、APイベント送信依頼情報に含まれる領域範囲内であるか否かを判断する(S1004)。APイベント送信依頼情報に含まれる領域範囲内であれば(S1004:Y)、拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新して、アプリケーション部401に画面制御部201を介して送信する(S1006)。
APイベント送信依頼情報に含まれる領域範囲外であれば(S1004:N)、拡大制御部301は、イベントの処理を行う(S1005)。すなわち、図10のS810、S811などで説明したのと同様に拡大鏡表示位置の更新処理を行う。拡大制御部301による処理後に、拡大表示制御部307は、拡大鏡のイベント処理を終了する。
タッチ位置が拡大鏡枠の表示エリア外であれば(S1001:N)、拡大制御部301は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S1007)。この座標変換は図10におけるS822の処理と同様の処理である。拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新して、アプリケーション部401に画面制御部201を介して送信する(S1006)。イベント情報の送信後に、拡大表示制御部307は、拡大鏡のイベント処理を終了する。
図14は、全体拡大のイベント処理を表すフローチャートである。拡大表示制御部307は、拡大表示情報格納部308から全体拡大の表示位置座標情報を取得する(S1100)。表示位置座標情報を取得した拡大表示制御部307は、イベント情報に含まれるタッチ位置を表す座標を通常表示領域602の座標に変換する(S1101)。この座標変換は図11におけるS920と同様の処理である。続いて、拡大表示制御部307は、拡大表示情報格納部308からAPイベント送信依頼情報を取得する(S1102)。次に拡大表示制御部307は、S1101の処理で変換した座標が、APイベント送信依頼情報に含まれる領域範囲内であるか否かを判断する(S1103)。APイベント送信依頼情報に含まれる領域範囲内であれば(S1103:Y)、拡大表示制御部307は、座標変換により算出した座標によりイベント情報を更新して、アプリケーション部401に画面制御部201を介して送信する(S1105)。
APイベント送信依頼情報に含まれる領域範囲外であれば(S1103:N)、拡大制御部301でイベントの処理を行う(S1104)。すなわち、図11のS903、S904、S905、S912、S913などで説明した拡大率の変更や表示位置座標の更新処理や描画処理を行う。拡大制御部でのイベント処理後に、拡大表示制御部307は、拡大鏡のイベント処理を終了する。
図15は、一般アプリケーション403が表示する画面の例示図である。領域900は、情報処理装置101内に保存されているアドレス帳のリスト部分を表示する領域である。一般アプリケーション403は、領域900内でドラッグ操作が行われたことを検知するとリストのスクロール処理を行う。拡大機能によって拡大表示されている場合であっても、領域900内でドラッグ操作が行われた場合、一般アプリケーション403は、拡大表示位置座標を更新するのではなく、一般アプリケーション403の処理であるリストのスクロール処理を行う。この場合、一般アプリケーション403は、画面表示部204にこの画面の情報の描画指示を送信すると同時に、APイベント送信依頼受信部309に対して、領域900を特定する座標901、902の座標情報を含んだAPイベント送信依頼を行えばよい。これによって、拡大表示中であっても、領域900内で行われた操作は、座標変換されて一般アプリケーション403に通知される。従って、領域900内でドラッグ操作が行われた場合はリストのスクロール処理が行われる。一方、領域900以外の領域でドラッグ操作が行われた場合は拡大表示の位置が変更される。なお、APイベント送信依頼に含まれる領域は、通常表示領域の全領域であってもよい。この場合、全てのイベントがアプリケーション部401に通知されることとなる。
以上のように、本実施形態の情報処理装置101は、所定の領域内のイベントをAPに送信するようにAPから指示することによって、拡大表示中であっても、APが所望する操作をユーザに提供することができる。
<第4実施形態>
第4実施形態では、拡大表示する画像に、拡大表示する画像を元のサイズに戻すためのオブジェクト及び拡大された画像の表示されていない部分を表示するためのオブジェクトを重畳して表示する。図16は、このようなオブジェクトが表示された画像の例示図である。第4実施形態における情報処理装置のハードウェア構成及び機能ブロックは、第1実施形態の情報処理装置と同様である(図1、図2参照)。
図16では、元のサイズの画像に戻すためのオブジェクトとして終了ボタン1001が設けられる。終了ボタン1001がタッチ操作されると、制御部110は、拡大機能を終了して元のサイズの画像をディスプレイ119に表示する。拡大された画像の表示されていない部分を表示するためのオブジェクトとして4個の矢印ボタン1002が設けられる。矢印ボタン1002は、ディスプレイ119の四辺に1個ずつ設けられる。矢印ボタン1002がタッチ操作されると、制御部110は、タッチされた矢印ボタン1002が指し示す方向に画像をスクロールする。矢印ボタン1002のタッチは、ムーブと同様の操作性を提供する。画面表示部204は、拡張表示領域603に描画された画像に終了ボタン1001及び矢印ボタン1002を重畳してディスプレイ119に表示する。
矢印ボタン1002は、スクロール方向に未表示の画像がなければ表示されない。制御部110は、拡大表示制御部307からの指示により矢印ボタン1002の表示、非表示を決める。拡大表示制御部307は、表示位置座標情報を取得して、拡大画像の原点座標、横幅、高さ、及び拡張表示領域603の横幅、高さに基づいて、上下左右の四方で未表示の画像の有無を判断して、矢印ボタン1002の表示、非表示を決める。
<終了ボタンと矢印ボタンのイベント処理>
図17は、図7Cのフローチャートの変形例であり、終了ボタン1001及び矢印ボタン1002がタッチされた場合の処理を表すフローチャートである。図7CのS401~S412の処理と図17のS1201~S1212の処理とは同様の処理であるため説明を省略する。
イベント情報がタッチダウンであり、イベントフラグをオンに設定した拡大表示制御部307は、イベント情報により、タッチダウンが矢印ボタン1002上で行われたか否かを判断する(S1214)。このとき拡大表示制御部307は、どの方向の矢印ボタン1002がタッチされているかも判断する。タッチダウンが矢印ボタン1002上で行われていれば(S1214:Y)、拡大表示制御部307は、矢印ボタン1002が指し示す方向に画像が一定の座標分移動したとみなして表示位置座標情報を算出する(S1215)。拡大表示制御部307は、算出した表示位置座標に基づいて、拡大表示情報格納部308の拡大表示情報を更新する(S1216)。
タッチダウンが矢印ボタン1002上で行われていなければ(S1214:N)、拡大表示制御部307は、イベント情報により、タッチダウンが終了ボタン1001上で行われたか否かを判断する(S1217)。タッチダウンが終了ボタン1001上で行われていれば(S1217:Y)、拡大表示制御部307は、全体拡大の拡大率を元に戻す。ここでは拡大率が100%に戻される(S1218)。拡大表示制御部307は、拡大率に基づいて、拡大表示情報格納部308の拡大表示情報を更新する(S1219)。タッチダウンが終了ボタン1001上でなければ(S1217:N)、或いは拡大表示情報格納部308の更新が終了すると処理を終了する。
図18は、全体拡大描画処理を表すフローチャートである。図18の処理は、図9(b)の処理の変形例であり、図9(b)のS701~S704の処理と図18のS1301~S1304の処理とは同様の処理であるため説明を省略する。
キャプチャ画像をディスプレイ119の大きさにクリップした拡大表示制御部307は、拡大率が100%より大きいか否かを判断する(S1305)。拡大率が100%より大きければ(S1305:Y)、拡大表示制御部307は、終了ボタン1001の表示を決定する(S1306)。また、拡大表示制御部307は、全体の拡大画像の表示位置座標情報に基づいて、上下左右の矢印ボタン1002の表示を決定する(S1307)。拡大率が100%以下であれば(S1305:N)、拡大表示制御部307は、終了ボタン1001及び矢印ボタン1002の非表示を決定する(S1308、S1309)。このように終了ボタン1001及び矢印ボタン1002の表示、非表示を決定した後に、拡大表示制御部307は、拡張表示領域603に画像の描画を行う(S1310)。画面表示部204は、終了ボタン1001及び矢印ボタン1002を表示する場合には、拡張表示領域603に描画された画像をディスプレイ119に表示する。画面表示部204は、終了ボタン1001及び矢印ボタン1002を表示しない場合には、通常表示領域602及び拡張表示領域603のいずれに描画された画像をディスプレイ119に表示してもよい。
以上のような終了ボタン1001や矢印ボタン1002を表示することで、スマートフォン等のように操作に慣れが必要な情報処理装置101であっても、操作が容易になる。
<第5実施形態>
情報処理装置101には、所定の時間操作されなければ、省電力モードや画面をリセットするオートクリア等の処理を行ってもよい。第5実施形態における情報処理装置のハードウェア構成及び機能ブロックは、第1実施形態の情報処理装置と同様である(図1、図2参照)。
情報処理装置101は、タイマ制御部503によりユーザの操作間隔を測定する。前回の操作から所定の時間経過すると、タイマ制御部503は、省電力モードやオートクリアを要求するリセット通知をデバイス情報制御部502に送信する。デバイス情報制御部502は、タイマ制御部503からのリセット通知により、画面制御部201に、省電力モードやオートクリアを通知する。画面制御部201は、省電力モードやオートクリアの通知を受信して、例えば拡大機能により拡大表示している画像を元のサイズの画像に戻す。図19は、オートクリアの処理により画像が元のサイズに戻る処理を表すフローチャートである。このフローチャートは、画面制御部201が省電力モードやオートクリアの通知を受信することで行われる。なお、省電力モード等の他の処理においても同様の処理となる。
画面情報制御部202は、デバイス情報制御部502からオートクリアの通知を受信すると(S1401)、アプリケーション部401にオートクリアの通知を行う(S1402)。画面情報制御部202は、画面情報格納部203に格納されている拡大モード通知により拡大機能が有効か否かを判断する(S1403)。拡大機能が無効であれば(S1403:N)、画面情報制御部202は処理を終了する。拡大機能が有効であれば(S1403:Y)、画面情報制御部202は、拡大情報制御部302に対してオートクリアの通知を行う(S1404)。
拡大情報制御部302は、画面情報制御部202からオートクリアの通知を受信すると、拡大表示制御部307に拡大モード通知を送信する(S1405)。拡大表示制御部307は、拡大モード通知を受信して、拡大機能が拡大鏡であるか否かを判断する(S1406)。拡大機能が拡大鏡であれば(S1406:Y)、拡大表示制御部307は、拡大鏡をデフォルトの座標に設定する(S1407)。拡大機能が全体拡大であれば(S1406:N)、拡大表示制御部307は、全体拡大の拡大率を100%に設定して、拡大表示情報格納部308の拡大表示情報を更新する(S1408、S1409)。
以上のように、情報処理装置101が所定の時間操作されずに省電力モードやオートクリアといったイベントが発生したタイミングで、全体拡大された画像を元のサイズに戻す。そのために、次に使用するユーザは、操作開始時に、拡大された画像のまま表示が行われることがない。
<第6実施形態>
第1実施形態の図3では、仮想ディスプレイ領域601に通常表示領域602及び拡張表示領域603の2つの表示領域を設け、いずれか一方の表示領域の画像をディスプレイ119に表示することとしている。これに対して、拡張表示領域603を用いずに拡大画像を表示することも可能である。図20は、このような拡大画像の表示方法の説明図である。第6実施形態における情報処理装置のハードウェア構成及び機能ブロックは、第1実施形態の情報処理装置と同様である(図1、図2参照)。
一般的なウィンドウシステムでは、最上位であるRootWindowは、ディスプレイに出力される直前の状態であり、同じサイズの複数のWindowが合成されて構成される。例えば、図20では、RootWindow1101が、拡大画像を表示するための拡大機能Window1102、ベースWindow1103、及びアプリケーションWindow1104から構成される。また、ベースWindow1103とアプリケーションWindow1104とを合成することで、図3の通常表示領域602と同様の画像を形成している。
通常表示領域602しか持たずに拡大画像を表示する場合、キャプチャ画像を取得するためにRootWindow1101の画像を取得すると、拡大画像自身がキャプチャされてしまう。拡張表示領域603を有する場合には、RootWindowを取得しても拡大画像だけがキャプチャされず、通常表示領域602の画像をそのまま扱うことができる。通常表示領域602だけで元の画像をキャプチャするために、ベースWindow1103の画像とアプリケーションWindow1104の画像とをキャプチャし、これらを合成する。図20では、アプリケーションWindow1104のキャプチャ画像の左上の原点1105と、ベースWindow1103のキャプチャ画像の座標1106とを合わせて合成することで、最終的に元の画像のキャプチャ画像を生成することができる。この合成して得られたキャプチャ画像を用いて、拡大機能Window1102に拡大表示することで、第1実施形態と同等の操作が可能である。
以上のように、通常領域に加え、拡張領域を設けることができないシステムにおいても、個々のWindowを取得してキャプチャ画像を生成することで、同様の効果をもたらすことが可能である。
また、上述の情報処理装置101は、様々な装置を含むものである。例えば、パーソナルコンピュータやPDA、携帯電話端末に限らず、プリンタ、スキャナ、FAX、複写機、複合機、カメラ、ビデオカメラ、その他の画像ビューワ等を含む。
そして、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。また、一つのプロセッサが全ての処理を行うようにしてもよいし、複数のプロセッサが分散処理を行うようにしてもよい。