(57)【要約】【課題】表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行う。【解決手段】画像に対して表示範囲を設定し、当該表示範囲内の画像を固定的な表示サイズの表示エリアに表示させる。表示範囲の画像に対する大きさを拡大、縮小させることで、表示エリアに表示される画像の拡大率を変更する。表示範囲の画像に対する大きさの変更を、表示範囲における画像の中心から最も遠い点を基準点として行う。基準点の情報は、スクロール操作などにより表示範囲の位置が変更されるまで、保持される。【選択図】図４
2010181637.tif 000002
【特許請求の範囲】
【請求項１】
画像に対して設定された表示範囲に含まれる該画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して該表示エリアに表示させる表示制御装置であって、
前記表示範囲における前記画像の中心から最も遠い点を求める算出手段と、
ユーザ操作に応じて前記表示範囲の大きさを変更する変更手段と、
前記表示範囲に含まれる前記部分画像の画像サイズを、前記表示サイズに適合するように変更して前記表示エリアに表示させる表示制御手段と
を有し、
前記変更手段は、
前記算出手段で求められた前記最も遠い点の前記画像に対する位置が変化しないように、前記表示範囲の大きさを変更する
ことを特徴とする表示制御装置。
【請求項２】
前記画像における現在の前記表示範囲を拡大したときに、拡大された該表示範囲が前記画像からはみ出ない最大の該表示範囲の大きさを求める最大範囲算出手段をさらに有し、
前記変更手段は、
前記表示範囲の大きさの変更を行う際に、該変更の後の該表示範囲の大きさと前記最大範囲算出手段で算出された前記最大の表示範囲の大きさとを比較し、
前記比較の結果、前記変更の後の表示範囲の大きさが前記最大の表示範囲の大きさ以下であれば、前記変更の前の前記表示範囲の中心の前記画像に対する位置が変化しないように、前記表示範囲の大きさの変更を行う
ことを特徴とする請求項１に記載の表示制御装置。
【請求項３】
前記変更手段は、
前記最も遠い点の情報を、前記表示範囲の前記画像に対する前記最も遠い点の位置が変更されるまで保持する
ことを特徴とする請求項１または請求項２に記載の表示制御装置。
【請求項４】
前記算出手段は、
前記最も遠い点が複数存在する場合、該複数の該最も遠い点から等距離にある点を前記最も遠い点として求める
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の表示制御装置。
【請求項５】
画像に対して設定された表示範囲に含まれる該画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して該表示エリアに表示させる表示制御方法であって、
前記表示範囲における前記画像の中心から最も遠い点を求める算出ステップと、
ユーザ操作に応じて前記表示範囲の大きさを変更する変更ステップと、
前記表示範囲に含まれる前記部分画像の画像サイズを、前記表示サイズに適合するように変更して前記表示エリアに表示させる表示制御ステップと
を有し、
前記変更ステップは、
前記算出ステップで求められた前記最も遠い点の前記画像に対する位置が変化しないように、前記表示範囲の大きさを変更する
ことを特徴とする表示制御方法。
【請求項６】
コンピュータに請求項１乃至請求項４の何れか１項に記載の表示制御装置の各手段として機能させるためのプログラム。
【請求項７】
コンピュータに請求項１乃至請求項４の何れか１項に記載の表示制御装置の各手段として機能させるためのプログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示領域に対して可変の倍率で画像を表示する表示制御装置および表示制御方法に関する。
【背景技術】
【０００２】
近年では、ＣＣＤやＣＭＯＳセンサといった撮像素子は、性能が向上し撮像可能な画素数も従来に比べて増加している。このような高画素数の撮像素子を備えるデジタルカメラは、一般的な表示画素数を持つディスプレイでは全体を表示しきれないほどの大きな画像サイズの画像データを記録することができるようになっている。
【０００３】
それに伴い、撮像された画像を縮小表示や拡大表示して、ピントが合っているか否か、コントラストやエッジ強調などの画像調整結果が所望の結果になっているか否かを確認する作業を、一般のユーザが行うことが容易となってきている。例えば、ユーザは、高画素数の撮像素子を備えるデジタルカメラで撮影を行った後、撮影された画像を当該デジタルカメラのディスプレイに表示させる。そして、デジタルカメラに対するユーザ操作によりディスプレイに表示される画像を拡大して、ピントが合っているか否かを調べる。
【０００４】
このとき、ディスプレイに表示されている画像の所望の部分を指定して、その部分を中心として画像の拡大処理を行うことが、従来から行われている。特許文献１には、画像の拡大率を変更する際に、画像の中央を基準として画像の拡大および縮小を行うようにした技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２５５７７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の方法によれば、表示範囲の中心を基準点として画像の縮小を行う場合、画像外すなわち有効ビデオ領域の外側が表示されないように、当該基準点の位置を変更する。そのため、表示範囲に表示される画像の拡大処理および縮小処理を繰り返すと、表示範囲が徐々に画像中央へと移動してしまうという問題点があった。
【０００７】
この点について、図１７を用いて具体的に説明する。図１７において、表示範囲９０に対して画像９１の一部（部分画像と呼ぶ）を表示させる。先ず、図１７（ａ）に例示されるような状態から、表示範囲９０に表示される部分画像を縮小することを考える。この場合、画像９１に対して表示範囲９０を拡大することで、表示範囲９０に表示される部分画像が縮小されることになる。
【０００８】
ここで、部分画像の縮小、すなわち、表示範囲９０の拡大を、従来の技術に従い、表示範囲９０の中心の位置９２を基準として行う。すると、図１７（ｂ）に例示されるように、表示範囲９０の一部が画像９１の範囲を超えてしまい、表示範囲９０が画像９１からはみ出てしまうことになる。そこで、特許文献１に開示される方法により、表示範囲９０が画像９１からはみ出た分だけ表示範囲９０の画像９１に対する位置を調整し、図１７（ｃ）に例示されるように、表示範囲９０を画像９１の範囲内に収める。
【０００９】
次に、縮小された部分画像を再び縮小前の大きさに拡大、すなわち、表示範囲９０を縮小する。この処理を、表示範囲９０の中心の位置９２を基準に行うと、表示範囲９０の位置は、部分画像の縮小前の位置（図１７（ａ）参照）に対して、部分画像の縮小時に位置調整を行った分だけ、画像９１の中心方向にずれてしまうことになる。この様子を図１７（ｄ）に示す。
【００１０】
このように、表示範囲９０の画像９１に対する位置が、部分画像の拡大および縮小の処理を繰り返す度に移動したのでは、ユーザが表示に違和感を感じるおそれがある。
【００１１】
したがって、本発明の目的は、表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行うことができる表示制御装置および表示制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、上述した課題を解決するために、画像に対して設定された表示範囲に含まれる画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して表示エリアに表示させる表示制御装置であって、表示範囲における画像の中心から最も遠い点を求める算出手段と、ユーザ操作に応じて表示範囲の大きさを変更する変更手段と、表示範囲に含まれる部分画像の画像サイズを、表示サイズに適合するように変更して表示エリアに表示させる表示制御手段とを有し、変更手段は、算出手段で求められた最も遠い点の画像に対する位置が変化しないように、表示範囲の大きさを変更することを特徴とする表示制御装置である。
【００１３】
また、本発明は、画像に対して設定された表示範囲に含まれる画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して表示エリアに表示させる表示制御方法であって、表示範囲における画像の中心から最も遠い点を求める算出ステップと、ユーザ操作に応じて表示範囲の大きさを変更する変更ステップと、表示範囲に含まれる部分画像の画像サイズを、表示サイズに適合するように変更して表示エリアに表示させる表示制御ステップとを有し、変更ステップは、算出ステップで求められた最も遠い点の画像に対する位置が変化しないように、表示範囲の大きさを変更することを特徴とする表示制御方法である。
【発明の効果】
【００１４】
本発明は、表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の概要について説明するための図である。
【図２】本発明の第１の実施形態に適用可能な表示制御装置の一例の構成を示すブロック図である。
【図３】本発明の第１の実施形態に適用可能なユーザインターフェイスの例を示す図である。
【図４】本発明の第１の実施形態による一例の表示制御処理を示すフローチャートである。
【図５】表示範囲における基準点の位置を説明するための図である。
【図６】全体画像の全体を画像表示エリアに表示できない場合の例を示す図である。
【図７】ＵＩ画面の表示例を示す図である。
【図８】ＵＩ画面の表示例を示す図である。
【図９】表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明するための図である。
【図１０】表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明するための図である。
【図１１】ＵＩ画面の表示例を示す図である。
【図１２】ＵＩ画面の表示例を示す図である。
【図１３】本発明の第２の実施形態による一例の表示制御処理を示すフローチャートである。
【図１４】ＵＩ画面の表示例を示す図である。
【図１５】ＵＩ画面の表示例を示す図である。
【図１６】ＵＩ画面の表示例を示す図である。
【図１７】従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００１６】
＜本発明の第１の実施形態の概要＞
以下、本発明の第１の実施形態について説明する。本発明では、画像の一部を固定的な表示サイズを有する表示エリアに表示させる際に、画像における、表示エリアに表示させる範囲を示す表示範囲の拡大または縮小を、表示範囲における画像の中心から最も遠い点を基準にして行う。
【００１７】
図１を用いて、本発明の概要について説明する。図１（ａ）および図１（ｂ）において、画像１０の表示範囲２０Ａ（または表示範囲２０Ｂ、２０Ｃ）に含まれる部分が、固定的な表示サイズを有する表示エリアに、当該表示サイズに適合するようにサイズを拡大または縮小されて表示されるものとする。したがって、表示範囲２０Ａを拡大すると、表示エリアに表示される部分画像の拡大率が小さくされ、表示範囲２０Ａを縮小すると、表示エリアに表示される部分画像の拡大率が大きくされる。
【００１８】
図１（ａ）は、画像１０に対して表示範囲２０Ａを拡大し、表示エリアに表示される部分画像を縮小する場合の例である。この場合、表示範囲２０Ａの拡大を、表示範囲２０Ａにおける、画像１０の中心１１から最も遠い点である最遠点２１を基準として行う。すなわち、最遠点２１の画像１０に対する位置が変化しないように、表示範囲２０Ａの大きさを変化させる。
【００１９】
この図１（ａ）の例では、最遠点２１が表示範囲２０Ａの右下隅の点とされると共に、画像１０の中心１１が最遠点２１よりも左側に位置し、表示範囲２０Ａが画像１０の左方向および上方向にそれぞれ拡大される。換言すれば、画像１０の中心１１に対する表示範囲２０Ａにおける最遠点２１を基準に拡大を行うことで、表示範囲２０Ａが画像１０の内側へ向けて拡大されることになる。したがって、拡大後の表示範囲２０Ｂが画像１０からはみ出る可能性が低く抑えられると共に、当該表示範囲２０Ｂの画像１０に対する位置を移動させる必要性も減る。
【００２０】
図１（ｂ）は、図１（ａ）の例で拡大された表示範囲２０Ｂを画像１０に対して縮小して元の表示範囲２０Ａの大きさとする場合の例である。この場合も、表示範囲２０Ａの縮小を、画像１０の中心１１に対する表示範囲２０Ａにおける最遠点２１を基準として行う。
【００２１】
ここで、本発明では、表示エリアに表示される部分画像の拡大率を変更する場合には、当該部分画像が含まれる表示範囲の、画像に対する位置を移動させないものとする。上述したように、表示エリアに表示される部分画像の縮小時、すなわち、表示範囲２０Ａの拡大時には、拡大後の表示範囲２０Ｂの画像１０に対する位置を移動させる必要性が少ない。そのため、表示範囲２０Ｂが縮小された表示範囲２０Ｃの画像１０内での位置の、表示範囲２０Ｂの拡大前の表示範囲２０Ａに対する変化が抑制される。
【００２２】
＜第１の実施形態に適用可能な表示制御装置＞
次に、本発明の第１の実施形態について、図面を参照しながら説明する。図２は、本発明の第１の実施形態に適用可能な表示制御装置１００の一例の構成を示す。この図２に例示されるように、表示制御装置１００は、一般的なコンピュータを用いて構成することができる。
【００２３】
図２において、内部バス１１０に対してＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、表示制御部１０４、ハードディスク（ＨＤＤ）１０５、入力部１０６、ドライブ装置１０７および通信Ｉ／Ｆ１０８が接続される。内部バス１１０に接続される各部は、内部バス１１０を介して互いにデータのやりとりを行うことができるようにされている。
【００２４】
ハードディスク１０５は、画像データやその他のデータ、ＣＰＵ１０１が動作するための各種プログラムなどが格納される。ＲＯＭ１０２は、この表示制御装置１００が起動する際に用いられるプログラムやデータなどが予め記憶される。ＣＰＵ１０１は、例えばハードディスク１０５から読み出したプログラムをＲＡＭ１０３上に展開して実行し、この表示制御装置１００の各部を制御する。なお、ＣＰＵ１０１が動作するためのプログラムは、ハードディスク１０５に格納されるのに限られず、例えばＲＯＭ１０２に予め記憶しておいてもよい。
【００２５】
入力部１０６は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１０１に供給する。例えば、入力部１０６は、ユーザ操作を受け付ける入力デバイスとして、キーボードといった文字情報入力デバイスや、マウスなどのポインティングデバイスなどが接続される。ＣＰＵ１０１は、入力デバイスに対するユーザ操作に応じて入力部１０６で生成され供給される制御信号に基づき、プログラムに従いこの表示制御装置１００の各部を制御する。これにより、表示制御装置１００に対し、ユーザ操作に応じた動作を行わせることができる。
【００２６】
表示制御部１０４は、ディスプレイ１２０に対して、指定された表示解像度で画像を表示させるための表示信号を出力する。表示解像度は、例えばＣＰＵ１０１により指定される。例えば、表示制御部１０４に対して、ＣＰＵ１０１がプログラムに従い生成した表示制御信号が供給される。表示制御部１０４は、この表示制御信号に基づき表示信号を生成してディスプレイ１２０に対して出力する。例えば、表示制御部１０４は、ＣＰＵ１０１が生成する表示制御信号に基づき、ユーザインターフェイスを構成するためのＧＵＩ(Graphical User Interface)画面をディスプレイ１２０に対して表示させる。
【００２７】
ドライブ装置１０７は、ＣＤやＤＶＤといった外部記憶媒体１２１が装着可能とされ、ＣＰＵ１０１の制御に基づき、装着された外部記憶媒体１２１からのデータの読み出しや、当該外部記憶媒体１２１に対するデータの書き込みを行う。なお、ドライブ装置１０７が装着可能な外部記憶媒体１２１は、ＣＤやＤＶＤといったディスク記録媒体に限られず、例えば不揮発性の半導体メモリをドライブ装置１０７に装着するものとしてもよい。通信インターフェイス（Ｉ／Ｆ）１０８は、ＣＰＵ１０１の制御に基づき、ＬＡＮやインターネットといったネットワーク１３０に対する通信を行う。
【００２８】
＜ユーザインターフェイスについて＞
次に、本第１の実施形態に適用可能なユーザインターフェイス（ＵＩ）の例について、図３を用いて説明する。図３に例示されるＵＩ画面２００は、ハードディスク１０５などに格納されたプログラムに従いＣＰＵ１０１が表示制御部１０４を制御して、ディスプレイ１２０に表示される。また、ＣＰＵ１０１は、プログラムに従い、入力部１０６に接続される入力デバイスに対する、ＵＩ画面２００の表示に対応したユーザ操作に応じて、各種の制御を行う。
【００２９】
図３の例では、ＵＩ画面２００は、プレビュー画面２００Ａおよびナビゲータ画面２００Ｂとから構成される。プレビュー画面２００Ａは、画像表示エリア２１０、ファイル指定部２１１および表示倍率指定部２１２が配置される。ファイル指定部２１１は、ハードディスク１０５やドライブ装置１０７に装着された外部記憶媒体１２１に格納される画像データを指定するためのものである。表示倍率指定部２１２は、表示倍率表示部２１３とボタン２１４とが配置され、ファイル指定部２１１で指定された画像データが画像表示エリア２１０に表示される際の表示倍率を指定する。
【００３０】
プレビュー画面２００Ａの右上隅に配置されるボタン２１７は、このＵＩ画面２００を閉じ、ＵＩ画面２００に基づく一連の処理を終了させるための終了ボタンである。
【００３１】
プレビュー画面２００Ａに対して、さらに、水平スクロールバー２１５と垂直スクロールバー２１６とが配置される。水平スクロールバー２１５および垂直スクロールバー２１６は、ユーザ操作に応じて、画像表示エリア２１０に部分的に表示される画像の全体の画像に対する表示範囲を、それぞれ水平方向および垂直方向に移動させる。
【００３２】
一方、ナビゲータ画面２００Ｂは、指定された画像データによる画像の全体が表示されるナビゲータ画像表示エリア２２０が配置される。ナビゲータ画像表示エリア２２０には、さらに、プレビュー画面２００Ａの画像表示エリア２１０に表示される範囲を示す枠２２１が表示される。すなわち、ナビゲータ画像表示エリア２２０に表示される画像のうち枠２２１で囲まれる部分の画像が表示倍率表示部２１３に表示される表示倍率に応じて拡大されて、プレビュー画面２００Ａの画像表示エリア２１０に表示されるようになっている。プレビュー画面２００Ａに配置される水平スクロールバー２１５および垂直スクロールバー２１６のユーザ操作による操作に応じて、枠２２１の、画像全体に対する位置が移動される。なお、以下では、枠２２１に囲まれる部分の画像を、適宜、部分画像と呼ぶ。
【００３３】
このようなＵＩ画面２００において、ユーザ操作によりファイル指定部２１１で画像データが指定されると、ＣＰＵ１０１は、指定された画像データをハードディスク１０５や外部記憶媒体１２１から読み出す。そして、読み出した画像データによる画像の全体をナビゲータ画面２００Ｂのナビゲータ画像表示エリア２２０に表示させる。それと共に、ＣＰＵ１０１は、当該画像データによる画像のうち、ナビゲータ画像表示エリア２２０の枠２２１内に表示される部分画像を、プレビュー画面２００Ａの画像表示エリア２１０の表示サイズに拡大して、当該画像表示エリア２１０に表示させる。
【００３４】
画像表示エリア２１０に表示させる部分画像の表示倍率は、表示倍率指定部２１２から指定することができる。例えば、表示倍率指定部２１２に設けられるボタン２１４がユーザ操作により操作されると、複数の表示倍率がリストされたプルダウンメニュー（図示しない）が表示倍率表示部２１３に表示される。プルダウンメニューに表示される表示倍率は、例えば１２．５％、２５％、４０％、５０％、７５％、１００％、２００％および４００％の８種類とされる。これに限らず、表示倍率表示部２１３に対して、直接的に表示倍率を入力することもできる。
【００３５】
ユーザ操作によりプルダウンメニューから所望の表示倍率が選択されると、プルダウンメニューの表示が終了され選択された表示倍率が表示倍率表示部２１３に表示される。そして、ナビゲータ画面２００Ｂにおけるナビゲータ画像表示エリア２２０内の枠２２１が、選択された表示倍率に応じた大きさに変更されると共に、枠２２１内の部分画像が当該表示倍率に従い拡大されて、画像表示エリア２１０に表示される。
【００３６】
なお、表示倍率とは、ナビゲータ画面２００Ｂのナビゲータ画像表示エリア２２０における枠２２１で囲まれた部分の画像サイズと、プレビュー画面２００Ａの画像表示エリア２１０の表示サイズとの比を％（パーセント）で以て示した値とする。
【００３７】
例えば、画像表示エリア２１０の表示サイズが４００画素×３００画素とした場合、枠２２１で囲まれた画像サイズが１００画素×７５画素であれば、表示倍率は４００％となる。すなわち、枠２２１で囲まれた部分の画像が縦横それぞれ４倍（４００％）に拡大されて、画像表示エリア２１０に表示される。また例えば、画像表示エリア２１０の表示サイズが４００画素×３００画素、枠２２１で囲まれた画像サイズが４００画素×３００画素であれば、表示倍率は１００％となる。これは、ピクセル等倍とも呼ばれる。さらにまた、画像表示エリア２１０の表示サイズが４００画素×３００画素、枠２２１で囲まれた画像サイズが１６００画素×１２００画素であれば、表示倍率は２５％となる。
【００３８】
＜第１の実施形態による処理＞
次に、図４のフローチャートを用いて、本発明の第１の実施形態による一例の表示制御処理について説明する。なお、図４のフローチャートにおける各処理は、ＣＰＵ１０１がＲＡＭ１０３上に展開されたプログラムを実行することにより実行される。
【００３９】
先ず、ステップＳ３０１で、ＣＰＵ１０１は、ユーザが画像処理の対象として選択した画像データをハードディスク１０５や外部記憶媒体１２１からＲＡＭ１０３に読み込む。そして、読み込んだ画像データによる画像をプレビュー画面２００Ａの画像表示エリア２１０に対して表示させる。例えば、ユーザは、ファイル指定部２１１に対するユーザ操作で起動する標準的なファイルオープンダイアログで所望の画像データを選択する。
【００４０】
次のステップＳ３０２で、ＣＰＵ１０１は、ユーザ操作の有無を判定する。ここでいうユーザー操作とは、表示倍率指定部２１２に対する表示倍率の選択操作や、水平スクロールバー２１５、垂直スクロールバー２１６に対する表示範囲の移動操作などをいう。若し、ステップＳ３０２にて、ユーザ操作が有ると判定したら、処理はステップＳ３０３に移行される。
【００４１】
一方、ステップＳ３０２でユーザ操作が無いと判定されたら、処理はステップＳ３１０に移行され、ＣＰＵ１０１は、画像表示エリア２１０に対して画像が表示済みか否かを判定する。ここでは、画像データを読み込んだ直後に必ず処理をステップＳ３０２に移行させてユーザー操作が無いと判定し、ステップＳ３１０以降の処理を行い、読み込んだ画像データによる画像を表示するものとする。若し、画像が表示済みであると判定されたら、処理はステップＳ３０２に戻され、ユーザ操作が待機される。
【００４２】
一方、ステップＳ３１０で、画像が表示済みではないと判定されたら、処理はステップＳ３１１に移行される。ステップＳ３１１では、ＣＰＵ１０１は、画像表示エリア２１０に画像の縦の２辺および横の２辺のうち少なくとも一方が接して、画像データによる画像全体が画像表示エリア２１０に表示しきれる倍率を求める。ここで求められた、画像の垂直方向の２辺および水平方向の２辺のうち少なくとも一方が接して、画像全体が画像表示エリア２１０に表示しきれる倍率を、ウィンドウフィットの倍率と呼ぶ。また、画像データによる画像全体を、以下では、全体画像と呼ぶ。
【００４３】
変数に下記の値を保持しているものとして、ウィンドウフィットの倍率の一例の演算方法について説明する。
View_Mag_Fit：ウィンドウフィットの倍率（％）
View_Mag_HorFit：全体画像の垂直方向の２辺が画像表示エリア２１０に接するときの倍率（％）
View_Mag_VerFit：全体画像の水平方向の２辺が画像表示エリア２１０に接するときの倍率（％）
Image_Width：表示する対象となる本体画像（全体画像）の幅（画素数）
Image_Height：全体画像の高さ（画素数）
ViewArea_W：画像表示エリア２１０の幅（画素数）
ViewArea_H：画像表示エリア２１０の高さ（画素数）
【００４４】
全体画像の垂直方向の２辺が画像表示エリア２１０に接するときの倍率View_Mag_HorFitを式（１）に、全体画像の水平方向の２辺が画像表示エリア２１０に接するときの倍率View_Mag_VerFitを式（２）に示す。
View_Mag_HorFit＝(ViewArea_W／Image_Width)×100    …（１）
View_Mag_VerFit＝(ViewArea_H／Image_Height)×100     …（２）
【００４５】
下記の式（３）に示すように、倍率View_Mag_HorFitおよび倍率View_Mag_VerFitの大小判定を行う。そして、式（３）が真、すなわち、倍率View_Mag_HorFitが倍率View_Mag_VerFit未満の場合、式（４）に示されるように、倍率View_Mag_HorFitをウィンドフィットの倍率View_Mag_Fitとする。また、式（３）が偽、すなわち、倍率View_Mag_HorFitが倍率View_Mag_VerFit以上の場合、式（５）に示されるように、倍率View_Mag_VerFitをウィンドフィットの倍率View_Mag_Fitとする。
View_Mag_HorFit＜View_Mag_VerFit    …（３）
View_Mag_Fit＝View_Mag_HorFit    …（４）
View_Mag_Fit＝View_Mag_VerFit    …（５）
【００４６】
ステップＳ３１１でウィンドフィットの倍率が求められたら、処理はステップＳ３１４に移行される。ステップＳ３１４では、ステップＳ３１１で求められたウィンドウフィットの倍率View_Mag_Fitを、表示倍率View_Magとする。そして、処理はステップＳ３１６に移行される。
【００４７】
ステップＳ３１６では、全体画像において画像表示エリア２１０に表示される表示範囲の中で、全体画像の中心から一番遠い点である最遠点を算出し、この最遠点を、拡大縮小処理における基準点とする。
【００４８】
基準点を算出する一例の方法について説明する。この基準点の算出は、算出手段としてのＣＰＵ１０１により、プログラムに従い行われる。先ず、全体画像の中心の座標centerP(cX,cY)を、例えば式（６）および式（７）に従い算出する。
cX＝Image_Width／2    …（６）
cY＝Image_Height／2    …（７）
【００４９】
次に、全体画像の中心から表示範囲の四隅の座標までの距離p1_dis、p2_dis、p3_disおよびp4_disをそれぞれ算出する。変数に下記の値を保持しているものとして、式（８）〜式（１１）に従い距離p1_dis、p2_dis、p3_disおよびp4_disをそれぞれ算出する。
i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)：表示範囲の座標(左上(x,y),左下(x,y),右上(x,y),右下(x,y))
【００５０】
i_p1：p1_dis＝(iX0-cX)２+(iY0-cY)２    …（８）
i_p2：p2_dis＝(iX0-cX)２+(iY1-cY)２    …（９）
i_p3：p3_dis＝(iX1-cX)２+(iY0-cY)２    …（１０）
i_p4：p4_dis＝(iX1-cX)２+(iY1-cY)２    …（１１）
【００５１】
式（７）に示した距離p1_dis、p2_dis、p3_disおよびp4_disの中で最も大きい値に対応する点、すなわち、全体画像の中心からの最遠点を、基準点の座標baseP(bX,bY)とする。最遠点の座標が複数存在する場合には、それら複数の座標の中央、すなわち当該複数の座標から等距離にある点を基準点の座標baseP(bX,bY)とする。
【００５２】
処理はステップＳ３１７に移行され、基準点情報として、基準点の座標baseP(bX,bY)と、その基準点の表示範囲における位置の情報を保持する。若し、最遠点の座標が複数存在する場合には、基準点の情報として、それらの中央の値と、その点の表示範囲における位置の情報を保持する。
【００５３】
表示範囲を、図５に例示される矩形６００とすると、基準点の位置は、位置６０１〜６０９の何れかである。位置の情報を、値posXおよび値posYの２の値で保持する。各基準点の位置に応じた値posXと値posYを、下記のように定義する。
位置６０１：(0,0)
位置６０２：(0.5,0)
位置６０３：(1,0)
位置６０４：(0,0.5)
位置６０５：(0.5,0.5)
位置６０６：(1,0.5)
位置６０７：(0,1)
位置６０８：(0.5,1)
位置６０９：(1,1)
【００５４】
ステップＳ３１７で基準点の座標baseP(bX,bY)と、その基準点の表示範囲における位置の情報とが保持されると、処理はステップＳ３０９に移行される。ステップＳ３０９で、変更手段および表示制御手段としてのＣＰＵ１０１は、全体画像に対して表示範囲を設定する。そして、全体画像における表示範囲の画像を、ステップＳ３１４で得られた表示倍率View_Magで拡大または縮小して、画像表示エリア２１０に対して表示させる。画像表示エリア２１０に対して全体画像を全て表示可能であれば、画像表示エリア２１０の中央に全体画像の中心を合わせて、表示倍率View_Magの倍率で表示させる。そして、処理はステップＳ３０２に戻され、ユーザ操作が待機される。
【００５５】
画像表示エリア２１０に対して全体画像の全体を表示できない場合の表示範囲の算出方法については、後述する。
【００５６】
一方、上述したように、ステップＳ３０２でユーザ操作が有ると判定したら、処理はステップＳ３０３に移行される。ステップＳ３０３では、そのユーザ操作が倍率変更か否かを判定する。倍率変更の操作とは、例えば、表示倍率表示部２１３に対して、現在の倍率とは異なる倍率を指定する操作である。若し、ユーザ操作が倍率変更の操作ではないと判定したら、処理はステップＳ３１２に移行される。
【００５７】
一方、ステップＳ３０３で、ユーザ操作が倍率変更の操作であると判定されたら、処理はステップＳ３０４に移行され、ユーザ操作により指定された倍率を、表示倍率View_Magとする。そして、処理はステップＳ３０５に移行され、ＣＰＵ１０１は、全体画像の全体を画像表示エリア２１０に表示可能であるか否かを判定する。
【００５８】
ステップＳ３０５では、下記の式（１２）に従いウィンドフィットの倍率View_Mag_Fitおよび表示倍率View_Magの比較を行う。そして、式（１２）が真、すなわち、ウィンドフィットの倍率View_Mag_Fitが表示倍率View_Mag以下の場合は、全体画像の全体を画像表示エリア２１０に表示できないと判定する。また、式（１２）が偽、すなわち、ウィンドフィットの倍率View_Mag_Fitが表示倍率View_Magを超える場合は、全体画像の全体を画像表示エリア２１０に表示可能であると判定する。
View_Mag_Fit≦View_Mag    …（１２）
【００５９】
若し、ステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能であると判定されたら、ＣＰＵ１０１は、表示倍率View_Magに従い表示範囲の大きさを変更する。そして、次のステップＳ３０９で、変更された表示範囲内の画像を表示倍率View_Magで拡大または縮小して、画像表示エリア２１０に対して表示させる。なお、上述した図３は、全体画像の全体を画像表示エリア２１０に表示可能である場合の例を示している。
【００６０】
一方、ステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能ではないと判定されたら、処理はステップＳ３０７に移行される。図６は、全体画像の全体を画像表示エリア２１０に表示できない場合の例を示す。ステップＳ３０７では、基準点の情報に基づき表示範囲を算出し、次のステップＳ３０９で、算出された表示範囲内の画像を表示倍率View_Magで拡大または縮小して、画像表示エリア２１０に対して表示させる。
【００６１】
上述したように、本第１の実施形態では、画像データをＲＡＭ１０３に読み込んだ後に、必ずステップＳ３０２でユーザ操作が無いと判定して、ステップＳ３１０以降の処理を行い、画像を表示する。したがって、基準点の情報は、必ず生成されている。
【００６２】
ステップＳ３０７における表示範囲の算出方法の例について説明する。変数に下記の値を保持しているものとする。
i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)：表示範囲の座標(左上(x,y),左下(x,y),右上(x,y),右下(x,y))
【００６３】
基準点を座標baseP(bX,bY)、基準点の位置の情報を(posX,posY)とした場合の表示範囲の座標(i_p1,i_p2,i_p3,i_p4)は、式（１３）〜式（１６）から求められる。
iX0＝bX−(ViewArea_W×100／View_Mag)×posX    …（１３）
iY0＝bY−(ViewArea_H×100／View_Mag)×posY    …（１４）
iX1＝iX0＋ViewArea_W×100／View_Mag    …（１５）
iY1＝iY0＋ViewArea_H×100／View_Mag    …（１６）
【００６４】
上述のステップＳ３０３で、ユーザ操作が倍率変更ではないと判定され、処理がステップＳ３１２に移行されたら、ＣＰＵ１０１は、ユーザ操作がスクロール操作か否かを判定する。例えば、ユーザ操作により水平スクロールバー２１５または垂直スクロールバー２１６が操作された場合に、スクロール操作されたと判定する。
【００６５】
若し、スクロール操作ではないと判定されたら、処理はステップＳ３１８に移行され、ユーザ操作が終了ボタン２１７に対する操作であるか否かが判定される。若し、終了ボタン２１７に対する操作であると判定されたら、図４のフローチャートにおける一連の処理が終了され、プレビュー画面２００Ａおよびナビゲータ画面２００Ｂが閉じられる。一方、ユーザ操作が終了ボタン２１７に対する操作ではないと判定されたら、処理はステップＳ３１９に移行され、当該ユーザ操作に応じた所定の処理が行われて処理がステップＳ３０２に移行される。
【００６６】
一方、ステップＳ３１２で、ユーザ操作がスクロール操作であると判定されたら、処理はステップＳ３１３に移行される。ステップＳ３１３では、スクロール操作により変更された表示範囲の算出を行う。
【００６７】
例えば、スクロール操作前の元の表示範囲の四隅の座標をそれぞれ座標ibef_p1、ibef_p2、ibef_p3およびibef_p4とする。また、水平方向のスクロール操作による移動量を移動量scrollX、垂直方向のスクロール操作による移動量を移動量scrollYとする。下記の変数を保持しているものとして、スクロール操作後の表示範囲の四隅の座標i_p1、i_p2、i_p3およびi_p4を式（１７）〜式（２０）に示す。
ibef_p1(ibX0,ibY0),ibef_p2(ibX0,ibY1),ibef_p3(ibX1,ibY0),ibef_p4(ibX1,ibY1)：スクロール前の表示範囲の座標(左上(x,y),左下(x,y),右上(x,y),右下(x,y))
i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)：スクロール後の表示範囲の座標(左上(x,y),左下(x,y),(右上(x,y),右下(x,y))
【００６８】
iX0＝ibX0+scrollX×100/View_Mag    …（１７）
iX1＝ibX1+scrollX×100/View_Mag    …（１８）
iY0＝ibY0+scrollY×100/View_Mag    …（１９）
iY1＝ibY1+scrollY×100/View_Mag    …（２０）
【００６９】
ここで、水平方向のスクロールにおいて右方向へのスクロールをプラス方向、左方向へのスクロールをマイナス方向し、垂直方向のスクロールにおいて上方向へのスクロールをマイナス方向、下方向へのスクロールをプラス方向とする。また、移動量scrollXおよびscrollYの値は、画像表示エリア２１０における垂直方向と水平方向の移動量を画素数で示す。スクロール可能な範囲は、全体画像の範囲内に制限されているものとする。
【００７０】
ステップＳ３１３でスクロール操作後の表示範囲が求められると、処理はステップＳ３１６に移行され、上述したようにして基準点の算出と、基準点情報の保持が行われる。
【００７１】
＜具体例を用いた説明：画像データ読込＞
次に、上述の図４を用いて説明した処理を、具体的な例を用いて説明する。先ず、プレビュー画面２００Ａを起動させて最初に画像データを読み込んだ際の処理の例について説明する。ステップＳ３０１で画像データをＲＡＭ１０３に読込、上述したようにしてステップＳ３０２でユーザ操作が無いものと判定する。そして、処理がステップＳ３１０に移行され、画像が画像表示エリア２１０に対して表示済みか否かが判定される。画像データをＲＡＭ１０３に読み込んだ直後の状態で、まだ画像を画像表示エリア２１０に対して表示するための処理を１回も行っていないため、ステップＳ３１０では、画像が表示済みではないと判定される。
【００７２】
その後、処理がステップＳ３１１に移行され、式（１）〜式（５）に従いウィンドウフィットの倍率View_Mab_Fitを算出し、ステップＳ３１４で、表示倍率View_Magをウィンドウフィットの倍率View_Mab_Fitとする。ここで、全体画像の幅Image_Widthおよび高さImage_Heightがそれぞれ４０００画素および３０００画素とする。また、画像表示エリア２１０の幅ViewArea_Wおよび高さViewArea_Hがそれぞれ１６００画素および１２００画素とする。
【００７３】
この場合、全体画像の縦の２辺が画像表示エリア２１０に接するときの倍率View_Mag_HorFitと、全体画像の横の２辺が画像表示エリア２１０に接するときの倍率View_Mag_VerFitは、それぞれ４０％とされる。この計算式を式（２１）および式（２２）に示す。したがって、式（２３）に示されるように、ウィンドウフィットの倍率View_Mag_Fit＝４０％となり、表示倍率View_Magも４０％となる。
View_Mag_HorFit＝(ViewArea_W／Image_Width)×100＝1600／4000×100＝40    …（２１）
View_Mag_VerFit＝(ViewArea_H／Image_Height)×100＝1200／3000×100＝40    …（２２）
View_Mag＝View_Mag_Fit＝40    …（２３）
【００７４】
処理はステップＳ３１６に移行され、表示範囲における全体画像の中心に対する最遠点を拡大および縮小処理の基準点とする。式（２４）および式（２５）に示されるように、全体画像の中心の座標centerP(cX,cY)＝centerP(2000,1500)となる。
cX＝Image_Width／2＝4000／2＝2000    …（２４）
cY＝Image_Height／2＝3000／2＝1500    …（２５）
【００７５】
ウィンドウフィットの場合には、全体画像の全体が画像表示エリア２１０に対して表示されている状態になる。そのため、表示範囲の座標は、式（２６）〜式（２９）で示されるように、座標(0,0)−(4000,3000)となる。
iX0＝0    …（２６）
iY0＝0    …（２７）
iX1＝Image_Width＝4000    …（２８）
iY1＝Image_Height＝3000    …（２９）
【００７６】
表示範囲の四隅それぞれの全体画像の中心からの距離p1_dis、p2_dis、p3_disおよびp4_disは、式（３０）〜式（３３）のように求められる。この場合、同一の値をとる点が無いため、表示範囲の四隅の４点が最遠点候補の全てとなる。
i_p1：p1_dis＝(iX0−cX)２＋(iY0−cY)２＝(0−2000)２＋(0−1500)２    …（３０）
i_p2：p2_dis＝(iX0−cX)２＋(iY1−cY)２＝(0−2000)２＋(3000−1500)２    …（３１）
i_p3：p3_dis＝(iX1−cX)２＋(iY0−cY)２＝(4000−2000)２＋(0−1500)２    …（３２）
i_p4：p4_dis＝(iX1−cX)２＋(iY1−cY)２＝(4000−2000)２＋(3000−1500)２    …（３３）
【００７７】
上述したように、最遠点が複数存在する場合、それらの点の中央の座標を基準点とする。この例では、最遠点すなわち基準点は、座標baseP(2000,1500)と求められる。
【００７８】
次のステップＳ３１７で、基準点情報として、基準点の座標baseP(bX,bY)と、その点の位置の情報を保持する。この例では、基準点の座標が座標baseP(2000,1500)、基準点の位置が図５における位置６０５となり、基準点情報は、(0.5,0.5)となる。
【００７９】
処理はステップＳ３０９に移行され、ウィンドウフィットの倍率View_Mag_Fit＝４０％で、画像表示エリア２１０の中央に全体画像の中心が重なるように全体画像を表示する。この場合、画像表示エリア２１０の状態は、例えば図３のようになる。
【００８０】
＜具体例を用いた説明：拡大処理（１）＞
次に、上述した画像データ読込の後に、表示倍率を２００％に拡大する際の処理について説明する。ステップＳ３０２でユーザ操作があったと判定され、ステップＳ３０３でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップＳ３０４で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag＝２００％となる。
【００８１】
次のステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit＝４０％、表示倍率View_Mag＝２００％であるので、上述の式（１２）が真となり、全体画像の全体を画像表示エリア２１０に表示できないと判定される。
【００８２】
そこで、処理はステップＳ３０７に移行され、基準点情報に基づいて表示範囲を算出する。上述した画像データ読込処理において、基準点が座標baseP(2000,1500)、基準点の位置が(0.5,0.5)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式（３４）〜式（３７）により求められる。
iX0＝bX−(ViewArea_W×100／View_Mag)×posX＝2000−(1600×100／200)×0.5＝1600    …（３４）
iY0＝bY−(ViewArea_H×100／View_Mag)×posY＝1500−(1200×100／200)×0.5＝1200    …（３５）
iX1＝iX0+ViewArea_W×100／View_Mag＝1600+1600×100／200＝2400    …（３６）
iY1＝iY0+ViewArea_H×100／View_Mag＝1200+1200×100／200＝1800    …（３７）
【００８３】
次のステップＳ３０９で、全体画像のうちステップＳ３０７で求められた表示範囲i_p1(1600,1200),i_p2(1600,1800),i_p3(2400,1200),i_p4(2400,1800)の画像が表示倍率２００％で拡大される。そして拡大された画像が画像表示エリア２１０に表示される。この場合の表示例は、図６の表示５０１のようになる。
【００８４】
＜具体例を用いた説明：スクロール処理＞
次に、上述した拡大処理（１）の後に、水平スクロールバー２１５または垂直スクロールバー２１６を操作して、全体画像における表示範囲を移動させた際の処理について説明する。ステップＳ３０２でユーザ操作があったと判定され、ステップＳ３０３およびステップＳ３１２でそのユーザ操作がスクロール操作であると判定されたら、ステップＳ３１３で、スクロール操作後の表示範囲が算出される。
【００８５】
ここで、スクロール操作前の元の表示範囲が、上述した拡大処理後の表示範囲i_p1(1600,1200),i_p2(1600,1800),i_p3(2400,1200),i_p4(2400,1800)であるとする。また、水平スクロールバー２１５の操作による移動量scrollX＝3200、垂直スクロールバー２１６の操作による移動量scrollY＝2400であるものとする。
【００８６】
この場合、スクロール操作後の表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式（３８）〜式（４１）により求められる。
iX0＝ibX0＋scrollX×100／View_Mag＝1600＋3200×100／200＝3200    …（３８）
iX1＝ibX1＋scrollX×100／View_Mag＝2400＋3200×100／200＝4000    …（３９）
iY0＝ibY0＋scrollY×100／View_Mag＝1200＋2400×100／200＝2400    …（４０）
iY1＝ibY1＋scrollY×100／View_Mag＝1800＋2400×100／200＝3000    …（４１）
【００８７】
スクロール操作後の表示範囲が求められたら、処理はステップＳ３１６に移行され、全体画像の中心に対する表示範囲の最遠点を求め、求められた最遠点を拡大および縮小処理の基準点とする。最遠点は、下記の式（４２）〜式（４５）により、右下隅の点i_p4として求められる。したがって、基準点は、座標baseP(4000,3000)と求められる。
i_p1：p1_dis＝(iX0−cX)２＋(iY0−cY)２＝(3200−2000)２＋(2400−1500)２＝1440000＋810000＝2250000    …（４２）
i_p2：p2_dis＝(iX0−cX)２＋(iY1−cY)２＝(3200−2000)２＋(3000−1500)２＝1440000＋2250000＝3690000    …（４３）
i_p3：p3_dis＝(iX1−cX)２＋(iY0−cY)２＝(4000−2000)２＋(2400−1500)２＝4000000＋810000＝4810000    …（４４）
i_p4：p4_dis＝(iX1−cX)２＋(iY1−cY)２＝(4000−2000)２＋(3000−1500)２＝4000000＋2250000＝6250000    …（４５）
【００８８】
次のステップＳ３１７で、基準点情報として、基準点の座標baseP(bX,bY)と、その点の位置の情報を保持する。この例では、基準点の座標が座標baseP(4000,3000)、基準点の位置が図５における位置６０９となり、基準点情報は、(1,1)となる。
【００８９】
次のステップＳ３０９で、全体画像のうちステップＳ３０７で求められた表示範囲i_p1(3200,2400),i_p2(3200,3000),i_p3(4000,2400),i_p4(4000,3000)の画像が倍率２００％で拡大され、画像表示エリア２１０に表示される。この場合の表示例は、図７の表示７０１のようになる。
【００９０】
＜具体例を用いた説明：縮小処理（１）＞
上述したスクロール操作の後に、表示倍率を１００％に変更する際の処理について説明する。上述では、表示範囲の画像を２００％に拡大して画像表示エリア２１０に表示していたので、ここでは、２００％に拡大された表示範囲の画像を表示倍率１００％に縮小することになる。ステップＳ３０２でユーザ操作があったと判定され、ステップＳ３０３でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップＳ３０４で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag＝１００％となる。
【００９１】
次のステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit＝４０％、表示倍率View_Mag＝１００％であるので、上述の式（１２）が真となり、全体画像の全体を画像表示エリア２１０に表示できないと判定される。
【００９２】
そこで、処理はステップＳ３０７に移行され、基準点情報に基づいて表示範囲を算出する。上述したスクロール処理において、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式（４６）〜式（４９）により求められる。
iX0＝bX−(ViewArea_W×100／View_Mag)×posX＝4000−(1600×100／100)×1＝2400    …（４６）
iY0＝bY−(ViewArea_H×100／View_Mag)×posY＝3000−(1200×100／100)×1＝1800    …（４７）
iX1＝iX0＋ViewArea_W×100／View_Mag＝2400＋1600×100／100＝4000    …（４８）
iY1＝iY0＋ViewArea_H×100／View_Mag＝1800＋1200×100／100＝3000    …（４９）
【００９３】
次のステップＳ３０９で、全体画像のうちステップＳ３０７で求められた表示範囲i_p1(2400,1800),i_p2(2400,3000),i_p3(4000,1800),i_p4(4000,3000)の画像が表示倍率１００％で画像表示エリア２１０に表示される。この場合の表示例は、図８の表示８０１のようになる。
【００９４】
＜具体例を用いた説明：拡大処理（２）＞
次に、上述した縮小処理（１）の後に、表示倍率を２００％に拡大する際の処理について説明する。ステップＳ３０２でユーザ操作があったと判定され、ステップＳ３０３でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップＳ３０４で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag＝２００％となる。
【００９５】
次のステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit＝４０％、表示倍率View_Mag＝２００％であるので、上述の式（１２）が真となり、全体画像の全体を画像表示エリア２１０に表示できないと判定される。
【００９６】
そこで、処理はステップＳ３０７に移行され、基準点情報に基づいて表示範囲を算出する。上述した縮小処理において基準点情報は変更されていない。したがって、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)のままである。そこで、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式（５０）〜式（５３）により求められる。
iX0＝bX−(ViewArea_W×100／View_Mag)×posX＝4000−(1600×100／200)×1＝3200    …（５０）
iY0＝bY−(ViewArea_H×100／View_Mag)×posY＝3000−(1200×100／200)×1＝2400    …（５１）
iX1＝iX0+ViewArea_W×100／View_Mag＝3200+1600×100／200＝4000    …（５２）
iY1＝iY0+ViewArea_H×100／View_Mag＝2400+1200×100／200＝3000    …（５３）
【００９７】
次のステップＳ３０９で、全体画像のうちステップＳ３０７で求められた表示表示範囲i_p1(3200,2400),i_p2(3200,3000),i_p3(4000,2400),i_p4(4000,3000)の画像が表示倍率２００％で画像表示エリア２１０に表示される。この場合の表示例は、図７の表示７０１のようになる。
【００９８】
＜具体例を用いた説明：縮小処理（２）＞
上述した拡大処理（２）の後に、表示倍率を１００％に変更する際の処理について説明する。上述では、表示範囲の画像を２００％に拡大して画像表示エリア２１０に表示していたので、ここでは、２００％に拡大された表示範囲の画像を表示倍率１００％に縮小することになる。ステップＳ３０２でユーザ操作があったと判定され、ステップＳ３０３でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップＳ３０４で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag＝１００％となる。
【００９９】
次のステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit＝４０％、表示倍率View_Mag＝１００％であるので、上述の式（１２）が真となり、全体画像の全体を画像表示エリア２１０に表示できないと判定される。
【０１００】
そこで、処理はステップＳ３０７に移行され、基準点情報に基づいて表示範囲を算出する。上述したスクロール処理において、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式（５４）〜式（５７）により求められる。
iX0＝bX−(ViewArea_W×100／View_Mag)×posX＝4000−(1600×100／100)×1＝2400    …（５４）
iY0＝bY−(ViewArea_H×100／View_Mag)×posY＝3000−(1200×100／100)×1＝1800    …（５５）
iX1＝iX0＋ViewArea_W×100／View_Mag＝2400＋1600×100／100＝4000    …（５６）
iY1＝iY0＋ViewArea_H×100／View_Mag＝1800＋1200×100／100＝3000    …（５７）
【０１０１】
次のステップＳ３０９で、全体画像のうちステップＳ３０７で求められた表示範囲i_p1(2400,1800),i_p2(2400,3000),i_p3(4000,1800),i_p4(4000,3000)の画像が表示倍率１００％で画像表示エリア２１０に表示される。この場合の表示例は、図８の表示８０１のようになる。
【０１０２】
＜最遠点を拡大および縮小の基準点とする根拠について＞
次に、表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明する。先ず、図９を用いて、表示範囲の縦横比と全体画像の縦横比とが一致する場合について説明する。当初、図９（ａ）に例示されるように、全体画像９００の端付近に表示範囲９１０が配置されているものとする。この状態から表示範囲９１０を全体画像９００に対して拡大し、画像表示エリア２１０に表示される画像を縮小する場合について考える。
【０１０３】
表示範囲９１０における、全体画像９００の中心からの最遠点である点９０１を基準点として表示範囲９１０を拡大した場合、図９（ｂ）に例示するように、全体画像９００から表示範囲９１０がはみ出す可能性が低い。
【０１０４】
一方、最遠点を基準とせずに表示範囲９１０の拡大を行った場合、全体画像９００から表示範囲９１０がはみ出す可能性が高くなってしまう。例えば、表示範囲９１０における、全体画像９００の中心から最も近い点９０２を基準として表示範囲９１０を拡大した場合、図９（ｃ）に例示されるように、全体画像９００から表示範囲９１０がはみ出してしまう可能性がある。別の例として、表示範囲９１０の中心点９０３を基準として表示範囲９１０を拡大した場合でも、図９（ｄ）に例示されるように、全体画像９００から表示範囲９１０がはみ出してしまう可能性がある。
【０１０５】
より詳細に説明する。表示範囲における、全体画像の中心から最も遠い点である最遠点を拡大および縮小の基準とした場合、式（５８）および式（５９）は、常に真となる。換言すれば、基準点の座標baseP(bX,bY)は、常に全体画像内に存在する。
Image_Width＞bX    …（５８）
Image_Height＞bY    …（５９）
【０１０６】
また、座標(bX,bY)は、表示範囲内の座標のうち、全体画像の中心から最も遠い点であるので、表示範囲内の座標(bX,bY)以外の点は、座標(bX,bY)よりも全体画像の中心により近くなる。したがって、式（６０）〜式（６３）は、全て真となる。
Image_Width＞iX0    …（６０）
Image_Width＞iX1    …（６１）
Image_Height＞iY0    …（６２）
Image_Height＞iY1    …（６３）
【０１０７】
そして、画像表示エリア２１０に表示される画像の縮小、すなわち、表示範囲の拡大の際に図４のステップＳ３０７において表示範囲を算出する場合も、表示範囲における最遠点を全体画像に対して固定的として表示範囲を更新する。そのため、表示範囲が全体画像からはみ出す可能性が低い。すなわち、式（６４）〜式（６７）が真になる可能性が高い。
Image_Width＞iX0    …（６４）
Image_Width＞iX1    …（６５）
Image_Height＞iY0    …（６６）
Image_Height＞iY1    …（６７）
【０１０８】
次に、表示範囲の縦横比と全体画像の縦横比とが異なる場合について、図１０を用いて説明する。当初、図１０（ａ）に例示されるように、全体画像１０００の端付近に表示範囲１０１０が配置されているものとする。この状態から表示範囲１０１０を全体画像１０００に対して拡大し、画像表示エリア２１０に表示される画像を縮小する場合について考える。
【０１０９】
表示範囲１０１０における、全体画像１０００に対する最遠点である点１００１を基準点として表示範囲１０１０を拡大した場合、図１０（ｂ）に例示されるように、表示範囲１０１０が全体画像１０００からはみ出す領域が少なくなる。この場合、画像表示エリア２１０の表示において有効な領域が広くなる。
【０１１０】
一方、最遠点を基準とせずに表示範囲１０１０の拡大を行った場合、全体画像１０００から表示範囲１０１０がはみ出す可能性が高くなる。この場合、画像表示エリア２１０の表示において有効な領域が狭くなることになる。
【０１１１】
例えば、表示範囲１０１０における、全体画像１０００の中心から最も近い点１００２を基準として表示範囲１０１０を拡大した場合、図１０（ｃ）に例示されるように、全体画像１０００から表示範囲１０１０がはみ出す領域が広くなる可能性がある。この場合、画像表示エリア２１０の表示において有効な領域が狭くなってしまう。
【０１１２】
別の例として、表示範囲１０１０の中心点１００３を基準として表示範囲１０１０を拡大した場合でも、図１０（ｄ）に例示されるように、表示範囲１０１０が全体画像１０００からはみ出す領域が広くなる可能性がある。この場合も、画像表示エリア２１０の表示において有効な領域が狭くなってしまう。
【０１１３】
このように、表示範囲１０１０における全体画像１００に対する最遠点１００１を拡大および縮小の基準点とした場合、画像表示エリア２１０において、画像として有効な領域を広く表示できる。そのため、拡大および縮小の基準点を表示範囲における最遠点以外の点、例えば全体画像の中心から最も近い点１００２や表示範囲の中心点１００３を基準の点とした場合よりも、使い勝手がよいＵＩをユーザに提供できる。
【０１１４】
以上説明したように、本発明の第１の実施形態によれば、全体画像の中心から最も遠い表示範囲の座標を基準に、基準点の情報を生成することによって、全体画像から表示範囲がはみ出る状態が抑制できる。また、表示範囲の縦横比が画像本体の縦横比と異なる場合でも、画像として有効な領域を広く表示できるため、使い勝手がよいＵＩをユーザに提供できる。
【０１１５】
また、本発明の第１の実施形態によれば、表示範囲が全体画像からはみ出る可能性が少ない。そのため、表示範囲が全体画像からはみ出た際の、表示範囲に対する位置の補正処理を最小限とすることができる。したがって、表示範囲の拡大および縮小を繰り返した際に行った表示範囲に対する位置の補正処理により表示範囲がずれていく現象を抑制することができる。
【０１１６】
この、表示範囲の拡大および縮小を繰り返した際に行った表示範囲に対する位置の補正処理により、表示範囲がずれていく現象について説明する。表示範囲が全体画像からはみ出すことへの対策として、表示範囲が全体画像内に収まるように、表示範囲の全体画像に対する座標を調整するという方法がある。この方法では、表示範囲の拡大および縮小を繰り返すことで、表示範囲の全体画像に対する位置がずれていってしまう。画像表示エリア２１０に表示される画像の倍率を変更する操作だけで、確認していた位置がずれていってしまうのは、使い勝手が悪い。
【０１１７】
図９および図１０を用いて、より具体的に説明する。一例として、図９（ａ）のように表示範囲９１０が全体画像９００の端付近に配置された状態から表示範囲９１０の大きさを変更し、その後、表示範囲９１０の大きさを図９（ａ）の例の大きさに戻す場合について考える。
【０１１８】
図９（ａ）の状態から表示範囲９１０の大きさを拡大し、例えば、図９（ｃ）や図９（ｄ）のように、表示範囲９１０が全体画像９００からはみ出してしまった場合のみ、はみ出した分だけ表示範囲９１０の座標を調整する。そして、図９（ｅ）に例示されるように、表示範囲９１０を全体画像９００内に収める方法が考えられる。この場合、表示範囲９１０の座標の調整後に、表示範囲９１０の大きさを再び図９（ａ）の大きさに戻した場合、例えば図９（ｆ）に示されるように、表示範囲９１０の座標を調整した分だけ、表示範囲９１０の位置が図９（ａ）の位置に対してずれてしまう。
【０１１９】
図１０の、表示範囲１０１０の縦横比と全体画像１０００の縦横比とが異なる場合でも同様である。一例として、図１０（ａ）のように表示範囲１０１０が全体画像１０００の端付近に配置された状態から表示範囲１０１０の大きさを変更し、その後、表示範囲１０１０の大きさを図１０（ａ）の例の大きさに戻す場合について考える。
【０１２０】
図１０（ａ）の状態から表示範囲１０１０の大きさを拡大し、例えば、図１０（ｃ）や図１０（ｄ）のように、表示範囲１０１０が全体画像１０００からはみ出してしまった場合のみ、はみ出した分だけ表示範囲１０１０の座標を調整する。そして、図１０（ｅ）に例示されるように、表示範囲１０１０の全体画像１０００に対するはみ出し部分を最小にする方法が考えられる。この場合、表示範囲１０１０の座標の調整後に、表示範囲１０１０の大きさを再び図１０（ａ）の大きさに戻した場合、例えば図１０（ｆ）のように、表示範囲１０１０の座標を調整した分だけ、表示範囲１０１０の位置が図１０（ａ）の位置に対してずれてしまう。
【０１２１】
上述した図４のフローチャートでは、表示範囲が変更されるまで基準点の情報を保持している。すなわち、本第１の実施形態では、図４のフローチャートのステップＳ３１７による基準点情報の更新処理を、ステップＳ３０４による倍率変更の度に行わない。この理由について、図１０を用いて説明する。
【０１２２】
若し、表示倍率を変更する度に基準点の情報の更新を行うと、倍率変更の操作によって、表示範囲の全体画像に対する位置がずれていってしまう。例えば、図１０（ａ）の状態から表示倍率を変更して、図１０（ｇ）に例示されるように、表示範囲１０１０における点１００４および点１００５が共に全体画像１０００に対する最遠点となった場合について考える。
【０１２３】
この場合、図４のフローチャートにおけるステップＳ３０４の処理の後に処理をステップＳ３１６に移行させて基準点を算出する処理を行うと、点１００４および点１００５の中点１００６が基準点となる。この状態から表示倍率を図１０（ａ）での値に戻し、表示範囲１０１０の大きさを図１０（ａ）の場合の大きさに戻す。そして、中点１００６を基準点として、図４のフローチャートにおけるステップＳ３０７の処理により表示範囲１０１０を算出する。すると、結果として、表示範囲１０１０の位置は、図１０（ｈ）に例示される位置となってしまい、表示範囲１０１０の位置が図１０（ａ）の位置に対してずれてしまう。
【０１２４】
なお、図１０（ｇ）に例示されるように、表示範囲１０１０が全体画像１０００に対して水平方向または垂直方向にはみ出る場合にのみ、画像の有効な領域の中心が画像表示エリア２１０の中央にくるように調整してもよい。その際にも、基準点の情報を更新しないようにすれば、表示倍率を再び図１０（ａ）と同じ倍率にした場合に、図１０（ａ）の状態から表示範囲１０１０の位置がずれることがない。
【０１２５】
このように、本発明の第１の実施形態によれば、表示範囲が変更されるまで基準点の情報を保持することによって、表示倍率を変更した際の表示範囲の位置のずれが抑制される。
【０１２６】
以上説明したように、本発明の第１の実施形態によれば、表示範囲における、全体画像に対する最遠点を表示倍率変更時の表示範囲の拡大および縮小の基準点としている。そのため、表示範囲が全体画像からはみ出る現象が抑制される。
【０１２７】
また、上述したスクロール処理におけるＵＩの状態と、拡大処理（２）におけるＵＩの状態とが共に図７の表示７０１となり一致する。このことから分かるように、本第１の実施形態では、表示倍率の変更時には表示範囲の拡大および縮小に対する基準点の情報を変更しないため、表示範囲の位置が表示倍率の変更操作のみでずれていく現象が抑制される。
【０１２８】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。本第２の実施形態では、上述した第１の実施形態の処理に加え、表示範囲が全体画像の中央付近にある場合に、表示範囲の中心を拡大および縮小の基準点とする。
【０１２９】
より具体的には、先ず、表示範囲の中心を基準点として拡大した拡大後の表示範囲が全体画像からはみ出さない表示倍率を求める。そして、ユーザ操作により指定された表示倍率が、拡大後の表示範囲が全体画像からはみ出さない表示倍率以上であれば、表示範囲の拡大処理を、表示範囲の中心を基準点として行う。一方、指定された表示倍率が求められた表示倍率以下であれば、上述した第１の実施形態の方法に従い、表示範囲における全体画像に対する最遠点を基準点として、表示範囲の拡大を行う。
【０１３０】
換言すれば、拡大後の表示範囲が全体画像からはみ出さない表示範囲の拡大率が、ユーザ操作により指定された表示倍率に応じた表示範囲の拡大率以下であれば、表示範囲の拡大処理を、表示範囲の中心を基準点として行う。一方、拡大後の表示範囲が全体画像からはみ出さない表示範囲の拡大率が、指定された表示倍率に応じた表示範囲の拡大率より大きければ、上述した第１の実施形態の方法に従い、表示範囲における全体画像に対する最遠点を基準点として、表示範囲の拡大を行う。
【０１３１】
このように、表示範囲を拡大する際の基準点を表示倍率に応じて切り換える理由について、図１１および図１２を用いて説明する。表示範囲が全体画像の中心付近にある状態で、表示範囲における全体画像の中心からの最遠点を基準点として表示範囲を拡大した場合、画像表示エリア２１０に対して表示される画像に、却ってずれ感が発生してしまう可能性がある。
【０１３２】
図１１は、ユーザ操作により表示倍率を１００％に変更し、その後、スクロール操作により表示範囲の位置を全体画像の中心から右下へと変更した場合の例を示す。スクロール操作の後に図４のフローチャートにおけるステップＳ３１６で算出される基準点は、点１１０１である。この状態から表示倍率を２００％に変更すると、ステップＳ３０７にて算出される表示範囲に基づき、図１２に例示される状態になる。この場合、表示範囲の位置が、図１１に例示される位置から右下へ移動し、図１３に例示される位置となり、ユーザに対してずれ感を与えてしまう可能性がある。
【０１３３】
＜第２の実施形態による処理＞
図１３は、本発明の第２の実施形態による一例の表示制御処理を示すフローチャートである。この図１３のフローチャートにおける各処理は、ＣＰＵ１０１がＲＡＭ１０３上に展開されたプログラムを実行することにより実行される。なお、図１３のフローチャートにおいて、上述した図４のフローチャートと共通する処理には同一の符号を付し、説明を省略する。また、上述した第１の実施形態による表示制御装置１００は、本第２の実施形態にも同様に適用可能であるものとする。
【０１３４】
以下、本第２の実施形態による処理の、上述の第１の実施形態による処理と異なる点を中心に説明する。ステップＳ３１３によるスクロール操作で変更された表示範囲の算出、あるいは、ステップＳ３１４でウィンドフィットの倍率View_Mag_Fitを表示倍率View_Magとする処理の後、処理はステップＳ４１５に移行される。
【０１３５】
ステップＳ４１５では、ステップＳ３１３またはステップＳ３１４で算出された表示範囲の中心を基準点として表示倍率を変更した場合に、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_Nを算出する。この表示倍率View_Mag_Nの算出は、最大範囲算出手段としてのＣＰＵ１０１により、プログラムに従い行われる。
【０１３６】
倍率View_Mag_Nは、例えば下記のようにして算出する。表示範囲の全体画像における中心の座標centerViewP(centerViewX,centerViewY)は、式（６８）および式（６９）により求められる。
centerViewX＝(iX0＋iX1)／2    …（６８）
centerViewY＝(iY0＋iY1)／2    …（６９）
【０１３７】
次に、水平方向について、全体画像の始点から座標centerViewXまでの距離と、座標centerViewXから全体画像の終点までの距離とのうち、短い方の距離minDisXを算出する。
【０１３８】
なお、全体画像の始点とは、全体画像における原点方向の端をいう。また、全体画像の終点とは、全体画像における原点方向とは逆方向の端をいう。全体画像の始点から座標centerViewXまでの距離は、値centerViewXそのものとなる。また、座標centerViewXから全体画像の終点までの距離は、全体画像の幅Image_Widthから値centerViewXを差し引いた値となる。
【０１３９】
式（７０）が真であれば、距離minDisXは、式（７１）のように求められる。一方、式（７０）が偽であれば、距離minDisXは、式（７２）のように求められる。
centerViewX＜Image_Width−centerViewX    …（７０）
minDisX＝centerViewX    …（７１）
minDisX＝Image_Width−centerViewX    …（７２）
【０１４０】
垂直方向についても同様にして、全体画像の始点から座標centerViewYまでの距離と、座標centerViewYから全体画像の終点までの距離とのうち、短い方の距離minDisYを算出する。式（７３）が真であれば、距離minDisYは、式（７４）のように求められる。一方、式（７３）が偽であれば、距離minDisYは、式（７５）のように求められる。
centerViewY＜Image_Height−centerViewY    …（７３）
minDisY＝centerViewY    …（７４）
minDisY＝Image_Height−centerViewY    …（７５）
【０１４１】
次に、表示範囲の中心を基準に表示倍率を変更して水平方向にはみ出ない最小の表示倍率View_Mag_HorNを、式（７６）に従い求める。また、表示範囲の中心を基準に表示倍率を変更して垂直方向にはみ出ない最小の表示倍率View_Mag_VerNを、式（７６）に従い求める。
View_Mag_HorN＝ViewArea_W×100／(minDisX×2)    …（７６）
View_Mag_VerN＝ViewArea_H×100／(minDisY×2)    …（７７）
【０１４２】
求めた表示倍率View_Mag_HorNと表示倍率View_Mag_VerNとを比較し、値が大きい方を、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_Nとして採用する。すなわち、式（７８）が真であれば、表示倍率View_Mag_Nは、式（７９）で求められる。また、式（７８）が偽であれば、倍率View_Mag_Nは、式（８０）で求められる。
View_Mag_HorN＜View_Mag_VerN    …（７８）
View_Mag_N＝View_Mag_VerN    …（７９）
View_Mag_N＝View_Mag_HorN    …（８０）
【０１４３】
処理はステップＳ４１６に移行され、ユーザ操作により指定された表示倍率が、ステップＳ４１５で求めた最小の表示倍率View_Mag_N以上の場合の基準点の座標baseCP(bcX,bcY)を算出する。この場合、式（８１）および式（８２）に示されるように、表示範囲の全体画像における中心の座標centerViewP(centerViewX,centerViewY)そのものが基準点の座標baseCP(bcX,bcY)となる。
bcX＝centerViewX    …（８１）
bcY＝centerViewY    …（８２）
【０１４４】
次のステップＳ４１７で、ユーザ操作により指定された表示倍率が、ステップＳ４１５で求めた最小の表示倍率View_Mag_N以下の場合の基準点の座標baseSP(bsX,bsY)を算出する。この場合、座標baseSP(bsX,bsY)は、拡大および縮小の基準点を表示範囲の中心として表示倍率を倍率View_Mag_Nにしたときに、表示範囲における全体画像の中心からの最遠点の座標とする。
【０１４５】
基準点を表示範囲の中心として表示倍率を倍率View_Mag_Nにしたときの表示範囲(i_p1,i_p2,i_p3,i_p4)は、上述した式（１３）〜式（１６）から求められる。このとき、式（１３）〜式（１６）の変数bX、bY、View_Mag、posXおよびposYは、それぞれ式（８３）〜式（８７）に示す値が代入される。また、その際の、表示範囲における全体画像の中心からの最遠点の座標は、上述した式（６）〜式（１１）から求められる。
bX＝bcX    …（８３）
bY＝bcY    …（８４）
View_Mag＝View_Mag_N    …（８５）
posX＝0.5    …（８６）
posY＝0.5    …（８７）
【０１４６】
処理はステップＳ４１８に移行され、基準点情報として下記の(i)〜(iv)の情報が保持される。なお、倍率View_Mag_N未満の場合の基準点の位置については、図４のフローチャートにおけるステップＳ３１７の場合と同様に、数値で保持する。
(i)  倍率View_Mag_N
(ii) 倍率View_Mag_Nを超えるの場合の基準点(中心の点)＝baseCP(bcX,bcY)
(iii)倍率View_Mag_N以下の場合の基準点(最遠点)＝baseSP(bsX,bsY)
(iv) 倍率View_Mag_N以下の場合の基準点の位置(最遠点)
【０１４７】
一方、ステップＳ３０５で、全体画像の全体を画像表示エリア２１０に表示可能であるか否かの判定により、全体画像の全体を画像表示エリア２１０に表示できないと判定された場合、処理がステップＳ４０６に移行される。ステップＳ４０６では、表示倍率View_Magが倍率View_Mag_N以下か否かが判定される。
【０１４８】
若し、表示倍率View_Magが倍率View_Mag_N以下であると判定された場合には、処理はステップＳ４０７に移行される。ステップＳ４０７では、上述のステップＳ４１８で保持した、倍率View_Mag_N以下の場合の基準点(最遠点)＝baseSP(bsX,bsY)と、基準点の位置の情報とを用いて、表示範囲を算出する。表示範囲の算出方法は、図４のステップＳ３０７において説明した方法と同様である。
【０１４９】
一方、ステップＳ４０６で、表示倍率View_Magが倍率View_Mag_N以下ではない、すなわち、表示倍率View_Magが倍率View_Mag_N以上であると判定されたら、処理はステップＳ４０８に移行される。ステップＳ４０８では、上述のステップＳ４１８で保持した、倍率View_Mag_N以上の場合の基準点(中心の点)＝baseCP(bcX,bcY)と、を用いて表示範囲を算出する。表示範囲の算出方法は、図４のステップＳ３０７において説明した方法と同様である。このときの基準点の位置(posX,posY)は、(0.5,0.5)とする。
【０１５０】
ステップＳ４０７またはステップＳ４０８で表示範囲が算出されると、処理はステップＳ３０９に移行され、上述したようにして画像表示エリア２１０に対する画像表示がなされる。
【０１５１】
＜第２の実施形態による表示の例＞
次に、本第２の実施形態による処理を、図１３のフローチャートと、図１１、ならびに、図１４〜図１６とを用いてより具体的に説明する。図１１は、表示倍率を１００％に変更した後に、スクロール操作を行った後の状態とする。また、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_N（以下、最小の表示倍率View_Mag_Nと略称する）が５５％であるものとする。
【０１５２】
図１１の状態から表示倍率を２００％に変更した場合、図１３のステップＳ３０６において、表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定される。そして、スクロール操作後の表示範囲の中心の点１１０２を基準点として表示範囲を算出する。その結果、ＵＩ画面２００の状態は、図１４に例示されるようになる。表示範囲の中心を基準点として表示範囲の縮小、すなわち、画像表示エリア２１０に表示される画像の拡大を行うため、表示範囲の最遠点１１０１を基準点として表示範囲を算出した図１２の例と異なり、ずれ感が抑制されている。
【０１５３】
図１４の状態から表示倍率を５５％、すなわち、最小表示倍率View_Mag_Nと同一の倍率に変更した場合は、ステップＳ３０６で表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定される。したがって、表示範囲は、スクロール操作後の中心の点１１０２を基準点として算出される。その結果、ＵＩ画面２００の状態は、図１５に例示されるようになる。
【０１５４】
図１５の状態から表示倍率を５０％に変更した場合は、ステップＳ３０６で表示倍率View_Magが最小表示倍率View_Mag_N以下であると判定される。表示範囲は、したがって、図１５に例示される、表示範囲の全体画像に対する最遠点１４０１を基準点として算出される。その結果、ＵＩ画面２００の状態は、図１６に例示されるようになる。表示倍率View_Magが最小表示倍率View_Mag_N以下である場合には、表示倍率が最小表示倍率View_Mag_Nのときの表示範囲における、全体画像の中心からの最遠点を基準点として表示範囲が算出される。そのため、表示範囲が全体画像の外にはみ出る現象が抑制される。
【０１５５】
また、図１１に例示される状態から表示倍率を５０％に変更し、さらにその後、表示倍率を１００％に変更する場合について考える。この場合、ステップＳ３０６で、表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定され、スクロール操作後の中心の点１１０２を基準点として表示範囲が算出される。その結果、ＵＩ画面２００の状態は、図１１に例示される状態に戻る。表示倍率の変更操作で基準点の情報を変更していないため、このように、最初の状態に戻すことができる。
【０１５６】
以上説明したように、本発明によれば、表示範囲における全体画像に対する最遠点を表示倍率変更の際の基準点としているため、表示倍率変更後に表示範囲が全体画像からはみ出ることが抑制される。
【０１５７】
また、本発明によれば、表示倍率変更時には基準点の情報を変更しないため、表示範囲の全体画像に対する位置が表示倍率の変更のみでずれていく問題が発生しない。加えて、本発明の第２の実施形態によれば、表示範囲が全体画像の中央付近の状態にて表示範囲の拡大を行った場合のずれ感が抑制される。
【０１５８】
＜他の実施形態＞
なお、上述した各実施形態においては、本発明がコンピュータに適用されるものとして説明したが、これはこの例に限られない。例えば、本発明は、デジタルカメラなどの撮像装置における、撮影済み画像の表示を行う際の表示制御に適用してもよい。一例として、メモリカードなどの、デジタルカメラが読み取り可能な記録媒体に記録された撮影済み画像を、デジタルカメラが備える背面液晶表示デバイスなどのディスプレイに表示し、拡大や縮小をする際にも本発明を適用可能である。さらに、携帯電話端末や携帯型の画像ビューワ、プリンタ装置における印刷確認用のディスプレイ、デジタルフォトフレームなど、画像を表示して拡大縮小処理の可能な装置であれば本発明を適用可能である。
【０１５９】
なお、本発明の目的は、上述した各実施形態の機能を実現するプログラムを記録した記録媒体をシステムや装置に供給し、そのシステムや装置のコンピュータ（ＣＰＵ、ＭＰＵ）が記録媒体からプログラムを読み出し実行することでも達成できる。この場合、記憶媒体から読み出されたプログラムコード自体が上述した各実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性の半導体メモリ、ＲＯＭ、ＤＶＤなどを用いることができる。プログラムコードをネットワークを介してダウンロードしてもよい。
【０１６１】
また、コンピュータが読み出したプログラムを実行することにより、上述した各実施形態の機能が実現されるのに限られない。すなわち、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含まれる。なお、ＯＳは、Operating Systemの略称である。
【０１６２】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入または接続された機能拡張ユニットなどに備わるメモリに書き込まれるような場合にも、本発明を適用可能である。すなわち、当該メモリに書き込まれたプログラムの指示に基づき、その機能拡張ユニットなどに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含まれる。
【符号の説明】
【０１６３】
１００  表示制御装置
１０１  ＣＰＵ
１０３  ＲＡＭ
１０４  表示制御部
１０５  ハードディスク
１０６  入力部
１０７  ドライブ装置
２００  ＵＩ画面
２００Ａ  プレビュー画面
２００Ｂ  ナビゲータ画面
２１０  画像表示エリア
２１１  ファイル指定部
２１２  表示倍率指定部
２１５  水平スクロールバー
２１６  垂直スクロールバー
２２０  ナビゲータ画像表示エリア
２２１  枠
【図１】
2010181637.tif 000003
【図２】
2010181637.tif 000004
【図３】
2010181637.tif 000005
【図４】
2010181637.tif 000006
【図５】
2010181637.tif 000007
【図６】
2010181637.tif 000008
【図７】
2010181637.tif 000009
【図８】
2010181637.tif 000010
【図９】
2010181637.tif 000011
【図１０】
2010181637.tif 000012
【図１１】
2010181637.tif 000013
【図１２】
2010181637.tif 000014
【図１３】
2010181637.tif 000015
【図１４】
2010181637.tif 000016
【図１５】
2010181637.tif 000017
【図１６】
2010181637.tif 000018
【図１７】
2010181637.tif 000019