説明

表示制御装置および表示制御方法

【課題】表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行う。
【解決手段】画像に対して表示範囲を設定し、当該表示範囲内の画像を固定的な表示サイズの表示エリアに表示させる。表示範囲の画像に対する大きさを拡大、縮小させることで、表示エリアに表示される画像の拡大率を変更する。表示範囲の画像に対する大きさの変更を、表示範囲における画像の中心から最も遠い点を基準点として行う。基準点の情報は、スクロール操作などにより表示範囲の位置が変更されるまで、保持される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示領域に対して可変の倍率で画像を表示する表示制御装置および表示制御方法に関する。
【背景技術】
【0002】
近年では、CCDやCMOSセンサといった撮像素子は、性能が向上し撮像可能な画素数も従来に比べて増加している。このような高画素数の撮像素子を備えるデジタルカメラは、一般的な表示画素数を持つディスプレイでは全体を表示しきれないほどの大きな画像サイズの画像データを記録することができるようになっている。
【0003】
それに伴い、撮像された画像を縮小表示や拡大表示して、ピントが合っているか否か、コントラストやエッジ強調などの画像調整結果が所望の結果になっているか否かを確認する作業を、一般のユーザが行うことが容易となってきている。例えば、ユーザは、高画素数の撮像素子を備えるデジタルカメラで撮影を行った後、撮影された画像を当該デジタルカメラのディスプレイに表示させる。そして、デジタルカメラに対するユーザ操作によりディスプレイに表示される画像を拡大して、ピントが合っているか否かを調べる。
【0004】
このとき、ディスプレイに表示されている画像の所望の部分を指定して、その部分を中心として画像の拡大処理を行うことが、従来から行われている。特許文献1には、画像の拡大率を変更する際に、画像の中央を基準として画像の拡大および縮小を行うようにした技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第2557720号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の方法によれば、表示範囲の中心を基準点として画像の縮小を行う場合、画像外すなわち有効ビデオ領域の外側が表示されないように、当該基準点の位置を変更する。そのため、表示範囲に表示される画像の拡大処理および縮小処理を繰り返すと、表示範囲が徐々に画像中央へと移動してしまうという問題点があった。
【0007】
この点について、図17を用いて具体的に説明する。図17において、表示範囲90に対して画像91の一部(部分画像と呼ぶ)を表示させる。先ず、図17(a)に例示されるような状態から、表示範囲90に表示される部分画像を縮小することを考える。この場合、画像91に対して表示範囲90を拡大することで、表示範囲90に表示される部分画像が縮小されることになる。
【0008】
ここで、部分画像の縮小、すなわち、表示範囲90の拡大を、従来の技術に従い、表示範囲90の中心の位置92を基準として行う。すると、図17(b)に例示されるように、表示範囲90の一部が画像91の範囲を超えてしまい、表示範囲90が画像91からはみ出てしまうことになる。そこで、特許文献1に開示される方法により、表示範囲90が画像91からはみ出た分だけ表示範囲90の画像91に対する位置を調整し、図17(c)に例示されるように、表示範囲90を画像91の範囲内に収める。
【0009】
次に、縮小された部分画像を再び縮小前の大きさに拡大、すなわち、表示範囲90を縮小する。この処理を、表示範囲90の中心の位置92を基準に行うと、表示範囲90の位置は、部分画像の縮小前の位置(図17(a)参照)に対して、部分画像の縮小時に位置調整を行った分だけ、画像91の中心方向にずれてしまうことになる。この様子を図17(d)に示す。
【0010】
このように、表示範囲90の画像91に対する位置が、部分画像の拡大および縮小の処理を繰り返す度に移動したのでは、ユーザが表示に違和感を感じるおそれがある。
【0011】
したがって、本発明の目的は、表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行うことができる表示制御装置および表示制御方法を提供することにある。
【課題を解決するための手段】
【0012】
本発明は、上述した課題を解決するために、画像に対して設定された表示範囲に含まれる画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して表示エリアに表示させる表示制御装置であって、表示範囲における画像の中心から最も遠い点を求める算出手段と、ユーザ操作に応じて表示範囲の大きさを変更する変更手段と、表示範囲に含まれる部分画像の画像サイズを、表示サイズに適合するように変更して表示エリアに表示させる表示制御手段とを有し、変更手段は、算出手段で求められた最も遠い点の画像に対する位置が変化しないように、表示範囲の大きさを変更することを特徴とする表示制御装置である。
【0013】
また、本発明は、画像に対して設定された表示範囲に含まれる画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して表示エリアに表示させる表示制御方法であって、表示範囲における画像の中心から最も遠い点を求める算出ステップと、ユーザ操作に応じて表示範囲の大きさを変更する変更ステップと、表示範囲に含まれる部分画像の画像サイズを、表示サイズに適合するように変更して表示エリアに表示させる表示制御ステップとを有し、変更ステップは、算出ステップで求められた最も遠い点の画像に対する位置が変化しないように、表示範囲の大きさを変更することを特徴とする表示制御方法である。
【発明の効果】
【0014】
本発明は、表示範囲に表示される部分画像の拡大および縮小を繰り返した場合の表示制御を適切に行うことができる。
【図面の簡単な説明】
【0015】
【図1】本発明の概要について説明するための図である。
【図2】本発明の第1の実施形態に適用可能な表示制御装置の一例の構成を示すブロック図である。
【図3】本発明の第1の実施形態に適用可能なユーザインターフェイスの例を示す図である。
【図4】本発明の第1の実施形態による一例の表示制御処理を示すフローチャートである。
【図5】表示範囲における基準点の位置を説明するための図である。
【図6】全体画像の全体を画像表示エリアに表示できない場合の例を示す図である。
【図7】UI画面の表示例を示す図である。
【図8】UI画面の表示例を示す図である。
【図9】表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明するための図である。
【図10】表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明するための図である。
【図11】UI画面の表示例を示す図である。
【図12】UI画面の表示例を示す図である。
【図13】本発明の第2の実施形態による一例の表示制御処理を示すフローチャートである。
【図14】UI画面の表示例を示す図である。
【図15】UI画面の表示例を示す図である。
【図16】UI画面の表示例を示す図である。
【図17】従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【0016】
<本発明の第1の実施形態の概要>
以下、本発明の第1の実施形態について説明する。本発明では、画像の一部を固定的な表示サイズを有する表示エリアに表示させる際に、画像における、表示エリアに表示させる範囲を示す表示範囲の拡大または縮小を、表示範囲における画像の中心から最も遠い点を基準にして行う。
【0017】
図1を用いて、本発明の概要について説明する。図1(a)および図1(b)において、画像10の表示範囲20A(または表示範囲20B、20C)に含まれる部分が、固定的な表示サイズを有する表示エリアに、当該表示サイズに適合するようにサイズを拡大または縮小されて表示されるものとする。したがって、表示範囲20Aを拡大すると、表示エリアに表示される部分画像の拡大率が小さくされ、表示範囲20Aを縮小すると、表示エリアに表示される部分画像の拡大率が大きくされる。
【0018】
図1(a)は、画像10に対して表示範囲20Aを拡大し、表示エリアに表示される部分画像を縮小する場合の例である。この場合、表示範囲20Aの拡大を、表示範囲20Aにおける、画像10の中心11から最も遠い点である最遠点21を基準として行う。すなわち、最遠点21の画像10に対する位置が変化しないように、表示範囲20Aの大きさを変化させる。
【0019】
この図1(a)の例では、最遠点21が表示範囲20Aの右下隅の点とされると共に、画像10の中心11が最遠点21よりも左側に位置し、表示範囲20Aが画像10の左方向および上方向にそれぞれ拡大される。換言すれば、画像10の中心11に対する表示範囲20Aにおける最遠点21を基準に拡大を行うことで、表示範囲20Aが画像10の内側へ向けて拡大されることになる。したがって、拡大後の表示範囲20Bが画像10からはみ出る可能性が低く抑えられると共に、当該表示範囲20Bの画像10に対する位置を移動させる必要性も減る。
【0020】
図1(b)は、図1(a)の例で拡大された表示範囲20Bを画像10に対して縮小して元の表示範囲20Aの大きさとする場合の例である。この場合も、表示範囲20Aの縮小を、画像10の中心11に対する表示範囲20Aにおける最遠点21を基準として行う。
【0021】
ここで、本発明では、表示エリアに表示される部分画像の拡大率を変更する場合には、当該部分画像が含まれる表示範囲の、画像に対する位置を移動させないものとする。上述したように、表示エリアに表示される部分画像の縮小時、すなわち、表示範囲20Aの拡大時には、拡大後の表示範囲20Bの画像10に対する位置を移動させる必要性が少ない。そのため、表示範囲20Bが縮小された表示範囲20Cの画像10内での位置の、表示範囲20Bの拡大前の表示範囲20Aに対する変化が抑制される。
【0022】
<第1の実施形態に適用可能な表示制御装置>
次に、本発明の第1の実施形態について、図面を参照しながら説明する。図2は、本発明の第1の実施形態に適用可能な表示制御装置100の一例の構成を示す。この図2に例示されるように、表示制御装置100は、一般的なコンピュータを用いて構成することができる。
【0023】
図2において、内部バス110に対してCPU101、ROM102、RAM103、表示制御部104、ハードディスク(HDD)105、入力部106、ドライブ装置107および通信I/F108が接続される。内部バス110に接続される各部は、内部バス110を介して互いにデータのやりとりを行うことができるようにされている。
【0024】
ハードディスク105は、画像データやその他のデータ、CPU101が動作するための各種プログラムなどが格納される。ROM102は、この表示制御装置100が起動する際に用いられるプログラムやデータなどが予め記憶される。CPU101は、例えばハードディスク105から読み出したプログラムをRAM103上に展開して実行し、この表示制御装置100の各部を制御する。なお、CPU101が動作するためのプログラムは、ハードディスク105に格納されるのに限られず、例えばROM102に予め記憶しておいてもよい。
【0025】
入力部106は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、CPU101に供給する。例えば、入力部106は、ユーザ操作を受け付ける入力デバイスとして、キーボードといった文字情報入力デバイスや、マウスなどのポインティングデバイスなどが接続される。CPU101は、入力デバイスに対するユーザ操作に応じて入力部106で生成され供給される制御信号に基づき、プログラムに従いこの表示制御装置100の各部を制御する。これにより、表示制御装置100に対し、ユーザ操作に応じた動作を行わせることができる。
【0026】
表示制御部104は、ディスプレイ120に対して、指定された表示解像度で画像を表示させるための表示信号を出力する。表示解像度は、例えばCPU101により指定される。例えば、表示制御部104に対して、CPU101がプログラムに従い生成した表示制御信号が供給される。表示制御部104は、この表示制御信号に基づき表示信号を生成してディスプレイ120に対して出力する。例えば、表示制御部104は、CPU101が生成する表示制御信号に基づき、ユーザインターフェイスを構成するためのGUI(Graphical User Interface)画面をディスプレイ120に対して表示させる。
【0027】
ドライブ装置107は、CDやDVDといった外部記憶媒体121が装着可能とされ、CPU101の制御に基づき、装着された外部記憶媒体121からのデータの読み出しや、当該外部記憶媒体121に対するデータの書き込みを行う。なお、ドライブ装置107が装着可能な外部記憶媒体121は、CDやDVDといったディスク記録媒体に限られず、例えば不揮発性の半導体メモリをドライブ装置107に装着するものとしてもよい。通信インターフェイス(I/F)108は、CPU101の制御に基づき、LANやインターネットといったネットワーク130に対する通信を行う。
【0028】
<ユーザインターフェイスについて>
次に、本第1の実施形態に適用可能なユーザインターフェイス(UI)の例について、図3を用いて説明する。図3に例示されるUI画面200は、ハードディスク105などに格納されたプログラムに従いCPU101が表示制御部104を制御して、ディスプレイ120に表示される。また、CPU101は、プログラムに従い、入力部106に接続される入力デバイスに対する、UI画面200の表示に対応したユーザ操作に応じて、各種の制御を行う。
【0029】
図3の例では、UI画面200は、プレビュー画面200Aおよびナビゲータ画面200Bとから構成される。プレビュー画面200Aは、画像表示エリア210、ファイル指定部211および表示倍率指定部212が配置される。ファイル指定部211は、ハードディスク105やドライブ装置107に装着された外部記憶媒体121に格納される画像データを指定するためのものである。表示倍率指定部212は、表示倍率表示部213とボタン214とが配置され、ファイル指定部211で指定された画像データが画像表示エリア210に表示される際の表示倍率を指定する。
【0030】
プレビュー画面200Aの右上隅に配置されるボタン217は、このUI画面200を閉じ、UI画面200に基づく一連の処理を終了させるための終了ボタンである。
【0031】
プレビュー画面200Aに対して、さらに、水平スクロールバー215と垂直スクロールバー216とが配置される。水平スクロールバー215および垂直スクロールバー216は、ユーザ操作に応じて、画像表示エリア210に部分的に表示される画像の全体の画像に対する表示範囲を、それぞれ水平方向および垂直方向に移動させる。
【0032】
一方、ナビゲータ画面200Bは、指定された画像データによる画像の全体が表示されるナビゲータ画像表示エリア220が配置される。ナビゲータ画像表示エリア220には、さらに、プレビュー画面200Aの画像表示エリア210に表示される範囲を示す枠221が表示される。すなわち、ナビゲータ画像表示エリア220に表示される画像のうち枠221で囲まれる部分の画像が表示倍率表示部213に表示される表示倍率に応じて拡大されて、プレビュー画面200Aの画像表示エリア210に表示されるようになっている。プレビュー画面200Aに配置される水平スクロールバー215および垂直スクロールバー216のユーザ操作による操作に応じて、枠221の、画像全体に対する位置が移動される。なお、以下では、枠221に囲まれる部分の画像を、適宜、部分画像と呼ぶ。
【0033】
このようなUI画面200において、ユーザ操作によりファイル指定部211で画像データが指定されると、CPU101は、指定された画像データをハードディスク105や外部記憶媒体121から読み出す。そして、読み出した画像データによる画像の全体をナビゲータ画面200Bのナビゲータ画像表示エリア220に表示させる。それと共に、CPU101は、当該画像データによる画像のうち、ナビゲータ画像表示エリア220の枠221内に表示される部分画像を、プレビュー画面200Aの画像表示エリア210の表示サイズに拡大して、当該画像表示エリア210に表示させる。
【0034】
画像表示エリア210に表示させる部分画像の表示倍率は、表示倍率指定部212から指定することができる。例えば、表示倍率指定部212に設けられるボタン214がユーザ操作により操作されると、複数の表示倍率がリストされたプルダウンメニュー(図示しない)が表示倍率表示部213に表示される。プルダウンメニューに表示される表示倍率は、例えば12.5%、25%、40%、50%、75%、100%、200%および400%の8種類とされる。これに限らず、表示倍率表示部213に対して、直接的に表示倍率を入力することもできる。
【0035】
ユーザ操作によりプルダウンメニューから所望の表示倍率が選択されると、プルダウンメニューの表示が終了され選択された表示倍率が表示倍率表示部213に表示される。そして、ナビゲータ画面200Bにおけるナビゲータ画像表示エリア220内の枠221が、選択された表示倍率に応じた大きさに変更されると共に、枠221内の部分画像が当該表示倍率に従い拡大されて、画像表示エリア210に表示される。
【0036】
なお、表示倍率とは、ナビゲータ画面200Bのナビゲータ画像表示エリア220における枠221で囲まれた部分の画像サイズと、プレビュー画面200Aの画像表示エリア210の表示サイズとの比を%(パーセント)で以て示した値とする。
【0037】
例えば、画像表示エリア210の表示サイズが400画素×300画素とした場合、枠221で囲まれた画像サイズが100画素×75画素であれば、表示倍率は400%となる。すなわち、枠221で囲まれた部分の画像が縦横それぞれ4倍(400%)に拡大されて、画像表示エリア210に表示される。また例えば、画像表示エリア210の表示サイズが400画素×300画素、枠221で囲まれた画像サイズが400画素×300画素であれば、表示倍率は100%となる。これは、ピクセル等倍とも呼ばれる。さらにまた、画像表示エリア210の表示サイズが400画素×300画素、枠221で囲まれた画像サイズが1600画素×1200画素であれば、表示倍率は25%となる。
【0038】
<第1の実施形態による処理>
次に、図4のフローチャートを用いて、本発明の第1の実施形態による一例の表示制御処理について説明する。なお、図4のフローチャートにおける各処理は、CPU101がRAM103上に展開されたプログラムを実行することにより実行される。
【0039】
先ず、ステップS301で、CPU101は、ユーザが画像処理の対象として選択した画像データをハードディスク105や外部記憶媒体121からRAM103に読み込む。そして、読み込んだ画像データによる画像をプレビュー画面200Aの画像表示エリア210に対して表示させる。例えば、ユーザは、ファイル指定部211に対するユーザ操作で起動する標準的なファイルオープンダイアログで所望の画像データを選択する。
【0040】
次のステップS302で、CPU101は、ユーザ操作の有無を判定する。ここでいうユーザー操作とは、表示倍率指定部212に対する表示倍率の選択操作や、水平スクロールバー215、垂直スクロールバー216に対する表示範囲の移動操作などをいう。若し、ステップS302にて、ユーザ操作が有ると判定したら、処理はステップS303に移行される。
【0041】
一方、ステップS302でユーザ操作が無いと判定されたら、処理はステップS310に移行され、CPU101は、画像表示エリア210に対して画像が表示済みか否かを判定する。ここでは、画像データを読み込んだ直後に必ず処理をステップS302に移行させてユーザー操作が無いと判定し、ステップS310以降の処理を行い、読み込んだ画像データによる画像を表示するものとする。若し、画像が表示済みであると判定されたら、処理はステップS302に戻され、ユーザ操作が待機される。
【0042】
一方、ステップS310で、画像が表示済みではないと判定されたら、処理はステップS311に移行される。ステップS311では、CPU101は、画像表示エリア210に画像の縦の2辺および横の2辺のうち少なくとも一方が接して、画像データによる画像全体が画像表示エリア210に表示しきれる倍率を求める。ここで求められた、画像の垂直方向の2辺および水平方向の2辺のうち少なくとも一方が接して、画像全体が画像表示エリア210に表示しきれる倍率を、ウィンドウフィットの倍率と呼ぶ。また、画像データによる画像全体を、以下では、全体画像と呼ぶ。
【0043】
変数に下記の値を保持しているものとして、ウィンドウフィットの倍率の一例の演算方法について説明する。
View_Mag_Fit:ウィンドウフィットの倍率(%)
View_Mag_HorFit:全体画像の垂直方向の2辺が画像表示エリア210に接するときの倍率(%)
View_Mag_VerFit:全体画像の水平方向の2辺が画像表示エリア210に接するときの倍率(%)
Image_Width:表示する対象となる本体画像(全体画像)の幅(画素数)
Image_Height:全体画像の高さ(画素数)
ViewArea_W:画像表示エリア210の幅(画素数)
ViewArea_H:画像表示エリア210の高さ(画素数)
【0044】
全体画像の垂直方向の2辺が画像表示エリア210に接するときの倍率View_Mag_HorFitを式(1)に、全体画像の水平方向の2辺が画像表示エリア210に接するときの倍率View_Mag_VerFitを式(2)に示す。
View_Mag_HorFit=(ViewArea_W/Image_Width)×100 …(1)
View_Mag_VerFit=(ViewArea_H/Image_Height)×100 …(2)
【0045】
下記の式(3)に示すように、倍率View_Mag_HorFitおよび倍率View_Mag_VerFitの大小判定を行う。そして、式(3)が真、すなわち、倍率View_Mag_HorFitが倍率View_Mag_VerFit未満の場合、式(4)に示されるように、倍率View_Mag_HorFitをウィンドフィットの倍率View_Mag_Fitとする。また、式(3)が偽、すなわち、倍率View_Mag_HorFitが倍率View_Mag_VerFit以上の場合、式(5)に示されるように、倍率View_Mag_VerFitをウィンドフィットの倍率View_Mag_Fitとする。
View_Mag_HorFit<View_Mag_VerFit …(3)
View_Mag_Fit=View_Mag_HorFit …(4)
View_Mag_Fit=View_Mag_VerFit …(5)
【0046】
ステップS311でウィンドフィットの倍率が求められたら、処理はステップS314に移行される。ステップS314では、ステップS311で求められたウィンドウフィットの倍率View_Mag_Fitを、表示倍率View_Magとする。そして、処理はステップS316に移行される。
【0047】
ステップS316では、全体画像において画像表示エリア210に表示される表示範囲の中で、全体画像の中心から一番遠い点である最遠点を算出し、この最遠点を、拡大縮小処理における基準点とする。
【0048】
基準点を算出する一例の方法について説明する。この基準点の算出は、算出手段としてのCPU101により、プログラムに従い行われる。先ず、全体画像の中心の座標centerP(cX,cY)を、例えば式(6)および式(7)に従い算出する。
cX=Image_Width/2 …(6)
cY=Image_Height/2 …(7)
【0049】
次に、全体画像の中心から表示範囲の四隅の座標までの距離p1_dis、p2_dis、p3_disおよびp4_disをそれぞれ算出する。変数に下記の値を保持しているものとして、式(8)〜式(11)に従い距離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))
【0050】
i_p1:p1_dis=(iX0-cX)+(iY0-cY) …(8)
i_p2:p2_dis=(iX0-cX)+(iY1-cY) …(9)
i_p3:p3_dis=(iX1-cX)+(iY0-cY) …(10)
i_p4:p4_dis=(iX1-cX)+(iY1-cY) …(11)
【0051】
式(7)に示した距離p1_dis、p2_dis、p3_disおよびp4_disの中で最も大きい値に対応する点、すなわち、全体画像の中心からの最遠点を、基準点の座標baseP(bX,bY)とする。最遠点の座標が複数存在する場合には、それら複数の座標の中央、すなわち当該複数の座標から等距離にある点を基準点の座標baseP(bX,bY)とする。
【0052】
処理はステップS317に移行され、基準点情報として、基準点の座標baseP(bX,bY)と、その基準点の表示範囲における位置の情報を保持する。若し、最遠点の座標が複数存在する場合には、基準点の情報として、それらの中央の値と、その点の表示範囲における位置の情報を保持する。
【0053】
表示範囲を、図5に例示される矩形600とすると、基準点の位置は、位置601〜609の何れかである。位置の情報を、値posXおよび値posYの2の値で保持する。各基準点の位置に応じた値posXと値posYを、下記のように定義する。
位置601:(0,0)
位置602:(0.5,0)
位置603:(1,0)
位置604:(0,0.5)
位置605:(0.5,0.5)
位置606:(1,0.5)
位置607:(0,1)
位置608:(0.5,1)
位置609:(1,1)
【0054】
ステップS317で基準点の座標baseP(bX,bY)と、その基準点の表示範囲における位置の情報とが保持されると、処理はステップS309に移行される。ステップS309で、変更手段および表示制御手段としてのCPU101は、全体画像に対して表示範囲を設定する。そして、全体画像における表示範囲の画像を、ステップS314で得られた表示倍率View_Magで拡大または縮小して、画像表示エリア210に対して表示させる。画像表示エリア210に対して全体画像を全て表示可能であれば、画像表示エリア210の中央に全体画像の中心を合わせて、表示倍率View_Magの倍率で表示させる。そして、処理はステップS302に戻され、ユーザ操作が待機される。
【0055】
画像表示エリア210に対して全体画像の全体を表示できない場合の表示範囲の算出方法については、後述する。
【0056】
一方、上述したように、ステップS302でユーザ操作が有ると判定したら、処理はステップS303に移行される。ステップS303では、そのユーザ操作が倍率変更か否かを判定する。倍率変更の操作とは、例えば、表示倍率表示部213に対して、現在の倍率とは異なる倍率を指定する操作である。若し、ユーザ操作が倍率変更の操作ではないと判定したら、処理はステップS312に移行される。
【0057】
一方、ステップS303で、ユーザ操作が倍率変更の操作であると判定されたら、処理はステップS304に移行され、ユーザ操作により指定された倍率を、表示倍率View_Magとする。そして、処理はステップS305に移行され、CPU101は、全体画像の全体を画像表示エリア210に表示可能であるか否かを判定する。
【0058】
ステップS305では、下記の式(12)に従いウィンドフィットの倍率View_Mag_Fitおよび表示倍率View_Magの比較を行う。そして、式(12)が真、すなわち、ウィンドフィットの倍率View_Mag_Fitが表示倍率View_Mag以下の場合は、全体画像の全体を画像表示エリア210に表示できないと判定する。また、式(12)が偽、すなわち、ウィンドフィットの倍率View_Mag_Fitが表示倍率View_Magを超える場合は、全体画像の全体を画像表示エリア210に表示可能であると判定する。
View_Mag_Fit≦View_Mag …(12)
【0059】
若し、ステップS305で、全体画像の全体を画像表示エリア210に表示可能であると判定されたら、CPU101は、表示倍率View_Magに従い表示範囲の大きさを変更する。そして、次のステップS309で、変更された表示範囲内の画像を表示倍率View_Magで拡大または縮小して、画像表示エリア210に対して表示させる。なお、上述した図3は、全体画像の全体を画像表示エリア210に表示可能である場合の例を示している。
【0060】
一方、ステップS305で、全体画像の全体を画像表示エリア210に表示可能ではないと判定されたら、処理はステップS307に移行される。図6は、全体画像の全体を画像表示エリア210に表示できない場合の例を示す。ステップS307では、基準点の情報に基づき表示範囲を算出し、次のステップS309で、算出された表示範囲内の画像を表示倍率View_Magで拡大または縮小して、画像表示エリア210に対して表示させる。
【0061】
上述したように、本第1の実施形態では、画像データをRAM103に読み込んだ後に、必ずステップS302でユーザ操作が無いと判定して、ステップS310以降の処理を行い、画像を表示する。したがって、基準点の情報は、必ず生成されている。
【0062】
ステップS307における表示範囲の算出方法の例について説明する。変数に下記の値を保持しているものとする。
i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1):表示範囲の座標(左上(x,y),左下(x,y),右上(x,y),右下(x,y))
【0063】
基準点を座標baseP(bX,bY)、基準点の位置の情報を(posX,posY)とした場合の表示範囲の座標(i_p1,i_p2,i_p3,i_p4)は、式(13)〜式(16)から求められる。
iX0=bX−(ViewArea_W×100/View_Mag)×posX …(13)
iY0=bY−(ViewArea_H×100/View_Mag)×posY …(14)
iX1=iX0+ViewArea_W×100/View_Mag …(15)
iY1=iY0+ViewArea_H×100/View_Mag …(16)
【0064】
上述のステップS303で、ユーザ操作が倍率変更ではないと判定され、処理がステップS312に移行されたら、CPU101は、ユーザ操作がスクロール操作か否かを判定する。例えば、ユーザ操作により水平スクロールバー215または垂直スクロールバー216が操作された場合に、スクロール操作されたと判定する。
【0065】
若し、スクロール操作ではないと判定されたら、処理はステップS318に移行され、ユーザ操作が終了ボタン217に対する操作であるか否かが判定される。若し、終了ボタン217に対する操作であると判定されたら、図4のフローチャートにおける一連の処理が終了され、プレビュー画面200Aおよびナビゲータ画面200Bが閉じられる。一方、ユーザ操作が終了ボタン217に対する操作ではないと判定されたら、処理はステップS319に移行され、当該ユーザ操作に応じた所定の処理が行われて処理がステップS302に移行される。
【0066】
一方、ステップS312で、ユーザ操作がスクロール操作であると判定されたら、処理はステップS313に移行される。ステップS313では、スクロール操作により変更された表示範囲の算出を行う。
【0067】
例えば、スクロール操作前の元の表示範囲の四隅の座標をそれぞれ座標ibef_p1、ibef_p2、ibef_p3およびibef_p4とする。また、水平方向のスクロール操作による移動量を移動量scrollX、垂直方向のスクロール操作による移動量を移動量scrollYとする。下記の変数を保持しているものとして、スクロール操作後の表示範囲の四隅の座標i_p1、i_p2、i_p3およびi_p4を式(17)〜式(20)に示す。
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))
【0068】
iX0=ibX0+scrollX×100/View_Mag …(17)
iX1=ibX1+scrollX×100/View_Mag …(18)
iY0=ibY0+scrollY×100/View_Mag …(19)
iY1=ibY1+scrollY×100/View_Mag …(20)
【0069】
ここで、水平方向のスクロールにおいて右方向へのスクロールをプラス方向、左方向へのスクロールをマイナス方向し、垂直方向のスクロールにおいて上方向へのスクロールをマイナス方向、下方向へのスクロールをプラス方向とする。また、移動量scrollXおよびscrollYの値は、画像表示エリア210における垂直方向と水平方向の移動量を画素数で示す。スクロール可能な範囲は、全体画像の範囲内に制限されているものとする。
【0070】
ステップS313でスクロール操作後の表示範囲が求められると、処理はステップS316に移行され、上述したようにして基準点の算出と、基準点情報の保持が行われる。
【0071】
<具体例を用いた説明:画像データ読込>
次に、上述の図4を用いて説明した処理を、具体的な例を用いて説明する。先ず、プレビュー画面200Aを起動させて最初に画像データを読み込んだ際の処理の例について説明する。ステップS301で画像データをRAM103に読込、上述したようにしてステップS302でユーザ操作が無いものと判定する。そして、処理がステップS310に移行され、画像が画像表示エリア210に対して表示済みか否かが判定される。画像データをRAM103に読み込んだ直後の状態で、まだ画像を画像表示エリア210に対して表示するための処理を1回も行っていないため、ステップS310では、画像が表示済みではないと判定される。
【0072】
その後、処理がステップS311に移行され、式(1)〜式(5)に従いウィンドウフィットの倍率View_Mab_Fitを算出し、ステップS314で、表示倍率View_Magをウィンドウフィットの倍率View_Mab_Fitとする。ここで、全体画像の幅Image_Widthおよび高さImage_Heightがそれぞれ4000画素および3000画素とする。また、画像表示エリア210の幅ViewArea_Wおよび高さViewArea_Hがそれぞれ1600画素および1200画素とする。
【0073】
この場合、全体画像の縦の2辺が画像表示エリア210に接するときの倍率View_Mag_HorFitと、全体画像の横の2辺が画像表示エリア210に接するときの倍率View_Mag_VerFitは、それぞれ40%とされる。この計算式を式(21)および式(22)に示す。したがって、式(23)に示されるように、ウィンドウフィットの倍率View_Mag_Fit=40%となり、表示倍率View_Magも40%となる。
View_Mag_HorFit=(ViewArea_W/Image_Width)×100=1600/4000×100=40 …(21)
View_Mag_VerFit=(ViewArea_H/Image_Height)×100=1200/3000×100=40 …(22)
View_Mag=View_Mag_Fit=40 …(23)
【0074】
処理はステップS316に移行され、表示範囲における全体画像の中心に対する最遠点を拡大および縮小処理の基準点とする。式(24)および式(25)に示されるように、全体画像の中心の座標centerP(cX,cY)=centerP(2000,1500)となる。
cX=Image_Width/2=4000/2=2000 …(24)
cY=Image_Height/2=3000/2=1500 …(25)
【0075】
ウィンドウフィットの場合には、全体画像の全体が画像表示エリア210に対して表示されている状態になる。そのため、表示範囲の座標は、式(26)〜式(29)で示されるように、座標(0,0)−(4000,3000)となる。
iX0=0 …(26)
iY0=0 …(27)
iX1=Image_Width=4000 …(28)
iY1=Image_Height=3000 …(29)
【0076】
表示範囲の四隅それぞれの全体画像の中心からの距離p1_dis、p2_dis、p3_disおよびp4_disは、式(30)〜式(33)のように求められる。この場合、同一の値をとる点が無いため、表示範囲の四隅の4点が最遠点候補の全てとなる。
i_p1:p1_dis=(iX0−cX)+(iY0−cY)=(0−2000)+(0−1500) …(30)
i_p2:p2_dis=(iX0−cX)+(iY1−cY)=(0−2000)+(3000−1500) …(31)
i_p3:p3_dis=(iX1−cX)+(iY0−cY)=(4000−2000)+(0−1500) …(32)
i_p4:p4_dis=(iX1−cX)+(iY1−cY)=(4000−2000)+(3000−1500) …(33)
【0077】
上述したように、最遠点が複数存在する場合、それらの点の中央の座標を基準点とする。この例では、最遠点すなわち基準点は、座標baseP(2000,1500)と求められる。
【0078】
次のステップS317で、基準点情報として、基準点の座標baseP(bX,bY)と、その点の位置の情報を保持する。この例では、基準点の座標が座標baseP(2000,1500)、基準点の位置が図5における位置605となり、基準点情報は、(0.5,0.5)となる。
【0079】
処理はステップS309に移行され、ウィンドウフィットの倍率View_Mag_Fit=40%で、画像表示エリア210の中央に全体画像の中心が重なるように全体画像を表示する。この場合、画像表示エリア210の状態は、例えば図3のようになる。
【0080】
<具体例を用いた説明:拡大処理(1)>
次に、上述した画像データ読込の後に、表示倍率を200%に拡大する際の処理について説明する。ステップS302でユーザ操作があったと判定され、ステップS303でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップS304で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag=200%となる。
【0081】
次のステップS305で、全体画像の全体を画像表示エリア210に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit=40%、表示倍率View_Mag=200%であるので、上述の式(12)が真となり、全体画像の全体を画像表示エリア210に表示できないと判定される。
【0082】
そこで、処理はステップS307に移行され、基準点情報に基づいて表示範囲を算出する。上述した画像データ読込処理において、基準点が座標baseP(2000,1500)、基準点の位置が(0.5,0.5)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式(34)〜式(37)により求められる。
iX0=bX−(ViewArea_W×100/View_Mag)×posX=2000−(1600×100/200)×0.5=1600 …(34)
iY0=bY−(ViewArea_H×100/View_Mag)×posY=1500−(1200×100/200)×0.5=1200 …(35)
iX1=iX0+ViewArea_W×100/View_Mag=1600+1600×100/200=2400 …(36)
iY1=iY0+ViewArea_H×100/View_Mag=1200+1200×100/200=1800 …(37)
【0083】
次のステップS309で、全体画像のうちステップS307で求められた表示範囲i_p1(1600,1200),i_p2(1600,1800),i_p3(2400,1200),i_p4(2400,1800)の画像が表示倍率200%で拡大される。そして拡大された画像が画像表示エリア210に表示される。この場合の表示例は、図6の表示501のようになる。
【0084】
<具体例を用いた説明:スクロール処理>
次に、上述した拡大処理(1)の後に、水平スクロールバー215または垂直スクロールバー216を操作して、全体画像における表示範囲を移動させた際の処理について説明する。ステップS302でユーザ操作があったと判定され、ステップS303およびステップS312でそのユーザ操作がスクロール操作であると判定されたら、ステップS313で、スクロール操作後の表示範囲が算出される。
【0085】
ここで、スクロール操作前の元の表示範囲が、上述した拡大処理後の表示範囲i_p1(1600,1200),i_p2(1600,1800),i_p3(2400,1200),i_p4(2400,1800)であるとする。また、水平スクロールバー215の操作による移動量scrollX=3200、垂直スクロールバー216の操作による移動量scrollY=2400であるものとする。
【0086】
この場合、スクロール操作後の表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式(38)〜式(41)により求められる。
iX0=ibX0+scrollX×100/View_Mag=1600+3200×100/200=3200 …(38)
iX1=ibX1+scrollX×100/View_Mag=2400+3200×100/200=4000 …(39)
iY0=ibY0+scrollY×100/View_Mag=1200+2400×100/200=2400 …(40)
iY1=ibY1+scrollY×100/View_Mag=1800+2400×100/200=3000 …(41)
【0087】
スクロール操作後の表示範囲が求められたら、処理はステップS316に移行され、全体画像の中心に対する表示範囲の最遠点を求め、求められた最遠点を拡大および縮小処理の基準点とする。最遠点は、下記の式(42)〜式(45)により、右下隅の点i_p4として求められる。したがって、基準点は、座標baseP(4000,3000)と求められる。
i_p1:p1_dis=(iX0−cX)+(iY0−cY)=(3200−2000)+(2400−1500)=1440000+810000=2250000 …(42)
i_p2:p2_dis=(iX0−cX)+(iY1−cY)=(3200−2000)+(3000−1500)=1440000+2250000=3690000 …(43)
i_p3:p3_dis=(iX1−cX)+(iY0−cY)=(4000−2000)+(2400−1500)=4000000+810000=4810000 …(44)
i_p4:p4_dis=(iX1−cX)+(iY1−cY)=(4000−2000)+(3000−1500)=4000000+2250000=6250000 …(45)
【0088】
次のステップS317で、基準点情報として、基準点の座標baseP(bX,bY)と、その点の位置の情報を保持する。この例では、基準点の座標が座標baseP(4000,3000)、基準点の位置が図5における位置609となり、基準点情報は、(1,1)となる。
【0089】
次のステップS309で、全体画像のうちステップS307で求められた表示範囲i_p1(3200,2400),i_p2(3200,3000),i_p3(4000,2400),i_p4(4000,3000)の画像が倍率200%で拡大され、画像表示エリア210に表示される。この場合の表示例は、図7の表示701のようになる。
【0090】
<具体例を用いた説明:縮小処理(1)>
上述したスクロール操作の後に、表示倍率を100%に変更する際の処理について説明する。上述では、表示範囲の画像を200%に拡大して画像表示エリア210に表示していたので、ここでは、200%に拡大された表示範囲の画像を表示倍率100%に縮小することになる。ステップS302でユーザ操作があったと判定され、ステップS303でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップS304で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag=100%となる。
【0091】
次のステップS305で、全体画像の全体を画像表示エリア210に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit=40%、表示倍率View_Mag=100%であるので、上述の式(12)が真となり、全体画像の全体を画像表示エリア210に表示できないと判定される。
【0092】
そこで、処理はステップS307に移行され、基準点情報に基づいて表示範囲を算出する。上述したスクロール処理において、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式(46)〜式(49)により求められる。
iX0=bX−(ViewArea_W×100/View_Mag)×posX=4000−(1600×100/100)×1=2400 …(46)
iY0=bY−(ViewArea_H×100/View_Mag)×posY=3000−(1200×100/100)×1=1800 …(47)
iX1=iX0+ViewArea_W×100/View_Mag=2400+1600×100/100=4000 …(48)
iY1=iY0+ViewArea_H×100/View_Mag=1800+1200×100/100=3000 …(49)
【0093】
次のステップS309で、全体画像のうちステップS307で求められた表示範囲i_p1(2400,1800),i_p2(2400,3000),i_p3(4000,1800),i_p4(4000,3000)の画像が表示倍率100%で画像表示エリア210に表示される。この場合の表示例は、図8の表示801のようになる。
【0094】
<具体例を用いた説明:拡大処理(2)>
次に、上述した縮小処理(1)の後に、表示倍率を200%に拡大する際の処理について説明する。ステップS302でユーザ操作があったと判定され、ステップS303でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップS304で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag=200%となる。
【0095】
次のステップS305で、全体画像の全体を画像表示エリア210に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit=40%、表示倍率View_Mag=200%であるので、上述の式(12)が真となり、全体画像の全体を画像表示エリア210に表示できないと判定される。
【0096】
そこで、処理はステップS307に移行され、基準点情報に基づいて表示範囲を算出する。上述した縮小処理において基準点情報は変更されていない。したがって、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)のままである。そこで、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式(50)〜式(53)により求められる。
iX0=bX−(ViewArea_W×100/View_Mag)×posX=4000−(1600×100/200)×1=3200 …(50)
iY0=bY−(ViewArea_H×100/View_Mag)×posY=3000−(1200×100/200)×1=2400 …(51)
iX1=iX0+ViewArea_W×100/View_Mag=3200+1600×100/200=4000 …(52)
iY1=iY0+ViewArea_H×100/View_Mag=2400+1200×100/200=3000 …(53)
【0097】
次のステップS309で、全体画像のうちステップS307で求められた表示表示範囲i_p1(3200,2400),i_p2(3200,3000),i_p3(4000,2400),i_p4(4000,3000)の画像が表示倍率200%で画像表示エリア210に表示される。この場合の表示例は、図7の表示701のようになる。
【0098】
<具体例を用いた説明:縮小処理(2)>
上述した拡大処理(2)の後に、表示倍率を100%に変更する際の処理について説明する。上述では、表示範囲の画像を200%に拡大して画像表示エリア210に表示していたので、ここでは、200%に拡大された表示範囲の画像を表示倍率100%に縮小することになる。ステップS302でユーザ操作があったと判定され、ステップS303でそのユーザ操作が表示倍率変更の操作であると判定されたら、ステップS304で、ユーザ操作により指定された倍率を表示倍率View_Magであるとする。この例では、表示倍率View_Mag=100%となる。
【0099】
次のステップS305で、全体画像の全体を画像表示エリア210に表示可能か否かが判定される。この例では、ウィンドフィットの倍率View_Mag_Fit=40%、表示倍率View_Mag=100%であるので、上述の式(12)が真となり、全体画像の全体を画像表示エリア210に表示できないと判定される。
【0100】
そこで、処理はステップS307に移行され、基準点情報に基づいて表示範囲を算出する。上述したスクロール処理において、基準点が座標baseP(4000,3000)、基準点の位置が(1,1)となっている。したがって、表示範囲の座標i_p1(iX0,iY0),i_p2(iX0,iY1),i_p3(iX1,iY0),i_p4(iX1,iY1)は、式(54)〜式(57)により求められる。
iX0=bX−(ViewArea_W×100/View_Mag)×posX=4000−(1600×100/100)×1=2400 …(54)
iY0=bY−(ViewArea_H×100/View_Mag)×posY=3000−(1200×100/100)×1=1800 …(55)
iX1=iX0+ViewArea_W×100/View_Mag=2400+1600×100/100=4000 …(56)
iY1=iY0+ViewArea_H×100/View_Mag=1800+1200×100/100=3000 …(57)
【0101】
次のステップS309で、全体画像のうちステップS307で求められた表示範囲i_p1(2400,1800),i_p2(2400,3000),i_p3(4000,1800),i_p4(4000,3000)の画像が表示倍率100%で画像表示エリア210に表示される。この場合の表示例は、図8の表示801のようになる。
【0102】
<最遠点を拡大および縮小の基準点とする根拠について>
次に、表示範囲の拡大および縮小の基準点を、全体画像の中心に対する表示範囲の最遠点とする根拠について説明する。先ず、図9を用いて、表示範囲の縦横比と全体画像の縦横比とが一致する場合について説明する。当初、図9(a)に例示されるように、全体画像900の端付近に表示範囲910が配置されているものとする。この状態から表示範囲910を全体画像900に対して拡大し、画像表示エリア210に表示される画像を縮小する場合について考える。
【0103】
表示範囲910における、全体画像900の中心からの最遠点である点901を基準点として表示範囲910を拡大した場合、図9(b)に例示するように、全体画像900から表示範囲910がはみ出す可能性が低い。
【0104】
一方、最遠点を基準とせずに表示範囲910の拡大を行った場合、全体画像900から表示範囲910がはみ出す可能性が高くなってしまう。例えば、表示範囲910における、全体画像900の中心から最も近い点902を基準として表示範囲910を拡大した場合、図9(c)に例示されるように、全体画像900から表示範囲910がはみ出してしまう可能性がある。別の例として、表示範囲910の中心点903を基準として表示範囲910を拡大した場合でも、図9(d)に例示されるように、全体画像900から表示範囲910がはみ出してしまう可能性がある。
【0105】
より詳細に説明する。表示範囲における、全体画像の中心から最も遠い点である最遠点を拡大および縮小の基準とした場合、式(58)および式(59)は、常に真となる。換言すれば、基準点の座標baseP(bX,bY)は、常に全体画像内に存在する。
Image_Width>bX …(58)
Image_Height>bY …(59)
【0106】
また、座標(bX,bY)は、表示範囲内の座標のうち、全体画像の中心から最も遠い点であるので、表示範囲内の座標(bX,bY)以外の点は、座標(bX,bY)よりも全体画像の中心により近くなる。したがって、式(60)〜式(63)は、全て真となる。
Image_Width>iX0 …(60)
Image_Width>iX1 …(61)
Image_Height>iY0 …(62)
Image_Height>iY1 …(63)
【0107】
そして、画像表示エリア210に表示される画像の縮小、すなわち、表示範囲の拡大の際に図4のステップS307において表示範囲を算出する場合も、表示範囲における最遠点を全体画像に対して固定的として表示範囲を更新する。そのため、表示範囲が全体画像からはみ出す可能性が低い。すなわち、式(64)〜式(67)が真になる可能性が高い。
Image_Width>iX0 …(64)
Image_Width>iX1 …(65)
Image_Height>iY0 …(66)
Image_Height>iY1 …(67)
【0108】
次に、表示範囲の縦横比と全体画像の縦横比とが異なる場合について、図10を用いて説明する。当初、図10(a)に例示されるように、全体画像1000の端付近に表示範囲1010が配置されているものとする。この状態から表示範囲1010を全体画像1000に対して拡大し、画像表示エリア210に表示される画像を縮小する場合について考える。
【0109】
表示範囲1010における、全体画像1000に対する最遠点である点1001を基準点として表示範囲1010を拡大した場合、図10(b)に例示されるように、表示範囲1010が全体画像1000からはみ出す領域が少なくなる。この場合、画像表示エリア210の表示において有効な領域が広くなる。
【0110】
一方、最遠点を基準とせずに表示範囲1010の拡大を行った場合、全体画像1000から表示範囲1010がはみ出す可能性が高くなる。この場合、画像表示エリア210の表示において有効な領域が狭くなることになる。
【0111】
例えば、表示範囲1010における、全体画像1000の中心から最も近い点1002を基準として表示範囲1010を拡大した場合、図10(c)に例示されるように、全体画像1000から表示範囲1010がはみ出す領域が広くなる可能性がある。この場合、画像表示エリア210の表示において有効な領域が狭くなってしまう。
【0112】
別の例として、表示範囲1010の中心点1003を基準として表示範囲1010を拡大した場合でも、図10(d)に例示されるように、表示範囲1010が全体画像1000からはみ出す領域が広くなる可能性がある。この場合も、画像表示エリア210の表示において有効な領域が狭くなってしまう。
【0113】
このように、表示範囲1010における全体画像100に対する最遠点1001を拡大および縮小の基準点とした場合、画像表示エリア210において、画像として有効な領域を広く表示できる。そのため、拡大および縮小の基準点を表示範囲における最遠点以外の点、例えば全体画像の中心から最も近い点1002や表示範囲の中心点1003を基準の点とした場合よりも、使い勝手がよいUIをユーザに提供できる。
【0114】
以上説明したように、本発明の第1の実施形態によれば、全体画像の中心から最も遠い表示範囲の座標を基準に、基準点の情報を生成することによって、全体画像から表示範囲がはみ出る状態が抑制できる。また、表示範囲の縦横比が画像本体の縦横比と異なる場合でも、画像として有効な領域を広く表示できるため、使い勝手がよいUIをユーザに提供できる。
【0115】
また、本発明の第1の実施形態によれば、表示範囲が全体画像からはみ出る可能性が少ない。そのため、表示範囲が全体画像からはみ出た際の、表示範囲に対する位置の補正処理を最小限とすることができる。したがって、表示範囲の拡大および縮小を繰り返した際に行った表示範囲に対する位置の補正処理により表示範囲がずれていく現象を抑制することができる。
【0116】
この、表示範囲の拡大および縮小を繰り返した際に行った表示範囲に対する位置の補正処理により、表示範囲がずれていく現象について説明する。表示範囲が全体画像からはみ出すことへの対策として、表示範囲が全体画像内に収まるように、表示範囲の全体画像に対する座標を調整するという方法がある。この方法では、表示範囲の拡大および縮小を繰り返すことで、表示範囲の全体画像に対する位置がずれていってしまう。画像表示エリア210に表示される画像の倍率を変更する操作だけで、確認していた位置がずれていってしまうのは、使い勝手が悪い。
【0117】
図9および図10を用いて、より具体的に説明する。一例として、図9(a)のように表示範囲910が全体画像900の端付近に配置された状態から表示範囲910の大きさを変更し、その後、表示範囲910の大きさを図9(a)の例の大きさに戻す場合について考える。
【0118】
図9(a)の状態から表示範囲910の大きさを拡大し、例えば、図9(c)や図9(d)のように、表示範囲910が全体画像900からはみ出してしまった場合のみ、はみ出した分だけ表示範囲910の座標を調整する。そして、図9(e)に例示されるように、表示範囲910を全体画像900内に収める方法が考えられる。この場合、表示範囲910の座標の調整後に、表示範囲910の大きさを再び図9(a)の大きさに戻した場合、例えば図9(f)に示されるように、表示範囲910の座標を調整した分だけ、表示範囲910の位置が図9(a)の位置に対してずれてしまう。
【0119】
図10の、表示範囲1010の縦横比と全体画像1000の縦横比とが異なる場合でも同様である。一例として、図10(a)のように表示範囲1010が全体画像1000の端付近に配置された状態から表示範囲1010の大きさを変更し、その後、表示範囲1010の大きさを図10(a)の例の大きさに戻す場合について考える。
【0120】
図10(a)の状態から表示範囲1010の大きさを拡大し、例えば、図10(c)や図10(d)のように、表示範囲1010が全体画像1000からはみ出してしまった場合のみ、はみ出した分だけ表示範囲1010の座標を調整する。そして、図10(e)に例示されるように、表示範囲1010の全体画像1000に対するはみ出し部分を最小にする方法が考えられる。この場合、表示範囲1010の座標の調整後に、表示範囲1010の大きさを再び図10(a)の大きさに戻した場合、例えば図10(f)のように、表示範囲1010の座標を調整した分だけ、表示範囲1010の位置が図10(a)の位置に対してずれてしまう。
【0121】
上述した図4のフローチャートでは、表示範囲が変更されるまで基準点の情報を保持している。すなわち、本第1の実施形態では、図4のフローチャートのステップS317による基準点情報の更新処理を、ステップS304による倍率変更の度に行わない。この理由について、図10を用いて説明する。
【0122】
若し、表示倍率を変更する度に基準点の情報の更新を行うと、倍率変更の操作によって、表示範囲の全体画像に対する位置がずれていってしまう。例えば、図10(a)の状態から表示倍率を変更して、図10(g)に例示されるように、表示範囲1010における点1004および点1005が共に全体画像1000に対する最遠点となった場合について考える。
【0123】
この場合、図4のフローチャートにおけるステップS304の処理の後に処理をステップS316に移行させて基準点を算出する処理を行うと、点1004および点1005の中点1006が基準点となる。この状態から表示倍率を図10(a)での値に戻し、表示範囲1010の大きさを図10(a)の場合の大きさに戻す。そして、中点1006を基準点として、図4のフローチャートにおけるステップS307の処理により表示範囲1010を算出する。すると、結果として、表示範囲1010の位置は、図10(h)に例示される位置となってしまい、表示範囲1010の位置が図10(a)の位置に対してずれてしまう。
【0124】
なお、図10(g)に例示されるように、表示範囲1010が全体画像1000に対して水平方向または垂直方向にはみ出る場合にのみ、画像の有効な領域の中心が画像表示エリア210の中央にくるように調整してもよい。その際にも、基準点の情報を更新しないようにすれば、表示倍率を再び図10(a)と同じ倍率にした場合に、図10(a)の状態から表示範囲1010の位置がずれることがない。
【0125】
このように、本発明の第1の実施形態によれば、表示範囲が変更されるまで基準点の情報を保持することによって、表示倍率を変更した際の表示範囲の位置のずれが抑制される。
【0126】
以上説明したように、本発明の第1の実施形態によれば、表示範囲における、全体画像に対する最遠点を表示倍率変更時の表示範囲の拡大および縮小の基準点としている。そのため、表示範囲が全体画像からはみ出る現象が抑制される。
【0127】
また、上述したスクロール処理におけるUIの状態と、拡大処理(2)におけるUIの状態とが共に図7の表示701となり一致する。このことから分かるように、本第1の実施形態では、表示倍率の変更時には表示範囲の拡大および縮小に対する基準点の情報を変更しないため、表示範囲の位置が表示倍率の変更操作のみでずれていく現象が抑制される。
【0128】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本第2の実施形態では、上述した第1の実施形態の処理に加え、表示範囲が全体画像の中央付近にある場合に、表示範囲の中心を拡大および縮小の基準点とする。
【0129】
より具体的には、先ず、表示範囲の中心を基準点として拡大した拡大後の表示範囲が全体画像からはみ出さない表示倍率を求める。そして、ユーザ操作により指定された表示倍率が、拡大後の表示範囲が全体画像からはみ出さない表示倍率以上であれば、表示範囲の拡大処理を、表示範囲の中心を基準点として行う。一方、指定された表示倍率が求められた表示倍率以下であれば、上述した第1の実施形態の方法に従い、表示範囲における全体画像に対する最遠点を基準点として、表示範囲の拡大を行う。
【0130】
換言すれば、拡大後の表示範囲が全体画像からはみ出さない表示範囲の拡大率が、ユーザ操作により指定された表示倍率に応じた表示範囲の拡大率以下であれば、表示範囲の拡大処理を、表示範囲の中心を基準点として行う。一方、拡大後の表示範囲が全体画像からはみ出さない表示範囲の拡大率が、指定された表示倍率に応じた表示範囲の拡大率より大きければ、上述した第1の実施形態の方法に従い、表示範囲における全体画像に対する最遠点を基準点として、表示範囲の拡大を行う。
【0131】
このように、表示範囲を拡大する際の基準点を表示倍率に応じて切り換える理由について、図11および図12を用いて説明する。表示範囲が全体画像の中心付近にある状態で、表示範囲における全体画像の中心からの最遠点を基準点として表示範囲を拡大した場合、画像表示エリア210に対して表示される画像に、却ってずれ感が発生してしまう可能性がある。
【0132】
図11は、ユーザ操作により表示倍率を100%に変更し、その後、スクロール操作により表示範囲の位置を全体画像の中心から右下へと変更した場合の例を示す。スクロール操作の後に図4のフローチャートにおけるステップS316で算出される基準点は、点1101である。この状態から表示倍率を200%に変更すると、ステップS307にて算出される表示範囲に基づき、図12に例示される状態になる。この場合、表示範囲の位置が、図11に例示される位置から右下へ移動し、図13に例示される位置となり、ユーザに対してずれ感を与えてしまう可能性がある。
【0133】
<第2の実施形態による処理>
図13は、本発明の第2の実施形態による一例の表示制御処理を示すフローチャートである。この図13のフローチャートにおける各処理は、CPU101がRAM103上に展開されたプログラムを実行することにより実行される。なお、図13のフローチャートにおいて、上述した図4のフローチャートと共通する処理には同一の符号を付し、説明を省略する。また、上述した第1の実施形態による表示制御装置100は、本第2の実施形態にも同様に適用可能であるものとする。
【0134】
以下、本第2の実施形態による処理の、上述の第1の実施形態による処理と異なる点を中心に説明する。ステップS313によるスクロール操作で変更された表示範囲の算出、あるいは、ステップS314でウィンドフィットの倍率View_Mag_Fitを表示倍率View_Magとする処理の後、処理はステップS415に移行される。
【0135】
ステップS415では、ステップS313またはステップS314で算出された表示範囲の中心を基準点として表示倍率を変更した場合に、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_Nを算出する。この表示倍率View_Mag_Nの算出は、最大範囲算出手段としてのCPU101により、プログラムに従い行われる。
【0136】
倍率View_Mag_Nは、例えば下記のようにして算出する。表示範囲の全体画像における中心の座標centerViewP(centerViewX,centerViewY)は、式(68)および式(69)により求められる。
centerViewX=(iX0+iX1)/2 …(68)
centerViewY=(iY0+iY1)/2 …(69)
【0137】
次に、水平方向について、全体画像の始点から座標centerViewXまでの距離と、座標centerViewXから全体画像の終点までの距離とのうち、短い方の距離minDisXを算出する。
【0138】
なお、全体画像の始点とは、全体画像における原点方向の端をいう。また、全体画像の終点とは、全体画像における原点方向とは逆方向の端をいう。全体画像の始点から座標centerViewXまでの距離は、値centerViewXそのものとなる。また、座標centerViewXから全体画像の終点までの距離は、全体画像の幅Image_Widthから値centerViewXを差し引いた値となる。
【0139】
式(70)が真であれば、距離minDisXは、式(71)のように求められる。一方、式(70)が偽であれば、距離minDisXは、式(72)のように求められる。
centerViewX<Image_Width−centerViewX …(70)
minDisX=centerViewX …(71)
minDisX=Image_Width−centerViewX …(72)
【0140】
垂直方向についても同様にして、全体画像の始点から座標centerViewYまでの距離と、座標centerViewYから全体画像の終点までの距離とのうち、短い方の距離minDisYを算出する。式(73)が真であれば、距離minDisYは、式(74)のように求められる。一方、式(73)が偽であれば、距離minDisYは、式(75)のように求められる。
centerViewY<Image_Height−centerViewY …(73)
minDisY=centerViewY …(74)
minDisY=Image_Height−centerViewY …(75)
【0141】
次に、表示範囲の中心を基準に表示倍率を変更して水平方向にはみ出ない最小の表示倍率View_Mag_HorNを、式(76)に従い求める。また、表示範囲の中心を基準に表示倍率を変更して垂直方向にはみ出ない最小の表示倍率View_Mag_VerNを、式(76)に従い求める。
View_Mag_HorN=ViewArea_W×100/(minDisX×2) …(76)
View_Mag_VerN=ViewArea_H×100/(minDisY×2) …(77)
【0142】
求めた表示倍率View_Mag_HorNと表示倍率View_Mag_VerNとを比較し、値が大きい方を、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_Nとして採用する。すなわち、式(78)が真であれば、表示倍率View_Mag_Nは、式(79)で求められる。また、式(78)が偽であれば、倍率View_Mag_Nは、式(80)で求められる。
View_Mag_HorN<View_Mag_VerN …(78)
View_Mag_N=View_Mag_VerN …(79)
View_Mag_N=View_Mag_HorN …(80)
【0143】
処理はステップS416に移行され、ユーザ操作により指定された表示倍率が、ステップS415で求めた最小の表示倍率View_Mag_N以上の場合の基準点の座標baseCP(bcX,bcY)を算出する。この場合、式(81)および式(82)に示されるように、表示範囲の全体画像における中心の座標centerViewP(centerViewX,centerViewY)そのものが基準点の座標baseCP(bcX,bcY)となる。
bcX=centerViewX …(81)
bcY=centerViewY …(82)
【0144】
次のステップS417で、ユーザ操作により指定された表示倍率が、ステップS415で求めた最小の表示倍率View_Mag_N以下の場合の基準点の座標baseSP(bsX,bsY)を算出する。この場合、座標baseSP(bsX,bsY)は、拡大および縮小の基準点を表示範囲の中心として表示倍率を倍率View_Mag_Nにしたときに、表示範囲における全体画像の中心からの最遠点の座標とする。
【0145】
基準点を表示範囲の中心として表示倍率を倍率View_Mag_Nにしたときの表示範囲(i_p1,i_p2,i_p3,i_p4)は、上述した式(13)〜式(16)から求められる。このとき、式(13)〜式(16)の変数bX、bY、View_Mag、posXおよびposYは、それぞれ式(83)〜式(87)に示す値が代入される。また、その際の、表示範囲における全体画像の中心からの最遠点の座標は、上述した式(6)〜式(11)から求められる。
bX=bcX …(83)
bY=bcY …(84)
View_Mag=View_Mag_N …(85)
posX=0.5 …(86)
posY=0.5 …(87)
【0146】
処理はステップS418に移行され、基準点情報として下記の(i)〜(iv)の情報が保持される。なお、倍率View_Mag_N未満の場合の基準点の位置については、図4のフローチャートにおけるステップS317の場合と同様に、数値で保持する。
(i) 倍率View_Mag_N
(ii) 倍率View_Mag_Nを超えるの場合の基準点(中心の点)=baseCP(bcX,bcY)
(iii)倍率View_Mag_N以下の場合の基準点(最遠点)=baseSP(bsX,bsY)
(iv) 倍率View_Mag_N以下の場合の基準点の位置(最遠点)
【0147】
一方、ステップS305で、全体画像の全体を画像表示エリア210に表示可能であるか否かの判定により、全体画像の全体を画像表示エリア210に表示できないと判定された場合、処理がステップS406に移行される。ステップS406では、表示倍率View_Magが倍率View_Mag_N以下か否かが判定される。
【0148】
若し、表示倍率View_Magが倍率View_Mag_N以下であると判定された場合には、処理はステップS407に移行される。ステップS407では、上述のステップS418で保持した、倍率View_Mag_N以下の場合の基準点(最遠点)=baseSP(bsX,bsY)と、基準点の位置の情報とを用いて、表示範囲を算出する。表示範囲の算出方法は、図4のステップS307において説明した方法と同様である。
【0149】
一方、ステップS406で、表示倍率View_Magが倍率View_Mag_N以下ではない、すなわち、表示倍率View_Magが倍率View_Mag_N以上であると判定されたら、処理はステップS408に移行される。ステップS408では、上述のステップS418で保持した、倍率View_Mag_N以上の場合の基準点(中心の点)=baseCP(bcX,bcY)と、を用いて表示範囲を算出する。表示範囲の算出方法は、図4のステップS307において説明した方法と同様である。このときの基準点の位置(posX,posY)は、(0.5,0.5)とする。
【0150】
ステップS407またはステップS408で表示範囲が算出されると、処理はステップS309に移行され、上述したようにして画像表示エリア210に対する画像表示がなされる。
【0151】
<第2の実施形態による表示の例>
次に、本第2の実施形態による処理を、図13のフローチャートと、図11、ならびに、図14〜図16とを用いてより具体的に説明する。図11は、表示倍率を100%に変更した後に、スクロール操作を行った後の状態とする。また、表示範囲が全体画像からはみ出さない最小の表示倍率View_Mag_N(以下、最小の表示倍率View_Mag_Nと略称する)が55%であるものとする。
【0152】
図11の状態から表示倍率を200%に変更した場合、図13のステップS306において、表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定される。そして、スクロール操作後の表示範囲の中心の点1102を基準点として表示範囲を算出する。その結果、UI画面200の状態は、図14に例示されるようになる。表示範囲の中心を基準点として表示範囲の縮小、すなわち、画像表示エリア210に表示される画像の拡大を行うため、表示範囲の最遠点1101を基準点として表示範囲を算出した図12の例と異なり、ずれ感が抑制されている。
【0153】
図14の状態から表示倍率を55%、すなわち、最小表示倍率View_Mag_Nと同一の倍率に変更した場合は、ステップS306で表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定される。したがって、表示範囲は、スクロール操作後の中心の点1102を基準点として算出される。その結果、UI画面200の状態は、図15に例示されるようになる。
【0154】
図15の状態から表示倍率を50%に変更した場合は、ステップS306で表示倍率View_Magが最小表示倍率View_Mag_N以下であると判定される。表示範囲は、したがって、図15に例示される、表示範囲の全体画像に対する最遠点1401を基準点として算出される。その結果、UI画面200の状態は、図16に例示されるようになる。表示倍率View_Magが最小表示倍率View_Mag_N以下である場合には、表示倍率が最小表示倍率View_Mag_Nのときの表示範囲における、全体画像の中心からの最遠点を基準点として表示範囲が算出される。そのため、表示範囲が全体画像の外にはみ出る現象が抑制される。
【0155】
また、図11に例示される状態から表示倍率を50%に変更し、さらにその後、表示倍率を100%に変更する場合について考える。この場合、ステップS306で、表示倍率View_Magが最小表示倍率View_Mag_N以下ではないと判定され、スクロール操作後の中心の点1102を基準点として表示範囲が算出される。その結果、UI画面200の状態は、図11に例示される状態に戻る。表示倍率の変更操作で基準点の情報を変更していないため、このように、最初の状態に戻すことができる。
【0156】
以上説明したように、本発明によれば、表示範囲における全体画像に対する最遠点を表示倍率変更の際の基準点としているため、表示倍率変更後に表示範囲が全体画像からはみ出ることが抑制される。
【0157】
また、本発明によれば、表示倍率変更時には基準点の情報を変更しないため、表示範囲の全体画像に対する位置が表示倍率の変更のみでずれていく問題が発生しない。加えて、本発明の第2の実施形態によれば、表示範囲が全体画像の中央付近の状態にて表示範囲の拡大を行った場合のずれ感が抑制される。
【0158】
<他の実施形態>
なお、上述した各実施形態においては、本発明がコンピュータに適用されるものとして説明したが、これはこの例に限られない。例えば、本発明は、デジタルカメラなどの撮像装置における、撮影済み画像の表示を行う際の表示制御に適用してもよい。一例として、メモリカードなどの、デジタルカメラが読み取り可能な記録媒体に記録された撮影済み画像を、デジタルカメラが備える背面液晶表示デバイスなどのディスプレイに表示し、拡大や縮小をする際にも本発明を適用可能である。さらに、携帯電話端末や携帯型の画像ビューワ、プリンタ装置における印刷確認用のディスプレイ、デジタルフォトフレームなど、画像を表示して拡大縮小処理の可能な装置であれば本発明を適用可能である。
【0159】
なお、本発明の目的は、上述した各実施形態の機能を実現するプログラムを記録した記録媒体をシステムや装置に供給し、そのシステムや装置のコンピュータ(CPU、MPU)が記録媒体からプログラムを読み出し実行することでも達成できる。この場合、記憶媒体から読み出されたプログラムコード自体が上述した各実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0160】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性の半導体メモリ、ROM、DVDなどを用いることができる。プログラムコードをネットワークを介してダウンロードしてもよい。
【0161】
また、コンピュータが読み出したプログラムを実行することにより、上述した各実施形態の機能が実現されるのに限られない。すなわち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含まれる。なお、OSは、Operating Systemの略称である。
【0162】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入または接続された機能拡張ユニットなどに備わるメモリに書き込まれるような場合にも、本発明を適用可能である。すなわち、当該メモリに書き込まれたプログラムの指示に基づき、その機能拡張ユニットなどに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含まれる。
【符号の説明】
【0163】
100 表示制御装置
101 CPU
103 RAM
104 表示制御部
105 ハードディスク
106 入力部
107 ドライブ装置
200 UI画面
200A プレビュー画面
200B ナビゲータ画面
210 画像表示エリア
211 ファイル指定部
212 表示倍率指定部
215 水平スクロールバー
216 垂直スクロールバー
220 ナビゲータ画像表示エリア
221 枠

【特許請求の範囲】
【請求項1】
画像に対して設定された表示範囲に含まれる該画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して該表示エリアに表示させる表示制御装置であって、
前記表示範囲における前記画像の中心から最も遠い点を求める算出手段と、
ユーザ操作に応じて前記表示範囲の大きさを変更する変更手段と、
前記表示範囲に含まれる前記部分画像の画像サイズを、前記表示サイズに適合するように変更して前記表示エリアに表示させる表示制御手段と
を有し、
前記変更手段は、
前記算出手段で求められた前記最も遠い点の前記画像に対する位置が変化しないように、前記表示範囲の大きさを変更する
ことを特徴とする表示制御装置。
【請求項2】
前記画像における現在の前記表示範囲を拡大したときに、拡大された該表示範囲が前記画像からはみ出ない最大の該表示範囲の大きさを求める最大範囲算出手段をさらに有し、
前記変更手段は、
前記表示範囲の大きさの変更を行う際に、該変更の後の該表示範囲の大きさと前記最大範囲算出手段で算出された前記最大の表示範囲の大きさとを比較し、
前記比較の結果、前記変更の後の表示範囲の大きさが前記最大の表示範囲の大きさ以下であれば、前記変更の前の前記表示範囲の中心の前記画像に対する位置が変化しないように、前記表示範囲の大きさの変更を行う
ことを特徴とする請求項1に記載の表示制御装置。
【請求項3】
前記変更手段は、
前記最も遠い点の情報を、前記表示範囲の前記画像に対する前記最も遠い点の位置が変更されるまで保持する
ことを特徴とする請求項1または請求項2に記載の表示制御装置。
【請求項4】
前記算出手段は、
前記最も遠い点が複数存在する場合、該複数の該最も遠い点から等距離にある点を前記最も遠い点として求める
ことを特徴とする請求項1乃至請求項3の何れか1項に記載の表示制御装置。
【請求項5】
画像に対して設定された表示範囲に含まれる該画像の部分画像を、表示エリアの表示サイズに適合するように画像サイズを変更して該表示エリアに表示させる表示制御方法であって、
前記表示範囲における前記画像の中心から最も遠い点を求める算出ステップと、
ユーザ操作に応じて前記表示範囲の大きさを変更する変更ステップと、
前記表示範囲に含まれる前記部分画像の画像サイズを、前記表示サイズに適合するように変更して前記表示エリアに表示させる表示制御ステップと
を有し、
前記変更ステップは、
前記算出ステップで求められた前記最も遠い点の前記画像に対する位置が変化しないように、前記表示範囲の大きさを変更する
ことを特徴とする表示制御方法。
【請求項6】
コンピュータに請求項1乃至請求項4の何れか1項に記載の表示制御装置の各手段として機能させるためのプログラム。
【請求項7】
コンピュータに請求項1乃至請求項4の何れか1項に記載の表示制御装置の各手段として機能させるためのプログラムを記録したコンピュータに読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−181637(P2010−181637A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−25098(P2009−25098)
【出願日】平成21年2月5日(2009.2.5)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】