(57)【要約】【課題】ユーザが１ステップの操作を行うだけで移動及び拡大を行うことができ、かつ印刷時の構図を把握しながらトリミングを行うことができる画像編集技術を提供することを課題とする。【解決手段】画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、演算された画像の移動量及び拡大率に応じて画像データの所定領域を画像表示領域に表示する表示ステップとを有することを特徴とする画像編集方法が提供される。【選択図】        図４
2004180267.tif 000002
【特許請求の範囲】
【請求項１】
画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、
前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、
前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップと
を有することを特徴とする画像編集方法。
【請求項２】
前記画像表示領域は、印刷される画像領域を示す画像印刷領域である請求項１記載の画像編集方法。
【請求項３】
さらに、前記画像表示領域に表示される画像の印刷を指示する印刷指示ステップを有する請求項２記載の画像編集方法。
【請求項４】
前記表示ステップは、前記指示ステップにより移動方向と逆方向の画像データの端を越えて画像の移動指示がされたときに、その越えた移動量に応じて画像を拡大して表示することを特徴とする請求項１〜３のいずれか１項に記載の画像編集方法。
【請求項５】
前記表示ステップは、前記拡大率にかかわらずに、前記指示ステップで指示した移動前の点の画像が移動後の点に移動するように表示することを特徴とする請求項１〜４のいずれか１項に記載の画像編集方法。
【請求項６】
前記演算ステップは、前記指示ステップで指示した移動前の点の画像を移動後の点に移動させ、かつ前記画像表示領域内に空白ができないように、画像の移動量及び拡大率を演算することを特徴とする請求項５記載の画像編集方法。
【請求項７】
前記表示ステップは、前記指示ステップによる移動指示中に、前記演算ステップにより演算された画像の移動量及び拡大率に応じて画像データを前記画像表示領域に表示することを特徴とする請求項１〜６のいずれか１項に記載の画像編集方法。
【請求項８】
前記表示ステップは、前記指示ステップによる移動指示中には前記演算ステップにより演算された画像の移動量に応じて画像サイズを変えずに画像データを表示し、前記指示ステップによる移動指示終了時には前記演算ステップにより演算された画像の移動量及び拡大率に応じて画像データを表示することを特徴とする請求項１〜６のいずれか１項に記載の画像編集方法。
【請求項９】
前記演算ステップは、前記指示ステップによる移動指示中に指示された移動位置を基に拡大率を演算することを特徴とする請求項１〜７のいずれか１項に記載の画像編集方法。
【請求項１０】
前記演算ステップは、前記指示ステップによる移動指示開始時に指示された移動位置を基に拡大率を演算することを特徴とする請求項１〜７のいずれか１項に記載の画像編集方法。
【請求項１１】
画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示手段と、
前記移動指示に応じて画像の移動量及び拡大率を演算する演算手段と、
前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示手段と
を有することを特徴とする画像編集装置。
【請求項１２】
画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、
前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、
前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップと
をコンピュータに実行させるためのプログラム。
【請求項１３】
画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、
前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、
前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
画像データ上にトリミング領域を重ねて表示する画像表示ステップと、
表示された画像の指定点を指示する指示ステップと、
前記指定点を移動する移動ステップと、
所定の条件に基づき移動後のトリミング領域の位置及び拡大率を演算する演算ステップと、
前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップと
を有することを特徴とする画像編集方法。
【請求項１５】
前記演算ステップは、移動前後の点の位置を画像データ上の不動点としてかつ、トリミング領域内に空白ができないように、トリミング領域の位置及び拡大率を演算することを特徴とする請求項１４記載の画像編集方法。
【請求項１６】
前記演算ステップは、前記移動ステップによる移動中及び移動後に、トリミング領域の位置及び拡大率を演算することを特徴とする請求項１４記載の画像編集方法。
【請求項１７】
前記演算ステップは、移動中の状態を基に拡大率を演算することを特徴とする請求項１４記載の画像編集方法。
【請求項１８】
前記演算ステップは、移動前の状態を基に拡大率を演算することを特徴とする請求項１４記載の画像編集方法。
【請求項１９】
前記指示ステップは、前記画像の指定点としてトリミング領域の黄金分割点を指定することを特徴とする請求項１４記載の画像編集方法。
【請求項２０】
前記指示ステップは、前記画像の指定点としてトリミング領域の三分割点を指定することを特徴とする請求項１４記載の画像編集方法。
【請求項２１】
画像データ上にトリミング領域を重ねて表示する画像表示手段と、
表示された画像の指定点を指示する指示手段と、
前記指定点を移動する移動手段と、
所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算手段と、
前記演算した拡大率及び位置に基づきトリミング領域を描画する描画手段と
を有することを特徴とする画像編集装置。
【請求項２２】
画像データ上にトリミング領域を重ねて表示する画像表示ステップと、
表示された画像の指定点を指示する指示ステップと、
前記指定点を移動する移動ステップと、
所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算ステップと、
前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップと
をコンピュータに実行させるためのプログラム。
【請求項２３】
画像データ上にトリミング領域を重ねて表示する画像表示ステップと、
表示された画像の指定点を指示する指示ステップと、
前記指定点を移動する移動ステップと、
所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算ステップと、
前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像編集技術に関し、特にデジタルスチルカメラ又はデジタルビデオカメラ等によって撮影した静止画像や動画像を表示及び／又は印刷する際に画像を表示しながら、画像の構図を調整する技術に関する。
【０００２】
【従来の技術】
デジタルカメラで撮影した画像データを取り込み、ディスプレイ装置に表示し、マウス又はリモコンなどのポインタ装置を使って画像の任意の領域をトリミング領域として指定し、印刷する機能は一般的である。図６はごく一般的なトリミング処理の例を示している。すなわち、図６においてトリミング前の画像601にトリミング枠602を重ねて表示し、ユーザがトリミング枠602を縮小・拡大、回転、移動させて画像601の希望する部分を指定することで、最終的にユーザの希望する構図となったトリミング画像603を得るというものである。
【０００３】
一方、同様のトリミング画像を得るための、異なる操作形式の従来技術としては、例えば下記の特許文献１のように、所定の画像編集ソフトウエアが格納されたデジタル画像編集装置にテレビを接続し、その画面の表示エリアに適合するように画像データを表示し、次に画像データをテレビの表示エリアを越える大きさに拡大し、拡大された画像データを外部からの指示に応じた方向に移動させて表示エリア内に表示されるように、画像データを変更するものが知られている。下記の特許文献２は同様な方法をデジタルカメラに適用したもので、拡大操作用の十字キーと位置指定用の十字キーを具備することを特徴としている。
【０００４】
また別の従来技術としては、下記の特許文献３のように、人物の顔が写された画像データを表示し、所定の２箇所を指示手段によって指示し、指定された２点を基に出力紙サイズに最適な顔の大きさ、位置になる画像の拡大／縮小率を求め、所定の位置に画像をプリントする方法も知られている。
【０００５】
【特許文献１】
特開２０００−８３２２２号公報
【特許文献２】
特開２０００−２１７０２４号公報
【特許文献３】
特開平１１−３４１２７２号公報
【０００６】
【発明が解決しようとする課題】
しかし、図６のタイプのトリミング操作は、画像全体を見ながらトリミング枠を縮小、移動するために、元の画像のどの部分を切り出そうとしているかはわかり易い反面、実際の印刷領域に印刷された時の構図から得られる印象を把握するのが難しいという欠点がある。
【０００７】
これに対して、特許文献１や特許文献２の方式は、印刷後の構図が容易にわかるという点では優れているが、トリミングを行う際には、いったん画像を拡大し、その後、位置を変更するための移動をするため、拡大操作及び移動操作の２ステップになっていた。
【０００８】
また、特許文献３は証明写真を作成する際に、印刷する紙の大きさにあわせて、顔の大きさや位置が好適になることを目的としており、ユーザが指定するポイントはあらかじめ頭の頂点と顎の先端のように決められており、一般のスナップショットの画角修正とは用途が異なった。
【０００９】
本発明の目的は、ユーザが１ステップの操作を行うだけで、移動及び拡大（縮小）を行うことができる画像編集技術を提供することである。
本発明の他の目的は、印刷時の構図を把握しながらトリミングを行うことができる画像編集技術を提供することである。
【００１０】
【課題を解決するための手段】
本発明の一観点によれば、画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップとを有することを特徴とする画像編集方法が提供される。
本発明の他の観点によれば、画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示手段と、前記移動指示に応じて画像の移動量及び拡大率を演算する演算手段と、前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示手段とを有することを特徴とする画像編集装置が提供される。
本発明のさらに他の観点によれば、画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップとをコンピュータに実行させるためのプログラムが提供される。
本発明のさらに他の観点によれば、画像データのうちの画像表示領域に表示された画像の任意の点を移動指示する指示ステップと、前記移動指示に応じて画像の移動量及び拡大率を演算する演算ステップと、前記演算された画像の移動量及び拡大率に応じて画像データの所定領域を前記画像表示領域に表示する表示ステップとをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
本発明のさらに他の観点によれば、画像データ上にトリミング領域を重ねて表示する画像表示ステップと、表示された画像の指定点を指示する指示ステップと、前記指定点を移動する移動ステップと、所定の条件に基づき移動後のトリミング領域の位置及び拡大率を演算する演算ステップと、前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップとを有することを特徴とする画像編集方法が提供される。
本発明のさらに他の観点によれば、画像データ上にトリミング領域を重ねて表示する画像表示手段と、表示された画像の指定点を指示する指示手段と、前記指定点を移動する移動手段と、所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算手段と、前記演算した拡大率及び位置に基づきトリミング領域を描画する描画手段とを有することを特徴とする画像編集装置が提供される。
本発明のさらに他の観点によれば、画像データ上にトリミング領域を重ねて表示する画像表示ステップと、表示された画像の指定点を指示する指示ステップと、前記指定点を移動する移動ステップと、所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算ステップと、前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップとをコンピュータに実行させるためのプログラムが提供される。
本発明のさらに他の観点によれば、画像データ上にトリミング領域を重ねて表示する画像表示ステップと、表示された画像の指定点を指示する指示ステップと、前記指定点を移動する移動ステップと、所定の条件に基づき移動後のトリミング領域の拡大率及び位置を演算する演算ステップと、前記演算した拡大率及び位置に基づきトリミング領域を描画する描画ステップとをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００１１】
本発明によれば、画像表示領域の画像の任意の点を移動指示すると、必要に応じて画像が拡大され、指示された位置まで画像を移動させることができる。例えば、画像中の中央部の人物を右端に寄せたい場合、１回の人物の移動指示操作で所望の移動及び拡大をし、好ましい構図の画像を得ることができる。また、移動指示中に、演算された画像の移動量及び／又は拡大率に応じて画像データを表示することにより、編集後の構図を把握しながらトリミングを行うことができる。
【００１２】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
（第１の実施形態）
図１は、本発明の第１〜第５の実施形態による画像編集装置のハードウエア構成を示している。１０１はコンピュータソフトウエアプログラムを実行するCPU（中央演算処理装置）、１０２はプログラムを記憶しておくROM（リードオンリメモリ）、１０３はプログラム実行時に使用するRAM（ランダムアクセスメモリ）、１０４はプログラム格納用のハードディスクドライブ（ＨＤＤ）、１０５はプログラムやデータをフレキシブルディスクや、MO（光磁気ディスク）などの媒体に記憶するための記憶装置、１０６はプログラムの実行結果や、実行状態を表示するためのディスプレイ装置、１０７はメモリカードを挿し込みデータの読み書きをするためのメモリカードインタフェース、１０８はマウス、１０９はプリンタ、１１０はバスである。
【００１３】
本実施形態では、画像をディスプレイ１０６に表示するための表示用メモリ座標系と、画像データ上の位置を表現するための画像座標系という二つの座標系を用いて、マウス１０８が移動した後に画像データから切り出すべき領域、およびディスプレイ１０６上に表示するために描画する際の拡大率を決定し、最後に表示用メモリ領域へ書き込む。
【００１４】
（表示用メモリ座標系の説明）
表示用メモリ座標系を図５の503に示す。x=y=0を原点として図面上、右方向にx軸、下方向にy軸が伸びている。画像は原点（0,0）を画像の左上点として、幅cWidth、高さcHeightの表示領域に描画される。マウスによる座標指定もこの表示用メモリ座標系で行われる。表示中の画像の任意の点をマウスによってドラッグすると、移動前の点（x0,y0）から移動後の点(x1,y1)へマウスの示す座標が変化する(510)。ドラッグは、マウスの左ボタンを押しながらマウスを移動させる操作であり、左ボタンを押した座標が移動前の点（x0,y0）であり、左ボタンを離した座標が移動後の点(x1,y1)である。
【００１５】
（画像座標系の説明）
もう一つの座標系である画像座標系を図５の501及び502に示す。501はマウスのドラッグによる移動前の状態を示し、502は移動後の状態を示している。図５において504は画像の外郭、505及び507はトリミング領域を示すトリミング枠、506及び508はマウスにより指定された座標を示す。画像の外郭504のx軸の長さが１になるように、画像座標系は正規化されている。画像座標系におけるマウスの座標506は表示座標系の(x0,y0)に対応し、移動後のマウスの座標508は表示座標系の(x1,y1)に対応している。さらに、ディスプレイ上で画像の任意の点を指定し、そこをつまんで移動（ドラッグ）するということは、画像座標系上でのマウスが指定している点は移動前の点506と移動後の点508で不変、ということである。また、移動前後で画像の外郭504は不変で、トリミング枠は505から507へ左に移動する。
【００１６】
例えば、ユーザは、ディスプレイに表示された主被写体の位置を変えることにより、適切な構図を構成するためのトリミングを行うことができる。まず、ユーザは、主被写体が位置する表示座標系(x0,y0)にマウスのポインタを合わせ、その表示座標系(x0,y0)から(x1,y1)にドラッグすることにより、主被写体の位置を真中から右側へ移動させることができる。ドラッグ操作によりマウスポインタを移動させると、主被写体はマウスポインタを追従するように移動する。したがって、移動前及び移動後の画像座標系のマウス位置506及び508は共に同じ主被写体の位置を示すことになる。表示座標系では主被写体を(x0,y0)から(x1,y1)へ右に移動させる指示をしたので、画像座標系では主被写体の位置506，508の位置は変わらず、トリミング枠が移動前のトリミング枠505から移動後のトリミング枠507への左に移動することになる。トリミング枠505及び507は、ディスプレイの表示領域のサイズに合うように拡大率が決定される。トリミング枠505及び507はサイズが同じであり、移動前と移動後では画像の拡大率が同じである。そして、トリミング枠505，507の左上座標と表示座標系(0,0)の位置が一致するようにディスプレイに表示される。
【００１７】
次に、図４の表示座標系403、ドラッグ移動前の画像座標系401、及びドラッグ移動後の画像座標系402について説明する。図５の移動前の画像座標系501ではトリミング枠505が画像外郭404の内側にあるのに対し、図４の移動前の画像座標系401ではトリミング枠405の左端が画像外郭404の左端に接している点が異なる。
【００１８】
図５と同様に、マウスのドラッグ操作により表示座標系(x0,y0)から(x1,y1)へ移動させる場合を説明する。仮に、図５と同様に、移動前のトリミング枠405を左に移動させようとするとトリミング枠405が画像外郭404をはみ出してしまい、トリミング枠405内に画像データが存在しない領域が入り込んでしまう。そこで、図４に示すように、移動後のトリミング枠407は、左端を画像外郭404の左端に合わせ、トリミング枠407のサイズを移動前のトリミング枠405より小さくする。移動前後のマウス位置406及び408は同じ主被写体を示している。トリミング枠405及び407内の画像は、ディスプレイのサイズに拡大される。したがって、移動後のトリミング枠407内の表示画像の拡大率は、移動前のトリミング枠405内の表示画像の拡大率よりも大きい。すなわち、このトリミング操作により、ディスプレイ上の主被写体は右に移動すると共に拡大する。結果として、移動する処理と拡大する処理を、１ステップのドラッグ操作で行うことができる。
【００１９】
以上のように、ドラッグにより移動方向と逆方向の画像の外郭404の端を越えてトリミング枠405の移動指示がされたときに、その越えた移動量に応じて画像を拡大して表示する。また、拡大率にかかわらずに、ドラッグで指示した移動前の点の画像が移動後の点に移動するように表示する。具体的には、指示した移動前の点の画像を移動後の点に移動させ、かつトリミング枠内に空白ができないように、画像の移動量及び拡大率を演算して表示する。
【００２０】
図２は、本発明の第１の実施形態による画像編集方法の処理を示すフローチャートである。以下、フローチャートに従い本発明の第１の実施形態を説明する。マウスのドラッグ操作が行われると、以下の処理を開始する。
【００２１】
ステップS201では、その時点での、画像座標系上のクリッピング枠（トリミング枠）の位置(Ix,Iy)、幅Iw、高さIhを求める。すなわち、図４及び図５に示すように、画像外郭404,504の左上の点の位置を(0,0)とし、画像座標系におけるクリッピング枠405,505の左上の点の位置を（Ix,Iy）、クリッピング枠405,505の幅と高さを（Iw,Ih）へ代入する。
【００２２】
ステップS202では表示メモリ座標系における移動開始前のマウスの位置座標を取得し、(x0,y0)へ代入する。
【００２３】
ステップS203ではマウスの動きを捕捉するためにあらかじめ設定された一定時間の待ちを設ける。
【００２４】
ステップS204では表示メモリ座標系における移動後のマウスの位置座標を取得し、(x1,y1)へ代入する。
【００２５】
ステップS205では、図４及び図５に示すように、新たなクリッピング枠407,507の位置(x',y')、幅w'、高さh'を求めると共に拡大率を求める。x,'y',w',h'の算出方法については後述する。
【００２６】
ステップS206では、ステップS205で求めた、x,'y',w',h'で指定される新たなクリッピング枠407,507内の画像を読み出し、もとめた拡大率で表示メモリ座標系へ描画する。これにより、ディスプレイに画像が表示される。
【００２７】
ステップS207で、マウスのドラッグが終了したかどうかを判定し、終了していれば処理を終わり、終了していなければステップS201に戻り、同様の処理を繰り返す。処理が終了すると、トリミング後の画像を印刷したり、保存する。クリッピング枠は、印刷される画像領域を示す画像印刷領域である。ユーザがクリッピング枠に表示される画像の印刷を指示すると、クリッピング枠の画像が印刷される。
【００２８】
上記の画像編集処理を行うことにより、ドラッグ操作中は、マウスポインタを追従するように主被写体が移動及び／又は拡大して随時表示されるので、印刷時の構図を把握しながらトリミングを行うことができる。
【００２９】
次に、ステップS205における、クリッピング枠の位置(x',y')、幅w'、高さh'の算出方法を示す。ここでは説明を容易にするために、マウスの動きを横方向に左から右へ、すなわちX軸の正方向に動かす場合について説明する。逆方向、上下方向、斜め方向についても同様の方法で可能である。
【００３０】
新たなクリッピング枠の位置、幅、高さを求める方法は、初期状態において２つの場合に分けて考える。１つは、図４の401に示したように、クリッピング枠405が画像の外郭404と接している場合、すなわちx=0の場合である。もう１つは、図５の501に示したように、クリッピング枠505が画像の外郭504と接していない場合、すなわちx≠0の場合である。
【００３１】
図４のx=0の場合は、次式で求められる。
x'=0(画像の左端辺と接しているから)-------(1)
w'=w×x0/x1--------(2)
h'=h×w'/w ---------(3)
y'=y+h×y0/cHeight-h'×y1/cHeight----(4)
【００３２】
図５のx≠0の場合は、次式で求められる。
w'=w --------------(5)
x'=x-(x1-x0)×w/cWidth ------(6)
y'=y
h'=h
【００３３】
（第１の実施形態の効果）
第１の実施形態によれば、画像データのうちの画像表示領域に表示された画像の任意の点を移動指示すると、移動指示に応じて画像の移動量及び拡大率を演算し、演算された画像の移動量及び拡大率に応じて画像データの所定領域を画像表示領域に表示する。
本実施形態によると、トリミング枠内の印刷領域のみを表示しながら、マウスやペンなどで画像の任意の部分を指定して、そこをつかんだままドラッグしたときに、必要に応じて画像が拡大され、好みの位置まで画像を移動することができる。例えば、中央部に人物が映っている画像をトリミングにより、人物を右端に寄せたい場合、従来は、いったん拡大してから、移動する必要があったが、本実施形態によれば、配置したい位置まで人物の部分をドラッグするだけで、人物が移動し、必要に応じて画像が拡大されるため、１回の操作で好ましい構図の画像を得ることが可能となる。
【００３４】
（第２の実施形態）
図７は、本発明の第２の実施形態による画像編集方法の処理を示すフローチャートである。以下、フローチャートに従い本発明の第２の実施形態を説明する。マウスのドラッグ操作が行われると、以下の処理を開始する。
【００３５】
ステップS701では、その時点での、画像座標系上のクリッピング枠（トリミング枠）の位置(Ix,Iy)、幅Iw、高さIhを求める。上記と同様に、画像座標系におけるクリッピング枠の左上の点の位置を（Ix,Iy）、クリッピング枠の幅と高さを（Iw,Ih）へ代入する。
【００３６】
ステップS702では表示メモリ座標系における移動開始前のマウスの位置座標を取得し(x0,y0)へ代入する。
【００３７】
ステップS703ではマウスの動きを捕捉するためにあらかじめ設定された一定時間の待ちを設ける。
【００３８】
ステップS704では表示メモリ座標系における移動後のマウスの位置座標を取得し(x1,y1)へ代入する。
【００３９】
ステップS705では新たなクリッピング枠の位置(x',y')、幅w'、高さh'を求めると共に拡大率を求める。x,'y',w',h'の算出方法については第１の実施形態と基本的に同様である。その詳細は、後に説明する。
【００４０】
ステップS706では、ステップS705で求めた、x,'y',w',h'で指定される新たなクリッピング枠内の画像を読み出し、もとめた拡大率で表示メモリ座標系へ描画する。これにより、ディスプレイ上に画像が表示される。
【００４１】
ステップS707で、マウスのドラッグが終了したかどうかを判定し、終了していれば処理を終わり、終了していなければステップS703に戻る。この戻り先が第１の実施形態との明確な差異である。第１の実施形態では先頭のステップS201まで戻っていた。
【００４２】
第２の実施形態（図７）のステップS705では、新たなクリッピング枠を、常にステップS701,S702で取得した移動指示開始時の初期の変動しないクリッピング枠情報Ix,Iy,Iw,Ih及びマウス位置(x0,y0)を用いて算出する。これに対して、第１の実施形態（図２）のステップS205では、新たなクリッピング枠を、ステップS201,S202で取得したドラッグ（移動指示）中に変動するクリッピング枠情報Ix,Iy,Iw,Ih及びマウス位置(x0,y0)を用いて算出する。
【００４３】
第１及び第２の実施形態は、図４に示すように、表示座標(x0,y0)から(x1,y1)にドラッグしたときに、クリッピング枠405からクリッピング枠407に変化する点は同じである。その後、表示座標(x1,y1)から(x0,y0)へ戻すドラッグ操作を行うときに、第１及び第２の実施形態は異なる。
【００４４】
第１の実施形態は、図９に示すように、表示座標(x1,y1)から(x0,y0)へドラッグすると(910)、トリミング枠905からトリミング枠907へ変化する。すなわち、拡大率（画像サイズ）は変わらずにドラッグした主被写体のみが左へ移動する。
【００４５】
これに対し、第２の実施形態は、図４のトリミング枠407から元のトリミング枠405へ戻る。すなわち、表示座標系を(x0,y0)→(x1,y1)→(x0,y0)の順でドラッグすると、トリミング枠405→トリミング枠407→トリミング枠405の順で変化する。第２の実施形態は可逆性があり、第１の実施形態は可逆性がない。
【００４６】
（第２の実施形態の効果）
本実施形態によると、トリミング枠内の印刷領域のみを表示しながら、マウスやペンなどで画像の任意の部分を指定して、そこをつかんだままドラッグしたときに、必要に応じて画像が拡大され、好みの位置まで画像を移動することができるだけでなく、一連のドラッグ中にマウスの移動方向が逆になったときに、ドラッグ開始の状態を限度として画像を縮小する。これにより、マウスを必要以上に移動させて画像が大きくなりすぎた場合に、マウスを逆方向に移動することで、元の画像の大きさに近づけることが可能となる。
【００４７】
（第３の実施形態）
図３は、本発明の第３の実施形態による画像編集方法の処理を示すフローチャートである。以下、フローチャートに従い本発明の第３の実施形態を説明する。マウスのドラッグ操作が行われると、以下の処理が開始する。
【００４８】
ステップS301では、初期状態での、画像座標系上のクリッピング枠（トリミング枠）の位置、幅、高さを求める。画像座標系におけるクリッピング枠の左上の点の位置を（Isx,Isy）、クリッピング枠の幅と高さを（Isw,Ish）とする。
【００４９】
ステップS302では表示メモリ座標系における移動開始前のマウスの位置座標(sx0,sy0)を取得する。
【００５０】
ステップS303 では、その時点での、画像座標系上のクリッピング枠の位置、幅、高さを求める。すなわち、画像座標系におけるクリッピング枠の左上の点の位置を（Ix,Iy）、クリッピング枠の幅と高さを（Iw,Ih）へ代入する。
【００５１】
ステップS304では表示メモリ座標系における移動開始前のマウスの位置座標を取得し(x0,y0)へ代入する。
【００５２】
ステップS305ではマウスの動きを捕捉するためにあらかじめ設定された一定時間の待ちを設ける。
【００５３】
ステップS306では表示メモリ座標系における移動後のマウスの位置座標を取得し(x1,y1)へ代入する。
【００５４】
ステップS307では新たなクリッピング枠の位置(x',y')、幅w'、高さh'を求める。x,'y',w',h'の算出方法は後に説明する。ただし、拡大率の計算は行わない。
【００５５】
ステップS308では、ステップS307で求めた、x,'y',w',h'で指定される新たなクリッピング枠内の画像を読み出し、表示メモリ座標系へ描画する。第１の実施形態との違いは、ここで拡大処理を行わずにディスプレイに表示することである。この表示の説明は、後に図８を参照しながら説明する。
【００５６】
ステップS309で、マウスのドラッグが終了したかどうかを判定し、終了していればステップS310に進み、終了していなければステップS303に戻る。
【００５７】
ステップS310では新たなクリッピング枠の位置(x',y')、幅w'、高さh'を求めると共に拡大率を求める。x,'y',w',h'の算出方法は第１及び第２の実施形態と同様である。このとき、元のクリッピング領域としては、ステップS301,S302で取得した、初期状態のクリッピング領域の情報（Isx,Isy,Isw,Ish）及びマウス位置の情報(sx0,sy0)を用いる。
【００５８】
ステップS311では、ステップS310で求めた、x,'y',w',h'で指定される新たなクリッピング枠内の画像を読み出し、もとめた拡大率で表示メモリ座標系へ描画する。この表示は、上記の図４及び図５の表示方法と同じである。
【００５９】
図８は、上記のステップS308での表示方法を示す。ユーザが表示座標系803において、表示座標(x0,y0)から(x1,y1)へドラッグしながらマウスポインタを移動させる場合を説明する。この際、ユーザは、ドラッグ操作中であり、左ボタンを押しつづけたままである。移動前の画像座標系801は、ステップS303及びS304で取得したトリミング枠805及びマウス位置806を示す。移動後の画像座標系802は、ステップS306,S307で取得するマウス位置808及びトリミング枠807を示す。すなわち、ドラッグ操作中のステップS308では、マウス移動に応じた画像の移動のみを行い、拡大（縮小）は行わない。移動後のトリミング枠807は、画像の外郭804をはみ出し、画像データのない領域を含む。画像データのない領域は、例えば白データとしてディスプレイ上に表示される。そして、ドラッグ操作終了後のステップS311で、第１及び第２の実施形態と同様に、ドラッグに応じた画像の移動及び拡大を行う。
【００６０】
次に、ステップS307における移動後の画像座標系802の算出方法を説明する。具体的には、トリミング枠807の位置(x',y')、幅w'、高さh'の算出方法を示す。なお、ここでは説明を容易にするために、マウスの動きを横方向に左から右へ、すなわちX軸の正方向に動かす場合について説明する。逆方向、上下方向、斜め方向についても同様の方法で可能である。
【００６１】
x'=x0-x1
y'=y
w'=w
h'=h
【００６２】
（第３の実施形態の効果）
第３の実施形態によれば、ドラッグによる移動指示中には演算された画像の移動量に応じて画像サイズを変えずに画像データを表示し、ドラッグによる移動指示終了のドロップ時には演算された画像の移動量及び拡大率に応じて画像データを表示する。
本実施形態によると、トリミング枠内の印刷領域のみを表示しながら、マウスやペンなどで画像の任意の部分を指定して、そこをつかんだままドラッグしたときに、ドラッグ継続中は画像サイズが不変で移動し、好みの位置でドロップすると、必要に応じて画像が拡大される。これは、画像を移動してから、拡大しているという動作がわかり易いという効果がある。
【００６３】
（第４の実施形態）
上記の実施形態は表示用メモリ座標系と画像データ上の位置を表現するための画像座標系という二つの座標系を用いて説明していたが、第４の実施形態では、画像データ上の位置を表現するための画像座標系のみでトリミングを行う場合に、トリミング枠の縮小とトリミング枠の移動が同時に行える方法を説明する。
【００６４】
図１０は、画像上にトリミング枠1001が重ねて表示されており、ユーザはこのトリミング枠を操作して、画像のトリミング位置を決定する。このとき、トリミングの枠の部分をドラッグすれば、トリミングの枠の大きさは変化して、トリミング枠の縮小が行える。また、トリミング枠の内部をドラッグすれば、トリミング枠の移動を行うことができる。したがって、縮小と移動を行う場合には、２ステップの動作となる。
【００６５】
そこで、本実施形態では、図１０の斜め縞模様で示された分割点エリア1002をドラッグすると縮小と移動を同時に行うことができる方法を説明する。
【００６６】
図１１の1101はトリミング作業が行われる前の画像全体1103の中のトリミング領域1104と分割点エリア1105を表している。また、1102はトリミング作業後の画像全体1106の中のトリミング領域1107と分割点エリア1108を表している。
【００６７】
トリミング作業前のトリミング領域1104は、左上端の位置が(x, y)であり、幅がwであり、高さがhである。トリミング作業後のトリミング領域1107は、左上端の位置が(x', y')であり、幅がw'であり、高さがh'である。
【００６８】
また、トリミング作業前の分割点エリア内のドラッグ開始座標を(x0, y0)、 トリミング作業後の分割点エリア内のドラッグ終了座標を(x1, y1 )とする。
【００６９】
ドラッグ操作中は常にユーザとしては、分割点エリア内での座標位置は変わらず、分割エリア外の枠の大きさや場所が移動することになる。すなわち、移動前後の点の位置を画像データ上の不動点としてかつ、トリミング領域内に空白ができないように、トリミング領域の位置及び拡大率（縮小を含む）を演算する。
【００７０】
ここで、分割点エリア1105をドラッグしたときの動作について、図１２のフローチャートで説明する。
【００７１】
ドラッグ開始後、ステップS1201において、画像座標系におけるマウスの位置(x0, y0)を取得する。
【００７２】
ステップS1202ではマウスの動きを捕捉するためにあらかじめ設定された一定時間の待ちを設ける。
【００７３】
ステップS1203では、画像座標系における移動後のマウスの位置(x1, y1)を取得する。
【００７４】
ステップS1204では、新たなトリミング領域座標(x',y')、幅(w')、高さ(h')を求める。すなわち、新たなトリミング領域の位置及び拡大率（縮小を含む）を演算する。x,'y',w',h'の算出方法については後述する。
【００７５】
ステップS1205では、ステップS1204で求めた、x,'y',w',h'で指定される新たなトリミング領域を描画する。
【００７６】
ステップS1206では、マウスのドラッグが終了したかどうかを判定し、終了していれば処理を終わり、終了していなければステップS1201に戻る。すなわち、移動中及び移動後に、新たなトリミング領域の位置及び拡大率を演算して描画する。
【００７７】
次にステップS1204における、トリミング領域の枠の位置(x',y')、幅(w')、高さ(h')の算出方法を示す。
【００７８】
ここでは説明を容易にするために、マウスの動きを横方向に左から右へ、すなわちX軸の正方向に動かす場合について説明する。逆方向、上下方向、斜め方向についても同様の方法で可能である。
【００７９】
新たなトリミング枠の位置、幅、高さを求める方法は、初期状態において２つの場合に分けて考える。１つは、図１１の1101に示したように、トリミング枠が画像の外郭と接している場合1101、すなわちx=0の場合である。もう１つは、トリミング枠が画像の外郭と接していない場合すなわちx≠0の場合である。
【００８０】
x=0の場合は、次式で求められる。
x'=0(画像の左端辺と接しているから)-------(7)
w'=w×x0/x1--------(8)
h'=h×w'/w ---------(9)
y'=y+h×y0/cHeight-h'×y1/cHeight----(10)
【００８１】
一方、ｘ≠0の場合は、トリミング領域の大きさは変わらず、移動のみなので、次式で求められる。
w'=w --------------(11)
x'=x-(x1-x0)×w/cWidth ------(12)
y'=y
h'=h
【００８２】
（第４の実施形態の効果）
本実施形態によると、印刷領域のみを表示しながら、マウスやペンなどで印刷領域の特定の部分を指定して、そこをつかんだままドラッグしたときに、必要に応じて印刷領域枠が縮小され、好みの大きさ・位置まで印刷領域を移動することができる。
例えば、中央部に人物が映っている画像をトリミングにより、人物を右端に寄せたい場合、従来は、印刷領域をいったん縮小してから、移動する必要があったが、本実施形態によれば、右上の分割点エリアを人物の位置にまでドラッグするだけで、必要に応じて印刷領域枠が縮小されるため、１回の操作で好ましい構図の画像を得ることが可能となる。
【００８３】
（第５の実施形態）
上記の実施形態では、選択したトリミング枠は縮小しかしなかったが、本実施形態ではトリミング開始時のトリミング枠の大きさを記憶しておき、トリミング時の動作によって、トリミング領域枠が拡大・縮小する動作を図１３のフローチャートにしたがって、説明する。
【００８４】
ステップS1301において、トリミング領域枠を記憶する。
【００８５】
ステップS1302において、画像座標系におけるマウスの位置(x0, y0)を取得する。
【００８６】
ステップS1303ではマウスの動きを捕捉するためにあらかじめ設定された一定時間の待ちを設ける。
【００８７】
ステップS1304では、画像座標系における移動後のマウスの位置(x1, y1)を取得する。
【００８８】
ステップS1305では、新たなトリミング領域座標(x',y')、幅(w')、高さ(h')を求める。すなわち、新たなトリミング領域の位置及び拡大率（縮小を含む）を演算する。x,'y',w',h'の算出方法については後述する。
【００８９】
ステップS1306では、ステップS1305で求めた、x,'y',w',h'で指定される新たなトリミング領域を描画する。
【００９０】
ステップS1307では、マウスのドラッグが終了したかどうかを判定し、終了していれば処理を終わり、終了していなければステップS1302 に戻る。
【００９１】
新たなトリミング枠の位置、幅、高さを求める方法は、図１４を用いて説明する。
【００９２】
ここでは話を簡単にするために、x'座標および幅w'を一次元座標で、右から左に分割点エリアをドラッグした場合の座標を求める方法について説明する。
【００９３】
まずトリミング時の画像とトリミング領域枠を表したのが1401である。トリミング枠の幅はwである。（分割点からトリミング枠の左端までの長さ）：（分割点からトリミング枠の右端までの長さ）＝α：（１−α）で表される。
【００９４】
次に、トリミングを行っている途中に移動領域が画像の外にはみ出したものが1402である。このときの座標をxとする。
【００９５】
次に、1403で最終的にトリミング枠を縮小して、画像中に収まるようにしたものである。このときの座標と幅をx', w'とすると、以下の式が成り立つ。
x + wα = x'+ w'α
【００９６】
ここで、x' = 0なので、w' = (1/α)x+wが成り立ち、これを2次元に拡張することにより、トリミング枠の位置と大きさが取得可能である。
【００９７】
以上のようにして、最初のトリミング枠を覚えていることにより、トリミング枠を移動させるだけで、トリミング枠の拡大・縮小を同時に行うことが可能である。
【００９８】
ここで、分割点エリアの位置は本実施形態では四カ所であるが、分割点エリアの数は任意に増やすことが可能である。
【００９９】
また、本実施形態では、例えば分割点の位置はトリミング枠の三分割点である。三分割点は、（トリミング枠の一端と分割点との間の長さ）：（トリミング枠の他端と分割点との間の長さ）＝２：１の条件を満たす分割点である。
【０１００】
また、分割点エリアの位置は三分割点に限らず、トリミング枠の黄金分割点など、その他の画像の構図上重要な位置に配置しても良い。黄金分割点は、（トリミング枠の一端と分割点との間の長さ）：（トリミング枠の他端と分割点との間の長さ）＝（（√５）−１）：２の条件を満たす分割点である。
【０１０１】
第４の実施形態では、移動中の状態を基にトリミング領域の位置及び拡大率を演算して描画したが、第５の実施形態では、ステップS1301で移動前のトリミング領域枠を記憶し、移動前の状態を基に拡大率を演算して描画する。
【０１０２】
（第５の実施形態の効果）
本実施形態によると、印刷領域のみを表示しながら、マウスやペンなどで印刷領域の特定の部分を指定して、そこをつかんだままドラッグしたときに、必要に応じて印刷領域枠が拡大・縮小され、好みの大きさ・位置まで印刷領域を移動することができる。
例えば、中央部に人物が映っている画像をトリミングにより、人物を右端に寄せたい場合、従来は、印刷領域をいったん縮小してから、移動する必要があったが、本実施形態によれば、右上の分割点エリアを人物の位置にまでドラッグするだけで、必要に応じて印刷領域枠が縮小されるため、１回の操作で好ましい構図の画像を得ることが可能となる。
また、ドラッグ開始時のトリミング枠を記憶しているため、ドラッグ操作中はドラッグ開始時の矩形に戻ることができる。
【０１０３】
上記実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１０４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１０５】
【発明の効果】
以上説明したように、本発明によれば、画像表示領域の画像の任意の点を移動指示すると、必要に応じて画像が拡大され、指示された位置まで画像を移動させることができる。例えば、画像中の中央部の人物を右端に寄せたい場合、１回の人物の移動指示操作で所望の移動及び拡大をし、好ましい構図の画像を得ることができる。また、移動指示中に、演算された画像の移動量及び／又は拡大率に応じて画像データを表示することにより、編集後の構図を把握しながらトリミングを行うことができる。
【図面の簡単な説明】
【図１】本発明の第１〜第３の実施形態における画像編集装置のハードウエア構成例を示す図である。
【図２】本発明の第１の実施形態のフローチャートである。
【図３】本発明の第３の実施形態のフローチャートである。
【図４】画像座標系と表示メモリ座標系を示す図である。
【図５】画像座標系と表示メモリ座標系を示す図である。
【図６】従来技術によるトリミング例を示す図である。
【図７】本発明の第２の実施形態のフローチャートである。
【図８】画像座標系と表示メモリ座標系を示す図である。
【図９】画像座標系と表示メモリ座標系を示す図である。
【図１０】本発明の第４の実施形態における画像座標系での印刷領域と分割点エリアを示す図である。
【図１１】本発明の第４の実施形態における画像座標系を示す図である。
【図１２】本発明の第４の実施形態のフローチャートである。
【図１３】本発明の第５の実施形態のフローチャートである。
【図１４】本発明の第５の実施形態を説明する図である。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ハードディスクドライブ
１０５  記憶装置
１０６  ディスプレイ
１０７  メモリカードインタフェース
１０８  マウス
１０９  プリンタ
１１０  バス
【図１】
2004180267.tif 000003
【図２】
2004180267.tif 000004
【図３】
2004180267.tif 000005
【図４】
2004180267.tif 000006
【図５】
2004180267.tif 000007
【図６】
2004180267.tif 000008
【図７】
2004180267.tif 000009
【図８】
2004180267.tif 000010
【図９】
2004180267.tif 000011
【図１０】
2004180267.tif 000012
【図１１】
2004180267.tif 000013
【図１２】
2004180267.tif 000014
【図１３】
2004180267.tif 000015
【図１４】
2004180267.tif 000016