情報処理装置、表示制御方法、及びプログラム
【課題】 タッチパネルを備えた装置の操作性を向上させる。
【解決手段】 表示された画像の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知すると、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを並べて表示させる。
【解決手段】 表示された画像の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知すると、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを並べて表示させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タッチパネルを備えた情報処理装置、情報処理装置の表示手段に表示された画像の表示制御方法、及びプログラムに関する。
【背景技術】
【0002】
近年、画像を表示する表示部にタッチパネルを備える装置が一般的に利用されるようになっている。このような装置では、タッチパネル上でタッチした指の間隔を広げるピンチアウトと呼ばれる操作や、二度素早くタップするダブルタップと呼ばれる操作を行うことで、表示されている画像を拡大表示させることがよく知られている。
しかし、タッチパネル上に表示された画像の一部を拡大すると、拡大された分だけ、元の画像の端の画像は表示領域外に出てしまい表示されなくなる。従って、表示領域外に出てしまった部分の画像をユーザが再び見たい場合には、拡大された画像を縮小して元の大きさに戻したり、拡大された画像をスライドさせて所望の部分の画像を表示させるなどの操作が必要であった。
このような操作の利便性を向上させるために、タッチパネルに対するユーザのジェスチャ入力により、拡大画像と元の大きさの画像とを切り替えて表示する技術が考えられている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−122444
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術によれば、これまでに必要だった操作の煩わしさは多少改善されるものの、拡大画像と元の画像(そのうちのユーザが見たい一部の画像)とを同時に表示してユーザに見せることはできない。
そこで本発明はこれらの問題を解決し、タッチパネルを備えた装置の操作性をより向上させることを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明の情報処理装置は、画像を表示する表示手段と、少なくとも3点のタッチを検知することができるタッチパネルと、前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知手段と、前記検知手段による検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる表示制御手段とを有し、前記表示制御手段は、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする。
【0006】
また、上記目的を達成するために、本発明の情報処理装置は、画像を表示する表示手段と、少なくとも3点のタッチを検知することができるタッチパネルと、表示手段の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知する検知手段と、前記検知手段による検知に応じて、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを、前記表示手段に表示させる表示制御手段とを有し、前記表示制御手段は、拡大又は縮小された前記画像と拡大及び縮小されていない前記画像とを並べて表示させることを特徴とする。
【発明の効果】
【0007】
本発明によれば、タッチパネルを備えた装置の操作性がより一層向上する。
【図面の簡単な説明】
【0008】
【図1】タッチパネル付きの情報処理装置の利用環境を示す概略図
【図2】情報処理装置のハードウェア構成図
【図3】タッチ入力イベント発生時の処理のフローチャート
【図4】タッチ入力イベントが指の移動である場合の処理のフローチャート
【図5】画面を分割し、片方の画面に拡大画像を表示する処理のフローチャート
【図6】実画像データ、メモリ上のデータ、表示画面の対応関係を表す図
【図7】印刷ジョブリスト画面での画面分割および拡大を表す図
【図8】分割線と画面IDの付与の仕方の一例を表す図
【図9】画面IDを管理する二分木の一例を表す図
【図10】第1の実施形態で実現する操作の一例を表す図
【図11】指の数が3点以外の時の指移動に伴う処理のフローチャート
【図12】分割線の移動処理を表すフローチャート
【図13】画面分割の終了処理を表すフローチャート
【図14】分割線を移動する様子を模式的に表した図
【図15】画面分割を終了する際の様子の例を表す図
【図16】画面分割を終了する際の様子の例を表す図
【図17】画面IDを用いた分割終了時の画面管理の方法の例を表す図
【図18】画面IDを用いた分割終了時の画面管理の方法の例を表す図
【発明を実施するための形態】
【0009】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0010】
[実施形態1]
本実施例では、タッチパネルを備えた情報処理装置に表示された表示画像に対する処理を例にとって説明する。
【0011】
本実施例におけるタッチパネルを備えた情報処理装置の利用環境の一例を図1に示す。図1では、情報処理装置100が、無線LANアクセスポイント102を介した無線LAN接続105により、インターネット103に接続されている様子を表している。この情報処理装置100は、既に情報処理装置100に備えられている任意のアプリケーションソフトウェアによって生成された画像を表示画像として表示することができる。又は、インターネット103を介して取得した任意のコンテンツデータに基づいて生成された画像を表示画像として表示することができる。
【0012】
図2は、タッチパネルを備えた情報処理装置100のハードウェア構成を示すブロック図である。以下、情報処理装置100が備える各ハードウェアモジュールについて説明する。
【0013】
情報処理装置100は、主にメインボード(コントローラボード)200、LCD201、タッチパネル202、ボタンデバイス203から構成される。
【0014】
メインボード200の主な構成要素は、CPU204、IEEE802.11bモジュール205、電源コントローラ206、ディスプレイコントローラ207、パネルコントローラ208、FLASH ROM209、RAM210である。これらのハードウェアモジュール204〜210は、不図示のバスによって互いに接続されている。
【0015】
CPU204は、バスに接続される各ハードウェアモジュールを総括的に制御すると共に、FLASH ROM209に記憶された、制御プログラムとしてのファームウェアモジュールを実行するプロセッサである。RAM210は、CPU204の主メモリ、ワークエリア、および、LCD201に表示するビデオイメージを格納するメモリとして機能する。
【0016】
ディスプレイコントローラ(DISPC)207は、CPU204の要求に応じて、RAM210に展開されたビデオイメージをLCD201へ転送するとともに、LCD201の表示制御を行う。結果として、LCD201上にイメージが表示される。
【0017】
パネルコントローラ(PANELC)208は、CPU204の要求に応じて、タッチパネル202およびボタンデバイス203を制御する。その制御によって、タッチパネル202上の指又はスタイラスペンなどの指示物の押下位置や、ボタンデバイス203上の押下されたキーコードなどが、CPU204に返送される。押下位置情報は、タッチパネル202の横方向の絶対位置を示す座標値(以下x座標)と、縦方向の絶対位置を示す座標値(以下y座標)から成る。本実施例のタッチパネル202は複数ポイント(少なくとも3点以上)の押下を検知することが可能で、その場合CPU204には押下点数分の押下位置情報が返送される。
【0018】
また、タッチパネル202はLCD201と一体的に構成される。例えば、タッチパネル202を光の透過率がLCD201の表示を妨げないように構成し、LCD201の表示面の上層に取り付ける。そして、タッチパネル202における入力座標と、LCD201上の表示座標とを対応付ける。これにより、あたかもユーザがLCD201上に表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。尚、LCD201は、LCDに限らず、その他のあらゆる表示方法のディスプレイ装置に置き換え可能である。
【0019】
電源コントローラ206は、外部電源(不図示)と接続され電力の供給を受ける。これによって、電源コントローラ206に接続された二次電池211を充電しながら、且つ、情報処理装置100全体に電力を供給する。もし、外部電源から電力が供給されないときは、二次電池211からの電力を情報処理装置100全体に供給する。
【0020】
IEEE802.11bモジュール205は、CPU204の制御に基づいて、プリンタ等の画像形成装置やプロジェクタ、デジタルカメラなど他の機器上のIEEE802.11bモジュールとの無線通信を確立し、情報処理装置100との通信を仲介する。
【0021】
尚、図2に示すハードウェア構成はあくまでも一例であり、これ以外のハードウェアモジュールが備えられていても構わない。例えば、GPSや加速度センサ、ジャイロセンサ、電子コンパス等の各種センサを備えていてもよい。
【0022】
本実施例におけるCPU204は、タッチパネル202への例えば以下の操作や状態を検出できる。タッチパネルを指やペンで触れたこと(以下、タッチダウンと称する)。タッチパネルを指やペンで触れている状態であること(以下、タッチオンと称する)。タッチパネルを指やペンで触れたまま移動していること(以下、ムーブと称する)。タッチパネルへ触れていた指やペンを離したこと(以下、タッチアップと称する)。タッチパネルに何も触れていない状態(以下、タッチオフと称する)等である。これらの操作や、タッチパネル上に指やペンが触れている位置座標は、不図示のバスを通じてCPU204に通知され、CPU204は通知された情報に基づいてタッチパネル上にどのような操作が行なわれたかを判定する。ムーブについてはタッチパネル上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル上の垂直成分・水平成分毎に判定できる。またタッチパネル上をタッチダウンから一定のムーブを経てタッチアップをしたとき、ストロークを描いたこととする。素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル上に指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル上を指ではじくように素早くなぞる操作である。CPU111は、所定距離以上を、所定速度以上でムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定できる。また、所定距離以上のムーブが検出され、そのままタッチオンが検出されている場合には、ドラッグが行なわれたと判定するものとする。また、2本指(2つの指示物)の間を広げて拡大する時の操作をピンチアウトと呼び、2本指(2つの指示物)の間を縮めて縮小する時の操作をピンチインと呼ぶ。これらの操作も判定可能である。尚、タッチパネル202は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式、又はその他の方式のタッチパネルのうちいずれの方式のものを用いても良い。
【0023】
次に図10を用いて、本実施例において実現する操作の一例を説明する。
【0024】
図10は、本実施例によって可能となる、画面の分割と、分割された画面の一方に拡大画像を表示する様子を模式的に表した図である。
【0025】
図10において、情報処理装置100の表示画面1001には、例として日本地図を示す画像が表示されている。このとき、ユーザは、画像中の(B)の辺りの表示をそのまま維持した状態で、(A)の部分を拡大表示したいものとする。
【0026】
そのままの表示を維持した部分を指示するため、(B)辺りを一本指でタッチオンする(1002)。次に(A)の部分を拡大表示したいため、(A)の位置に対して二本指でピンチアウトを行う(1003→1006)。すると、表示画面1001は分割線1007によって上下2つに分割され、上側には(A)の拡大画像が表示され、下側には(B)付近の画像がそのままの大きさで表示される。(A)の拡大画像は、ピンチアウトの中心を中心とした拡大画像が表示される。ピンチアウトの中心とは、ピンチアウトを行う2本指とタッチパネル202との接触点同士を結んだ線分の中点のことを言う。
【0027】
尚、以降の説明では、分割して表示された画像のうち、ピンチアウトによって拡大された方の画像(図10の1004に相当)を拡大画像と呼び、タッチオンによって表示が維持された方の画像(図10の1005に相当)を参照用画像と呼ぶことにする。拡大画像は第1の表示画像の一例であり、参照用画像は第2の表示画像の一例である。また、拡大画像が表示される画面は第1の画面の一例であり、参照用画像が表示される画面は第2の画面の一例である。
【0028】
以下、図3〜図18を参照して、本実施例の情報処理装置における分割と拡大の処理について詳しく説明する。尚、本実施例において以下で説明する各フローチャートの各ステップは、情報処理装置のROM209に格納されたプログラム(ソフトウェア)をハードウェアモジュールであるCPU204が実行することによって実現される。しかし全ての処理をソフトウェアで実現するのではなく、同様の処理又はその一部を実行する専用のハードウェアモジュールを用いて、本実施例を実現してもよい。また、本実施例では拡大操作としてピンチアウト操作を用いているが、これに限定されるものではなく、ダブルタップ(タッチパネルを素早く2回叩く(タッチダウンする)操作)など、拡大操作を行うための他の操作(ジェスチャー)であっても構わない。
【0029】
図3は情報処理装置100においてタッチ入力に関するイベントが発生した時に実行される処理を示すフローチャートである。このフローチャートは、分割と拡大の処理を必要とするアプリケーションが起動された時に実行され、そのアプリケーションが終了するまで引き続き実行される。ここではタッチパネルにタッチするものの一例として指を使った場合を示すが、スタイラスペンなど別のものでもよい。
【0030】
ステップS301で、CPU204は、タッチされている指の数(タッチオンを検知している箇所の数)の情報と、それらの位置を示す座標情報とを初期化する。これらの情報はRAM210に記録されるため、ステップS301では、RAM210のこれらの情報を初期化する。座標情報は、上記x座標、y座標の情報で構成される。以下の説明において座標情報はpnの形で表わされ、nは現在であることを表す添え字である。また、pn−mのような形で表記される場合は、m回前のイベント発生時に記憶された座標情報であることを示す。RAM210には、所定の回数分のイベント発生時の座標情報が記録されている。
【0031】
ステップS302で、CPU204はタッチ入力イベントが発生したかどうかを判断する。タッチ入力イベントは、ユーザがタッチパネル202に対して指を接触(タッチダウン)、移動(ムーブ)、離す(タッチアップ)操作をしたことをPANELC208が検出して発生させる。タッチ入力イベントが発生した場合はステップS303へ移行し、そうでない場合は再びステップ302に戻ってタッチ入力イベントの発生を待つ。
【0032】
ステップS303で、CPU204は、タッチ入力イベントが、新たに指がタッチされたことによるもの(タッチダウン)かどうかを判断する。タッチ入力イベントにはそのイベントは新たに指がタッチされたことによるものであるかどうかを示す情報(タッチダウンを示す情報)が付加されている。発生したタッチ入力イベントがタッチダウンだった場合、フローチャートはステップS304に移行する。そうでない場合、ステップS306に移行する。
【0033】
ステップS304において、CPU204は、タッチダウンを検知した位置の座標情報をRAM210に保存する。タッチダウンを検知した位置の座標情報はタッチ入力イベントに含まれている。CPU204はこのとき、すでにRAM210に保存されている座標情報を更新し、添え字nを現在のものに振り直してRAM210に記録する。
【0034】
ステップS305において、CPU204は、タッチされている指の数(タッチオンを検知している数)を、タッチダウンを検知した分だけ増加させる。上述したように、この情報はRAM210に記憶されている。
【0035】
ステップS306において、CPU204は、タッチ入力イベントは、指の移動によるもの(ムーブ)かどうかを調べる。タッチ入力イベントにはそのイベントが指の移動によるものかどうかを示す情報(ムーブを示す情報)が付加されている。発生したタッチ入力イベントがムーブであった場合、フローチャートはステップS307へ移行する。そうでなかった場合、ステップS308へ移行する。
【0036】
ステップS307においてCPU204は、指の移動に伴う処理を実行する。この処理については図4を用いて後述する。
【0037】
ステップS308において、CPU204は、タッチ入力イベントは、指がタッチパネルから離されたことによるもの(タッチアップ)かどうかを調べる。タッチ入力イベントには、そのイベントは指がタッチパネルから離されたことによるものかどうかを示す情報(タッチアップを示す情報)が付加されている。発生したタッチ入力イベントがタッチアップであった場合、フローチャートはステップS309へ移行する。そうでない場合、ステップS302へ戻ってタッチ入力イベントの発生を待つ。
【0038】
ステップS309で、CPU204は、RAM210に記憶されている、タッチされている指の数(タッチオンを検知している数)を、タッチアップを検知した分だけ減ずる。
【0039】
ステップS305、S307、S309の処理が終了すると、フローチャートは再びS302へ戻ってタッチ入力イベントの発生を待つ。
【0040】
図4は、情報処理装置100において実行される、タッチ入力イベントが指の移動(ムーブ)である場合の処理を表すフローチャートである。このフローチャートは、図3に示すフローチャートのステップS307において実行される。
【0041】
ステップS401において、CPU204は、現在タッチされている指の接触本数(タッチオンを検知している数)をRAM210より取得する。接触本数が3点だった場合はステップS402へ、そうでない場合はステップS409へ移行する。ここで、接触本数が3点だった場合のそれぞれの座標情報の名前を、pn,qn,rnと定義する。
【0042】
ステップS402において、CPU204は、3点(pn,qn,rn)が同一画面内にあるかどうかを判断する。同一画面内にあった場合はステップS403へ、なかった場合はステップS408へ移行する。ここでいう同一画面内とは、後で説明する分割線で区切られていない単一の画面内であることを表す。CPU204は、RAM210に記憶された3点の座標情報(pn,qn,rn)と、後で説明する画面IDの情報から、3点(pn,qn,rn)が同一画面内にあるかどうかを判断することができる。
【0043】
ステップS403において、CPU204は、3点のうち1点だけが移動していないかどうかを判断する。即ち3点のうちの2点だけが移動しているかどうかを判断する。1点だけが移動していなかった場合はステップS404へ、そうでなかった場合はステップS407へ移行する。以降の説明では、1点だけが移動していなかった場合のその1点の座標情報をrnとする。このrnは、図10を用いて先に説明した参照用画像を指示する指1002の接触点に相当する。
【0044】
ステップS404において、CPU204は、2つの指の移動、すなわちpn,qnの移動が、ピンチアウトであるかどうかを判断する。ピンチアウトだった場合はステップS405へ、そうでなかった場合はステップS406へ移動する。ピンチアウトかどうかは、2点(pn,qn)の距離が、イベント発生の前後で変化したかどうかを調べればよいので、次の式で調べられる。
【0045】
|pn−qn|>|pn−1−qn−1|(nは現在であることを表す)・・・(1)
ここで(pn−1,qn−1)は、イベント発生前の2点の座標情報であり、RAM210に記録されている。
【0046】
ステップS405において、CPU204は、画面を分割し、片方の画面に拡大画像を表示する処理を実行する。この処理は図5のフローチャートを用いて後述する。
【0047】
ステップS406において、CPU204は、2つの指の移動のうちのピンチアウト操作以外の操作に応じた所定の処理を行う。この場合に行われる所定の処理について詳しい説明は割愛する。ただし、ピンチインが行われた場合に、ステップS405と逆の処理、即ち、画面を分割して片方の画面に縮小画像を表示する処理を実行するようにしてもよい。
【0048】
ステップS407において、CPU204は、3点タッチのうち1点もしくは3点が移動した場合の処理を行う。この場合の処理は本発明には直接関係しないため、詳しい説明は割愛する。
【0049】
ステップS408において、CPU204は、3点が同一画面内にない場合の処理を実行する。この場合それぞれの画面で1点乃至2点がタッチされた場合の処理を実行してもよいし、何もしないよう定義してもよい。この場合の処理は本発明には直接関係しないので、詳しい説明は割愛する。
【0050】
ステップS409において、CPU204は、タッチされている指の接触本数が3点以外の時の指移動に伴う処理を実行する。即ち、接触本数が1点、2点又は4点以上の場合の処理である。この処理の詳細については、図11を用いて後述する。
【0051】
図5は、情報処理装置100において実行される、画面を分割して片方の画面に拡大画像を表示する処理を表すフローチャートである。このフローチャートは、図4のフローチャートのステップS405において実行される。
【0052】
ステップS501において、CPU204は、3点(pn,qn,rn)を含む画面の分割処理を行う。この処理は、図5−(b)に示される、3点を含む画面の分割処理を表すフローチャートで表現される。
【0053】
ステップS511で、CPU204は、3点を含む画面の画面IDをRAM210から取得する。
【0054】
ここで図8、図9を用いて、画面IDと分割線について説明する。
【0055】
本実施例では、表示画面の分割を行う。分割前の画面、分割後の画面にはそれぞれユニークな画面IDが付与され、画面は分割線を以て分割される。分割線は図8における801〜804で示される線である。805〜813は、分割された画面にIDが順番に振られていく様子を示している。たとえばID0の画面805を分割すると分割線801がID0の画面の長辺の中点を通るように表示され、ID1の画面806とID2の画面807に分割される。この際、ID0はID1、ID2の親IDとして管理される。IDが付与された画面は付与されたID毎に単一の画面として管理され、さらに分割することも可能である。たとえば、ID1を親IDとしてID3の画面808とID4の画面809の画面に分割できる。
【0056】
IDの親子関係は、図9に示すような二分木の構造として管理され、データはRAM210に記録されている。図9の二分木は図8に示す画面分割の例と対応している。
【0057】
尚、図8の例では、画面を分割するにあたって、必ず長辺の中点で分割するように定義して図示している。その他、加速度センサを用いて画面の向きが縦向きであるか横向きであるかが分かれば、必ず上下方向に分割するようにしてもよい。又は、必ず短辺の中点で分割するようにしてもよい。また、必ず長辺の中点で分割するモード、必ず短辺の中点で分割するモード、分割方向に加速度センサを用いるモードなど、モードを設けて分割方向を管理し、ユーザが所望のモードを選択できるようにしてもよい。また、これらは一例であり、必ずしも中点での分割に限るものではない。
【0058】
図5−(b)のフローチャートの説明に戻る。ステップS513において、CPU204は、3点を含む画面の長辺(または短辺)の中点で画面を分割する。
【0059】
ステップS514において、CPU204は、元の画面のIDを親IDとして、分割した画面それぞれにIDをつける。以下、簡単のため、図8でいう画面ID0の画面805を画面ID1の画面806と画面ID2の画面807に分割した場合を例にして説明する。
【0060】
ステップS515において、CPU204は、分割線を表示する。
【0061】
フローチャートは図5−(a)に戻る。ステップS502において、CPU204は、移動していない1点rnを含む参照用画像を作成する。参照用画像は図10の1005に対応する部分である。この部分は、図8でいうと、ID2の画面807に相当する。指1002が存在する領域(分割後のID2の画面807の領域)に、あらかじめ表示されている画像を参照用画像とする。作成した参照用画像は、RAM210に保存される。
【0062】
ステップS503において、CPU204は、分割した画面のうちrnを含む側(本例の場合、ID2の画面807)に、RAM210に保存された参照用画像を表示する。
【0063】
ステップS504において、CPU204は、ピンチアウトされた画像の拡大処理を実行する。この処理は図5−(c)のフローチャートで示される。
【0064】
ステップS516において、CPU204は、ピンチアウトの中点を算出する。ピンチアウトの中点mnは、移動後の座標(pn,qn)の中点であるので、次式で求められる。
【0065】
mn=(pn+qn)/2 ・・・(2)
ステップS517において、CPU204は、mnを中心とした拡大画像を作成し、一時的にRAM210に保存する。
【0066】
ステップS518において、CPU204は、分割した画面のうちrnを含まない側(本例の場合、ID1の画面806)に、RAM210に保存された拡大画像を表示する。
【0067】
ここで、図6を用いて、参照用画像と拡大画像を実画像データから指定し、RAM210に保存する方法について説明する。
【0068】
図6は実画像データ、メモリ上のデータ、表示画面の対応関係を表す図である。601は、実画像データ全体と実画像に設定されたx,y座標を表している。実画像データはRAM210に保存されている。608は画像編集用のメモリ領域であり、RAM210に確保されている。前述した拡大画像や参照用画像は、一度608の領域で描画する一枚の画像データとして保存される。608に保存された画像データはDISPC207の描画用画像領域(不図示)に転送され、LCD201に描画される。図6では、図10の表示画像と対応づけて説明する。
【0069】
全体画像601のうち、座標(X1,Y1)、(X2,Y1)、(X2,Y2)、(X1,Y2)を頂点とする長方形の点線で囲まれた602の部分は、拡大画像として表示される部分である。604は、先に説明したピンチアウトの中心を表している。CPU204は、ピンチアウトされた距離の情報から、拡大倍率を決定し、拡大画像として表示する領域602の座標を決定する。このときピンチアウトの中心604を領域602の中心とする。次にCPU204は決定された領域から拡大画像を生成し、608のうち拡大画像を保存する領域605に保存する。605の左上の頂点は602の左上の頂点(X1,Y1)に、605の右下の頂点は602の右下の頂点(X2,Y2)に対応するように拡大する。
【0070】
全体画像601のうち、座標(0,Y/2)、(Y/2,X)、(X,Y)、(0,Y)を頂点とする長方形の点線で囲まれた603の部分は、参照用画像として表示される部分である。CPU204は、図10の1002の指が押さえている点を含む領域である603の領域から参照用画像を生成し、608のうち参照用画像を保存する領域606に保存する。RAM210は、拡大画像と参照用画像の、全体画像に対する座表情報を保存している。607は、分割線を表している。608の領域は、画像のスクロールや拡大・縮小などを指示するイベントが発生するたびに書き換えられる。
【0071】
フローチャート図5−(a)の説明に戻る。
【0072】
ステップS505において、CPU204は、3点(pn,qn,rn)のうちの少なくとも一点が離された(タッチアップを検知した)かどうかを判断する。離された場合はステップS522に移行する。そうでない場合は、ステップS506へ移行する。
【0073】
ステップS522において、CPU204は、図3のステップS309と同様に、タッチされている指の数を、タッチアップを検知した分だけ減ずる。ステップS522の後、図5−(a)のフローチャートは処理を終了する。
【0074】
ステップS506において、CPU204は、指の移動を意味するタッチ入力イベント(ムーブ)が発生したかどうかを判断する。発生した場合はステップS507へ移行し、そうでない場合はステップS505に戻る。
【0075】
ステップS507において、CPU204は、移動した点に、(pn,qn)の少なくともいずれかが含まれるかどうかを判断する。含まれていた場合はステップS508へ、含まれていなかった場合はステップS509へ移行する。
【0076】
ステップS508において、CPU204は、(pn,qn)の中点の座標を中心とした画像の拡大、もしくは縮小処理を行う。この処理は図5−(d)に示される。
【0077】
ステップS519において、CPU204は、ステップS516と同様に、移動した指の座標(pn,qn)の中点mnを算出する。mnは上記(2)式で計算される。
【0078】
ステップS520において、CPU204は、上記(1)式により、指の移動がピンチアウトによるものかどうかを判断する。ピンチアウトだった場合、CPU204はmnを中心とした拡大画像を作成する。ピンチアウトではなくピンチインだった場合、CPU204はmnを中心とした縮小画像を作成する。作成された画像は、一時的にRAM210に保存される。
【0079】
ステップS521において、CPU204は、ステップS518と同様に、ID1の画面806に、RAM210に保存された拡大画像、もしくは縮小画像を表示する。ステップS508が終了するとフローチャートはステップS509へ移行する。
【0080】
ステップS509において、CPU204は、移動した点にrnが含まれるか否かを判断する。含まれている場合はステップS510へ移行し、そうでない場合はステップS505へ戻る。
【0081】
ステップS510において、CPU204は、rnを含むID2の画面807に表示している画像に対して、rnの移動に追随するように画像をスクロールさせる。この処理が終了すると、フローチャートはステップS505に戻る。
【0082】
ステップS505〜S510までの処理はループになっており、3点(pn,qn,rn)のうち少なくとも一つが離されない間は繰り返し実行される。これにより分割、拡大表示後の各画面に対して、更なるピンチアウト/ピンチイン、スクロール等の操作が可能となる。
【0083】
図11は、情報処理装置100において実行される、タッチされている指の数が3点以外の時の指移動に伴う処理を表すフローチャートである。このフローチャートは、図4に示すフローチャートのステップS409において実行される。
【0084】
ステップS1101において、CPU204は、タッチされている指の数(タッチオンを検知している数)が1点かどうかを判断する。1点だった場合、ステップS1102へ、そうでない場合はステップS1105へ移行する。
【0085】
ステップS1102において、CPU204は、タッチされている点が、画面の分割線の上であるかどうかを判断する。分割線上であった場合は、ステップS1103へ、そうでない場合はステップS1104へ移行する。尚、ここでの分割線上であるか否かの判断では、必ずしも正確に分割線上であるか否かではなく、多少のズレを考慮して判断を行うものとする。即ち、分割線を示す座標とタッチされた点を示す座標との違いが所定量以内であれば、分割線上であるとみなすようにしてもよい。
【0086】
ステップS1103において、CPU204は、分割線の移動処理を実行する。この処理は図12を用いて後述する。
【0087】
ステップS1104において、CPU204は、タッチされている指が含まれる画面に対して、スクロール処理を行う。この処理は、画面が分割されている場合には分割されている画面単位で行われる。
【0088】
ステップS1105において、CPU204は、タッチされている指の数が2点かどうかを判断する。2点だった場合はステップS1106へ、そうでない場合はステップS1110へ移行する。
【0089】
ステップS1106において、CPU204は、タッチされている2点が分割線をまたいでいるかどうかを判断する。またいでいる場合はステップS1107へ、そうでない場合はステップS1109へ移行する。
【0090】
ステップS1107において、CPU204は、検知された指の移動がピンチインであるかどうかを判断する。ピンチインである場合はステップS1108へ移行する。ピンチインかどうかの判定は、(1)式で不等号の向きを逆にすればよい。一方、ピンチインでないと判断された場合即ちピンチアウトであると判断された場合は、本例では画面の処理を行わずにそのまま処理を終了する。ただし分割線をまたいでピンチアウトが行われた場合には、各指が置かれている画面を各指が移動した方向にスクロールされるように処理してもよい。
【0091】
ステップS1108において、CPU204は、画面分割の終了処理を実行する。この処理の詳細は、図13を用いて後述する。このステップの後、フローチャートは処理を終了する。
【0092】
ステップS1109において、CPU204は、タッチされている指の数が2点の時の指移動に伴う処理のうち、2点が分割線をまたいでいなかった場合の処理を実行する。これは通常のピンチアウト/ピンチインのジェスチャであるので、画像に対する拡大/縮小処理を行う。この処理は、画面が分割されている場合には分割されている画面単位で行われる。
【0093】
ステップS1110において、CPU204は、タッチされている指の数が3点より大きい時の指移動に伴う処理を実行する。即ち、4点以上のタッチオンが検知されている場合の指移動に伴う処理であり、直接関係しないため、詳しい説明は割愛する。
【0094】
S1109やS1110の処理の後、図11のフローチャートの処理は終了する。
【0095】
図12は、情報処理装置100において実行される、分割線の移動処理を表すフローチャートである。このフローチャートは、図11に示すフローチャートのステップS1103において実行される。
【0096】
ここでは、説明を簡単にするため、画面の分割は図10の状態でなされているものとし、拡大画像の表示画面の画面IDはID1、参照用画像の表示画面の画面IDはID2として説明する。また、それらの親IDはID0とする。
【0097】
ステップS1201において、CPU204は、分割線の移動処理を実行する。この処理は図12−(b)のフローチャートで示される。
【0098】
ステップS1207において、CPU204は、指の移動距離のうち、分割線と垂直な方向の成分l⊥を算出する。
【0099】
l⊥=|sn−sn−1| ・・・(3)
ここでsnは、今回分割線上を移動した際の移動後の点の座標情報を表す。
【0100】
ステップS1208において、CPU204は、snの、分割線と垂直方向での移動方向を算出する。
【0101】
ステップS1209において、CPU204は、指の移動方向に応じて、ID1の画面に表示される拡大画像の表示領域を広げて(または狭めて)、新たな拡大画像を作成し、DISPC207に表示指示を行う。DISPC207はLCD201に表示領域を広げた(または狭めた)拡大画像を表示させる。
【0102】
ステップS1210において、CPU204は、指の移動方向に応じて、ID2の画面に表示される参照用画像の表示領域を狭めて(または広げて)、新たな参照用画像を作成する。その後、DISPC207は、拡大画像と同様にして新たな参照用画像をLCD201に表示させる。
【0103】
ステップS1211において、CPU204は、検知された移動方向に分割線をl⊥だけ移動させる。
【0104】
処理は図12−(a)のフローチャートに戻る。ステップS1202において、CPU204は、分割線上の指が離されたかどうか(タッチアップを検知したかどうか)を判断する。離された場合は処理を終了し、そうでない場合は、ステップS1203へ移行する。
【0105】
ステップS1203において、CPU204は、指の移動を表すタッチ入力イベントが発生したかどうかを判断する。指の移動を表すタッチ入力イベントが発生した場合はステップS1204へ移行し、そうでない場合はステップS1202へ戻る。
【0106】
ステップS1204において、CPU204は、移動した点がsnかどうかを判断する。そうだった場合はステップS1205へ、そうでなかった場合はステップS1202へ移行する。ステップS1205において、CPU204は、図5−(b)に示される分割線の移動処理を実行する。ステップS1205の処理の後、再びステップS1202に戻る。
【0107】
ステップS1202〜S1205までの処理は、分割線上の点snがタッチアップされるまで繰り返し実行されるため、分割線上の指の移動に追随して分割線を移動することができる。
【0108】
図14は、分割線を移動する様子を模式的に表した図である。
【0109】
図14の例では、情報処理装置100上のID1の画面1402とID2の画面1403が、分割線1401によって分割表示されている。これを指1407によってタッチダウンし下方向にスライドさせると、1408のように分割線は指に追随して下へ下がり、拡大画像を表示するID1の画面1404の表示領域は、それに合わせて広げられる。指を下まで下げ切ると、1406のように、全面がID1の拡大画像の画面となる。
【0110】
これを逆に分割線を上に上げると、参照用画像を表示するID2の画面1405の表示領域が大きくなる。このように、本実施例では、分割された二つの画面の境界を示す分割線をユーザがタッチした状態でスライドすることによって、それぞれの画面の大きさを変更することができる。
【0111】
次に図13と図15〜18を用いて、画面分割の終了処理について説明する。
【0112】
図16は、分割された画面をピンチインすることにより、分割前の画面に戻す様子を模式的にあらわした図である。図16では、二つに分割された画面のうちの拡大画像1601側に指1605がタッチオンされ、参照用画像1602側に指1604がタッチオンされている。これらの指をピンチイン(分割線1603方向に近づける)すると、画面分割が終了し、表示画面は1606になり、参照用画像が一画面に表示される。
【0113】
ここで、分割を解除する際、分割前の画像即ち参照用画像を表示させるのではなく、拡大画像又は参照用画像のどちらを残すのかをユーザが選択したい場合も考えられる。図15は、ピンチインで画面分割を解除する際、片方の指を固定することで、分割解除後の画面に表示する画像を拡大画像にするか参照用画像にするかを選択する方法である。図15−(a)のように、分割線1503で分割された画面1501と1502が表示された画面において、人差し指1506を固定し、親指1504を上方向に移動させた場合、分割終了後、ID2の参照用画像1502が全面に表示される(1505)。また、逆に図15−(b)のように、親指1504を固定し、人差し指1506を下方向へ移動させた場合は、分割終了後、ID1の拡大画像1501が全面に表示される(1507)。即ち、移動した指が置かれている方の画面に表示されている画像を、分割解除後に表示する画像として選択するようにした方法である。尚、これらの処理は逆に、固定した指が置かれている方の画面に表示されている画像を、分割解除後に表示する画像として選択するようにしてもよい。
【0114】
尚、図15、図16は、ID0の画面をID1の拡大画像を表示する画面と、ID2の参照用画像を表示する画面に分割した場合を例に、分割解除処理を説明したものである。
【0115】
図13は、情報処理装置100において実行される、画面分割を終了する処理を表すフローチャートである。このフローチャートは、図11に示すフローチャートのステップS1108において実行される。
【0116】
ステップS1301において、CPU204は、2点の属する画面の画面IDをそれぞれ取得する。図15や図16の例では、2点の属する画面の画面IDはID1とID2となる。図17の例では、2点の属する画面の画面IDはID3とID6である。図18の例では、2点の属する画面の画面IDはID5とID8である。
【0117】
ステップS1302において、CPU204は、取得した2点の属する画面の画面IDの親IDを一致するまで辿り、そのIDを特定する。図15、図16で一致する親IDはID0であるから、この場合ID0が特定される。図17、図18では辿る様子を模式的にあらわしている。
【0118】
尚、ここで図17、図18は、画面IDを用いた分割終了時の画面管理の方法の例を模式的に表した図である。
【0119】
図17−(b)において、ID3のノード1704とID6のノード1705の親IDを辿ると、共通するのは、ID1のノード1703となるから、ID1が特定される。
【0120】
同様に、図18−(b)において、ID5のノード1805とID8のノード1806を辿ると、共通のノードはID0のノード1804であるから、ID0が特定される。
【0121】
ステップS1303において、CPU204は、S1302で特定された親IDを分割している分割線を消去する。図17−(a)の例で消去する分割線は1701と1702である。図18−(a)において消去する分割線は1801と1803である。
【0122】
ステップS1304において、CPU204は、移動した点が1点のみであるかどうかを判断する。1点のみだった場合は、ステップS1305へ移行し、そうでなかった場合は、ステップS1306へ移動する。
【0123】
ステップS1305において、CPU204は、S1302で特定された親IDを分割する分割線の、移動した点を含む側の画面を、親IDが表示していた画面に表示する。具体的な例としては、図15と図18がこの場合に相当する。図15においてはID2の画面1502もしくはID1の画面1501が、共通する親ID0の画面の代わりに、全画面で表示される(1505、1507)。図18においては、ID0の画面を分割する分割線1801とID2の画面を分割する分割線1803を消去する。分割線1801で区切られた画面のうち、1802が属するのはID1の画面である(1807)。具体的にはID3、ID5、ID6の画面が全面に表示されることとなるので、ID1のノード1807をID0のノード1809の位置に挿げ替えればよい。図18−(c)がその様子を表している。図18(e)は挿げ替え後の二分木の様子である。これで画面は図18−(d)のように表示される。このとき、情報処理装置の縦横を入れ替えて表示するようにしてもよい。
【0124】
ステップS1306において行われる処理は、移動した点が2点の場合の処理である。ステップS1306において、CPU204は、S1302で特定された親IDの画面を表示する。具体的な例として、図16と図17がこの場合に相当する。図16の場合はID0の分割前の画面を表示する。図17−(b)では、ID6のノード1705とID3のノード1704の一致する親ノードはID1のノード1703であるから、ID1が特定される。そこで図17−(d)のように、ID1のノードより下のノードを削除し、ID1の画面を表示する。図17−(c)における1706がその様子を表している。
【0125】
以上の処理を繰り返し実行することで、画面を分割し、片方の画面に拡大画像を表示する処理と、分割した画面を元に戻す処理とを実現できる。
【0126】
以上説明したように、本実施例によれば、表示部に表示された画像を拡大する表示を行わせつつ、拡大しない元の画像も表示されたままの状態にすることができる。そして、これらの2つの画像は同じ表示部上に同時に表示することができる。従ってユーザは拡大画像を見ながら拡大前の元画像を一緒に確認することができる。また、それぞれの画像は分割された画面に独立して表示されるから、各画像(拡大画像、参照用画像)それぞれに対して更なる拡大/縮小操作やスライド操作を行うこともできる。加えて、一旦分割して表示されたそれぞれの画面を、ピンチイン操作によって一画面にまとめる(元の画面に戻す)ことができる。
【0127】
尚、本実施例では、表示された画像上の3点がタッチされた際の1点を固定した状態で残りの2点をピンチアウトした際に、そのピンチアウト操作に従って画像が拡大される場合の例を説明した。しかし、このピンチアウト操作をピンチイン操作に代えて、同様の処理を行うようにしてもよい。即ち、表示された画像上の3点がタッチされた際の1点を固定した状態で残りの2点をピンチインした際に、そのピンチイン操作に従って画像が縮小されるようにしてもよい。この場合も本実施例と同様に、画面が分割され、拡大画像に代わる縮小画像を表示する画面と、参照用画像を表示する画面とが作成されることになる。縮小画像を表示する場合には、元画像(元のサイズの画像)を表示しつつ、縮小画像を並べて表示し、元画像では表示されていない広範囲の情報をユーザが確認できるようになる。
【0128】
以上のように、本実施例によれば、タッチパネルを備えた情報処理装置の表示部に表示された画像に対する表示制御の操作性が著しく向上する。
【0129】
[その他の実施形態]
本発明における情報処理装置は、様々な装置を含むものである。例えば、パーソナルコンピュータやPDA、携帯電話端末に限らず、プリンタ、スキャナ、FAX、複写機、複合機、カメラ、ビデオカメラ、その他の画像ビューワ等を含む。
【0130】
また、上記第1の実施形態では、表示制御の操作対象となる画像として、写真やグラフィックデータ等のイメージデータを想定しているが、本発明を適用可能な画像はそのようなデータに限定されない。例えば、情報処理装置100としてデジタル複合機等の画像形成装置を用いる場合、デジタル複合機が保持する印刷ジョブの一覧であるジョブリスト画面においても、上記第1の実施形態と同様の処理が適用可能である。
【0131】
ジョブリスト画面に適用すれば、リスト表示されている各ジョブの詳細情報を表示するための拡大画像と、リスト全体を表示する参照用画像とを並べて、ユーザは同時に見ることが可能となる。
【0132】
図7は、印刷ジョブリストの画面に対して、3点をタッチしてそのうちの1点を固定、残りの2点をピンチアウト操作したときの様子を模式的に示している。図10と同様に、一本指701で画面をタッチオンしている状態で、703の印刷ジョブ「お.jpg」の部分を704の2本指でピンチアウトする。その結果、右の図のように分割線706によって画面が分割される。そして、分割された画面の一方の画面705は図10での拡大画面1004に相当し、ピンチアウトした703のジョブ以下のジョブ(例えば「お.jpg」と「か.xls」のジョブ)の詳細情報が表示される。もちろん、拡大画像705には、2本指704でタッチされている「お.jpg」のジョブのみの詳細情報を表示し、それ以下のジョブについてはリスト表示そのままとしてもよい。詳細情報にはサムネイル画像やジョブ送信日時、ユーザ名等の情報を含んでいてもよい。もう一方の画面707は図10の参照用画面1005に相当し、指701が押さえていたジョブを含むジョブリストが元のサイズで表示される。
【0133】
また、上記第1の実施形態では、3点をタッチしてそのうちの1点を固定、残りの2点を移動させた場合に、上記拡大(又は縮小)及び画面の分割を行うものとした。しかし4点以上のタッチの場合に、1点を固定、残りの多点(3点以上)を移動させた場合に上記拡大(又は縮小)及び画面の分割を行うようにしてもよい。つまり、本発明は、3点のタッチの場合のみに限定されるものではない。
【0134】
その他、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態の一部を適宜組み合わせてもよい。
【0135】
そして、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0136】
100 情報処理装置
201 LCD
202 タッチパネル
204 CPU
209 FLASH ROM
210 RAM
【技術分野】
【0001】
本発明は、タッチパネルを備えた情報処理装置、情報処理装置の表示手段に表示された画像の表示制御方法、及びプログラムに関する。
【背景技術】
【0002】
近年、画像を表示する表示部にタッチパネルを備える装置が一般的に利用されるようになっている。このような装置では、タッチパネル上でタッチした指の間隔を広げるピンチアウトと呼ばれる操作や、二度素早くタップするダブルタップと呼ばれる操作を行うことで、表示されている画像を拡大表示させることがよく知られている。
しかし、タッチパネル上に表示された画像の一部を拡大すると、拡大された分だけ、元の画像の端の画像は表示領域外に出てしまい表示されなくなる。従って、表示領域外に出てしまった部分の画像をユーザが再び見たい場合には、拡大された画像を縮小して元の大きさに戻したり、拡大された画像をスライドさせて所望の部分の画像を表示させるなどの操作が必要であった。
このような操作の利便性を向上させるために、タッチパネルに対するユーザのジェスチャ入力により、拡大画像と元の大きさの画像とを切り替えて表示する技術が考えられている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−122444
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術によれば、これまでに必要だった操作の煩わしさは多少改善されるものの、拡大画像と元の画像(そのうちのユーザが見たい一部の画像)とを同時に表示してユーザに見せることはできない。
そこで本発明はこれらの問題を解決し、タッチパネルを備えた装置の操作性をより向上させることを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明の情報処理装置は、画像を表示する表示手段と、少なくとも3点のタッチを検知することができるタッチパネルと、前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知手段と、前記検知手段による検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる表示制御手段とを有し、前記表示制御手段は、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする。
【0006】
また、上記目的を達成するために、本発明の情報処理装置は、画像を表示する表示手段と、少なくとも3点のタッチを検知することができるタッチパネルと、表示手段の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知する検知手段と、前記検知手段による検知に応じて、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを、前記表示手段に表示させる表示制御手段とを有し、前記表示制御手段は、拡大又は縮小された前記画像と拡大及び縮小されていない前記画像とを並べて表示させることを特徴とする。
【発明の効果】
【0007】
本発明によれば、タッチパネルを備えた装置の操作性がより一層向上する。
【図面の簡単な説明】
【0008】
【図1】タッチパネル付きの情報処理装置の利用環境を示す概略図
【図2】情報処理装置のハードウェア構成図
【図3】タッチ入力イベント発生時の処理のフローチャート
【図4】タッチ入力イベントが指の移動である場合の処理のフローチャート
【図5】画面を分割し、片方の画面に拡大画像を表示する処理のフローチャート
【図6】実画像データ、メモリ上のデータ、表示画面の対応関係を表す図
【図7】印刷ジョブリスト画面での画面分割および拡大を表す図
【図8】分割線と画面IDの付与の仕方の一例を表す図
【図9】画面IDを管理する二分木の一例を表す図
【図10】第1の実施形態で実現する操作の一例を表す図
【図11】指の数が3点以外の時の指移動に伴う処理のフローチャート
【図12】分割線の移動処理を表すフローチャート
【図13】画面分割の終了処理を表すフローチャート
【図14】分割線を移動する様子を模式的に表した図
【図15】画面分割を終了する際の様子の例を表す図
【図16】画面分割を終了する際の様子の例を表す図
【図17】画面IDを用いた分割終了時の画面管理の方法の例を表す図
【図18】画面IDを用いた分割終了時の画面管理の方法の例を表す図
【発明を実施するための形態】
【0009】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0010】
[実施形態1]
本実施例では、タッチパネルを備えた情報処理装置に表示された表示画像に対する処理を例にとって説明する。
【0011】
本実施例におけるタッチパネルを備えた情報処理装置の利用環境の一例を図1に示す。図1では、情報処理装置100が、無線LANアクセスポイント102を介した無線LAN接続105により、インターネット103に接続されている様子を表している。この情報処理装置100は、既に情報処理装置100に備えられている任意のアプリケーションソフトウェアによって生成された画像を表示画像として表示することができる。又は、インターネット103を介して取得した任意のコンテンツデータに基づいて生成された画像を表示画像として表示することができる。
【0012】
図2は、タッチパネルを備えた情報処理装置100のハードウェア構成を示すブロック図である。以下、情報処理装置100が備える各ハードウェアモジュールについて説明する。
【0013】
情報処理装置100は、主にメインボード(コントローラボード)200、LCD201、タッチパネル202、ボタンデバイス203から構成される。
【0014】
メインボード200の主な構成要素は、CPU204、IEEE802.11bモジュール205、電源コントローラ206、ディスプレイコントローラ207、パネルコントローラ208、FLASH ROM209、RAM210である。これらのハードウェアモジュール204〜210は、不図示のバスによって互いに接続されている。
【0015】
CPU204は、バスに接続される各ハードウェアモジュールを総括的に制御すると共に、FLASH ROM209に記憶された、制御プログラムとしてのファームウェアモジュールを実行するプロセッサである。RAM210は、CPU204の主メモリ、ワークエリア、および、LCD201に表示するビデオイメージを格納するメモリとして機能する。
【0016】
ディスプレイコントローラ(DISPC)207は、CPU204の要求に応じて、RAM210に展開されたビデオイメージをLCD201へ転送するとともに、LCD201の表示制御を行う。結果として、LCD201上にイメージが表示される。
【0017】
パネルコントローラ(PANELC)208は、CPU204の要求に応じて、タッチパネル202およびボタンデバイス203を制御する。その制御によって、タッチパネル202上の指又はスタイラスペンなどの指示物の押下位置や、ボタンデバイス203上の押下されたキーコードなどが、CPU204に返送される。押下位置情報は、タッチパネル202の横方向の絶対位置を示す座標値(以下x座標)と、縦方向の絶対位置を示す座標値(以下y座標)から成る。本実施例のタッチパネル202は複数ポイント(少なくとも3点以上)の押下を検知することが可能で、その場合CPU204には押下点数分の押下位置情報が返送される。
【0018】
また、タッチパネル202はLCD201と一体的に構成される。例えば、タッチパネル202を光の透過率がLCD201の表示を妨げないように構成し、LCD201の表示面の上層に取り付ける。そして、タッチパネル202における入力座標と、LCD201上の表示座標とを対応付ける。これにより、あたかもユーザがLCD201上に表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。尚、LCD201は、LCDに限らず、その他のあらゆる表示方法のディスプレイ装置に置き換え可能である。
【0019】
電源コントローラ206は、外部電源(不図示)と接続され電力の供給を受ける。これによって、電源コントローラ206に接続された二次電池211を充電しながら、且つ、情報処理装置100全体に電力を供給する。もし、外部電源から電力が供給されないときは、二次電池211からの電力を情報処理装置100全体に供給する。
【0020】
IEEE802.11bモジュール205は、CPU204の制御に基づいて、プリンタ等の画像形成装置やプロジェクタ、デジタルカメラなど他の機器上のIEEE802.11bモジュールとの無線通信を確立し、情報処理装置100との通信を仲介する。
【0021】
尚、図2に示すハードウェア構成はあくまでも一例であり、これ以外のハードウェアモジュールが備えられていても構わない。例えば、GPSや加速度センサ、ジャイロセンサ、電子コンパス等の各種センサを備えていてもよい。
【0022】
本実施例におけるCPU204は、タッチパネル202への例えば以下の操作や状態を検出できる。タッチパネルを指やペンで触れたこと(以下、タッチダウンと称する)。タッチパネルを指やペンで触れている状態であること(以下、タッチオンと称する)。タッチパネルを指やペンで触れたまま移動していること(以下、ムーブと称する)。タッチパネルへ触れていた指やペンを離したこと(以下、タッチアップと称する)。タッチパネルに何も触れていない状態(以下、タッチオフと称する)等である。これらの操作や、タッチパネル上に指やペンが触れている位置座標は、不図示のバスを通じてCPU204に通知され、CPU204は通知された情報に基づいてタッチパネル上にどのような操作が行なわれたかを判定する。ムーブについてはタッチパネル上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル上の垂直成分・水平成分毎に判定できる。またタッチパネル上をタッチダウンから一定のムーブを経てタッチアップをしたとき、ストロークを描いたこととする。素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル上に指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル上を指ではじくように素早くなぞる操作である。CPU111は、所定距離以上を、所定速度以上でムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定できる。また、所定距離以上のムーブが検出され、そのままタッチオンが検出されている場合には、ドラッグが行なわれたと判定するものとする。また、2本指(2つの指示物)の間を広げて拡大する時の操作をピンチアウトと呼び、2本指(2つの指示物)の間を縮めて縮小する時の操作をピンチインと呼ぶ。これらの操作も判定可能である。尚、タッチパネル202は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式、又はその他の方式のタッチパネルのうちいずれの方式のものを用いても良い。
【0023】
次に図10を用いて、本実施例において実現する操作の一例を説明する。
【0024】
図10は、本実施例によって可能となる、画面の分割と、分割された画面の一方に拡大画像を表示する様子を模式的に表した図である。
【0025】
図10において、情報処理装置100の表示画面1001には、例として日本地図を示す画像が表示されている。このとき、ユーザは、画像中の(B)の辺りの表示をそのまま維持した状態で、(A)の部分を拡大表示したいものとする。
【0026】
そのままの表示を維持した部分を指示するため、(B)辺りを一本指でタッチオンする(1002)。次に(A)の部分を拡大表示したいため、(A)の位置に対して二本指でピンチアウトを行う(1003→1006)。すると、表示画面1001は分割線1007によって上下2つに分割され、上側には(A)の拡大画像が表示され、下側には(B)付近の画像がそのままの大きさで表示される。(A)の拡大画像は、ピンチアウトの中心を中心とした拡大画像が表示される。ピンチアウトの中心とは、ピンチアウトを行う2本指とタッチパネル202との接触点同士を結んだ線分の中点のことを言う。
【0027】
尚、以降の説明では、分割して表示された画像のうち、ピンチアウトによって拡大された方の画像(図10の1004に相当)を拡大画像と呼び、タッチオンによって表示が維持された方の画像(図10の1005に相当)を参照用画像と呼ぶことにする。拡大画像は第1の表示画像の一例であり、参照用画像は第2の表示画像の一例である。また、拡大画像が表示される画面は第1の画面の一例であり、参照用画像が表示される画面は第2の画面の一例である。
【0028】
以下、図3〜図18を参照して、本実施例の情報処理装置における分割と拡大の処理について詳しく説明する。尚、本実施例において以下で説明する各フローチャートの各ステップは、情報処理装置のROM209に格納されたプログラム(ソフトウェア)をハードウェアモジュールであるCPU204が実行することによって実現される。しかし全ての処理をソフトウェアで実現するのではなく、同様の処理又はその一部を実行する専用のハードウェアモジュールを用いて、本実施例を実現してもよい。また、本実施例では拡大操作としてピンチアウト操作を用いているが、これに限定されるものではなく、ダブルタップ(タッチパネルを素早く2回叩く(タッチダウンする)操作)など、拡大操作を行うための他の操作(ジェスチャー)であっても構わない。
【0029】
図3は情報処理装置100においてタッチ入力に関するイベントが発生した時に実行される処理を示すフローチャートである。このフローチャートは、分割と拡大の処理を必要とするアプリケーションが起動された時に実行され、そのアプリケーションが終了するまで引き続き実行される。ここではタッチパネルにタッチするものの一例として指を使った場合を示すが、スタイラスペンなど別のものでもよい。
【0030】
ステップS301で、CPU204は、タッチされている指の数(タッチオンを検知している箇所の数)の情報と、それらの位置を示す座標情報とを初期化する。これらの情報はRAM210に記録されるため、ステップS301では、RAM210のこれらの情報を初期化する。座標情報は、上記x座標、y座標の情報で構成される。以下の説明において座標情報はpnの形で表わされ、nは現在であることを表す添え字である。また、pn−mのような形で表記される場合は、m回前のイベント発生時に記憶された座標情報であることを示す。RAM210には、所定の回数分のイベント発生時の座標情報が記録されている。
【0031】
ステップS302で、CPU204はタッチ入力イベントが発生したかどうかを判断する。タッチ入力イベントは、ユーザがタッチパネル202に対して指を接触(タッチダウン)、移動(ムーブ)、離す(タッチアップ)操作をしたことをPANELC208が検出して発生させる。タッチ入力イベントが発生した場合はステップS303へ移行し、そうでない場合は再びステップ302に戻ってタッチ入力イベントの発生を待つ。
【0032】
ステップS303で、CPU204は、タッチ入力イベントが、新たに指がタッチされたことによるもの(タッチダウン)かどうかを判断する。タッチ入力イベントにはそのイベントは新たに指がタッチされたことによるものであるかどうかを示す情報(タッチダウンを示す情報)が付加されている。発生したタッチ入力イベントがタッチダウンだった場合、フローチャートはステップS304に移行する。そうでない場合、ステップS306に移行する。
【0033】
ステップS304において、CPU204は、タッチダウンを検知した位置の座標情報をRAM210に保存する。タッチダウンを検知した位置の座標情報はタッチ入力イベントに含まれている。CPU204はこのとき、すでにRAM210に保存されている座標情報を更新し、添え字nを現在のものに振り直してRAM210に記録する。
【0034】
ステップS305において、CPU204は、タッチされている指の数(タッチオンを検知している数)を、タッチダウンを検知した分だけ増加させる。上述したように、この情報はRAM210に記憶されている。
【0035】
ステップS306において、CPU204は、タッチ入力イベントは、指の移動によるもの(ムーブ)かどうかを調べる。タッチ入力イベントにはそのイベントが指の移動によるものかどうかを示す情報(ムーブを示す情報)が付加されている。発生したタッチ入力イベントがムーブであった場合、フローチャートはステップS307へ移行する。そうでなかった場合、ステップS308へ移行する。
【0036】
ステップS307においてCPU204は、指の移動に伴う処理を実行する。この処理については図4を用いて後述する。
【0037】
ステップS308において、CPU204は、タッチ入力イベントは、指がタッチパネルから離されたことによるもの(タッチアップ)かどうかを調べる。タッチ入力イベントには、そのイベントは指がタッチパネルから離されたことによるものかどうかを示す情報(タッチアップを示す情報)が付加されている。発生したタッチ入力イベントがタッチアップであった場合、フローチャートはステップS309へ移行する。そうでない場合、ステップS302へ戻ってタッチ入力イベントの発生を待つ。
【0038】
ステップS309で、CPU204は、RAM210に記憶されている、タッチされている指の数(タッチオンを検知している数)を、タッチアップを検知した分だけ減ずる。
【0039】
ステップS305、S307、S309の処理が終了すると、フローチャートは再びS302へ戻ってタッチ入力イベントの発生を待つ。
【0040】
図4は、情報処理装置100において実行される、タッチ入力イベントが指の移動(ムーブ)である場合の処理を表すフローチャートである。このフローチャートは、図3に示すフローチャートのステップS307において実行される。
【0041】
ステップS401において、CPU204は、現在タッチされている指の接触本数(タッチオンを検知している数)をRAM210より取得する。接触本数が3点だった場合はステップS402へ、そうでない場合はステップS409へ移行する。ここで、接触本数が3点だった場合のそれぞれの座標情報の名前を、pn,qn,rnと定義する。
【0042】
ステップS402において、CPU204は、3点(pn,qn,rn)が同一画面内にあるかどうかを判断する。同一画面内にあった場合はステップS403へ、なかった場合はステップS408へ移行する。ここでいう同一画面内とは、後で説明する分割線で区切られていない単一の画面内であることを表す。CPU204は、RAM210に記憶された3点の座標情報(pn,qn,rn)と、後で説明する画面IDの情報から、3点(pn,qn,rn)が同一画面内にあるかどうかを判断することができる。
【0043】
ステップS403において、CPU204は、3点のうち1点だけが移動していないかどうかを判断する。即ち3点のうちの2点だけが移動しているかどうかを判断する。1点だけが移動していなかった場合はステップS404へ、そうでなかった場合はステップS407へ移行する。以降の説明では、1点だけが移動していなかった場合のその1点の座標情報をrnとする。このrnは、図10を用いて先に説明した参照用画像を指示する指1002の接触点に相当する。
【0044】
ステップS404において、CPU204は、2つの指の移動、すなわちpn,qnの移動が、ピンチアウトであるかどうかを判断する。ピンチアウトだった場合はステップS405へ、そうでなかった場合はステップS406へ移動する。ピンチアウトかどうかは、2点(pn,qn)の距離が、イベント発生の前後で変化したかどうかを調べればよいので、次の式で調べられる。
【0045】
|pn−qn|>|pn−1−qn−1|(nは現在であることを表す)・・・(1)
ここで(pn−1,qn−1)は、イベント発生前の2点の座標情報であり、RAM210に記録されている。
【0046】
ステップS405において、CPU204は、画面を分割し、片方の画面に拡大画像を表示する処理を実行する。この処理は図5のフローチャートを用いて後述する。
【0047】
ステップS406において、CPU204は、2つの指の移動のうちのピンチアウト操作以外の操作に応じた所定の処理を行う。この場合に行われる所定の処理について詳しい説明は割愛する。ただし、ピンチインが行われた場合に、ステップS405と逆の処理、即ち、画面を分割して片方の画面に縮小画像を表示する処理を実行するようにしてもよい。
【0048】
ステップS407において、CPU204は、3点タッチのうち1点もしくは3点が移動した場合の処理を行う。この場合の処理は本発明には直接関係しないため、詳しい説明は割愛する。
【0049】
ステップS408において、CPU204は、3点が同一画面内にない場合の処理を実行する。この場合それぞれの画面で1点乃至2点がタッチされた場合の処理を実行してもよいし、何もしないよう定義してもよい。この場合の処理は本発明には直接関係しないので、詳しい説明は割愛する。
【0050】
ステップS409において、CPU204は、タッチされている指の接触本数が3点以外の時の指移動に伴う処理を実行する。即ち、接触本数が1点、2点又は4点以上の場合の処理である。この処理の詳細については、図11を用いて後述する。
【0051】
図5は、情報処理装置100において実行される、画面を分割して片方の画面に拡大画像を表示する処理を表すフローチャートである。このフローチャートは、図4のフローチャートのステップS405において実行される。
【0052】
ステップS501において、CPU204は、3点(pn,qn,rn)を含む画面の分割処理を行う。この処理は、図5−(b)に示される、3点を含む画面の分割処理を表すフローチャートで表現される。
【0053】
ステップS511で、CPU204は、3点を含む画面の画面IDをRAM210から取得する。
【0054】
ここで図8、図9を用いて、画面IDと分割線について説明する。
【0055】
本実施例では、表示画面の分割を行う。分割前の画面、分割後の画面にはそれぞれユニークな画面IDが付与され、画面は分割線を以て分割される。分割線は図8における801〜804で示される線である。805〜813は、分割された画面にIDが順番に振られていく様子を示している。たとえばID0の画面805を分割すると分割線801がID0の画面の長辺の中点を通るように表示され、ID1の画面806とID2の画面807に分割される。この際、ID0はID1、ID2の親IDとして管理される。IDが付与された画面は付与されたID毎に単一の画面として管理され、さらに分割することも可能である。たとえば、ID1を親IDとしてID3の画面808とID4の画面809の画面に分割できる。
【0056】
IDの親子関係は、図9に示すような二分木の構造として管理され、データはRAM210に記録されている。図9の二分木は図8に示す画面分割の例と対応している。
【0057】
尚、図8の例では、画面を分割するにあたって、必ず長辺の中点で分割するように定義して図示している。その他、加速度センサを用いて画面の向きが縦向きであるか横向きであるかが分かれば、必ず上下方向に分割するようにしてもよい。又は、必ず短辺の中点で分割するようにしてもよい。また、必ず長辺の中点で分割するモード、必ず短辺の中点で分割するモード、分割方向に加速度センサを用いるモードなど、モードを設けて分割方向を管理し、ユーザが所望のモードを選択できるようにしてもよい。また、これらは一例であり、必ずしも中点での分割に限るものではない。
【0058】
図5−(b)のフローチャートの説明に戻る。ステップS513において、CPU204は、3点を含む画面の長辺(または短辺)の中点で画面を分割する。
【0059】
ステップS514において、CPU204は、元の画面のIDを親IDとして、分割した画面それぞれにIDをつける。以下、簡単のため、図8でいう画面ID0の画面805を画面ID1の画面806と画面ID2の画面807に分割した場合を例にして説明する。
【0060】
ステップS515において、CPU204は、分割線を表示する。
【0061】
フローチャートは図5−(a)に戻る。ステップS502において、CPU204は、移動していない1点rnを含む参照用画像を作成する。参照用画像は図10の1005に対応する部分である。この部分は、図8でいうと、ID2の画面807に相当する。指1002が存在する領域(分割後のID2の画面807の領域)に、あらかじめ表示されている画像を参照用画像とする。作成した参照用画像は、RAM210に保存される。
【0062】
ステップS503において、CPU204は、分割した画面のうちrnを含む側(本例の場合、ID2の画面807)に、RAM210に保存された参照用画像を表示する。
【0063】
ステップS504において、CPU204は、ピンチアウトされた画像の拡大処理を実行する。この処理は図5−(c)のフローチャートで示される。
【0064】
ステップS516において、CPU204は、ピンチアウトの中点を算出する。ピンチアウトの中点mnは、移動後の座標(pn,qn)の中点であるので、次式で求められる。
【0065】
mn=(pn+qn)/2 ・・・(2)
ステップS517において、CPU204は、mnを中心とした拡大画像を作成し、一時的にRAM210に保存する。
【0066】
ステップS518において、CPU204は、分割した画面のうちrnを含まない側(本例の場合、ID1の画面806)に、RAM210に保存された拡大画像を表示する。
【0067】
ここで、図6を用いて、参照用画像と拡大画像を実画像データから指定し、RAM210に保存する方法について説明する。
【0068】
図6は実画像データ、メモリ上のデータ、表示画面の対応関係を表す図である。601は、実画像データ全体と実画像に設定されたx,y座標を表している。実画像データはRAM210に保存されている。608は画像編集用のメモリ領域であり、RAM210に確保されている。前述した拡大画像や参照用画像は、一度608の領域で描画する一枚の画像データとして保存される。608に保存された画像データはDISPC207の描画用画像領域(不図示)に転送され、LCD201に描画される。図6では、図10の表示画像と対応づけて説明する。
【0069】
全体画像601のうち、座標(X1,Y1)、(X2,Y1)、(X2,Y2)、(X1,Y2)を頂点とする長方形の点線で囲まれた602の部分は、拡大画像として表示される部分である。604は、先に説明したピンチアウトの中心を表している。CPU204は、ピンチアウトされた距離の情報から、拡大倍率を決定し、拡大画像として表示する領域602の座標を決定する。このときピンチアウトの中心604を領域602の中心とする。次にCPU204は決定された領域から拡大画像を生成し、608のうち拡大画像を保存する領域605に保存する。605の左上の頂点は602の左上の頂点(X1,Y1)に、605の右下の頂点は602の右下の頂点(X2,Y2)に対応するように拡大する。
【0070】
全体画像601のうち、座標(0,Y/2)、(Y/2,X)、(X,Y)、(0,Y)を頂点とする長方形の点線で囲まれた603の部分は、参照用画像として表示される部分である。CPU204は、図10の1002の指が押さえている点を含む領域である603の領域から参照用画像を生成し、608のうち参照用画像を保存する領域606に保存する。RAM210は、拡大画像と参照用画像の、全体画像に対する座表情報を保存している。607は、分割線を表している。608の領域は、画像のスクロールや拡大・縮小などを指示するイベントが発生するたびに書き換えられる。
【0071】
フローチャート図5−(a)の説明に戻る。
【0072】
ステップS505において、CPU204は、3点(pn,qn,rn)のうちの少なくとも一点が離された(タッチアップを検知した)かどうかを判断する。離された場合はステップS522に移行する。そうでない場合は、ステップS506へ移行する。
【0073】
ステップS522において、CPU204は、図3のステップS309と同様に、タッチされている指の数を、タッチアップを検知した分だけ減ずる。ステップS522の後、図5−(a)のフローチャートは処理を終了する。
【0074】
ステップS506において、CPU204は、指の移動を意味するタッチ入力イベント(ムーブ)が発生したかどうかを判断する。発生した場合はステップS507へ移行し、そうでない場合はステップS505に戻る。
【0075】
ステップS507において、CPU204は、移動した点に、(pn,qn)の少なくともいずれかが含まれるかどうかを判断する。含まれていた場合はステップS508へ、含まれていなかった場合はステップS509へ移行する。
【0076】
ステップS508において、CPU204は、(pn,qn)の中点の座標を中心とした画像の拡大、もしくは縮小処理を行う。この処理は図5−(d)に示される。
【0077】
ステップS519において、CPU204は、ステップS516と同様に、移動した指の座標(pn,qn)の中点mnを算出する。mnは上記(2)式で計算される。
【0078】
ステップS520において、CPU204は、上記(1)式により、指の移動がピンチアウトによるものかどうかを判断する。ピンチアウトだった場合、CPU204はmnを中心とした拡大画像を作成する。ピンチアウトではなくピンチインだった場合、CPU204はmnを中心とした縮小画像を作成する。作成された画像は、一時的にRAM210に保存される。
【0079】
ステップS521において、CPU204は、ステップS518と同様に、ID1の画面806に、RAM210に保存された拡大画像、もしくは縮小画像を表示する。ステップS508が終了するとフローチャートはステップS509へ移行する。
【0080】
ステップS509において、CPU204は、移動した点にrnが含まれるか否かを判断する。含まれている場合はステップS510へ移行し、そうでない場合はステップS505へ戻る。
【0081】
ステップS510において、CPU204は、rnを含むID2の画面807に表示している画像に対して、rnの移動に追随するように画像をスクロールさせる。この処理が終了すると、フローチャートはステップS505に戻る。
【0082】
ステップS505〜S510までの処理はループになっており、3点(pn,qn,rn)のうち少なくとも一つが離されない間は繰り返し実行される。これにより分割、拡大表示後の各画面に対して、更なるピンチアウト/ピンチイン、スクロール等の操作が可能となる。
【0083】
図11は、情報処理装置100において実行される、タッチされている指の数が3点以外の時の指移動に伴う処理を表すフローチャートである。このフローチャートは、図4に示すフローチャートのステップS409において実行される。
【0084】
ステップS1101において、CPU204は、タッチされている指の数(タッチオンを検知している数)が1点かどうかを判断する。1点だった場合、ステップS1102へ、そうでない場合はステップS1105へ移行する。
【0085】
ステップS1102において、CPU204は、タッチされている点が、画面の分割線の上であるかどうかを判断する。分割線上であった場合は、ステップS1103へ、そうでない場合はステップS1104へ移行する。尚、ここでの分割線上であるか否かの判断では、必ずしも正確に分割線上であるか否かではなく、多少のズレを考慮して判断を行うものとする。即ち、分割線を示す座標とタッチされた点を示す座標との違いが所定量以内であれば、分割線上であるとみなすようにしてもよい。
【0086】
ステップS1103において、CPU204は、分割線の移動処理を実行する。この処理は図12を用いて後述する。
【0087】
ステップS1104において、CPU204は、タッチされている指が含まれる画面に対して、スクロール処理を行う。この処理は、画面が分割されている場合には分割されている画面単位で行われる。
【0088】
ステップS1105において、CPU204は、タッチされている指の数が2点かどうかを判断する。2点だった場合はステップS1106へ、そうでない場合はステップS1110へ移行する。
【0089】
ステップS1106において、CPU204は、タッチされている2点が分割線をまたいでいるかどうかを判断する。またいでいる場合はステップS1107へ、そうでない場合はステップS1109へ移行する。
【0090】
ステップS1107において、CPU204は、検知された指の移動がピンチインであるかどうかを判断する。ピンチインである場合はステップS1108へ移行する。ピンチインかどうかの判定は、(1)式で不等号の向きを逆にすればよい。一方、ピンチインでないと判断された場合即ちピンチアウトであると判断された場合は、本例では画面の処理を行わずにそのまま処理を終了する。ただし分割線をまたいでピンチアウトが行われた場合には、各指が置かれている画面を各指が移動した方向にスクロールされるように処理してもよい。
【0091】
ステップS1108において、CPU204は、画面分割の終了処理を実行する。この処理の詳細は、図13を用いて後述する。このステップの後、フローチャートは処理を終了する。
【0092】
ステップS1109において、CPU204は、タッチされている指の数が2点の時の指移動に伴う処理のうち、2点が分割線をまたいでいなかった場合の処理を実行する。これは通常のピンチアウト/ピンチインのジェスチャであるので、画像に対する拡大/縮小処理を行う。この処理は、画面が分割されている場合には分割されている画面単位で行われる。
【0093】
ステップS1110において、CPU204は、タッチされている指の数が3点より大きい時の指移動に伴う処理を実行する。即ち、4点以上のタッチオンが検知されている場合の指移動に伴う処理であり、直接関係しないため、詳しい説明は割愛する。
【0094】
S1109やS1110の処理の後、図11のフローチャートの処理は終了する。
【0095】
図12は、情報処理装置100において実行される、分割線の移動処理を表すフローチャートである。このフローチャートは、図11に示すフローチャートのステップS1103において実行される。
【0096】
ここでは、説明を簡単にするため、画面の分割は図10の状態でなされているものとし、拡大画像の表示画面の画面IDはID1、参照用画像の表示画面の画面IDはID2として説明する。また、それらの親IDはID0とする。
【0097】
ステップS1201において、CPU204は、分割線の移動処理を実行する。この処理は図12−(b)のフローチャートで示される。
【0098】
ステップS1207において、CPU204は、指の移動距離のうち、分割線と垂直な方向の成分l⊥を算出する。
【0099】
l⊥=|sn−sn−1| ・・・(3)
ここでsnは、今回分割線上を移動した際の移動後の点の座標情報を表す。
【0100】
ステップS1208において、CPU204は、snの、分割線と垂直方向での移動方向を算出する。
【0101】
ステップS1209において、CPU204は、指の移動方向に応じて、ID1の画面に表示される拡大画像の表示領域を広げて(または狭めて)、新たな拡大画像を作成し、DISPC207に表示指示を行う。DISPC207はLCD201に表示領域を広げた(または狭めた)拡大画像を表示させる。
【0102】
ステップS1210において、CPU204は、指の移動方向に応じて、ID2の画面に表示される参照用画像の表示領域を狭めて(または広げて)、新たな参照用画像を作成する。その後、DISPC207は、拡大画像と同様にして新たな参照用画像をLCD201に表示させる。
【0103】
ステップS1211において、CPU204は、検知された移動方向に分割線をl⊥だけ移動させる。
【0104】
処理は図12−(a)のフローチャートに戻る。ステップS1202において、CPU204は、分割線上の指が離されたかどうか(タッチアップを検知したかどうか)を判断する。離された場合は処理を終了し、そうでない場合は、ステップS1203へ移行する。
【0105】
ステップS1203において、CPU204は、指の移動を表すタッチ入力イベントが発生したかどうかを判断する。指の移動を表すタッチ入力イベントが発生した場合はステップS1204へ移行し、そうでない場合はステップS1202へ戻る。
【0106】
ステップS1204において、CPU204は、移動した点がsnかどうかを判断する。そうだった場合はステップS1205へ、そうでなかった場合はステップS1202へ移行する。ステップS1205において、CPU204は、図5−(b)に示される分割線の移動処理を実行する。ステップS1205の処理の後、再びステップS1202に戻る。
【0107】
ステップS1202〜S1205までの処理は、分割線上の点snがタッチアップされるまで繰り返し実行されるため、分割線上の指の移動に追随して分割線を移動することができる。
【0108】
図14は、分割線を移動する様子を模式的に表した図である。
【0109】
図14の例では、情報処理装置100上のID1の画面1402とID2の画面1403が、分割線1401によって分割表示されている。これを指1407によってタッチダウンし下方向にスライドさせると、1408のように分割線は指に追随して下へ下がり、拡大画像を表示するID1の画面1404の表示領域は、それに合わせて広げられる。指を下まで下げ切ると、1406のように、全面がID1の拡大画像の画面となる。
【0110】
これを逆に分割線を上に上げると、参照用画像を表示するID2の画面1405の表示領域が大きくなる。このように、本実施例では、分割された二つの画面の境界を示す分割線をユーザがタッチした状態でスライドすることによって、それぞれの画面の大きさを変更することができる。
【0111】
次に図13と図15〜18を用いて、画面分割の終了処理について説明する。
【0112】
図16は、分割された画面をピンチインすることにより、分割前の画面に戻す様子を模式的にあらわした図である。図16では、二つに分割された画面のうちの拡大画像1601側に指1605がタッチオンされ、参照用画像1602側に指1604がタッチオンされている。これらの指をピンチイン(分割線1603方向に近づける)すると、画面分割が終了し、表示画面は1606になり、参照用画像が一画面に表示される。
【0113】
ここで、分割を解除する際、分割前の画像即ち参照用画像を表示させるのではなく、拡大画像又は参照用画像のどちらを残すのかをユーザが選択したい場合も考えられる。図15は、ピンチインで画面分割を解除する際、片方の指を固定することで、分割解除後の画面に表示する画像を拡大画像にするか参照用画像にするかを選択する方法である。図15−(a)のように、分割線1503で分割された画面1501と1502が表示された画面において、人差し指1506を固定し、親指1504を上方向に移動させた場合、分割終了後、ID2の参照用画像1502が全面に表示される(1505)。また、逆に図15−(b)のように、親指1504を固定し、人差し指1506を下方向へ移動させた場合は、分割終了後、ID1の拡大画像1501が全面に表示される(1507)。即ち、移動した指が置かれている方の画面に表示されている画像を、分割解除後に表示する画像として選択するようにした方法である。尚、これらの処理は逆に、固定した指が置かれている方の画面に表示されている画像を、分割解除後に表示する画像として選択するようにしてもよい。
【0114】
尚、図15、図16は、ID0の画面をID1の拡大画像を表示する画面と、ID2の参照用画像を表示する画面に分割した場合を例に、分割解除処理を説明したものである。
【0115】
図13は、情報処理装置100において実行される、画面分割を終了する処理を表すフローチャートである。このフローチャートは、図11に示すフローチャートのステップS1108において実行される。
【0116】
ステップS1301において、CPU204は、2点の属する画面の画面IDをそれぞれ取得する。図15や図16の例では、2点の属する画面の画面IDはID1とID2となる。図17の例では、2点の属する画面の画面IDはID3とID6である。図18の例では、2点の属する画面の画面IDはID5とID8である。
【0117】
ステップS1302において、CPU204は、取得した2点の属する画面の画面IDの親IDを一致するまで辿り、そのIDを特定する。図15、図16で一致する親IDはID0であるから、この場合ID0が特定される。図17、図18では辿る様子を模式的にあらわしている。
【0118】
尚、ここで図17、図18は、画面IDを用いた分割終了時の画面管理の方法の例を模式的に表した図である。
【0119】
図17−(b)において、ID3のノード1704とID6のノード1705の親IDを辿ると、共通するのは、ID1のノード1703となるから、ID1が特定される。
【0120】
同様に、図18−(b)において、ID5のノード1805とID8のノード1806を辿ると、共通のノードはID0のノード1804であるから、ID0が特定される。
【0121】
ステップS1303において、CPU204は、S1302で特定された親IDを分割している分割線を消去する。図17−(a)の例で消去する分割線は1701と1702である。図18−(a)において消去する分割線は1801と1803である。
【0122】
ステップS1304において、CPU204は、移動した点が1点のみであるかどうかを判断する。1点のみだった場合は、ステップS1305へ移行し、そうでなかった場合は、ステップS1306へ移動する。
【0123】
ステップS1305において、CPU204は、S1302で特定された親IDを分割する分割線の、移動した点を含む側の画面を、親IDが表示していた画面に表示する。具体的な例としては、図15と図18がこの場合に相当する。図15においてはID2の画面1502もしくはID1の画面1501が、共通する親ID0の画面の代わりに、全画面で表示される(1505、1507)。図18においては、ID0の画面を分割する分割線1801とID2の画面を分割する分割線1803を消去する。分割線1801で区切られた画面のうち、1802が属するのはID1の画面である(1807)。具体的にはID3、ID5、ID6の画面が全面に表示されることとなるので、ID1のノード1807をID0のノード1809の位置に挿げ替えればよい。図18−(c)がその様子を表している。図18(e)は挿げ替え後の二分木の様子である。これで画面は図18−(d)のように表示される。このとき、情報処理装置の縦横を入れ替えて表示するようにしてもよい。
【0124】
ステップS1306において行われる処理は、移動した点が2点の場合の処理である。ステップS1306において、CPU204は、S1302で特定された親IDの画面を表示する。具体的な例として、図16と図17がこの場合に相当する。図16の場合はID0の分割前の画面を表示する。図17−(b)では、ID6のノード1705とID3のノード1704の一致する親ノードはID1のノード1703であるから、ID1が特定される。そこで図17−(d)のように、ID1のノードより下のノードを削除し、ID1の画面を表示する。図17−(c)における1706がその様子を表している。
【0125】
以上の処理を繰り返し実行することで、画面を分割し、片方の画面に拡大画像を表示する処理と、分割した画面を元に戻す処理とを実現できる。
【0126】
以上説明したように、本実施例によれば、表示部に表示された画像を拡大する表示を行わせつつ、拡大しない元の画像も表示されたままの状態にすることができる。そして、これらの2つの画像は同じ表示部上に同時に表示することができる。従ってユーザは拡大画像を見ながら拡大前の元画像を一緒に確認することができる。また、それぞれの画像は分割された画面に独立して表示されるから、各画像(拡大画像、参照用画像)それぞれに対して更なる拡大/縮小操作やスライド操作を行うこともできる。加えて、一旦分割して表示されたそれぞれの画面を、ピンチイン操作によって一画面にまとめる(元の画面に戻す)ことができる。
【0127】
尚、本実施例では、表示された画像上の3点がタッチされた際の1点を固定した状態で残りの2点をピンチアウトした際に、そのピンチアウト操作に従って画像が拡大される場合の例を説明した。しかし、このピンチアウト操作をピンチイン操作に代えて、同様の処理を行うようにしてもよい。即ち、表示された画像上の3点がタッチされた際の1点を固定した状態で残りの2点をピンチインした際に、そのピンチイン操作に従って画像が縮小されるようにしてもよい。この場合も本実施例と同様に、画面が分割され、拡大画像に代わる縮小画像を表示する画面と、参照用画像を表示する画面とが作成されることになる。縮小画像を表示する場合には、元画像(元のサイズの画像)を表示しつつ、縮小画像を並べて表示し、元画像では表示されていない広範囲の情報をユーザが確認できるようになる。
【0128】
以上のように、本実施例によれば、タッチパネルを備えた情報処理装置の表示部に表示された画像に対する表示制御の操作性が著しく向上する。
【0129】
[その他の実施形態]
本発明における情報処理装置は、様々な装置を含むものである。例えば、パーソナルコンピュータやPDA、携帯電話端末に限らず、プリンタ、スキャナ、FAX、複写機、複合機、カメラ、ビデオカメラ、その他の画像ビューワ等を含む。
【0130】
また、上記第1の実施形態では、表示制御の操作対象となる画像として、写真やグラフィックデータ等のイメージデータを想定しているが、本発明を適用可能な画像はそのようなデータに限定されない。例えば、情報処理装置100としてデジタル複合機等の画像形成装置を用いる場合、デジタル複合機が保持する印刷ジョブの一覧であるジョブリスト画面においても、上記第1の実施形態と同様の処理が適用可能である。
【0131】
ジョブリスト画面に適用すれば、リスト表示されている各ジョブの詳細情報を表示するための拡大画像と、リスト全体を表示する参照用画像とを並べて、ユーザは同時に見ることが可能となる。
【0132】
図7は、印刷ジョブリストの画面に対して、3点をタッチしてそのうちの1点を固定、残りの2点をピンチアウト操作したときの様子を模式的に示している。図10と同様に、一本指701で画面をタッチオンしている状態で、703の印刷ジョブ「お.jpg」の部分を704の2本指でピンチアウトする。その結果、右の図のように分割線706によって画面が分割される。そして、分割された画面の一方の画面705は図10での拡大画面1004に相当し、ピンチアウトした703のジョブ以下のジョブ(例えば「お.jpg」と「か.xls」のジョブ)の詳細情報が表示される。もちろん、拡大画像705には、2本指704でタッチされている「お.jpg」のジョブのみの詳細情報を表示し、それ以下のジョブについてはリスト表示そのままとしてもよい。詳細情報にはサムネイル画像やジョブ送信日時、ユーザ名等の情報を含んでいてもよい。もう一方の画面707は図10の参照用画面1005に相当し、指701が押さえていたジョブを含むジョブリストが元のサイズで表示される。
【0133】
また、上記第1の実施形態では、3点をタッチしてそのうちの1点を固定、残りの2点を移動させた場合に、上記拡大(又は縮小)及び画面の分割を行うものとした。しかし4点以上のタッチの場合に、1点を固定、残りの多点(3点以上)を移動させた場合に上記拡大(又は縮小)及び画面の分割を行うようにしてもよい。つまり、本発明は、3点のタッチの場合のみに限定されるものではない。
【0134】
その他、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態の一部を適宜組み合わせてもよい。
【0135】
そして、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0136】
100 情報処理装置
201 LCD
202 タッチパネル
204 CPU
209 FLASH ROM
210 RAM
【特許請求の範囲】
【請求項1】
画像を表示する表示手段と、
少なくとも3点のタッチを検知することができるタッチパネルと、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知手段と、
前記検知手段による検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる表示制御手段と、
を有し、
前記表示制御手段は、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする情報処理装置。
【請求項2】
前記検知手段による検知に応じて、前記画像を表示した前記表示手段の表示画面を、前記第1の表示画像を表示するための第1の画面と前記第2の表示画像を表示するための第2の画面とに分割する分割手段を更に有し、
前記表示制御手段は、前記分割手段によって分割された前記第1の画面に前記第1の表示画像を表示させ、前記第2の画面に前記第2の表示画像を表示させることを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記分割手段によって画面が分割された後、前記第1の画面上のタッチによってスクロールを行う操作がされるのに応じて、前記第2の表示画像をスクロールすることなく前記第1の表示画像をスクロールすることを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記分割手段によって画面が分割された後、前記第1の画面上でピンチアウト操作がされるのに応じて、前記第2の表示画像を拡大することなく前記第1の表示画像を拡大することを特徴とする請求項2又は3記載の情報処理装置。
【請求項5】
分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をタッチした状態でスライドされるのに応じて、前記第1の画面と前記第2の画面の大きさを変更する変更手段を有することを特徴とする請求項2乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のピンチイン操作がされるのに応じて、前記第1の画面と前記第2の画面の少なくとも何れかを消去して一画面を表示させることを特徴とする請求項2乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のうちの前記第1の画面上の1点を固定したピンチイン操作がなされた場合、前記第1の画面を消去して前記第2の画面に基づく一画面を表示させることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のうちの前記第2の画面上の1点を固定したピンチイン操作がなされた場合、前記第2の画面を消去して前記第1の画面に基づく一画面を表示させることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。
【請求項9】
前記第1の表示画像は、前記画像に関する詳細情報を含む画像であることを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
【請求項10】
画像を表示する表示手段と、
少なくとも3点のタッチを検知することができるタッチパネルと、
表示手段の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知する検知手段と、
前記検知手段による検知に応じて、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを、前記表示手段に表示させる表示制御手段と、
を有し、
前記表示制御手段は、拡大又は縮小された前記画像と拡大及び縮小されていない前記画像とを並べて表示させることを特徴とする情報処理装置。
【請求項11】
情報処理装置の表示手段に表示された画像の表示制御方法であって、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知ステップと、
前記検知ステップによる検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる制御ステップと、
を有し、
前記制御ステップは、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする表示制御方法。
【請求項12】
表示手段に表示された画像を以下のステップに従って表示制御するための、コンピュータによって実行されるプログラムであって、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知ステップと、
前記検知ステップによる検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる制御ステップと、
を有し、
前記制御ステップは、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とするプログラム。
【請求項1】
画像を表示する表示手段と、
少なくとも3点のタッチを検知することができるタッチパネルと、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知手段と、
前記検知手段による検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる表示制御手段と、
を有し、
前記表示制御手段は、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする情報処理装置。
【請求項2】
前記検知手段による検知に応じて、前記画像を表示した前記表示手段の表示画面を、前記第1の表示画像を表示するための第1の画面と前記第2の表示画像を表示するための第2の画面とに分割する分割手段を更に有し、
前記表示制御手段は、前記分割手段によって分割された前記第1の画面に前記第1の表示画像を表示させ、前記第2の画面に前記第2の表示画像を表示させることを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記分割手段によって画面が分割された後、前記第1の画面上のタッチによってスクロールを行う操作がされるのに応じて、前記第2の表示画像をスクロールすることなく前記第1の表示画像をスクロールすることを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記分割手段によって画面が分割された後、前記第1の画面上でピンチアウト操作がされるのに応じて、前記第2の表示画像を拡大することなく前記第1の表示画像を拡大することを特徴とする請求項2又は3記載の情報処理装置。
【請求項5】
分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をタッチした状態でスライドされるのに応じて、前記第1の画面と前記第2の画面の大きさを変更する変更手段を有することを特徴とする請求項2乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のピンチイン操作がされるのに応じて、前記第1の画面と前記第2の画面の少なくとも何れかを消去して一画面を表示させることを特徴とする請求項2乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のうちの前記第1の画面上の1点を固定したピンチイン操作がなされた場合、前記第1の画面を消去して前記第2の画面に基づく一画面を表示させることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記表示制御手段は、前記分割手段によって分割された前記第1の画面と前記第2の画面の境界を示す分割線をまたいでタッチされた2点のうちの前記第2の画面上の1点を固定したピンチイン操作がなされた場合、前記第2の画面を消去して前記第1の画面に基づく一画面を表示させることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。
【請求項9】
前記第1の表示画像は、前記画像に関する詳細情報を含む画像であることを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
【請求項10】
画像を表示する表示手段と、
少なくとも3点のタッチを検知することができるタッチパネルと、
表示手段の3点をタッチした状態から、そのうちの1点を固定しながら残りの多点を移動させたことを検知する検知手段と、
前記検知手段による検知に応じて、前記2点の移動に基づいて拡大又は縮小された前記画像と、拡大及び縮小されていない前記画像とを、前記表示手段に表示させる表示制御手段と、
を有し、
前記表示制御手段は、拡大又は縮小された前記画像と拡大及び縮小されていない前記画像とを並べて表示させることを特徴とする情報処理装置。
【請求項11】
情報処理装置の表示手段に表示された画像の表示制御方法であって、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知ステップと、
前記検知ステップによる検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる制御ステップと、
を有し、
前記制御ステップは、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とする表示制御方法。
【請求項12】
表示手段に表示された画像を以下のステップに従って表示制御するための、コンピュータによって実行されるプログラムであって、
前記表示手段に表示された画像上の3点をタッチした状態から、1点を固定しながら残りの2点をピンチアウトする操作を検知する検知ステップと、
前記検知ステップによる検知に応じて、前記画像の中の一部の画像であって前記ピンチアウトの中心を少なくとも含む拡大された一部の画像である第1の表示画像と、前記画像の中の一部の画像であって前記固定された1点を少なくとも含む拡大されていない一部の画像である第2の表示画像とを、前記表示手段に表示させる制御ステップと、
を有し、
前記制御ステップは、前記第1の表示画像と前記第2の表示画像とを並べて表示させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2013−114558(P2013−114558A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−261839(P2011−261839)
【出願日】平成23年11月30日(2011.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願日】平成23年11月30日(2011.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]