(57)【特許請求の範囲】
【請求項１】
少なくとも１つの処理ユニットに画像を編集するためのグラフィカルユーザインタフェース（ＧＵＩ）を提供させるためのコンピュータプログラムであって、前記ＧＵＩは、
画像を表示するための表示エリアと、
（ｉ）擦りタッチ入力を受け取り、前記擦りタッチ入力はその擦りタッチ入力が維持されている間の前記画像の画素のセット上における異なる方向への複数の連続するスワイプ動作を含み、（ｉｉ）前記画像の前記画素のセットを変更する効果の前記画素のセットへの適用を、異なる方向への前記連続するスワイプ動作の各連続する動作のたびに徐々に増加させる、ための画像処理ツールと、
を含む、コンピュータプログラム。
【請求項２】
前記画像処理ツールが更に、前記効果の選択を受け取る、請求項１に記載のコンピュータプログラム。
【請求項３】
前記画像処理ツールは、前記画像処理ツールが閾値数のタッチ入力を受け取るまでのみ、前記効果の前記適用を徐々に増加する、請求項１に記載のコンピュータプログラム。
【請求項４】
前記擦りタッチ入力の前記連続するスワイプ動作の１回目における前記画素のセットへの変更の量が、前記擦りタッチ入力の前記連続するスワイプ動作の２回目における前記画素のセットへの変更の量と異なる、請求項１に記載のコンピュータプログラム。
【請求項５】
前記画像処理ツールが前記画像の前記画素のセットに適用する前記効果が、飽和効果、脱飽和効果、明色化効果、暗色化効果、シャープ化効果、及びソフト化効果のうちの少なくとも１つを含む、請求項１に記載のコンピュータプログラム。
【請求項６】
前記ＧＵＩが、異なる効果を表す選択可能なユーザインタフェース項目のセットを更に含み、前記画像処理ツールが、前記効果を表すユーザインタフェース項目の選択を受け取ることに応答して前記効果を選択する、請求項１に記載のコンピュータプログラム。
【請求項７】
画像編集アプリケーションを提供する方法であって、
表示エリア内に画像を表示し、前記画像は複数の画素を含み、
前記画像の画素のセットの上における擦りタッチ入力の異なる方向の複数の連続するスワイプ動作を、前記擦りタッチ入力が維持されている間に、受け取り、
前記画像の前記画素のセットを変更する効果の前記画素のセットへの適用を、異なる方向への前記連続するスワイプ動作の各連続する動作のたびに徐々に増加させる、
ことを含む、方法。
【請求項８】
前記効果の前記適用を徐々に増加させることは、前記画素のセット上への前記擦りタッチ入力の各連続するスワイプ動作のたびに異なる量の前記効果を適用することを含む、請求項７に記載の方法。
【請求項９】
前記効果の前記適用を徐々に増加させることは、前記画素のセットが前記擦りタッチ入力の前記連続するスワイプ動作の１つを受け取るたびに適用される前記効果の量を線形的に増加させることを含む、請求項７に記載の方法。
【請求項１０】
前記効果の前記適用を徐々に増加させることは、前記擦りタッチ入力の各連続するスワイプ動作のたびに適用される前記効果の量を非線形的に増加させることを含む、請求項７に記載の方法。
【請求項１１】
前記効果の前記適用を徐々に増加させることは、前記擦りタッチ入力の連続するスワイプ動作が閾値回数受け取られるまでのみ前記効果の前記適用を増加させることを含む、請求項７に記載の方法。
【請求項１２】
前記画像のそれぞれの画素にマスク値を付与することをさらに含み、前記効果の前記適用を徐々に増加させることは、前記画素のセットの前記マスク値を変更することを備える、請求項７に記載の方法。
【請求項１３】
少なくとも１つの処理ユニットに、画像を編集するためのグラフィカルユーザインタフェース（ＧＵＩ）を提供させるためのコンピュータプログラムであって、前記ＧＵＩは、
複数の画素を含む画像を表示するための表示エリアと、
ツールと、を含み、前記ツールは、（ｉ）画像の画素のセットを横断する、複数の連続動作としてのタッチ入力を受け取り、（ｉｉ）前記タッチ入力がその上を最初に移動した、前記画素の第１のサブセットを識別し、（ｉｉｉ）前記第１のサブセットの画素に類似する画素を識別するための類似基準のセットを決定し、（ｉｖ）前記タッチ入力がその上を移動し、前記類似基準を満足する、前記画素の第２のサブセットにのみ画像処理動作を適用するためのツールであり、ここで前記タッチ入力がその上を移動し、前記類似基準を満たさない、前記画素のセットにおける画素には前記画像処理動作は適用されない、
コンピュータプログラム。
【請求項１４】
前記類似基準のセットは、画素が、前記第１のサブセットの画素の画素値の範囲内に含まれる画素値を有するかどうかを含む、請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記ツールは、前記第２のサブセットの画素の上を前記タッチ入力が移動するたびに、前記画像処理動作の適用を徐々に増加させる、請求項１３に記載のコンピュータプログラム。
【請求項１６】
表示エリアに、画像を表示し、前記画像は複数の画素を備え、
前記画像のエリアにおける画素のセットを横断する、複数の連続するスワイプ動作としてのタッチ入力を受け取り、
前記タッチ入力の前記連続するスワイプ動作の１回目がその上を最初に移動する、前記画像の前記エリアにおける画素のサブセットの特性に基づいて、前記画素のサブセットにおける画素に類似する画素を識別するための基準のセットを決定し、
画像処理動作を、前記タッチ入力がその上を移動し、前記決定された基準を満足する画素のみに適用することを含み、ここで前記画像処理動作は、前記タッチ入力がその上を移動し、前記決定された基準を満たさない画素には適用されない、
方法。
【請求項１７】
前記基準のセットを決定することは、前記画素のサブセットにおける画素の画素値を、ＲＧＢ色モデルの値からＬＡＢ空間の値へ変換することを含む、請求項１６に記載の方法。
【請求項１８】
前記基準のセットを決定することは、さらに、前記エリアにおける画素が前記画素のサブセットから予め定められた距離内にあるかどうかを決定することを含む、請求項１７に記載の方法。
【請求項１９】
少なくとも１つの処理ユニットに、請求項７乃至１２および請求項１６乃至１８のいずれか１項に記載された方法を実行させるためのコンピュータプログラム。
【請求項２０】
電子機器であって、
処理ユニットのセットと、
前記処理ユニットの少なくとも１つによって実行されたときに、請求項７乃至１２および請求項１６乃至１８のいずれか１項に記載された方法を実行するコンピュータプログラムを格納したコンピュータ可読媒体と、
を備える電子機器。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタルグラフィックデザイン及び画像編集アプリケーション（以下、画像編集アプリケーションと総称する）は、グラフィックデザイナー、メディアアーティスト及び他のユーザに、画像の閲覧及び編集を行う上で必要なツールを提供する。このようなアプリケーションの例は、Ｇｏｏｇｌｅによって提供されているＰＩＣＡＳＡ（登録商標）、Ａｄｏｂｅによって提供されているＰＨＯＴＯＳＨＯＰ（登録商標）、Ｍｉｃｒｏｓｏｆｔによって提供されているＥｘｐｒｅｓｓ  Ｍｅｄｉａ等が挙げられる。これらのアプリケーションは、画像を様々な方法で編集する能力をユーザに与える。
【０００２】
タブレットコンピュータ及びスマートフォン等のモバイルデバイスの増加とともに、これらのアプリケーションの有用性はこれらのデバイスへ拡大した。しかし、多くの画像編集アプリケーションはデスクトップ及びサーバのような固定式のデバイス用に適合されており、モバイルデバイスで享受することができるはずの便利な機能の一部をユーザに提供していない。
【発明の概要】
【０００３】
いくつかの実施形態は、画像を編集するための切り抜き及び角度補正ツールを有する画像編集アプリケーションを提供する。切り抜き及び角度補正ツールは、回転可能なユーザインタフェース（ＵＩ）項目をユーザに提供する。ユーザはこの回転可能なＵＩ項目を特定の方向に（時計回り又は反時計回りに）回転させることができ、ツールはそれに応じて、表示された画像をその特定の方向に回転させる。このようにして、ユーザは、回転可能なＵＩ項目を回転させることによって、表示された画像を角度補正することができる。
【０００４】
回転可能なＵＩ項目が回転されるにつれて、いくつかの実施形態における画像編集アプリケーションは、回転可能なＵＩ項目が回転されていることを示す、可聴的指示を提供するために、音を鳴らす。いくつかの実施形態における画像編集アプリケーションが再生する音は、機械式ダイアルが、その機械式ダイアルが回転される時に出す音である。
【０００５】
いくつかの実施形態における回転可能なＵＩ項目はまた、回転可能なＵＩ項目上のマーキングのセットも含む。マーキングは、回転可能なＵＩ項目が回転された回転の量を示すためのものである。いくつかの実施形態では、固定ノブによって指し示されるマーキングが、回転可能なＵＩ項目が回転された回転の量を示す。
【０００６】
いくつかの実施形態では、画像が表示エリアの縁部に対して回転されていくにつれて、画像編集アプリケーションは、画像の外側エリアを表示エリア内に表示することを回避しつつ、画像のできるだけ多くの部分を表示するために、画像を拡大、及び／又は切り抜く。場合によっては、表示エリアがすでに拡大されている場合には、画像編集アプリケーションは、表示画像が回転されるときに、拡大を行わない。これらの場合には、画像の外側エリアは表示エリア内に表示されることになる。
【０００７】
切り抜き及び角度補正ツールは、ユーザが、回転可能なＵＩ項目をいくつかの異なる方法で回転させることを可能にする。ユーザは、回転可能なＵＩ項目にタッチし、これをドラッグすることによって、ユーザインタフェース項目を回転させることができる。いくつかの実施形態におけるツールはまた、ユーザが、デバイスであって、その上で画像編集アプリケーションが実行しているデバイスを動かすことによって、回転可能なＵＩ項目を回転させることを可能にする。これらの実施形態において、デバイスは、デバイスの動きを検出し、測定する能力を有する構成要素を含む。画像編集アプリケーションは、デバイスが動かされる前に構成要素から配向値を受け取り、その値を記録する。デバイスが動かされている最中に、画像編集アプリケーションは構成要素から配向値を受け取り続ける。画像編集アプリケーションは、記録されている配向値と最新の配向値との差に基づき、回転可能なＵＩ項目を回転させるべき量を計算する。
【０００８】
ユーザはまた、表示された画像上で回転マルチタッチジェスチャを実行することによって、回転可能なＵＩ項目を回転させることもできる。ユーザが、回転の閾値量を超える回転マルチタッチジェスチャを行うと、切り抜き及び角度補正ツールは、回転マルチタッチジェスチャに基づき、回転可能なＵＩ項目及び表示された画像を回転させる。
【０００９】
いくつかの実施形態では、切り抜き及び角度補正ツールは、回転可能なＵＩ項目に加えて、ＵＩ項目のセットを追加的に提供する。いくつかの実施形態では、ＵＩ項目のセットは、回転可能なＵＩ項目を回転させ、表示された画像を角度補正するために、水平線を利用するためのものである。これらの実施形態において、切り抜き及び角度補正ツールは画像の水平線を検出し、画像内に水平線を表示する。ツールは、ＵＩ項目のセット内の１つのＵＩ項目の選択の受け取りに応じて、回転可能なＵＩ項目を回転させ、水平線及び画像を水平にすることによって、画像を角度補正する。ツールは、ＵＩ項目のセット内の別のＵＩ項目の選択の受け取りに応じて、回転可能なＵＩ項目を回転させるか又は画像を角度補正せずに、水平線及びＵＩ項目のセットを除去する。
【００１０】
切り抜き及び角度補正ツールは、ユーザが画像をいくつかの異なる方法で切り抜くことを可能にする。ユーザは、画像を切り抜くために、画像の縁部又は角部をドラッグすることができる。ユーザが画像の縁部又は角部を画像の中心に向けてドラッグすると、切り抜き及び角度補正ツールは、画像の縁部又は角部の外側にある画像の部分を切り落とす。一部のこのような実施形態では、切り抜き及び角度補正ツールは、画像の縁部又は角部がドラッグされている最中に、切り抜かれる前の画像のアスペクト比を維持する。いくつかの実施形態では、ユーザは画像を拡大することができ、切り抜き及び角度補正ツールは、画像を拡大する結果として、表示エリアの外側にはみ出す画像の部分を切り落とす。
【００１１】
いくつかの実施形態は、表示された画像の選択されたエリアに効果を適用するための効果ツールを備える画像編集アプリケーションを提供する。いくつかの実施形態では、効果ツールは、ユーザが、指又は同等の入力装置を用いて画像を擦ることによって、効果を適用するべき画像のエリアを選択することを可能にする。いくつかの効果については、効果ツールは、画像の選択されたエリアに、画像のエリアが擦られた回数に関係なく、効果を適用する。このような効果は、欠点除去効果及び赤目除去効果を含む。いくつかの他の効果については、効果ツールは、選択されたエリアに、ユーザが画像のエリアを擦った回数に基づき、効果を漸増的に適用する。このような効果は、飽和、脱飽和、明色化、暗色化、シャープ化、及びソフト化等を含む。
【００１２】
いくつかの実施形態では、効果ツールは画像のそれぞれの画素にマスク値を付与する。効果ツールは、画像の画素を処理するためにマスク値を用いる。画像の選択されたエリアに効果ツールが漸増的に適用する効果のために、効果ツールは、エリアがタッチされるたびにエリアに適用される効果の量を調整するために、選択されたエリア内のそれぞれの画素に付与されたマスク値を変更する。
【００１３】
いくつかの実施形態では、効果ツールは、エリアがタッチされるたびに、エリアに異なる量の効果を適用する。すなわち、エリアがタッチされる１回目の時に効果ツールがエリアに適用する効果の量は、エリアがタッチされる２回目の時に効果ツールがエリアに適用する効果の量と異なる。いくつかの実施形態では、効果ツールがエリアに適用する効果の量は、エリアがタッチされる回数の関数である。関数は、線形、非線形、又は線形関数及び非線形関数の組み合わせであってもよい。
【００１４】
いくつかの実施形態では、効果ツールは、画像の選択されたエリア内の画素のサブセットに効果を選択的に適用する。効果ツールは、画像のエリア内の画素のセットの画像特性に基づき、評価基準のセットを特定する。効果ツールは評価基準を用いて、同様の特性を有する画素を特定する。効果ツールは、特定された評価基準のセットを満たすそれらの画素にのみ効果を適用する。このようにして、効果ツールは画像内の同様の画素群にのみ効果を適用し、画像のエリア内のその他の画素は手を付けずにそのままにしておく。
【００１５】
いくつかの実施形態では、効果ツールは一定サイズのタッチを可能にする。すなわち、ユーザが、表示された画像のロケーションにタッチすると、効果ツールはそのロケーションからある距離以内の画素に効果を適用する。この距離は、画像が表示される表示エリアのサイズに対して一定である。効果の粒度の細かい適用を可能にするために、効果ツールは、ユーザが、タッチがより少数の画素（すなわち、より小さいエリア）を選択するように、画像を拡大することを可能にする。
【００１６】
いくつかの実施形態は、画像に異なる効果を適用するための画像上ツールを備える画像編集アプリケーションを提供する。画像編集アプリケーションは、表示された画像にいくつかの画像上ツールを重ね合わせる。これらの重ね合わせられた画像上ツールはそれゆえユーザに対して可視的である。他の画像上画像ツールはユーザに対して可視的でない。
【００１７】
ティルトシフトツールは、可視的画像上ツールである。いくつかの実施形態におけるティルトシフトツールは、画像上に重ね合わせられる２本の可視水平線を含む。ティルトシフトツールは、上部水平線よりも上にある画像のエリア、及び下部水平線よりも下にある画像のエリアをぼかす。ティルトシフトツールは、ユーザが、２本の水平線の間の空間にタッチし、ドラッグすることによって、両方の水平線を一緒に動かすことを可能にする。ティルトシフトツールは、ユーザが、一方又は両方の線を垂直にドラッグすることによって、２本の水平線の間の距離を調整することを可能にする。
【００１８】
ビネットツールは、画像編集アプリケーションの不可視的画像上ツールである。いくつかの実施形態では、ビネットツールは、画像のそれぞれの画素が、タッチされている画像のロケーションから離れている距離に基づき、画像の画素を暗くする。一部のこのような実施形態では、ビネットツールは、暗色化効果を適用するために、シグモイド関数を用いる。シグモイド関数を用いて、ビネットツールは、ロケーションから第１の距離以内の画像の画素には暗色化効果をほとんど又は全く適用せず、ロケーションから第２の距離だけ離れた画像の画素には最大量の暗色化効果を適用する。ビネットツールは、ロケーションから第１の距離〜第２の距離の間において画素に暗色化効果を段階的に適用する。
【００１９】
いくつかの実施形態におけるビネットツールは、ユーザがタッチした画像のロケーションの周囲に不可視の幾何学形状を画定し、幾何学形状の外側にある画像のエリアを暗くする。ユーザは幾何学形状をサイズ変更することができ、ユーザは画像の他のロケーションにタッチし、他のロケーションに基づきビネット効果を適用することができる。
【００２０】
グラデーションツールは、画像編集アプリケーションの別の不可視的画像上ツールである。グラデーションツールは、表示された画像の最上部から、タッチされている画像のロケーションまでグラデーション効果を適用する。ユーザは、画像の他のロケーションにタッチすることによって、グラデーション効果を適用するべきエリアを画定することができる。
【００２１】
いくつかの実施形態におけるグラデーションツールはいくつかの異なる種類のグラデーション効果を定義し、これらを用いる。グラデーション効果の種類を定義するために、ツールは元の画像に基づき白黒画像を生成する。いくつかの実施形態では、ツールは白黒画像内の１つの色を強調する。次に、ツールは、白黒画像を元の画像と混合することによって、混合画像を生成する。いくつかの実施形態では、ツールは２つの画像を、２つの画像内の対応する画素の画素値を平均することによって、又は２つの画像内の対応する画素の画素値を乗算することによって、混合する。次に、ツールは、混合画像を元の画像とブレンドすることによってブレンド画像を生成する。
【００２２】
以上の要約は、本発明のいくつかの実施形態を簡潔に紹介するためのものである。本明細書に開示されたすべての発明内容の紹介又は概要を意味しない。以下の詳細な説明、及び詳細な説明で引用される図面は、更に、要約で述べた実施形態並びに他の実施形態について述べる。したがって、本明細書で述べる全ての実施形態を理解するために、要約、詳細な説明及び図面の十分な検討が必要とされる。更に、特許請求された内容は、要約、詳細な説明及び図面における実例となる詳細によって限定されず、特許請求された内容は、主題の趣旨から逸脱しない他の特定の形態で実施することができるので、添付の特許請求の範囲によって定義される。
【図面の簡単な説明】
【００２３】
【図１】切り抜き及び角度補正ツールの使用を概念的に示したものである。
【図２】ティルトシフトツールの使用を概念的に示したものである。
【図３】ビネットツールの使用を概念的に示したものである。
【図４Ａ】切り抜き及び角度補正ツールの使用を概念的に示したものである。
【図４Ｂ】切り抜き及び角度補正ツールの使用を概念的に示したものである。
【図５】いくつかの実施形態が、ユーザが画像を角度補正することを可能にするために実行するプロセスを概念的に示したものである。
【図６】画像を拡大せずに画像を角度補正することを概念的に示したものである。
【図７】その上で画像編集アプリケーションが動作するデバイスを回転させることによって、画像を角度補正することを概念的に示したものである。
【図８】いくつかの実施形態が、ユーザがデバイスを回転させることによって画像を角度補正することを可能にするために実行するプロセスを概念的に示したものである。
【図９】その上で画像編集アプリケーションが動作するデバイスを回転させることによって、画像を角度補正することを概念的に示したものである。
【図１０】マルチタッチジェスチャを実行することによって画像を角度補正することを概念的に示したものである。
【図１１】いくつかの実施形態が、ユーザが画像を角度補正することを可能にするために実行するプロセスを概念的に示したものである。
【図１２】マルチタッチジェスチャを実行することによって画像を角度補正することを概念的に示したものである。
【図１３】画像を角度補正するための水平線の利用を概念的に示したものである。
【図１４】水平線を閉じることを概念的に示したものである。
【図１５】いくつかの実施形態が、ユーザが水平線を利用することによって画像を角度補正することを可能にするために実行するプロセスを概念的に示したものである。
【図１６】画像の境界をドラッグすることによって画像を切り抜くことを概念的に示したものである。
【図１７】いくつかの実施形態が画像を切り抜くために実行するプロセスを概念的に示したものである。
【図１８Ａ】画像を拡大することによって画像を切り抜くことを概念的に示したものである。
【図１８Ｂ】画像を拡大し、動かすことによって画像を閲覧することを概念的に示したものである。
【図１８Ｃ】画像を拡大し、動かすことによって画像を閲覧することを概念的に示したものである。
【図１９】選択されたプリセットアスペクト比に基づき画像を切り抜くことを概念的に示したものである。
【図２０】画像を擦ることによって画像に効果を適用することを概念的に示したものである。
【図２１】いくつかの実施形態が、ユーザがデバイスを擦ることによって画像を編集することを可能にするために実行するプロセスを概念的に示したものである。
【図２２】粒度の細かい制御を用いて画像に効果を適用するために画像を拡大することを概念的に示したものである。
【図２３】画像に赤目除去効果を適用することを概念的に示したものである。
【図２４】画像を擦ることによって画像に効果を漸増的に適用することを概念的に示したものである。
【図２５】いくつかの実施形態が、ユーザがデバイスを擦ることによって効果を漸増的に適用することを可能にするために実行するプロセスを概念的に示したものである。
【図２６】画像をスワイプしながら異なる圧力を加えることによって画像に効果を適用することを概念的に示したものである。
【図２７】スマートな縁部検出ツールの使用を概念的に示したものである。
【図２８】いくつかの実施形態が、ユーザが画像に効果を選択的に適用することを可能にするために実行するプロセスを概念的に示したものである。
【図２９】消しゴムツールの使用を概念的に示したものである。
【図３０】いくつかの実施形態が、表示された画像のエリアから効果を除去するために実行するプロセスを概念的に示したものである。
【図３１】グラデーション効果ツールの使用を概念的に示したものである。
【図３２】いくつかの実施形態が、ユーザが画像にグラデーション効果を適用することを可能にするために実行するプロセスを概念的に示したものである。
【図３３】ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示したものである。
【図３４】いくつかの実施形態が、画像にグラデーション効果を適用するために実行するプロセスを概念的に示したものである。
【図３５】ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示したものである。
【図３６】いくつかの実施形態が、画像にグラデーション効果を適用するために実行するプロセスを概念的に示したものである。
【図３７】ティルトシフト効果ツールの使用を概念的に示したものである。
【図３８】画像上ティルトシフト効果ツールのアーキテクチャを概念的に示したものである。
【図３９】元の画像及びぼかし画像についてのグラフのセットを示す。
【図４０】いくつかの実施形態が、画像にティルトシフト効果を適用するために実行するプロセスを概念的に示したものである。
【図４１】ビネット効果ツールの使用を概念的に示したものである。
【図４２】いくつかの実施形態が、ユーザが画像にビネット効果を適用することを可能にするために実行するプロセスを概念的に示したものである。
【図４３】いくつかの実施形態が、ユーザが画像にビネット効果を適用することを可能にするために実行するプロセスを概念的に示したものである。
【図４４】いくつかの実施形態が、表示された画像内におけるユーザのタッチのロケーションに基づきビネット効果を適用するために実行するプロセスを概念的に示したものである。
【図４５Ａ】いくつかの実施形態の画像編集アプリケーションの異なるＧＵＩを通じて切り抜き及び角度補正ツールを選択及び選択解除することの一例を示す。
【図４５Ｂ】いくつかの実施形態の画像編集アプリケーションの異なるＧＵＩを通じて切り抜き及び角度補正ツールを選択及び選択解除することの一例を示す。
【図４６】いくつかの実施形態の画像閲覧、編集、及び編成アプリケーションのソフトウェアアーキテクチャを概念的に示したものである。
【図４７】いくつかの実施形態の画像編集アプリケーションのＧＵＩの例を示す。
【図４８】いくつかの実施形態の画像データ構造を概念的に示したものである。
【図４９】いくつかの実施形態が実現されるモバイルコンピューティングデバイスのアーキテクチャの例である。
【図５０】いくつかの実施形態が実現される電子システムを概念的に示したものである。
【発明を実施するための形態】
【００２４】
本発明のいくつかの実施形態は、画像編集アプリケーションの表示エリア上に表示された画像を編集するための新しい画像上編集ツールを提供する。これらの画像上ツールは、ユーザが、画像上ツールにタッチし、これらを操作することによって画像に画像処理操作（例えば、飽和、脱飽和、欠点除去、角度補正、切り抜き等）を適用することを可能にする。
【００２５】
これらの画像上ツールの一部は、いくつかの実施形態の画像編集アプリケーションが、表示された画像に重ね合わせる可視的ツールである。他の画像上ツールは、不可視ツールである。これらの不可視ツールは、ユーザが画像に直接タッチすることによって画像処理操作を適用することを可能にする。
【００２６】
図１は、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのグラフィカルユーザインタフェース（ＧＵＩ）１００を概念的に示す。具体的には、本図は、ユーザが、画像表示エリア１２５内に表示された画像を角度補正するべく画像を回転させるために、グラフィカルツールにタッチすることを、３つの異なる段階１０５〜１１５において示す。図１は、ＧＵＩ１００は画像表示エリア１２５及び角度補正ツール１２０を含むことを示す。
【００２７】
いくつかの実施形態における画像編集アプリケーション（不図示）は画像編集用のソフトウェアアプリケーションである。画像編集アプリケーションは、いくつかの実施形態では、タッチ入力を受け取るためのタッチ又はニアタッチスクリーンを備えるコンピューティングデバイス（例えば、タブレットコンピュータ、スマートフォン等）上で動作する。画像編集アプリケーションは、ユーザが、画像編集アプリケーションの表示エリア内に表示された画像を示すスクリーンにタッチすることによって、画像にタッチすることを可能にする。
【００２８】
画像表示エリア１２５は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像表示エリア１２５は、画像表示エリア１２５内に画像を適合させ、画像を迅速に処理するために、元の画像の解像度よりも低い解像度を有する画像を表示する。
【００２９】
角度補正ツール１２０は、ユーザが、画像表示エリア１２５内に表示された画像を回転させるために操作するＧＵＩ項目である。いくつかの実施形態では、角度補正ツール１２０は、ユーザによって可動である（例えば、旋回可能、回転可能、等）幾何学形状として表示される。例えば、図１に示されるように、角度補正ツール１２０はダイアル（例えば、部分円）である。角度補正ツール１２０は、ユーザが、ダイアルを旋回させることによって画像を回転させることを可能にする。いくつかの実施形態では、ユーザがダイアルを（例えば、ドラッグ操作又はスワイプ操作によって）一方向に（例えば、左又は右、時計回り、反時計回りに）旋回させるにつれて、角度補正ツール１２０はそれに応じて、画像表示エリア１２５内に表示された画像を回転させる。
【００３０】
図１に示されるように、いくつかの実施形態における角度補正ツール１２０は画像表示エリア１２５に重なる。他の実施形態では、角度補正ツール１２０及びディスプレイ１２５は重ならない。更に、幾何学形状を有する代わりに、又はそれと併用して、いくつかの実施形態における角度補正ツール１２０は、ユーザが、画像を回転させる数値（例えば、角度の度数）を入力してもよい入力テキストフィールド（不図示）を有する。更に、いくつかの実施形態における角度補正ツール１２０は、ユーザが、表示された画像を角度補正するためにタッチすることができる、スライダコントロール（例えば、トラック、及びトラックに沿って動くコントロールノブ）も含む。
【００３１】
これより、ＧＵＩ１００を有する画像編集アプリケーションの操作例を説明する。段階１０５において、画像編集アプリケーションは画像表示エリア１２５内に画像１２６を表示する。次に、段階１１０において、ユーザは角度補正ツール１２０上に指１１１を載せる。
【００３２】
第３段階１１５は、ユーザが角度補正ツール１２０を右に（すなわち、時計回りに）旋回させた後のＧＵＩ１００を示す。ユーザが角度補正ツール１２０を旋回させるにつれて、いくつかの実施形態における角度補正ツール１２０は、画像表示エリア１２５内に表示された画像を回転させる。第３段階１１５に示されるように、ユーザは、表示された画像１２６を真っ直ぐにするのに（例えば、画像内に示されている建物及び３人の人物をＧＵＩ１００の画像表示エリア１２５の水平線と水平にするのに）ちょうど足りるだけ角度補正ツールを旋回させた。
【００３３】
図２は、ユーザが、表示された画像に、画像にタッチすることによってティルトシフト効果（すなわち、選択的焦点効果）を適用することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ２００を概念的に示す。具体的には、本図は、ユーザが、重ね合わせられたＵＩ制御部であるティルトシフトツール２１１にタッチしてこれを操作することによって、画像２２５にティルトシフト効果を適用することを、４つの異なる段階２０５〜２２０において示す。図示されているように、図２は、ＧＵＩ２００は画像表示エリア２２５を含むことを示す。
【００３４】
画像表示エリア２２５は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチし、ティルトシフトツール２１１を操作することによって、画像にティルトシフト効果を適用することを可能にする。画像編集アプリケーションは、画像表示エリア２２５内に表示された画像にティルトシフトツール２１１を重ね合わせる。
【００３５】
いくつかの実施形態では、ティルトシフトツール２１１は、画像編集アプリケーションが、表示された画像２３０上におけるユーザのタッチを受け取ることに応答して、表示された画像２３０上に重ね合わせる２本の平行線（上部及び下部平行線）を含む。いくつかの実施形態では、ユーザが、表示された画像にタッチしながら指を動かすと、ティルトシフトツールは２本の平行線を表示する。ティルトシフトツール２１１は２本の平行線を既定の距離（例えば、数百画素）離して配置する。次に、ティルトシフトツール２１１は、上部平行線よりも上にある画像の部分及び下部平行線よりも下にある画像の部分をぼかす。その結果、２本の線の間の画像の部分は、画像の残りの部分の鮮明さと比べて鮮明に見える。
【００３６】
いくつかの実施形態におけるティルトシフトツール２１１は、ユーザが画像にタッチすることによって２本の平行線の間の距離を調整することを可能にする。ユーザは、２本の平行線上で、拡大ジェスチャ（例えば、画像にタッチしながら２本の指を広げて離すこと）を実行することによって、距離を増加させることができる。ユーザは、ピンチジェスチャ（例えば、画像にタッチしながら２本の指を互いに引き寄せること）を実行することによって、距離を減少させることができる。また、ユーザは、２本の平行線のうちの一方又は両方を動かすことによって（例えば、ドラッグすることによって）、距離を増加又は減少させることもできる。ティルトシフトツール２１１はまた、ユーザが、２本の線の間の空間にタッチしてこれをドラッグすることによって、２本の平行線を一緒に動かすことも可能にする。
【００３７】
これより、ＧＵＩ２００を有する画像編集アプリケーションの操作例を説明する。段階２０５において、画像編集アプリケーションは画像表示エリア２２５内に画像２３０を表示する。第２段階２１０は、ユーザが画像の垂直中心よりも少し下の画像エリアにタッチした後のＧＵＩ２００を示す。この段階において、ティルトシフトツール２１１は２本の平行線を、タッチされたエリアの中心が２本の平行線から等距離となるように、画像上に配置した。ティルトシフトツール２１１はまた、上部平行線よりも垂直上方にある画像の部分及び下部平行線よりも垂直下方にある画像の部分をぼかした。
【００３８】
段階２１５において、ユーザは、２本の平行線を広げて更に離すために、指２１２及びもう１本の指２１３を使い、画像上で拡大ジェスチャ実行した。上部線及び下部線は両方とも移動した。上部線は上に移動し、下部線は下に移動した。その結果、２本の平行線の間の画像の部分はより大きくなっており、ティルトシフトツールは画像のこの部分はぼかさない。
【００３９】
第４段階２２０は、ユーザが画像２３０から指２１２及び２１３を上げた後のＧＵＩ２００を示す。２本の平行線は、これらの２本の線は操作可能であることを示すために、可視のまま残っている。ユーザが画像編集アプリケーションの編集モードを終了すると、２本の平行線は画像２３０から消える。
【００４０】
図３は、ユーザが、画像表示エリア内に表示された画像に、画像にタッチすることによって画像処理操作を適用することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ３００を概念的に示す。具体的には、本図は、ユーザが、画像にタッチすることによって、画像の部分にグラデーション効果を適用することを、３つの異なる段階３０５〜３１５において示す。図３は、ＧＵＩ３００は画像表示エリア３２５を含むことを示す。
【００４１】
画像表示エリア３２５は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、画像のエリアにタッチすること又は指を下方へ表示エリア３２５の底部までスワイプすることによって、表示された画像にグラデーション効果を適用することを可能にする。ユーザが画像のロケーションにタッチすると、画像編集アプリケーションは画像の最上部から画像内のタッチの垂直ロケーションまでグラデーション効果を適用する。すなわち、画像編集アプリケーションは、効果（例えば、明色化、暗色化、色の適用、等）の程度を画像の最上部からタッチのロケーションまで変化させる。
【００４２】
ユーザが画像をスワイプダウンすると（例えば、画像にタッチしながら指を下方へドラッグすると）、画像編集アプリケーションは画像の最上部から、指があった最も低い垂直ロケーションまでグラデーション効果を適用する。画像編集アプリケーションはまた、ユーザが、グラデーション効果が適用されているエリアを縮小するために、グラデーション効果が適用されている最も低い垂直ロケーションよりも垂直上方にあるロケーションを上方へスワイプするか又はそこにタッチすることも可能にする。
【００４３】
いくつかの実施形態では、画像編集アプリケーションは、ユーザが操作することができる可視水平線を示さない。しかし、グラデーション効果が適用された画像の上部、及びグラデーション効果が適用されていない画像の底部は、上部の効果のおかげで視覚的に識別可能である。それゆえ、上部及び底部を分離する可視的な境界（又は可視的な水平の帯）が存在する。この境界はユーザに視覚的な手がかりを提供し、ユーザが「不可視的」効果ツールを操作することを可能にする。
【００４４】
これより、ＧＵＩ３００を有する画像編集アプリケーションの操作例を説明する。段階３０５において、画像編集アプリケーションは画像表示エリア３４５内に画像３３０を表示する。段階３１０において、ユーザは、指３１１で画像３３０の最上部の近くのロケーションにタッチしたか、又は画像３３０にタッチしながら指３１１を下方へそのロケーションまでドラッグした。画像編集アプリケーションは画像３３０の最上部から、指３１１があるロケーションまでグラデーション効果を適用した。指３１１よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【００４５】
第３段階３１５は、ユーザが、画像３３０の底部により近い画像のロケーションにタッチしたか、又は画像３３０にタッチしながら指３１１をこのロケーションまでドラッグした後のＧＵＩ３００を示す。画像編集アプリケーションは、前の段階３１０において指３１１があった垂直ロケーションから、現在の段階３１５における指３１１の垂直ロケーションまでグラデーション効果を適用した。指３１１よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【００４６】
以下のセクションにおいて、画像上編集ツールのいくつかのより詳細な実施形態を説明する。セクションＩは、いくつかの実施形態の画像切り抜き及び角度補正ツールを説明する。次に、セクションＩＩは、画像を擦ることによって、又は画像のエリアを選択することによって、画像に画像処理操作を適用することを可能にするいくつかの画像上編集ツールを説明する。セクションＩＩＩは、画像に特殊効果を適用することを可能にするいくつかの可視的画像上ツール及び不可視的画像上ツールを説明する。その後、画像編集アプリケーションのための代替的なＵＩレイアウトを説明するセクションＩＶが続く。セクションＶは、いくつかの実施形態の画像編集アプリケーションのソフトウェアアーキテクチャを説明する。次に、セクションＶＩは、いくつかの実施形態の画像編集アプリケーションは、画像閲覧、編集、及び編成アプリケーションでもあることを説明する。最後に、セクションＶＩＩは、本明細書に記載されているいくつかの実施形態を実装するいくつかの電子システムについて説明する。
【００４７】
Ｉ．画像上角度補正及び切り抜きツール
Ａ．画像上角度補正
図４Ａは、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが画像を角度補正するべく画像を回転させるためにグラフィカルツールにタッチすることを、６つの異なる段階４０１〜４０６において示す。図示されているように、図１は、ＧＵＩ４００は、画像表示エリア４１０、コレクション表示エリア４１５、ツール選択ペイン４２０、ツール表示エリア４２５、及び制御ペイン４３０を含むことを示す。
【００４８】
画像表示エリア４１０は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。コレクション表示エリア４１５は、画像編集アプリケーションを用いて編集するために利用可能である画像のサムネイルのコレクションを表示する。ユーザがコレクション表示エリア４１５内のサムネイルを（例えば、タッチすることによって）選択すると、画像編集アプリケーションは、画像表示エリア４１０内の選択されたサムネイルによって表されている画像を表示する。いくつかの実施形態における画像は、もともとはデジタル写真デバイス（例えば、デジタルカメラ）によって撮影されたデジタル写真画像、デジタルスキャンされた写真画像、又はデジタル的に作成された任意の画像である。
【００４９】
いくつかの実施形態におけるツール選択ペイン４２０は、画像編集アプリケーションの異なる編集ツールセットを表すアイコンのセットを表示する。ユーザがツール選択ペイン４２０内のアイコンを（例えば、タッチすることによって）選択すると、画像編集アプリケーションは、ツール表示エリア４２５内及び／又は画像表示エリア４１０内の対応するツールのセットを表示する。いくつかの実施形態における画像編集アプリケーションは、どのツールのセットが現在選択されているのかを示すための視覚的な合図を提供する。例えば、画像編集アプリケーションは、選択されたアイコンを強調表示する。いくつかの実施形態では、ツール選択ペイン４２０内に表示されている最左端のアイコン４２１は画像上切り抜き及び角度補正ツールを表す。ユーザがアイコン４２１を選択すると、いくつかの実施形態における画像編集アプリケーションは切り抜き及び角度補正ツールを起動する。すなわち、画像編集アプリケーションは、画像表示エリア内の画像へのユーザ入力（例えば、タッチ入力）の一部を、起動されたツールへの入力として扱う。画像編集アプリケーションはまた、アイコン４２１の選択に応答してツール表示エリア４２５内に角度補正ツール４３０も表示する。
【００５０】
角度補正ツールは、ユーザが、画像表示エリア４１０内に表示された画像を角度補正することを可能にする。画像の角度補正とは、画像内の物体及び人物を写真の一方の側に傾いて見えないようにすることを意味する。いくつかの実施形態における角度補正ツールはまた、角度補正された画像のために元の画像のアスペクト比を維持するため、及び最終的な切り抜き内に元の画像の外側のエリアを含むことを回避するために、画像が角度補正されていくにつれて、画像を拡大し、及び／又はそれを切り抜く。
【００５１】
角度補正ツールは、表示された画像を角度補正するための多数の異なる方法を提供する。例えば、いくつかの実施形態の角度補正ツールはダイアル４３５を含む。角度補正ツールは、ユーザが、ダイアル４３５を旋回又は回転させることによって、表示された画像を角度補正することを可能にする。いくつかの実施形態では、角度補正ツールは、表示された画像を、ダイアル４３５が旋回又は回転している方向に（例えば、時計回り又は反時計回りに）回転させる。角度補正ツールは、表示された画像を、ダイアル４３５が旋回又は回転する量だけ回転させる。
【００５２】
いくつかの実施形態では、ダイアル４３５は、ダイアル４３５の旋回又は回転の量を示すためのマーキング及び数字を有する。ダイアル４３５はまた、基準系を提供するために、ダイアル４３５が回転するときに動かない固定ノブ４６０も有する。固定ノブ４６０によって指し示されるか又はそれと一直線に並んだ数字又はマーキングは、ダイアル４３５の旋回又は回転の量を示す。いくつかの実施形態におけるダイアル４３５上の数字は、度数若しくはラジアン、又は回転の角度若しくは量を表すことができる任意のその他の好適な単位で角度を表す。数字の符号（すなわち、負又は正）は回転の方向を示す。いくつかの実施形態では、負の数字は、ダイアル４３５及び表示された画像が時計回りに回転したことを示す。正の数字は、ダイアル４３５及び表示された画像が反時計回りに回転したことを示す。
【００５３】
異なる実施形態は、ユーザのタッチの方向、ダイアル４３５の回転の方向、画像の回転の方向、及びダイアル４３５内で示される数字の符号の間の関係を異なって定義する。例えば、いくつかの実施形態では、画像編集アプリケーションは、表示された画像を、ダイアル４３５の回転の方向とは反対である方向に回転させる。更に、ダイアル４３５上の正の数字は、表示された画像の時計回りの回転を示す場合もあり、ダイアル４３５上の負の数字は、表示された画像の反時計回りの回転を示す場合もある。
【００５４】
いくつかの実施形態では、画像編集アプリケーションは、ユーザがダイアル４３５を旋回させている最中に可聴的合図をユーザに提供するために、音声を再生する。画像編集アプリケーションが再生する音声は、いくつかの実施形態では、機械式ダイアルが、この機械式ダイアルが旋回又は回転されている時に出す音である。
【００５５】
いくつかの実施形態におけるダイアル４３５は、ユーザがツール選択ペイン４２０内のアイコン４２１を選択した時に、ツール表示エリア４２５内に表示される。他の実施形態では、画像編集アプリケーションは、ダイアル４３５が、画像表示エリア４１０内に表示された画像に部分的に重なるように、ダイアル４３５を画像表示エリア４１０内に表示する。画像編集アプリケーションはまた、ダイアルを、ＧＵＩ４００の異なる部分内に異なる形状及びサイズで表示する場合もある。例えば、ダイアル４１０は、画像表示エリア４１０の角部内において完全な円形状を有するように表示されてもよい。
【００５６】
ユーザのアイコン４２１の選択に応答して画像編集アプリケーションが切り抜き及び角度補正ツールを起動すると、いくつかの実施形態における画像編集アプリケーションは、画像表示エリア４１０内に表示された画像の上にグリッド線４５０のセットを表示する。グリッド線４５０は、切り抜き及び角度補正ツールが起動されていることを示し、また、ユーザが、表示された画像を切り抜く際の案内も提供する。いくつかの実施形態におけるグリッド線４５０は画像表示エリア４１０を３×３のグリッドに変える。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチするまで、グリッド線４５０のセットを表示しない。いくつかの実施形態では、画像編集アプリケーションは、ダイアル４３５が旋回されるまで、グリッド線４５０のセットを表示しない。
【００５７】
グリッド線４５０のセットに加えて、画像編集アプリケーションは、ユーザがダイアル４３５を旋回させ始めると、グリッド線４５５の別のセットを表示する。このグリッド線４５５の追加のセットは、ユーザが、表示された画像を角度補正しようと試みるときに、追加の視覚補助を提供する。例えば、表示された画像内に示された物体又は人物がグリッド線と直交すると、ユーザは、表示された画像が角度補正されたことが分かる。いくつかの実施形態におけるグリッド線４５０及び４５５は相まって画像ディスプレイ４１０を９×９のグリッドに変える。当業者は、グリッド線４５０及び４５５が表示エリアを変えて成すグリッドは、必ずしも３×３又は９×９のような特定の寸法を有する必要はなく、任意の異なる寸法を有し得ることを認識するであろう。更に、いくつかの実施形態における画像編集アプリケーションはグリッド線４５０及び４５５を異なる色で描画する。例えば、グリッド線４５０は白色であり、グリッド線４５５は黄色である。
【００５８】
制御ペイン４３０は、アイコンの選択に応答して画像編集アプリケーションが実行する異なる操作を表す異なるアイコンのセットを表示する。いくつかの実施形態における制御ペイン４３０は、コレクション表示エリア４１５内にサムネイルが表示されている画像のコレクションの名前を表示する。制御ペイン４３０は、画像表示エリア４２５内に表示されている画像の名前（例えば、ファイル名）を表示してもよい。
【００５９】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。第１段階４０１は、指４４１でサムネイル４４０にタッチすることによるユーザのサムネイル４４０の選択を示す。画像編集アプリケーションは、サムネイル４４０の選択に応答して、サムネイル４４０によって表されている画像４４５を画像表示エリア４１０内に表示する。
【００６０】
段階４０２において、次に、ユーザは、ツール選択ペイン４２０内に表示されているアイコン４２１を選択する。それに応答して、画像編集アプリケーションは段階４０３において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションはアイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、画像表示エリア４１０内にグリッド線４５０も表示する。固定ノブ４６０によって指し示されたダイアル４３５上の数字は「０」を示しており、ダイアル４３５はどちらの方向にも全く旋回されていないことを示している。
【００６１】
段階４０４において、ユーザはダイアル４２５の一部分上に指４４１を載せ、ダイアルを時計回りに（すなわち、右に）旋回させ始める。いくつかの実施形態における画像編集アプリケーションは、ユーザが指４４１を載せるか又はユーザがダイアル４３５を旋回させ始めると、グリッド線４５５を表示する。
【００６２】
次の段階４０５は、ユーザがダイアル４３５を時計回りに旋回させた後のＧＵＩ４００を示す。切り抜き及び角度補正ツールは、表示された画像４４５を時計回りにダイアル４３５の回転の量だけ旋回させた。本例では、固定ノブ４６０によって指し示されている「−１０」、ダイアル４３５及び表示された画像４４５が時計回りに１０度回転したことを示す。段階４０５はまた、角度補正ツールは、回転される前に画像４４５の外側にはみ出している部分を表示エリア４１０内に表示することを回避するために、画像４４５を拡大し（そのため、画像内の自転車はより大きく見える）、それを切り抜いたことも示す。すなわち、もし、角度補正ツールが切り抜き及び拡大を行わずに画像４４５を回転させたならば、画像４４５の外側にはみ出している部分を画像表示エリア４１０内に表示しなければならなくなるであろう。図示されているように、いくつかの実施形態における角度補正ツールは、ダイアル４３５が回転されるにつれて、画像を表示エリア４１０の縁部に対して回転させる。すなわち、画像内に示されている物体及び人物のみが画像表示エリア４１０の縁部に対して回転され、それにより、物体及び人物が傾いて見えないようにする。
【００６３】
最終段階４０６は、ユーザがダイアル４３５から指４４１を上げ、ダイアル４３５にもはやタッチしなくなった後のＧＵＩ４００を示す。ダイアル４３５はもはやタッチされていないので、画像編集アプリケーションはグリッド線４５５も除去した。
【００６４】
図４Ｂは、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。本図は、ユーザが画像を角度補正するべく画像を回転させるためにグラフィカルツールにタッチすることを、６つの異なる段階４０１ａ〜４０６ａにおいて示す。具体的には、図４Ｂは、内側表示エリア４８０ａを有するいくつかの実施形態のＧＵＩ４００を示す。
【００６５】
いくつかの実施形態の画像表示エリア４１０は内側表示エリア４８０ａを含む。いくつかの実施形態の画像編集アプリケーションは、画像が時計回り又は反時計回りに回転されている最中に、画像の境界を内側表示エリア４８０ａ内に表示することを回避しつつ、表示された画像の最大限の部分が内側表示エリア４８０ａ内に表示されるように、表示された画像のための拡大レベルを調整する。いくつかの実施形態では、画像が回転されている最中に、内側表示エリア４８０ａの外側にある表示エリア４１０のエリア内に画像の境界が表示される。このエリアは表示エリア４１０の外側エリアと呼ばれる。また、いくつかの実施形態では、表示エリア４１０の外側エリア内に入る画像の部分は薄く見える。内側表示エリア４８０ａは、以下において（例えば、図９、１２、及び１３を参照して）説明されている実施形態の画像編集アプリケーションに適用可能である。
【００６６】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。第１段階４０１ａ及び第２段階４０２ａは、図４Ａを参照して上述された段階４０１及び段階４０２と同一である。段階４０２ａにおけるアイコン４２１の選択に応答して、画像編集アプリケーションは段階４０３ａにおいて切り抜き及び角度補正ツールを起動する。画像編集アプリケーションは表示エリア４１０内に内側表示エリア４８０ａを表示する。いくつかの実施形態では、内側表示エリア４８０ａは表示エリア４１０よりも小さく、画像編集アプリケーションは内側表示エリア４８０ａを表示エリア４１０の中心に表示する。
【００６７】
画像編集アプリケーションは内側表示エリア４８０ａ内に画像４４５を表示する。画像編集アプリケーションはアイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、内側表示エリア４８０ａ内にグリッド線４５０も表示する。固定ノブ４６０によって指し示されたダイアル４３５上の数字は「０」を示しており、ダイアル４３５がどちらの方向にも全く旋回されていないことを示している。
【００６８】
段階４０４ａにおいて、ユーザはダイアル４２５の一部分上に指４４１を載せ、ダイアルを時計回りに（すなわち、右に）旋回させ始める。いくつかの実施形態における画像編集アプリケーションは、ユーザが指４４１を載せるか又はユーザがダイアル４３５を旋回させ始めると、内側表示エリア４８０ａ内にグリッド線４５５を表示する。
【００６９】
次の段階４０５ａは、ユーザがダイアル４３５を時計回りに旋回させた後のＧＵＩ４００を示す。切り抜き及び角度補正ツールは、表示された画像４４５を時計回りにダイアル４３５の回転の量だけ旋回させた。本例では、固定ノブ４６０によって指し示されている「−５」は、ダイアル４３５及び表示された画像４４５が時計回りに５度回転したことを示す。段階４０５ａはまた、角度補正ツールは、画像の境界を内側表示エリア４８０ａ内に表示することなく画像４４５の最大限の部分が内側表示エリア４８０ａ内に表示されるように、画像を拡大したことも示す（そのため、画像内の自転車はより大きく見える）。図示されているように、内側表示エリア４８０ａの外部へはみ出す画像の他の部分は外側エリア４８５ａ（すなわち、内側表示エリア４８０ａの外側にある表示エリア４１０の領域）内に表示される。画像４５５の上部及び側部境界の部分も表示エリア４１０の外側エリア４８５ａ内に表示される。
【００７０】
最終段階４０６ａは、ユーザがダイアル４３５を時計回りに更に旋回させた後のＧＵＩ４００を示す。切り抜き及び角度補正ツールは、表示された画像４４５を時計回りにダイアル４３５の回転の量だけ旋回させた。本例では、固定ノブ４６０によって指し示されている「−１０」は、ダイアル４３５及び表示された画像４４５はすぐ前の段階４０５ａ以降、追加の５度だけ時計回りに回転したことを示す。段階４０６ａはまた、角度補正ツールは、画像の境界を内側表示エリア４８０ａ内に表示することなく、この特定の画像の回転量のために画像４４５の最大限の部分が内側表示エリア４８０ａ内に表示されるように、画像の拡大レベルを変更したことも示す（そのため、画像内の自転車はより大きく見える）。図示されているように、画像編集アプリケーションが画像４５５を更に拡大したために、自転車は、それが前の段階４０５ａにおいて見えていたよりも大きく見える。いくつかの実施形態では、ユーザがダイアルから指を上げると、グリッド線４５５は消えるであろう。
【００７１】
図５は、ユーザが、画像編集アプリケーションのグラフィカルユーザインタフェース項目（例えば、図４Ａ及び４Ｂを参照して上述されているダイアル４３５）を操作することによって画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス５００を概念的に示す。いくつかの実施形態におけるプロセス５００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス５００は開始する。プロセス５００は（５０５において）、画像編集アプリケーションの画像表示エリア（例えば、上述の表示エリア４１０又は内側表示エリア４８０ａ）内に画像を表示することによって始まる。
【００７２】
次に、プロセス５００は（５１０において）画像編集アプリケーションのエリア内に幾何学形状を表示する。いくつかの実施形態では、プロセス５００は画像表示エリア（例えば、画像表示エリア４１０）内に幾何学形状を少なくとも部分的に表示する。他の実施形態では、プロセス５００は、幾何学形状及び表示された画像が重ならないように、幾何学形状を表示する。異なる実施形態は、表示するべき異なる幾何学形状を用いる。例えば、プロセス５００は、ダイアル形状（例えば、部分円形状）を、表示するべき幾何学形状として用いる。
【００７３】
次に、プロセス５００は（５１５において）、幾何学形状はいくらかのタッチ入力を受け取ったかどうかを判定する。すなわち、プロセスは（５１５において）、ユーザは、（幾何学形状を示すタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアにタッチすることによって）幾何学形状にタッチしたのかどうかを判定する。プロセス５００が（５１５において）、幾何学形状はタッチ入力を全く受け取らなかったと判定した場合には、プロセス５００は、幾何学形状上におけるタッチ入力を待つために、５１５へループする。
【００７４】
プロセス５００が（５１５において）、幾何学形状はタッチ入力を受け取ったと判定した場合には、プロセスは、受け取ったタッチ入力に基づき幾何学形状を動かすために、５２０へ進む。例えば、ユーザが幾何学形状を左から右へスワイプすると、プロセス５００は幾何学形状を右へ（すなわち、時計回りに）回転させる。同様に、ユーザが幾何学形状を右から左へスワイプすると、プロセス５００は幾何学形状を左へ回転させる。
【００７５】
次に、プロセス５００は（５２５において）、幾何学形状の動きに基づき、表示された画像を回転させる。いくつかの実施形態では、プロセス５００は、幾何学形状が回転した量に比例する量（例えば、角度の度数）だけ、表示された画像を回転させる。次に、プロセスは終了する。
【００７６】
これまでに説明されたいくつかの実施形態の切り抜き及び角度補正ツールは、画像が角度補正されていくにつれて、表示された画像を拡大する。場合によっては、切り抜き及び角度補正ツールは、表示された画像が角度補正されていくにつれて、拡大を行わない。
【００７７】
図６は画像編集アプリケーションのＧＵＩ４００を示す。具体的には、本図は、ＧＵＩ４００が、表示された画像６１０上で拡大を行った場合には、角度補正ツールは、画像を角度補正するのに先立って、画像６１０上で拡大を行わないことを、６つの異なる段階６０１〜６０６において示す。
【００７８】
いくつかの実施形態では、画像編集アプリケーションは、ユーザが、画像上で拡大ジェスチャを実行すること（例えば、２本の指をくっつけて画像にタッチし、次に、画像にタッチしながら指を広げること）によって、表示された画像を拡大することによって、表示エリア４１０内に表示された画像を切り抜くことを可能にする。画像編集アプリケーションが画像を拡大すると、画像の一部の部分は、それらの部分は画像表示エリアの外部へはみ出すことになるため、画像表示エリア４１０内に表示されなくなる。いくつかの実施形態における画像編集アプリケーションは画像のこれらの部分を切り落とす（すなわち、これらの部分を画像からトリミングする）。
【００７９】
画像編集アプリケーションが、表示された画像を拡大した後に、画像が角度補正される場合には、いくつかの実施形態の角度補正ツールは、画像を角度補正するために角度補正ツールが画像を回転させるときに、追加的に拡大を行わない。これは、角度補正ツールが画像を角度補正するときには、角度補正ツールは画像の切り落とされた部分を用いることができるためである。
【００８０】
これより、画像編集アプリケーションの操作例を説明する。段階６０１において、画像６１０が画像表示エリア４１０内に表示される。アイコン４２１は、切り抜き及び角度補正ツールが起動されていることを示すために、強調表示される。固定ノブ４６０によって指し示されたダイアル４３５上の数字は０であり、ダイアル４３５が回転されていないことを示している。画像表示エリア４１０内にはグリッド線４５０も表示される。
【００８１】
段階６０２において、ユーザは２本の指で画像６１０にタッチする。段階６０３において、ユーザは画像６１０にタッチしながら指を広げて離す。切り抜き及び角度補正ツールは画像を拡大し、それにより、画像表示エリア４１０内に収まることができない画像の部分を切り落とす。
【００８２】
段階６０４において、ユーザはダイアル４３５上に指を載せ、画像６１０を回転させ始める。追加のグリッド線４５５が画像表示エリア４１０内に表示される。次の段階６０５は、ユーザがダイアル４３５を時計回りに旋回させた後のＧＵＩ４００を示す。切り抜き及び角度補正ツールはそれに応じて、表示された画像６１０を時計回りに旋回させたが、段階６０３において切り落とされた画像の部分を用いることによって、画像６１０をこれ以上拡大しなかった。固定ノブ４６０によって示された数字は、ダイアル４３５及び画像６１０は時計回りに１０度回転したことを示している。
【００８３】
最終段階６０５は、ユーザがダイアル４３５から指４４１を上げ、ダイアル４３５にもはやタッチしなくなった後のＧＵＩ４００を示す。ダイアル４３５はもはやタッチされていないので、画像編集アプリケーションはグリッド線４５５も除去した。
【００８４】
これまでに説明されたいくつかの実施形態の切り抜き及び角度補正ツールは、ユーザが、ダイアルにタッチすることによって、表示された画像を角度補正することを可能にする。切り抜き及び角度補正ツールは他のダイアル調節手段を提供する。図７は、いくつかの実施形態の画像編集アプリケーションが動作するコンピューティングデバイス７００を概念的に示す。具体的には、本図は、ユーザが、コンピューティングデバイス７００を旋回又は回転させることによって、重ね合わせられた角度補正ツールを操作することによって、表示された画像を回転させることを、３つの異なる段階７０５〜７１５において示す。図７は、画像表示エリア７２５及び角度補正ツール７３０を含む画像編集アプリケーションのＧＵＩを示す。
【００８５】
コンピューティングデバイス７００は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有する。コンピューティングデバイス７００のいくつかの例としては、タブレットコンピュータ（例えば、Ａｐｐｌｅ  ｉＰａｄ（登録商標））及びスマートフォン（例えば、Ａｐｐｌｅ  ｉＰｈｏｎｅ（登録商標））が挙げられる。コンピューティングデバイス７００はまた、コンピューティングデバイス７００の動きを検出及び測定する１つ以上のデバイス（例えば、ジャイロスコープ、加速度計等）も有する。いくつかの実施形態では、画像編集アプリケーションは、コンピューティングデバイス７００の動きを検出及び測定するために、これらのデバイスを用いる。例えば、画像編集アプリケーションはコンピューティングデバイス７００のジャイロスコープ（不図示）から配向値を受け取る。いくつかの実施形態では、これらの配向値はｘ軸配向値、ｙ軸配向値、及びｚ軸配向値を含む。ここで、ｚ軸は地表と直交し、ｘ軸及びｙ軸は地表と平行である。それゆえ、コンピューティングデバイス７００が地表レベルから同じ高さにおいて回転される場合には（例えば、コンピューティングデバイス７００が、地表上で水平であるテーブルの上で回転される場合には）、ｚ軸配向値のみが変化する。
【００８６】
ＧＵＩ７２０は、図１を参照して上述されているＧＵＩ１００と同様である。また、画像表示エリア７２５は画像表示エリア１２５と同様であり、角度補正ツール７３０は角度補正ツール１２０と同様である。角度補正ツール７３０は、画像表示エリア７２５内に表示された画像の回転の量を示すためのマーキング７３１を有する。
【００８７】
いくつかの実施形態では、いくつかの実施形態における画像編集アプリケーションは、ユーザが、コンピューティングデバイス７３０を動かすこと（例えば、旋回させること、回転させること等）によって、角度補正ツール７３０を操作することを可能にする。画像編集アプリケーションは、コンピューティングデバイス７３０がユーザによって動かされる前のコンピューティングデバイス７３０の全ての３つのｘ、ｙ、及びｚ軸あるいは少なくともｚ軸についての初期配向値を記録する。ユーザがコンピューティングデバイス７３０を旋回させると（例えば、その配向を変化させると）、いくつかの実施形態における画像編集アプリケーションは、記録されているコンピューティングデバイス７３０の初期配向値（特に、ｚ軸配向値）に対する角度補正ツール１３０の配向を保持する。その結果、角度補正ツール７３０は、ユーザがコンピューティングデバイス７００を旋回させるにつれて、コンピューティングデバイス７３０の変化する配向に対して旋回する。
【００８８】
角度補正ツール７３０は、画像表示エリア７２５内に表示された画像を、角度補正ツール７３０が回転した量に応じて、コンピューティングデバイス７３０の変化する配向に対して回転させる。その結果、いくつかの実施形態の画像編集アプリケーションは、コンピューティングデバイスが動かされている最中に、表示された画像の配向をコンピューティングデバイスの初期配向に対して保持する。
【００８９】
これより、角度補正ツール７３０を有する画像編集アプリケーションの操作例を説明する。第１段階７０５は、ユーザはコンピューティングデバイス７００を動かないように保持し、画像編集アプリケーションは画像表示エリア７２０内に画像７２６を表示していることを示す。ここでは、コンピューティングデバイス７３０は、本例では地表と水平であるテーブル上に置かれていることを前提とされている。角度補正ツール７３０のマーキング７３１はそれらのそれぞれの初期位置にある。画像編集アプリケーションは、コンピューティングデバイス７００が動かされる前のコンピューティングデバイス７００のｚ軸配向を（例えば、コンピューティングデバイス７００のメモリ内に）記録する。
【００９０】
段階１１０において、ユーザは、表示された画像内に示されている人及び建物がコンピューティングデバイス７００の現在の配向に対して角度補正されるまで、コンピューティングデバイス７００を図示のように左へ傾ける。ユーザがコンピューティングデバイスを左へ旋回させるにつれて、画像編集アプリケーションは、コンピューティングデバイス７００のジャイロスコープ（不図示）から、コンピューティングデバイス７００がコンピューティングデバイス７００の初期配向から回転した量を受け取る又は取得する。画像編集アプリケーションは角度補正ツール７３０を、コンピューティングデバイス７３０の変化する配向に対して右へ旋回させる。マーキング７３１は、角度補正ツール７３０が右へ旋回したことを示すために、右へ回転している。角度補正ツール７３０は、角度補正ツール７３０が回転した量に応じて、画像７１０を右へ回転させる。
【００９１】
画像編集アプリケーションはまた、ユーザは、コンピューティングデバイス７００を回転させることによって、角度補正ツール７３０及び表示された画像を回転させようと意図していないことを示すユーザ入力も受け取る。このような入力を受け取ると、画像編集アプリケーションは、ユーザがコンピューティングデバイス７００を更に回転させたときに、角度補正ツール７３０及び表示された画像を回転させない。
【００９２】
第３段階７１５において、ユーザは、コンピューティングデバイス７３０の現在の配向が、コンピューティングデバイス７３０の記録されている初期配向と同じになるように、角度補正ツール７３０を旋回させた。図示されているように、表示された画像は角度補正された。すなわち、表示された画像内に示されている人及び建物は画像表示エリア７２５の縁部と直交している。
【００９３】
図８は、ユーザが、コンピューティングデバイス上で動作する画像編集アプリケーションのグラフィカルユーザインタフェース項目を操作することによって画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス８００を概念的に示す。いくつかの実施形態におけるプロセス８００は画像編集アプリケーションによって実行される。コンピューティングデバイスの動きを検出及び測定する１つ以上のデバイス（例えば、ジャイロスコープ、加速度計等）を有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス８００は開始する。プロセス８００は、（８０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。画像表示エリアの例としては、図７を参照して上述されている画像表示エリア７２５が挙げられる。
【００９４】
次に、プロセス８００は（８１０において）画像編集アプリケーションのエリア内に幾何学形状を表示する。いくつかの実施形態では、プロセス８００は画像表示エリア内に幾何学形状を少なくとも部分的に表示する。他の実施形態では、プロセス８００は、幾何学形状及び表示された画像が重ならないように、幾何学形状を表示する。異なる実施形態は異なる幾何学形状を表示する。例えば、プロセス８００はダイアル形状（例えば、部分円形状）を幾何学形状として表示する。
【００９５】
次に、プロセス８００は（８１５において）、コンピューティングデバイスは動いたかどうかを判定する。いくつかの実施形態では、プロセス８００はコンピューティングデバイスのジャイロスコープから配向情報を受け取り又は取得し、配向情報を用いて、コンピューティングデバイスは動いたかどうかを判定する。プロセス８００はまた、コンピューティングデバイスの現在の配向を包含する配向情報も保持する。プロセス８００は、特定の軸に対するコンピューティングデバイスの動きを判定するために、コンピューティングデバイスの現在の配向と、コンピューティングデバイスの以前に記録された配向とを比較する。プロセスは、特定の軸に対する配向が変化していない場合には、コンピューティングデバイスは特定の軸に対して動かなかったと判定する。
【００９６】
プロセス８００が（８１５において）、コンピューティングデバイスは動かなかったと判定すると、プロセス８００は、コンピューティングデバイスの動きを待つために、８１５へループする。プロセス８００が（８１５において）、コンピューティングデバイスは動いたと判定すると、プロセスは、コンピューティングデバイスの動きに基づき幾何学形状を動かすために、８２０へ進む。例えば、ユーザがコンピューティングデバイスを左へ傾けた場合には、プロセス８００は、コンピューティングデバイスの記録されている初期回転に対して幾何学形状を右へ回転させる。同様に、ユーザがコンピューティングデバイスを右へ傾けた場合には、プロセス８２０は幾何学形状を左へ回転させる。
【００９７】
次に、プロセス８００は（８２５において）、幾何学形状の動きに基づき、表示された画像を回転させる。いくつかの実施形態では、プロセス８００は、幾何学形状が回転した量に比例する量（例えば、角度の度数）だけ、表示された画像を回転させる。次に、プロセスは終了する。
【００９８】
図９は、いくつかの実施形態の画像編集アプリケーションが動作するコンピューティングデバイス９００を概念的に示す。具体的には、本図は、ユーザが、コンピューティングデバイス９００を旋回又は回転させることによって、ダイアル４３５を操作することによって、表示された画像９１０を回転させることを、７つの異なる段階９０１〜９０７において示す。図示されているように、図９は、コンピューティングデバイスは、ＧＵＩ４００を有するいくつかの実施形態の画像編集アプリケーションを動作させることを示す。
【００９９】
コンピューティングデバイス９００は、コンピューティングデバイス９００の動きを検出及び測定する１つ以上のデバイス（例えば、ジャイロスコープ、加速度計等）を含む点において、コンピューティングデバイス９００は、図７を参照して上述されているコンピューティングデバイス７００と同様である。
【０１００】
画像編集アプリケーションはまた、ユーザが、ユーザは、コンピューティングデバイス９００を動かすことによるダイアル４３５の調節を始めるか又は調節をやめようと意図していることを示すことも可能にする。例えば、アイコン４２１の選択に応答して画像編集アプリケーションの切り抜き及び角度補正ツールが起動されている場合には、画像編集アプリケーションは、ダイアル４３５上におけるタップを受け取ると、ダイアル４３５がコンピューティングデバイス９００の動きによって調節されるモードに入る。画像編集アプリケーションは、ダイアル４３５上における新たなタップを受け取ると、そのモードから抜ける。いくつかの実施形態では、画像編集アプリケーションは、画像編集アプリケーションはそのモードに入っていることを示すための視覚的な指示を提供する。例えば、画像編集アプリケーションは、画像編集アプリケーションがそのモードに入っているときには、ダイアル４３５を強調表示するか、又はダイアル４３５を点滅させる。
【０１０１】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。第１段階９０１は、指９２０でサムネイル９１５にタッチすることによるユーザのサムネイル９１５の選択を示す。画像編集アプリケーションは、サムネイル９１５の選択に応答して、サムネイル９１０によって表されている画像９１０を画像表示エリア４１０内に表示する。
【０１０２】
段階９０２において、次に、ユーザは、ツール選択ペイン４２０内に表示されているアイコン４２１を選択する。それに応答して、画像編集アプリケーションは段階９０３において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションはアイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、画像表示エリア４１０内にグリッド線４５０も表示する。
【０１０３】
ユーザはまた、ユーザはコンピューティングデバイス９００を動かすことによってダイアル４３５を調節したいことを示すために、ダイアル４３５の上を（例えば、素早く指を下ろし、上げることによって）タップする。切り抜き及び角度補正ツールは、コンピューティングデバイス９００が動かされる前のコンピューティングデバイス９００の初期配向を記録する。例えば、切り抜き及び角度補正ツールはコンピューティングデバイス９００のジャイロスコープからコンピューティングデバイス９００のｙ軸値を入手し、少なくともｚ軸配向値を記録する。
【０１０４】
段階９０４において、ユーザはコンピューティングデバイス９００を反時計回りに回転させ始める。切り抜き及び角度補正ツールは、コンピューティングデバイス９００の初期配向に対するダイアル４３５の配向を維持する。これにより、切り抜き及び角度補正ツールはダイアル４３５を時計回りに回転させ始める。切り抜き及び角度補正ツールはまた、グリッド線４５５を表示し、画像表示エリア４１０を９×９のグリッドに変える。
【０１０５】
次の段階９０５は、表示された画像内に示されている人及び建物が画像表示エリア４１０の現在の配向（すなわち、コンピューティングデバイス９００の現在の配向）に対して角度補正されるように、ユーザが、コンピューティングデバイス９０５を反時計回りに旋回させることによって、ダイアル４３５を時計回りに旋回させた後のＧＵＩ４００を示す。
【０１０６】
段階９０５はまた、角度補正ツールは、回転される前に画像９１０の外側にはみ出している部分を表示エリア４１０内に表示することを回避するために、画像９１０を拡大し（そのため、画像内に示されている人及び建物はより大きく見える）、それを切り抜いたことも示す。次の段階９０６は、ユーザは、ユーザはコンピューティングデバイス９００を動かすことによってダイアル４３５を調節したいともはや望んでいないことを示すために、ダイアル４３５の上を（例えば、素早く指を下ろし、上げることによって）タップすることを示す。
【０１０７】
最終段階９０７は、ユーザがコンピューティングデバイス９０５を回転させた後であるが、画像９１０は画像表示エリア４１０の縁部に対して回転されていないＧＵＩ４００を示す。ユーザは前の段階９０６において、ユーザはコンピューティングデバイス９００を回転させることによってダイアル及び画像をもはや回転させないことを示したため、切り抜き及び角度補正ツールはまた、グリッド線４５５も除去している。
【０１０８】
以上及び以下において説明されているいくつかの実施形態の切り抜き及び角度補正ツールは、ツールが停止状態となった時に表示画像エリア内に表示されている画像の部分を、新しい画像として保存する。以上のように、切り抜き及び角度補正ツールは画像を「編集」し、新しい画像を生成する。
【０１０９】
更に、いくつかの実施形態の切り抜き及び角度補正ツールは、画像が拡大され、表示エリア内に表示するために切り抜かれている間に、画像を編集する。他の実施形態では、切り抜き及び角度補正ツールは、画像を拡大及び縮小し、これを切り抜くことによって、画像が回転されている最中に表示エリア内の画像の一部ではないエリアを表示することなく、画像のできるだけ多くの部分を表示エリア内に表示するための閲覧補助として純粋に用いられる。換言すれば、純粋な閲覧補助として、切り抜き及び角度補正ツール自体は画像を「編集」しない。
【０１１０】
上述されたいくつかの実施形態の切り抜き及び角度補正ツールは、ユーザが、ＵＩ項目を操作することによって、表示された画像を角度補正することを可能にする。いくつかの実施形態は、ユーザが、表示された画像を、画像に直接タッチし、これを回転させることによって、角度補正することを可能にする。
【０１１１】
図１０は、コンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのＧＵＩ１０００を概念的に示す。具体的には、本図は、ユーザが、表示された画像を、２本の指１０１１及び１０１２で画像にタッチし、これを旋回させることによって、回転させることを、４つの異なる段階１００５〜１０２０において示す。図１０は、ＧＵＩ１０００は画像表示エリア１０２５を含むことを示す。
【０１１２】
画像編集アプリケーションが動作するコンピューティングデバイス（不図示）は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有する。画像編集アプリケーションは、タッチセンシティブスクリーン又はニアタッチセンシティブスクリーン上で行われたタッチ入力（例えば、タッチジェスチャについての空間的及び時間的情報）を受け取り又は取得し、その入力を用いて、画像表示エリア１０２５内に表示された画像を回転させる。画像表示エリア１０２５は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する点において、画像表示エリア１０２５は画像表示エリア１２５と同様である。
【０１１３】
画像編集アプリケーションは、タッチ入力を受け取ると、ユーザは、表示された画像を回転させたいのかどうかを判定する。いくつかの実施形態では、ユーザが２本以上の指を使って、表示された画像にタッチし、画像上で指を閾値量（例えば、数度）よりも多く回転させると、画像編集アプリケーションは、ユーザは、表示された画像を回転させたいと判定する。画像編集アプリケーションは、タッチスクリーン上の指の位置を追跡し、２本の指の位置を結ぶ線が作り出す回転の量を測定することによって、指の回転の量を判定する。
【０１１４】
いくつかの実施形態における画像編集アプリケーションは、画像にタッチしているユーザの指が閾値量よりも多く回転するまで、表示された画像を回転させ始めない。これによって、ユーザが２本以上の指で、表示された画像にタッチすることによって何らかの他のアクションを実行しようと意図しているときには、画像編集アプリケーションは画像を回転させることを控える。例えば、ユーザが単に画像にタッチしながら２本の指を開いて更に遠く離すときには、メディア編集アプリケーションは、表示された画像を拡大し、表示された画像を回転させない。別の例として、画像編集アプリケーションは、ユーザが２本以上の指で画像をスワイプする場合には、画像を表示エリア内で回転させずに、画像の異なる部分を表示する。このように、画像編集アプリケーションは、ユーザが画像から指を上げずに、表示された画像を角度補正すること、切り抜くこと、拡大縮小すること、及びスライドさせることを可能にする。
【０１１５】
これより、ＧＵＩ１０００を有する画像編集アプリケーションの操作例を説明する。段階１００５において、画像編集アプリケーションは画像表示エリア１０２５内に画像１０２６を表示する。段階１０１０において、ユーザは２本の指１０１１及び１０１２を画像１０２６上に載せる。段階１０１５において、ユーザは２本の指１０１１及び１０１２を時計回りに少し、ただし、既定の閾値（例えば、数度の角度）よりも少なく、回転させる。指の回転の量は閾値を超えなかったので、画像編集アプリケーションは、表示された画像１０２６を回転させ始めない。
【０１１６】
第４段階１０２０において、次に、ユーザは指１０１１及び１０１２を時計回りに更に回転させ、画像編集アプリケーションはそれに応じて、表示された画像１０２６を回転させる。ユーザは、表示された画像１２６を真っ直ぐにするのに（例えば、画像内に示されている建物及び３人の人物をＧＵＩ１０００の水平線と水平にするのに）ちょうど足るだけ、指１０１１及び１０１２を回転させた。
【０１１７】
図１１は、ユーザが、２本以上の指を使って、表示された画像にタッチし、これを旋回させることによって、画像処理アプリケーションの画像表示エリア内に表示された画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス１１００を概念的に示す。いくつかの実施形態におけるプロセス１１００は画像編集アプリケーションによって実行される。タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス１１００は開始する。プロセス１１００は、（１１０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。画像表示エリアの例としては、図１０を参照して上述されている画像表示エリア１０２５が挙げられる。
【０１１８】
次に、プロセス１１００は（１１１０において）、表示された画像は２つ以上のタッチ入力を受け取ったどうかを判定する。すなわち、プロセス１１００は（１１１０において）、ユーザは、表示された画像上に２本以上の指を載せたかどうかを判定する。プロセスが（１１１０において）、表示された画像は２つ以上のタッチ入力を受け取らなかったと判定した場合には、プロセス１１００は、複数のタッチ入力を待つために、１１１０へループして戻る。
【０１１９】
プロセス１１００が（１１１０において）、表示された画像は２つ以上のタッチ入力を受け取ったと判定した場合には、プロセスは（１１１５において）、タッチ入力は回転性であるかどうかを判定する。いくつかの実施形態では、ユーザの指がタッチしている２つのロケーションを結ぶ線が回転した場合には、プロセスは、タッチ入力は回転性であると判定する。
【０１２０】
プロセス１１００が（１１１５において）、タッチ入力は回転性ではないと判定すると、プロセス１１００は終了する。さもなければ、プロセス１１００は、受け取ったタッチ入力が作り出した回転の量（例えば、角度の度数）を特定するために、１１２０へ進む。
【０１２１】
次に、プロセス１１００は（１１２５において）、特定された回転の量は特定の閾値（例えば、数度の角度）を超えているかどうかを判定する。プロセス１１００が（１１２５において）、回転の量は閾値よりも少ないと判定すると、プロセスは終了する。さもなければ、プロセスは、表示された画像を回転させるために、１１３０へ進む。いくつかの実施形態では、プロセス１１００は（１１３０において）、画像を、タッチ入力が移動した特定された量に比例する量だけ回転させる。すなわち、いくつかの実施形態では、プロセス１１００は（１１３０において）、表示された画像を、タッチ入力が移動した同じ量だけ回転させる。他の実施形態では、プロセス１１００は、表示された画像を、タッチ入力が移動した量よりも多いか又は少ない量だけ回転させる。次に、プロセスは終了する。
【０１２２】
図１２は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、表示された画像を、画像にタッチし、これを旋回させることによって、回転させることを、６つの異なる段階１２０５〜１２３０において示す。
【０１２３】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。第１段階１２０１は、指１２３０でサムネイル４４０にタッチすることによるユーザのサムネイル４４０の選択を示す。画像編集アプリケーションは、サムネイル４４０の選択に応答して、サムネイル４４０によって表されている画像４４５を画像表示エリア４１０内に表示する。
【０１２４】
段階１２０２において、次に、ユーザは、ツール選択ペイン４２０内に表示されているアイコン４２１を選択する。それに応答して、画像編集アプリケーションは段階１２０３において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションは、切り抜き及び角度補正ツールが起動されていることを示すために、アイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、画像表示エリア４１０内にグリッド線４５０も表示する。固定ノブ４６０によって指し示された数字は、ダイアル４３５はどちらの方向にも全く旋回されていないことを示している。
【０１２５】
段階１２０４において、ユーザは２本の指１２３５及び１２４０で画像にタッチし、２本の指を時計回りに少し、ただし、既定の閾値（例えば、数度の角度）よりも少なく、回転させる。指の回転の量は閾値を超えなかったので、切り抜き及び角度補正ツールは、表示された画像４４５を回転させ始めない。切り抜き及び角度補正ツールはダイアル４３５の回転も開始せず、グリッド線４５０に加えてより多くのグリッド線も表示しない。
【０１２６】
次の段階１２０５において、ユーザは指１２３５及び１２４０を時計回りに既定の閾値度超回転させた。切り抜き及び角度補正ツールはそれに応じて、表示された画像４４５を回転させる。ユーザは、画像４４５内に表示されている自転車が角度補正されるまで、指１２３５及び１２４０を回転させた。本例では、固定ノブ４６０によって指し示されている「−１０」は、ダイアル４３５及び表示された画像４４５は時計回りに１０度回転したことを示している。段階４０５はまた、角度補正ツールは、回転される前に画像４４５の外側にはみ出している部分を表示することを回避するために、画像４４５を拡大し（そのため、画像内の自転車はより大きく見える）、それを切り抜いたことも示す。また、切り抜き及び角度補正ツールは、指１２３５の回転が既定の閾値を超えるとすぐに、グリッド線４５５を表示する。
【０１２７】
最終段階１２０６は、ユーザが、表示された画像４４５から指１２３５及び１２４０を上げ、画像にもはやタッチしなくなった後のＧＵＩ４００を示す。画像４４５はもはやタッチされていないので、切り抜き及び角度補正ツールはグリッド線４５５も除去した。
【０１２８】
ユーザが画像にタッチし、表示された画像を角度補正することを可能にすることに加えて、いくつかの実施形態の画像編集アプリケーションは、画像上に重ね合わせられる少なくとも１つのＵＩ制御項目であって、ユーザがそのＵＩ制御項目を用いて画像を角度補正することを可能にする、ＵＩ制御項目を提供する。
【０１２９】
図１３はいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの切り抜き及び回転ツールによって検出された水平線を用いることによって、表示された画像を回転させることを、５つの異なる段階１３０１〜１３０５において示す。
【０１３０】
いくつかの実施形態では、切り抜き及び角度補正ツールは、表示エリア内に表示された画像を分析し、画像の水平線を検出する。切り抜き及び角度補正ツールは、検出された水平線を画像の上に表示し、ユーザが、表示された水平線を用いて画像を角度補正することを可能にする。検出された水平線に加えて、いくつかの実施形態の切り抜き及び角度補正ツールは、画像を角度補正するための１つ以上の選択可能なユーザインタフェース項目を提供する。いくつかの実施形態において提供されるユーザインタフェース項目の１つは、画像編集アプリケーションが、画像を角度補正するために水平線をどの方向へ旋回させることになるのかを示す。ユーザが、水平線及びユーザインタフェース項目によって示唆された通りに画像を角度補正したい場合には、ユーザは、画像を角度補正するために、ユーザインタフェース項目を選択することができる。０２／０６／２０１２に出願された米国特許出願第１３／３６６，６１３号には、水平線の検出が詳細に記載されている。米国特許出願第１３／３６６，６１３号は本明細書において参照により組み込まれている。
【０１３１】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。第１段階１３０１は、指１３２５でサムネイル１３１５にタッチすることによるユーザのサムネイル１３１５の選択を示す。画像編集アプリケーションは、サムネイル１３１０の選択に応答して、サムネイル１３１５によって表されている画像１３２０を画像表示エリア４１０内に表示する。
【０１３２】
段階１３０２において、次に、ユーザは、ツール選択ペイン４２０内に表示されているアイコン４２１を選択する。それに応答して、画像編集アプリケーションは段階１３０３において切り抜き及び角度補正ツールを起動する。切り抜き及び角度補正ツールは水平線１３４５を検出し、表示された画像１３２０の上に水平線１３４５を表示する。加えて、切り抜き及び角度補正ツールは、検出された水平線１３４５の両端において、選択可能なＵＩ項目１３３５及び１３４０を表示する。ＵＩ項目１３４０は、画像を角度補正するためのものであり、ユーザがユーザインタフェース項目１３４０を選択した時に水平線１３４５が旋回することになる方向を示す。水平線１３４５は左へ傾いている（例えば、左端が右端よりも下にある）ので、画像１３２０を角度補正させるために切り抜き及び角度補正ツールは水平線１３４５及び画像１３２０を時計回りに回転させることになることを示すために、切り抜き及び角度補正ツールはＵＩ項目１３４０内に下向きの矢印を配置する。ユーザインタフェース項目１３３５は、水平線１３４５を閉じるためのものである。ユーザがユーザインタフェース項目１３３５を選択すると、画像編集アプリケーションは水平線１３４５及びユーザインタフェース項目１３３５及び１３４０を消すことになる。
【０１３３】
また、段階１３０３において、画像編集アプリケーションはアイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、画像表示エリア４１０内にグリッド線４５０も表示する。固定ノブ４６０によって指し示されたダイアル４３５上の数字は「０」を示しており、ダイアル４３５はどちらの方向にも全く旋回されていないことを示している。
【０１３４】
段階１３０４において、ユーザは指１３２５でユーザインタフェース項目１３４０を選択する。次に、段階１３０５において、切り抜き及び角度補正ツールはそれに応答して、水平線１３４５が水平になるように（すなわち、画像表示エリア１３２５の下縁部と平行になるように）画像１３３０を時計回りに回転させることによって、画像１３３０を角度補正する。切り抜き及び角度補正ツールは、表示された画像４４５を時計回りにダイアル４３５の回転の量だけ旋回させた。本例では、固定ノブ４６０によって指し示されている「−１０」は、ダイアル４３５及び表示された画像４４５は時計回りに１０度回転したことを示している。段階１３０５はまた、角度補正ツールは、回転される前に画像４４５の外側にはみ出している部分を表示することを回避するために、画像４４５を拡大し（そのため、画像内の自転車はより大きく見える）、それを切り抜いたことも示す。
【０１３５】
図１４は、ユーザが画像１３２０を角度補正するために水平線１３４５を用いないことを望む場合には、検出された水平線１３４５を閉じることを示す。具体的には、本図は、ユーザが、ＵＩ項目１３３５を選択することによって、検出された水平線１３４５を閉じることを、５つの異なる段階１４０１〜１４０５において示す。
【０１３６】
上述のように、ＵＩ項目１３３５は、水平線１３４５を閉じるためのものである。ユーザがＵＩ項目１３３５を選択すると、切り抜き及び角度補正ツールは水平線１３４５並びにＵＩ項目１３３５及び１３４０を消すことになる。いくつかの実施形態では、切り抜き及び角度補正ツールは、ＵＩ項目１３３５を選択すること以外の方法を提供する。例えば、切り抜き及び角度補正ツールは、ユーザがＧＵＩ４００の他のエリアの上をタップすると、水平線１３４５並びにＵＩ項目１３３５及び１３４０を消すことになる。ＧＵＩ４００のこれらの他のエリアは、ダイアル４３５、ＵＩ項目１３３５以外の画像表示エリア４１０の部分等を含む。いくつかの実施形態では、画像編集アプリケーションは、ユーザが選択するための別のＵＩ項目（不図示）を提供する。ユーザがこのＵＩ項目（例えば、リセットボタン）を選択すると、画像編集アプリケーションは、閉じられた水平線１３４５を再表示する。
【０１３７】
これより、ＧＵＩ４００を含む画像編集アプリケーションの操作例を説明する。最初の３つの段階１４０１〜１４０３は、図１３を参照して上述されている段階１３０１〜１３０３と同一である。段階１４０４において、ユーザは指１４２５でＵＩ項目１４３５を選択する。次に、段階１４０５において、切り抜き及び角度補正ツールはそれに応答して、画像表示エリアからＵＩ項目１３３５及び１３４０並びに検出された水平線１３４５を除去する。
【０１３８】
図１５は、ユーザが、画像を角度補正するためのユーザインタフェース項目を選択することによって、画像処理アプリケーションの画像表示エリア内に表示された画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス１５００を概念的に示す。いくつかの実施形態におけるプロセス１５００は画像編集アプリケーションによって実行される。タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス１５００は開始する。プロセス１５００は、（１５０５において）画像の水平線を特定することによって、始まる。米国特許出願第１３／３６６，６１３号には、水平線の特定が詳細に記載されている。
【０１３９】
次に、プロセス１５００は（１５１０において）画像編集アプリケーションの表示エリア内に画像及び特定された水平線を表示する。画像表示エリアの例としては、図１３を参照して上述されている画像表示エリア１３２５が挙げられる。プロセス１５００はまた（１５１５において）、表示された画像を角度補正するためのユーザインタフェース項目も表示する。いくつかの実施形態では、プロセス１５００は、プロセスは水平線及び画像を、水平線及び画像を角度補正する方向に回転させることになることを示すためのユーザインタフェース項目を水平線内に表示する。このようなユーザインタフェース項目の一例は、図１３を参照して上述されているユーザインタフェース項目１３４０である。
【０１４０】
次に、プロセス１５００は（１５２０において）、ユーザは表示されたユーザインタフェース項目を選択したかどうかを判定する。プロセス１５００が（１５２０において）、ユーザはユーザインタフェース項目を選択しなかったと判定すると、プロセス１５００は、ユーザがユーザインタフェース項目を選択するのを待つために、１５２０へループして戻る。
【０１４１】
プロセス１５００が（１５２０において）、ユーザはユーザインタフェース項目を選択したと判定すると、プロセス１５００は、水平線を用いて画像を回転させるために、１５２５へ進む。いくつかの実施形態では、プロセス１５００は、水平線及び画像が回転するにつれて画像に対する水平線の位置が変化しないように、水平線を画像と共に回転させる。プロセス１５００は、表示された画像を角度補正するために、水平線を用いて、表示された画像を回転させる。次に、プロセスは終了する。
【０１４２】
Ｂ．画像上切り抜き
図１６は、ユーザが画像上切り抜きツールを操作することによって画像を切り抜くことを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ１６００を概念的に示す。具体的には、本図は、ユーザが、画像１６４０の角部及び縁部にタッチし、これらをドラッグすることによって、画像１６４０を切り抜くことを、６つの異なる段階１６０５〜１６１５において示す。図１６は、ＧＵＩ１６００は画像表示エリア５３５を含むことを示す。
【０１４３】
図６を参照して上述されているように、画像上切り抜きツールは、ユーザが、画像を拡大することによって、画像から不必要な部分をトリミングして除去することを可能にする。いくつかの実施形態では、画像上切り抜きツールはまた、ユーザが、画像の角部及び縁部を内外にドラッグすることによって、画像から不必要な部分をトリミングして除去することも可能にする。切り抜きツールはまた、複数のタッチによって画像の角部及び縁部をドラッグすることも可能にする。例えば、ユーザは、画像に対して対角方向にピンチジェスチャを行うこと（例えば、タッチセンシティブスクリーン又はニアタッチセンシティブスクリーン上で２本の指を互いに向けて寄せること）によって、画像の２つの角部を画像の中心に向けてドラッグすることができる。
【０１４４】
いくつかの実施形態における画像上切り抜きツールは、ユーザが、アスペクト比を維持しつつ画像を切り抜くことを可能にする。維持するべきアスペクト比は、切り抜かれる前の元の画像のアスペクト比、又はユーザが選ぶことができる既定のアスペクト比（例えば、２×３）のうちの１つであり得るであろう。また、いくつかの実施形態における画像上切り抜きツールは、切り抜かれた後の画像を、切り抜かれる前の画像の元のサイズに一致するように、引き伸ばす。
【０１４５】
これより、ＧＵＩ１６００を有する画像編集アプリケーションの操作例を説明する。段階１６０５において、画像編集アプリケーションは画像表示エリア１６３５内に画像１６４０を表示する。次に、段階１６１０において、ユーザは指１６１１を画像１６４０の右上角部に載せる。段階１６１５において、ユーザは、画像内に示されている山及びギタリストを切り落とすために、画像１６４０の右上角部を対角方向にドラッグする。
【０１４６】
段階１６２０において、画像編集アプリケーションは、画像の残りの部分（すなわち、ドラマーを示す画像の部分）を引き伸ばす。残りの部分のアスペクト比は画像表示エリア１６３５のアスペクト比に一致しないので、画像処理アプリケーションは、画像の引き伸ばされた残りの部分の両側に２つのグレイエリアを配置する。
【０１４７】
この段階１６２０において、ユーザはまた、指１６１１を残りの部分の下縁部に載せる。次の段階１６２５において、ユーザは、画像１６４０の更に多くの部分をトリミングして除去するために、下縁部を上にドラッグする。段階１６３０において、画像編集アプリケーションは画像の残りの部分をいっぱいに引き伸ばす。画像の最終的な残りの部分は、切り抜かれる前の画像の元のアスペクト比と同じアスペクト比を有するので、画像編集アプリケーションは表示エリア１６４０内にグレイエリアを表示しない。
【０１４８】
図１７は、画像編集アプリケーションのユーザが画像を切り抜くことを可能にするためにいくつかの実施形態が実行するプロセス１７００を概念的に示す。いくつかの実施形態におけるプロセス１７００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス１７００は開始する。プロセス１７００は、（１７０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０１４９】
次に、プロセス１７００は（１７１０において）、表示された画像の上に幾何学形状を表示する。いくつかの実施形態では、幾何学形状は、表示された画像の縁部に最初に重なっている形状である。幾何学形状がサイズ変更されると、幾何学形状は、切り抜かれた画像の縁部を画定する。次に、プロセス１７００は（１７１５において）、幾何学形状はユーザ入力を受け取ったかどうかを判定する。いくつかの実施形態では、ユーザが指を角部又は縁部の上に載せることによって幾何学形状の角部又は縁部を選択した場合に、プロセス１７００は、幾何学形状はユーザ入力を受け取ったと判定する。また、ユーザが２本以上の指を幾何学形状の角部及び縁部並びに幾何学形状内のエリアの上に載せて動かした場合に、プロセス１７００は、幾何学形状はユーザ入力を受け取ったと判定する。
【０１５０】
次に、プロセス１７００は（１７２０において）、受け取った入力に基づき幾何学形状をサイズ変更する。プロセス１７００は、ユーザが１本以上の指を使って行ったジェスチャを異なって解釈する。例えば、ユーザが幾何学形状の縁部を選択し、幾何学形状の中心に向けてドラッグすると、プロセス１７００は縁部を内側へ動かす。また、ユーザが指を幾何学形状の角部の上に載せ、表示された画像の中心に向けてドラッグすると、プロセス１７００は角部を内側へ移動させる。更に、ユーザが２本以上の指を使って画像の縁部及び角部を選択し、ドラッグすると、あるいはユーザが幾何学形状の上でピンチジェスチャ（例えば、幾何学形状の内側にタッチしながら２本の指をくっつけること）若しくは幾何学形状の上で拡大ジェスチャ（例えば、幾何学形状の内部にタッチしながら２本の指を広げて離すこと）を実行すると、プロセス１７００は幾何学形状の１つを超える縁部又は１つを超える角部を一度に動かす。
【０１５１】
次に、プロセス１７００は、幾何学形状を用いて、表示された画像を切り抜く（１７２５）。いくつかの実施形態では、プロセスは、幾何学形状の範囲に入らない、表示された画像の部分を切り落とす。次に、プロセスは終了する。
【０１５２】
図１８Ａはいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの画像上切り抜きツールを用いることによって、表示された画像１８１０を切り抜くことを、６つの異なる段階１８０１〜１８０６において示す。
【０１５３】
図１６を参照して上述されているように、いくつかの実施形態の画像上切り抜きツールは、ユーザが、画像の縁部及び角部を操作することによって、画像の不必要な部分を切り落とすことを可能にする。いくつかの実施形態では、画像上切り抜きツールはまた、ユーザが、画像を拡大することによって、表示された画像を切り抜くことも可能にする。画像上切り抜きツールは、画像が拡大された後に画像表示エリア４１０の外部へはみ出す画像の部分を切り落とす。
【０１５４】
これより、ＧＵＩ４００を有する画像編集アプリケーションの操作例を説明する。第１段階１８０１は、指１８１５でサムネイル１８１０にタッチすることによるユーザのサムネイル１８１０の選択を示す。画像編集アプリケーションは、サムネイル１８１５の選択に応答して、サムネイル１８１０によって表されている画像１８１６を画像表示エリア４１０内に表示する。
【０１５５】
段階１８０２において、次に、ユーザは、ツール選択ペイン４２０内に表示されているアイコン４２１を選択する。それに応答して、画像編集アプリケーションは段階１８０３において画像上切り抜きツールを起動する。画像編集アプリケーションはアイコン４２１を強調表示する。画像編集アプリケーションはまた、ツール表示エリア４２５内にダイアル４３５も表示し、画像表示エリア４１０内にグリッド線４５０も表示する。
【０１５６】
段階１８０４において、ユーザは２本の指１８２０及び１８２５で画像１８１０にタッチする。次の段階１８０５は、ユーザが画像１８１０上で拡大ジェスチャを実行した後のＧＵＩ４００を示す。それに応答して、画像上切り抜きツールは画像１８１０を拡大し、画像表示エリア４１０の外部へはみ出す画像部分を切り落とす。画像上切り抜きツールは、切り抜かれた画像を、画像表示エリア４１０全体を占めるように引き伸ばした。最終段階１８０６は、ユーザが画像１８１０から指１８２０及び１８２５を上げ、画像１８１０にもはやタッチしなくなった後のＧＵＩ４００を示す。
【０１５７】
図１８Ｂ及び１８Ｃはいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの画像上切り抜きツールを用いることによって、表示された画像１８１０を切り抜くことを、９つの異なる段階１８０１ｂ〜１８０９ｂにおいて示す。具体的には、図１８Ｂ及び１８Ｃは、内側表示エリア４８０を有するいくつかの実施形態のＧＵＩ４００を示す。
【０１５８】
これより、ＧＵＩ４００を有する画像編集アプリケーションの操作例を説明する。第１段階１８０１ｂ及び第２段階１８０２ｂは、図１８Ａを参照して上述された段階１８０１及び段階１８０２と同一である。段階１８０２ａにおけるアイコン４２１の選択に応答して、画像編集アプリケーションは段階１８０３ａにおいて切り抜きツールを起動する。画像編集アプリケーションは表示エリア４１０内に内側表示エリア４８０ａを表示する。
【０１５９】
段階１８０４ａにおいて、ユーザは２本の指１８２０及び１８２５で画像１８１０にタッチする。次の段階１８０５ａは、ユーザが、画像を拡大するために、画像１８１０上で拡大ジェスチャを実行した後のＧＵＩ４００を示す。それに応答して、画像上切り抜きツールは画像１８１０を拡大する。拡大の結果、内側表示エリア４８０ａの外部へはみ出す画像の部分は外側エリア４８５ａ内に表示される。画像の境界も外側エリア４８５ａ内に表示される。画像上切り抜きツールは、ユーザが画像を更に拡大することを可能にし、画像の一部の部分は表示エリア４１０の外部へはみ出す場合がある。
【０１６０】
次の段階１８０６ａは、ユーザが画像１８１０から指１８２０及び１８２５を上げ、画像１８１０にもはやタッチしなくなった後のＧＵＩ４００を示す。図示されているように、外側エリア４８５ａ内に表示されていた画像の部分及び画像の境界は外側エリア４８５ａ内にもはや表示されていない。次の段階１８０７ａは、ユーザが画像１８１０に再びタッチした後のＧＵＩ４００を示す。段階１８０５ａにおいて外側エリア４８５ａ内に表示されていた画像の部分及び画像の境界は外側エリア４８５ａ内に再び現れている。
【０１６１】
段階１８０８ａにおいて、ユーザは画像を右へドラッグし、その結果、画像１８１０の異なる部分が内側表示エリア４８０ａ内に表示される。また、内側表示エリア４８０ａの外部へはみ出す画像の異なる部分が今度は外側エリア４８５ａ内に表示される。次の段階１８０９ａは、ユーザが画像１８１０から指を上げ、画像１８１０にもはやタッチしなくなった後のＧＵＩ４００を示す。図示されているように、前の段階１８０８ａにおいて外側エリア４８５ａ内に表示されていた画像のそれらの部分及び画像の境界は外側エリア４８５ａ内にもはや表示されていない。
【０１６２】
図１９はいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、プリセットされたアスペクト比を選択することによって、表示された画像１９１０を切り抜くことを、４つの異なる段階１９０１〜１９０４において示す。
【０１６３】
いくつかの実施形態における画像編集アプリケーションは、ユーザが選ぶことができるアスペクト比のセットを提供する。画像編集アプリケーションは、選択されたアスペクト比を用いて、画像表示エリア４１０内に表示された画像を切り抜く。例えば、画像表示エリア４１０内に表示された元の画像は３×２のアスペクト比（例えば、３は幅に関し、２は高さに関する）を有し、選択されたアスペクト比は２×３である場合には、画像編集アプリケーションは元の画像の両側をトリミングし、アスペクト比を２×３の比に変更する。
【０１６４】
いくつかの実施形態における画像編集アプリケーションは、元の画像内に示されている顔（単数又は複数）のロケーションに基づき、切り落とすべき部分を決定する。画像編集アプリケーションは、画像の残りの部分が画像の中心内に顔（単数又は複数）を有するように、画像の部分を切り落とす。画像編集アプリケーションは、顔検出技法（例えば、あらゆる顔を検出する）及び／又は顔認識技法（例えば、関心がある顔を検出する）を用いて顔（単数又は複数）を見つける。
【０１６５】
画像編集アプリケーションが複数の顔を見つけた場合には、異なる実施形態は、切り抜かれた画像の中心に顔を据えるために、異なる技法を用いる。例えば、いくつかの実施形態の画像編集アプリケーションは、それぞれの見つけられた顔の中心座標を特定し、特定された中心座標を平均し、平均中心座標を有する画像の部分を、切り抜かれた画像の中心内に配置する。別の例として、いくつかの実施形態の画像編集アプリケーションは、見つけられたそれぞれの顔のサイズを特定し、最も大きな顔を、切り抜かれた画像内に配置する。更に別の例として、いくつかの実施形態の画像編集アプリケーションは、関心がある顔を、切り抜かれた画像の中心内に配置する。
【０１６６】
いくつかの実施形態では、画像編集アプリケーションはサムネイルのセットをアスペクト比のセットと共に提供する。これらのサムネイルはそれぞれ、対応する選択可能なアスペクト比に基づき切り抜かれた画像のプレビューを提供する。
【０１６７】
これより、ＧＵＩ４００を有する画像編集アプリケーションの操作例を説明する。第１段階１９０１は、ユーザが、編集するべき画像を選択し、アイコン４２１を選択した後のＧＵＩ４００を示す。画像編集アプリケーションはツール表示エリア４２５内にダイアル４３５を配置し、アイコン４２１を強調表示した。
【０１６８】
段階１９０２において、ユーザは、プリセットされたアスペクト比を示すためのアイコン１９１０を選択する。画像編集アプリケーションは、ユーザが選ぶことができるプリセットされたアスペクト比を表示する。次の段階１９０３はユーザの２×３のアスペクト比の選択を示す。
【０１６９】
最終段階１９０４は、画像編集アプリケーションが画像１９１０を切り抜いた後のＧＵＩ４００を示す。画像編集アプリケーションは顔１９１５を見つけ、切り抜かれた画像が顔１９１５を中心に有するように画像を切り抜く。３×２の比から２×３の比を作るためには、画像の上部及び下部ではなく、画像の側部がトリミングされるので、画像編集アプリケーションは顔１９１５を、切り抜かれた画像の左右中心内に配置する。画像表示エリア４１０内に表示されるグレイエリアは、切り落とされた画像の部分を表す。
【０１７０】
いくつかの実施形態の画像上切り抜き及び角度補正ツールについて説明したが、次のセクションは、いくつかの実施形態の画像編集アプリケーションを用いて、画像の選択されたエリアに画像処理操作を適用するための他の画像上ツールについて説明する。
【０１７１】
ＩＩ．画像上ブラシツール
いくつかの実施形態の画像編集アプリケーションは、表示された画像の選択されたエリアに画像処理操作を適用するための画像上ブラシツールのセットを提供する。これらのツールの一部は、ユーザが、表示された画像のエリアを選択し、選択されたエリアに画像処理操作を適用することを可能にする。これらのツールの一部は、ユーザが、表示された画像のエリアを複数回選択し、画像のエリアが選択された回数に基づき、画像処理操作を適用することを可能にする。
【０１７２】
Ａ．エリアの選択による画像処理操作の適用
図２０は、ユーザが、画像処理操作を適用するべき画像内のエリアを選択することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが画像にタッチすることによって画像のエリアを選択し、画像の選択されたエリアに画像処理操作を適用することを、６つの異なる段階２００１〜２００６において示す。
【０１７３】
上述のように、いくつかの実施形態におけるツール選択ペイン４２０は、画像編集アプリケーションの異なる編集ツールセットを表すアイコンのセットを表示する。ツール選択ペイン４２０は、いくつかの実施形態ではツール選択ペイン４３０内に表示されている左から４つ目のアイコンである、アイコン２０２０を含む。ツール選択ペイン４２０内に表示されているアイコン２０２０が表すツール群は画像上ブラシツール群を含む。ユーザがアイコン２０２０を選択すると、いくつかの実施形態における画像編集アプリケーションは、ツール表示エリア４２５（又はＧＵＩ４００のその他の部分）内に、これらの画像上ブラシツール群を表す選択可能なＵＩ項目２０２５のセットを表示する。ツール群のうちの１つが選択されると（例えば、ユーザが、そのツールを表すアイコンを選択すると）、そのツールが起動され、表示された画像へのユーザ入力は、選択されたツールへの入力として扱われる。
【０１７４】
いくつかの実施形態における選択可能なＵＩ項目２０２５のセットは、画像処理操作又は効果によって異なる形状のブラシを有するアイコンのセットである。例えば、アイコン２０３０は欠点除去ツールを表す。アイコン２０３５は赤目除去ツールを表す。アイコン２０４０は飽和ツールを表す。アイコン２０４５は脱飽和ツールを表す。アイコン２０５０は明色化ツールを表す。アイコン２０５５は暗色化ツールを表す。アイコン２０６０はシャープ化ツールを表す。アイコン２０６５はソフト化ツールを表す。ツールはそれぞれ、起動されると、ユーザがエリアにタッチすることによって選択した画像のエリアに、効果を適用する。
【０１７５】
これらのツール群の一部は、エリアがタッチされる回数にかかわらず、エリアに、対応する効果を適用する。すなわち、このようなツール群は、エリアが初めてタッチされた時に、効果を１度適用するが、エリアがその後、再びタッチされた時には、効果を適用しない。例えば、いくつかの実施形態における欠点除去ツールは、ユーザが初めてエリアにタッチすると、エリアから欠点を除去するが、ユーザがエリアに再びタッチした時には、エリアから欠点を更に除去しようとは試みない。いくつかの実施形態では、もう１つのこのようなツールは赤目除去ツールである。
【０１７６】
選択可能なＵＩ項目２０２５のセットによって表されたツール群の一部は、画像のエリアがタッチされる回数に基づき、対応する効果を適用する。以下において、このようなツールについて更に詳細に説明する。
【０１７７】
これより、ＧＵＩ２０００を有する画像編集アプリケーションの操作例を説明する。第１段階２００１は、指２０７０でサムネイル２０１０にタッチすることによるユーザのサムネイル２０１０の選択を示す。画像編集アプリケーションは、サムネイル２０１０の選択に応答して、サムネイル２０１０によって表されている画像２０１５を画像表示エリア４１０内に表示する。
【０１７８】
段階２００２において、ユーザは、ツール選択ペイン４２０内に表示されているアイコン２０２０を選択する。それに応答して、画像編集アプリケーションは段階２００３において、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目２０２５のセットを表示する。段階２００４において、ユーザは、アイコン２０３０にタッチすることによって欠点除去ツールを選択する。画像編集アプリケーションは欠点除去ツールを起動する。
【０１７９】
段階２００５において、ユーザは指２０７０を使って水面及びオールの先端を左右に複数回擦る。欠点除去ツールは、ユーザによって擦られたエリアを特定し、エリアに欠点除去操作を適用する。０８／１３／２００９に公開された米国特許出願公開第２００９／０２０２１７０号には、欠点除去操作の例が詳細に記載されている。米国特許出願公開第２００９／０２０２１７０号は本明細書において参照により組み込まれている。段階２００６において、画像編集アプリケーションは、オールの先端、及び擦られたエリアの範囲に含まれていたオールの部分を除去した。
【０１８０】
図２１は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアにタッチすることによって画像処理操作を適用することを可能にするために、いくつかの実施形態が実行するプロセス２１００を概念的に示す。いくつかの実施形態におけるプロセス２１００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、擦るジェスチャ）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス２１００は開始する。プロセス２１００は、（２１０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０１８１】
次に、プロセス２１００は（２１１０において）、適用するべき画像処理操作の選択を受け取る。いくつかの実施形態では、画像処理操作を表すユーザインタフェース項目にユーザがタッチすると、プロセス２１００は、画像編集アプリケーションのユーザインタフェース項目（例えば、アイコン）を通じて、画像処理操作の選択を受け取る。画像処理操作の例には、欠点の除去、赤目の除去等がある。
【０１８２】
次に、プロセス２１００は（２１１５において）、画像のエリアが選択されているかどうかを判定する。いくつかの実施形態では、プロセス２１００は、ユーザがエリアにタッチした場合に、画像のエリアが選択されていると判定する。プロセスが（２１１５において）、エリアが選択されなかったと判定した場合には、プロセス２１００は、ユーザのエリアの選択を待つために、２１１０へループして戻る。
【０１８３】
プロセス２１００が（２１１５において）、エリアが選択されたと判定した場合には、プロセスは、選択されたエリアの画像特性を特定するために、２１２０へ進む。プロセス２１００が特定する画像特性の例には、輝度、色等がある。次に、プロセス２１００は（２１２５において）、特定された画像特性に基づき、選択されたエリアに、選択された画像処理操作を適用する。次に、プロセスは終了する。
【０１８４】
これまでに説明されたいくつかの実施形態のブラシツールは一定のブラシサイズを用いる。すなわち、画像表示エリアのサイズに対するブラシツールを用いて作り出される行程の幅は一定である。いくつかの実施形態の画像編集アプリケーションは異なるブラシのサイズを提供しない。一部のこのような実施形態では、画像編集アプリケーションは、一定のブラシサイズを備えるブラシツールのために、効果をより細かい粒度で適用することを可能にする。
【０１８５】
図２２は、いくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、画像編集アプリケーションが、ユーザが、画像表示エリアのサイズに対して変化しないサイズを有するブラシを用いてより細かいレベルで欠点除去効果を適用するために、画像を拡大することを可能にすることを、８つの異なる段階２２０１〜２２０８において示す。
【０１８６】
これより、ＧＵＩ４００を有する画像編集アプリケーションの操作例を説明する。段階２２０１において、アイコン２０２０は、画像編集アプリケーションがＧＵＩ４００内に選択可能なＵＩ項目２０２５のセットを表示していることを示すために、強調表示される。ユーザは、指２２１０でアイコン２０３０にタッチすることによって、欠点除去ツールを選択した。画像編集アプリケーションはまた、画像表示エリア４１０内に画像２２１５を表示した。
【０１８７】
段階２２０２において、ユーザは、画像２２１５内に示されている星の付近にタッチする。段階２２０３において、ユーザは、画像２２１５にタッチしながら指を右へドラッグする。グレイエリア２２２０はユーザが作り出した行程を示す。グレイエリア２２２０の高さはブラシサイズを表す。ブラシサイズは、空にある欠点を覆うには十分に小さいが、画像内に示されているより小さな物体に欠点除去効果を適用するには大きすぎる。例えば、ブラシサイズは、画像２２１５内に示されているスピーカボックスの上部の円のみにタッチするには大きすぎる。
【０１８８】
段階２２０４は、画像編集アプリケーションは、画像２２１５内に示されている空から２つの星を除去したことを示す。段階２２０５において、ユーザは、画像２２１５上で拡大ジェスチャを実行することによって、画像２２１５を拡大する。段階２２０６において、ユーザは、画像２２１５内に示されているスピーカボックスの上部の円にタッチする。段階２２０７において、ユーザは画像２２１５にタッチしながら指を右へドラッグする。グレイエリア２２２５はユーザが作り出した行程を表す。グレイエリア２２２５の高さはブラシサイズを表す。画像は拡大されているので、同じブラシサイズが、今では、上部の円のみにタッチし、上部の円の内部の欠点を除去するのに十分小さくなっている。最終段階２２０７は、上部の円内の欠点は除去されたことを示す。
【０１８９】
図２３は、画像の選択されたエリアに画像処理操作を適用する別の画像上ブラシツールの使用を示す。具体的には、本図は、ユーザが、ＧＵＩ４００の画像表示エリア４１０内に表示された画像２３１０に赤目除去効果を適用することを、５つの異なる段階２３０１〜２３０５において示す。
【０１９０】
上述のように、画像上ブラシツールの一部は、エリアがタッチされる回数に関係なく、エリアに、対応する効果を適用する。アイコン２０３５によって表されている赤目除去ツールは、いくつかの実施形態におけるこのようなツールの１つである。いくつかの実施形態の画像編集アプリケーションはまた、表示された画像内の赤目から全ての「赤色」を自動的に除去する、自動赤目除去ツールを提供する場合もある。アイコン２０３５によって表された赤目除去ツールは、自動ツールが用いられる前又は後に用いることができる。
【０１９１】
これより、赤目除去ツールを用いたＧＵＩ４００の操作例を説明する。第１段階２３０１は、指２３２５でサムネイル２３１５にタッチすることによるユーザのサムネイル２３１５の選択を示す。画像編集アプリケーションは、サムネイル２３１５の選択に応答して、サムネイル２３１５によって表されている画像２３１０を画像表示エリア４１０内に表示する。
【０１９２】
段階２３０２において、ユーザは、ツール選択ペイン４２０内に表示されているアイコン２３２０を選択する。それに応答して、画像編集アプリケーションは段階２３０３において、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目２３２５のセットを表示する。また、ユーザは、アイコン２３３０にタッチすることによって赤目除去ツールを選択する。画像編集アプリケーションは赤目除去ツールを起動する。
【０１９３】
段階２３０４において、ユーザは、指２３２５で、画像２３１０内に示された人物の右目（画像２３１０の左側の目）にタッチする。いくつかの実施形態における赤目除去ツールは、ユーザがタッチしたエリアに基づき、瞳を特定する。次に、赤目除去ツールは、特定された瞳から赤色を除去する。いくつかの実施形態では、赤目除去ツールは、タッチされた赤目から赤色を除去するために、従来の赤目除去方法を用いる。
【０１９４】
段階２３０５において、ユーザは画像から指２３２５を上げており、画像表示エリア４１０にもはやタッチしていない。この段階は、画像編集アプリケーションは人物の右目から「赤色」を除去したことを示す。
【０１９５】
いくつかの実施形態では、赤目除去ツールは、赤色が除去されるときに、音を再生する。また、いくつかの実施形態における赤目除去ツールは、選択された目から赤色が除去されることを示すための視覚的な指示を提示する。例えば、赤目除去ツールは、選択された目から円が広がるアニメーションを表示する。赤目除去ツールは、ユーザが目を再び選択すると、赤色の除去を取り消す。赤目除去ツールは、ツールが赤色の除去を取り消すときに、別の異なる音を再生する。
【０１９６】
Ｂ．タッチの回数に基づく画像処理操作の適用
上述のように、いくつかの実施形態における画像上ブラシツール群の一部は、エリアがタッチされる回数に基づき、エリアに、対応する効果を適用する。このような画像上ブラシツールを用いるいくつかの例を以下において説明する。
【０１９７】
図２４は、ユーザが、画像の選択されたエリアに画像処理操作を漸増的に適用することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、画像のエリアに、画像を擦ることによって画像処理操作を漸増的に適用することを、６つの異なる段階２４０１〜２４０６において示す。図２４は、ＧＵＩ２４００は画像表示エリア２４２５を含むことを示す。
【０１９８】
いくつかの実施形態では、画像上ブラシツール群の一部は、ユーザが、画像を擦ること（例えば、画像のエリアを１回以上スワイプすること）によって画像処理操作を適用することを可能にする。いくつかの実施形態では、このような画像上ブラシツール群は、アイコン２０４０によって表されている飽和ツール、アイコン２０４５によって表されている脱飽和ツール、アイコン２０５０によって表されている明色化ツール、アイコン２０５５によって表されている暗色化ツール、アイコン２０６０によって表されているシャープ化ツール、及びアイコン２０６５によって表されているソフト化ツールを含む。
【０１９９】
画像のエリアがタッチされるたびに、画像上ブラシツールは、対応する画像処理操作又は効果を増分量ずつ適用する。例えば、明色化ツールは、エリアがタッチされるたびに、表示された画像のエリアを段階的に明るくする（例えば、輝度値を増加させる）。
【０２００】
異なる実施形態は、適用するべき画像処理操作の増分量を異なって決定する。例えば、画像上ブラシツールは、選択された画像処理操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、選択された画像処理操作が明色化操作である場合には、スクリーン上ブラシツールは既定の輝度値デルタずつエリアの輝度値を増加させる。いくつかの実施形態では、画像上ブラシツールは画像特性値を１パーセントずつ増加又は減少させる。また、いくつかの実施形態における画像上ブラシツールは非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【０２０１】
いくつかの実施形態では、画像上ブラシツールは、画像処理操作を漸増的に適用するために、マスク値を用いる。画像処理操作のためのマスク値が、表示された画像の画素のセットに付与される。いくつかの実施形態における画像上ブラシツールは、マスク値が付与された画素のセットに画像処理操作を適用するために、マスク値を変更する。すなわち、これらの実施形態における画像上ブラシツールは、画像処理操作を漸増的に適用するために、マスク値を変更する。
【０２０２】
いくつかの実施形態では、画像上ブラシツールが起動されている間、エリアが受け取るタッチの回数は累積する。すなわち、ユーザが、画像のエリア上で擦る操作（例えば、指を上げる前に画像のエリアを１回以上スワイプすること）を実行した後に、指（又はスタイラス等の、タッチ用のその他のデバイス）を上げ、その後、同じエリア上で新たな擦る操作を再び実行した場合には、そのエリアは、連続的に擦られていると見なされる。一部のこのような実施形態では、別の画像上ブラシツールが、異なる対応する効果を適用するために選択され、起動されると、エリアがタッチされる回数はゼロから累積するか、又はこの画像上ブラシツールが最後に起動され、用いられた時にエリアがタッチされた回数から累積する。
【０２０３】
これより、いくつかの実施形態の画像上ブラシツールの操作例を説明する。第１段階２４０１は、画像編集アプリケーションが画像表示エリア４１０内に画像２４２０を表示している様子を示す。ユーザは、ツール選択ペイン４２０内に表示されているアイコン２０２０を選択する。
【０２０４】
段階２４０２において、画像編集アプリケーションは、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目２０２５のセットを表示する。ユーザは、アイコン２０５０にタッチすることによって明色化ツールを選択する。画像編集アプリケーションは明色化ツールを起動する。
【０２０５】
段階２４０３において、いくつかの実施形態における画像編集アプリケーションは、明色化ツールが起動されたことを示すために、アイコン２０５０を強調表示する。ユーザは指２４２５を、画像２４２０内に示されている空の上に載せる。段階２４０４において、ユーザは画像２４２０にタッチしながら指２４２５を右へドラッグした。明色化ツールは、指２４２５によってタッチされたエリアをより明るくする。
【０２０６】
段階２４０５において、ユーザは指２４２５を左上方向へドラッグした。明色化ツールは、指２４２５によってタッチされたエリアをより明るくする。しかし、部分２４３０は２回タッチされており、したがって、１回しかタッチされていない部分２４３５及び２４４０よりも明るく見える。
【０２０７】
段階２４０６において、ユーザは指２４２５を、段階２４０４において指２４２５があった位置へドラッグして戻した。明色化ツールは、これで２回タッチされた部分２４３５をより明るくする。部分２４３０は３回タッチされたので、部分２４３０は以前よりも明るく見える。
【０２０８】
図２５は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアを擦ることによって画像処理操作を漸増的に適用することを可能にするために、いくつかの実施形態が実行するプロセス２５００を概念的に示す。いくつかの実施形態におけるプロセス２５００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、擦るジェスチャ）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス２５００が開始する。プロセス２５００は、（２５０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０２０９】
次に、プロセス２５００は（２５１０において）、適用するべき画像処理操作の選択を受け取る。いくつかの実施形態では、画像処理操作を表すユーザインタフェース項目にユーザがタッチすると、プロセス２５００は画像編集アプリケーションのユーザインタフェース項目（例えば、アイコン）を通じて画像処理操作の選択を受け取る。
【０２１０】
次に、プロセス２５００は（２５１５において）、画像のエリアがタッチされているかどうかを判定する。いくつかの実施形態では、プロセス２５００は、画像のエリアがタッチされているかどうかを判定するために、コンピューティングデバイスからタッチ情報（例えば、ユーザの指がタッチしているタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアの座標）を受け取る又は取得する。プロセスが（２５１５において）、エリアがタッチされていないと判定した場合には、プロセス２５００は、表示された画像のエリアのユーザのタッチを待つために、２５１５へループして戻る。
【０２１１】
プロセス２５００が（２５１５において）、エリアがタッチされていると判定した場合には、プロセスは、タッチはエリアから動かされたかどうかを判定するために、２５２０へ進む。いくつかの実施形態では、タッチされていたエリアがもはやタッチされていない場合には、プロセス２５００は、タッチはエリアから動かされたと判定する。それゆえ、ユーザがエリアから指を上げるか、又はユーザが指を画像の別のエリアへ動かした場合には、プロセス２５００は、タッチはエリアから動かされたと判定する。プロセス２５００が（２５２０において）、タッチはエリアから動かされなかったと判定した場合には、プロセス２５００は、タッチが動くのを待つために、２５２０へループして戻る。
【０２１２】
プロセス２５００が（２５２０において）、タッチはエリアから動かされたと判定した場合には、プロセス２５００は（２５２５において）画像のエリアに、選択された画像操作を漸増的に適用する。次に、プロセス２５００は（２５３０において）、画像の別のエリアがタッチされているかどうかを判定する。プロセス２５００が（２５３０において）、画像の他のエリアがタッチされていると判定した場合には、プロセス２５００は、タッチがこのエリアから動くのを待つために、２５２０へループして戻る。プロセス２５００が（２５３０において）、画像の他のエリアはタッチされていないと判定した場合には、プロセス２５００は終了する。
【０２１３】
エリアが受け取るタッチの回数に基づき画像処理操作を適用するいくつかの実施形態の画像上ブラシツールを説明したが、次のサブセクションは、タッチ圧力に基づき画像処理操作を適用するいくつかの実施形態の画像上ブラシツールを説明する。
【０２１４】
Ｃ．タッチ圧力に基づく画像処理操作の適用
図２６は、画像のエリアが受けるタッチ圧力に基づき画像処理操作又は効果を適用するいくつかの実施形態の画像上ブラシツールの使用を示す。具体的には、本図は、ユーザが、表示された画像の異なるエリアに、異なる圧力で画像にタッチすることによって、異なるレベルの明色化効果を適用することを、６つの異なる段階２６０１〜２６０６において示す。図２６は、上述したように、タッチ圧力を測定する能力を有するタッチスクリーンを有するコンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのものである、ＧＵＩ４００を示す。
【０２１５】
いくつかの実施形態では、画像上ブラシツールは、タッチ圧力に基づき画像のエリアに効果を適用する。すなわち、これらの実施形態における画像上ブラシツールは、エリアがタッチされている時にエリアに加えられる圧力に基づき、エリアに適用するべき効果の量を決定する。それゆえ、これらの実施形態における画像上ブラシツールを含む画像編集アプリケーションは、タッチ圧力を測定する能力を有するタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作していなければならない。このようなタッチセンシティブスクリーンは、スクリーンに加えられている圧力を検出し、これを測定するために、加速度計を利用する場合がある。
【０２１６】
これより、いくつかの実施形態の画像上ブラシツールの操作例を説明する。最初の３つの段階２６０１〜２６０３は、図２４を参照して上述されている段階２４０１〜２４０３と同一である。段階２６０４において、ユーザは指２６２５を、段階２６０３において指２６２５があった位置から右へドラッグした。明色化ツールは、指２６２５によってタッチされたエリア２６３０をより明るくする。
【０２１７】
段階２６０５において、ユーザは指２６２５を更に右へドラッグした。しかし、ユーザは、前の段階２６０４において指２６２５があった位置から指を右へ動かしている最中には、画像２４２０をより強く押した。それゆえ、明色化ツールは、タッチされたエリア２６３５に、前の段階２６０４におけるよりも多くの明色化効果を適用する。その結果、エリア２６３５はエリア２６３０よりも明るく見える。
【０２１８】
段階２６０６において、ユーザは指２６２５を更に右へドラッグした。しかし、ユーザは、前の段階２６０５において指２６２５があった位置から指を右へ動かしている最中には、画像２４２０をいっそうより強く押した。それゆえ、明色化ツールは、前の段階２６０５以降にタッチされたエリア２６４０にいっそう多くの明色化効果を適用する。その結果、エリア２６４０はエリア２６３０よりも明るく見える。
【０２１９】
これまでに説明されたいくつかの実施形態の画像上ブラシツールは、選択されたエリアに効果を適用する。次のサブセクションは、画像上ブラシツールが、これらの異なる部分の画像特性に基づき、選択されたエリアの異なる部分に効果を選択的に適用することを可能にする、スマートな縁部検出ツールを説明する。
【０２２０】
Ｄ．スマートな縁部検出ツール
図２７は、スマートな縁部検出ツールの使用を概念的に示す。図２７は、ユーザが、画像の選択されたエリアの異なる部分に画像処理操作を選択的に適用することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を示す。具体的には、本図は、ユーザが、一定の評価基準を満たす画像のエリア内のそれらの画素のみに画像処理操作を適用することを、５つの異なる段階２７０１〜２７０５において示す。
【０２２１】
上述のように、いくつかの実施形態の画像編集アプリケーションは、ユーザが、画像処理操作を適用するべきエリアを選択することを可能にする。一部のこのような実施形態では、スマートな縁部検出ツールは、画像上ブラシツールが、一定の評価基準を満たすそれらの画素にのみ、対応する画像処理操作を適用することを可能にする。例えば、スマートな縁部検出ツールが起動されているときに、ユーザが、選択されたエリアに明色化操作を適用することを選ぶと、明色化ツールは、選択されたエリア内の青色の画素を明るくするが、赤色の画素は手を付けずにそのままにしておく。
【０２２２】
いくつかの実施形態では、スマートな縁部検出ツールは、ユーザによって最初にタッチされた１つ以上の画素を特定する。例えば、ツールはまず、ユーザの画像のスワイプ操作の最中にタッチされた最初の画素を特定し、最初の画素の特性を用いて評価基準を決定する。他の実施形態では、ツールは、ユーザの画像のスワイプ操作の最中にタッチされた画素のセット（最初の数十及び数百個の画素）を特定し、それらの画素の特性を用いて評価基準を決定する。スワイプ操作の最中にタッチされた全ての画素のうち、有効にされた画像上ブラシツールは、評価基準を満たすそれらの画素のみである。以下において、評価基準の決定の詳細について更に説明する。
【０２２３】
いくつかの実施形態では、スマートな縁部検出ツールは、画像がタッチされるたびに（すなわち、指が画像から上げられた後にユーザの指が画像に再びタッチするたびに）評価基準を再定義する。他の実施形態では、スマートな縁部検出ツールは、異なる画像上ブラシツールが選択されるか、又はスマートな縁部検出ツールの動作が停止されるまで、評価基準を再定義しない。すなわち、これらの実施形態では、異なる画像上ブラシツールが選択されるか、又はスマートな縁部検出ツールの動作が停止されるまで、最初に決定された評価基準が全ての後続のタッチのために用いられる。
【０２２４】
この技法はまた、エリアがユーザによってタッチされるたびに画像のエリアに画像処理操作を漸増的に適用する上述の実施形態のいくつかの画像編集アプリケーションにも適用可能である。すなわち、いくつかの実施形態の画像編集アプリケーションは、評価基準を満たすそれらの画素のみに画像処理操作を漸増的に適用する。
【０２２５】
更に、いくつかの実施形態の画像編集アプリケーションは縁部検出を用い、タッチエリア内の検出された縁部によって分離される異なる領域を特定する。これらの実施形態の画像編集アプリケーションは、評価基準を満たし、かつ最初にタッチされた画素のセットを含む特定された領域内にあるそれらの画素に画像処理操作を適用する。
【０２２６】
これより、スマートな縁部検出ツールが起動されている状態での画像上ブラシツールの操作例を説明する。第１段階２７０１は、画像編集アプリケーションが画像表示エリア４１０内に画像２７２０を表示している様子を示す。ユーザは、ツール選択ペイン４２０内に表示されているアイコン２０２０を選択する。
【０２２７】
段階２７０２において、画像編集アプリケーションは、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目２０２５のセットを表示する。ユーザは、アイコン２０５０にタッチすることによって明色化ツールを選択する。画像編集アプリケーションは明色化ツールを起動する。
【０２２８】
段階２７０３において、いくつかの実施形態における画像編集アプリケーションは、起動されたのは明色化ツールであることを示すために、アイコン２０５０を強調表示する。ユーザは、スマートな縁部検出ツールを表すアイコン２７１０を選択する。いくつかの実施形態では、画像編集アプリケーションはツール表示エリア４２５内にアイコン２７１０を表示する。また、いくつかの実施形態では、ユーザが画像上ブラシツール及びスマートな縁部検出ツールを選択する順序は問わない。すなわち、スマートな縁部検出ツールは、一度起動されると、その後に起動されるあらゆる他の画像上ブラシツールを有効にする。
【０２２９】
段階２７０４において、ユーザは、画像２７２０内に示されているオールの下端部の近くの海の上に指２７３０を載せる。スマートな縁部検出ツールは、指２７３０によって最初にタッチされた画像２７２０の部分内の画素を分析し、画像の他の部分内の他の画素のための、明色化ツールがそれらの画素に明色化効果を適用するために満たすべき評価基準を設定する。最初にタッチされる画像の部分は、画像２７２０内に示されている海の内部であるため、本例における明色化ツールは、海の色と同様の色を有するそれらの画素のみの上に明色化効果を適用する。
【０２３０】
段階２７０５において、ユーザは画像２７２０にタッチしながら指２７３０を右へドラッグした。明色化ツールは、指２７２５によってタッチされたエリアをより明るくする。しかし、明色化ツールは、画像２７２０内に示されているオールの下端部を、たとえ指２７３０がオールのこの部分にタッチしても、より明るくしない。これは、スマートな縁部検出が起動され、明色化ツールが、前の段階２７０４において設定された評価基準を満たすそれらの画素のみを明るくすることを可能にしたためである。
【０２３１】
図２８は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアを擦ることによって画像処理操作を選択的に適用することを可能にするために、いくつかの実施形態が実行するプロセス２８００を概念的に示す。いくつかの実施形態におけるプロセス２８００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、擦るジェスチャ）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス２８００は開始する。プロセス２８００は、（２８０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０２３２】
次に、プロセス２８００は（２８１０において）画像のエリアの選択を受け取る。次に、プロセス２８００は（２８１５において）、画素間の類似度を判定するための一定の評価基準を特定する。いくつかの実施形態におけるプロセス２８００は、選択されたエリア内の画素のうちの一部の画像特性を用いる。より具体的には、いくつかの実施形態におけるプロセス２８００は、ユーザによって最初にタッチされた、選択されたエリアの画素のセットを用いる。
【０２３３】
異なる実施形態は、画像特性を用いて評価基準を異なって特定する。例えば、いくつかの実施形態におけるプロセス２８００は画素のセットの平均色値を用いる。プロセス２８００はＲＧＢ色モデルの平均色値をＬＡＢ色空間の色値に変換する。次に、プロセス２８００は、ＬＡＢ色空間の色値からの距離の範囲を評価基準として定義する。米国特許第８，２２９，２１１号には、ＲＧＢ色モデルの色値のＬＡＢ色空間の色値への変換の更なる詳細が記載されている。米国特許第８，２２９，２１１号は本明細書において参照により組み込まれている。
【０２３４】
次に、プロセス２８００は（２８２０において）、特定された評価基準を満たす画素に画像処理操作（例えば、飽和、脱飽和、明色化、暗色化、シャープ化、ソフト化等）を適用する。いくつかの実施形態では、プロセス２８００は、定義された範囲内に含まれるＬＡＢ色空間の色値を有するエリア内のそれぞれの画素に画像処理操作を適用する。次に、プロセスは終了する。
【０２３５】
Ｅ．画像処理操作の適用解除
上述のように、いくつかの実施形態における画像上ブラシツール群の一部はエリアに、対応する効果を適用する。いくつかの実施形態では、画像編集アプリケーションは、エリアに適用されている効果を除去する画像上ブラシツールを提供する。
【０２３６】
図２９は、ユーザが、画像のエリアから画像処理操作を適用解除することを可能にするいくつかの実施形態の画像編集アプリケーションのＧＵＩ４００を概念的に示す。具体的には、本図は、ユーザが、画像のエリアを擦ることによって、画像のエリアに適用された画像処理操作を漸増的に適用解除することを、５つの異なる段階２９０１〜２９０５において示す。図２９は、ＧＵＩ２４００は画像表示エリア２４２５を含むことを示す。
【０２３７】
いくつかの実施形態では、いくつかの実施形態の画像編集アプリケーションは、ユーザが、画像のエリアを擦ること（例えば、画像のエリアを１回以上スワイプすること）によって、画像のエリアに適用された画像処理操作を適用解除することを可能にする消しゴムツールを提供する。例えば、消しゴムツールは、明色化効果を除去することによって、明色化効果が適用された画像の特定のエリアを暗くする。すなわち、消しゴムツールは画像のエリアを、明色化効果が適用される前の以前の状態に戻す。
【０２３８】
いくつかの実施形態では、消しゴムツールは、画像のエリアがタッチされるたびに画像処理操作を漸増的に適用解除する。例えば、消しゴムツールは、明色化効果が適用された画像の特定のエリアを増分量だけ暗くする。特定のエリアが再びタッチされると、消しゴムツールはエリアを増分量だけ更に暗くする。いくつかの実施形態では、画像のエリアが、画像処理操作が適用される前の状態に戻ると、消しゴムツールは画像処理操作を適用解除しない。
【０２３９】
異なる実施形態は、除去するべき画像処理操作の増分量を異なって決定する。例えば、消しゴムツールは、選択された画像操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、適用された画像処理操作が明色化操作である場合には、消しゴムツールはエリアの輝度値を既定の輝度値デルタずつ減少させる。このデルタは、画像ブラシツール上の一部のものがタッチ毎にエリアに適用する同量の輝度値を表す場合がある。いくつかの実施形態では、消しゴムツールは画像特性値を１パーセントずつ増加又は減少させる。また、いくつかの実施形態における消しゴムツールは非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【０２４０】
いくつかの実施形態の画像上ブラシツールが上述のように行うのと同様に、消しゴムツールは、画像処理操作を漸増的に適用解除するために、マスク値を用いる。すなわち、いくつかの実施形態における消しゴムツールは、マスク値が付与された画素のセットに画像処理操作を適用解除するために、マスク値を変更する。
【０２４１】
いくつかの実施形態では、消しゴムツールは、タッチ圧力に基づき画像のエリアから画像処理操作を適用解除する。すなわち、これらの実施形態における消しゴムツールは、エリアから適用解除するべき画像処理操作の量を、そのエリアがタッチされている時にエリアに加えられている圧力に基づき、決定する。それゆえ、これらの実施形態の消しゴムツールを含む画像編集アプリケーションは、タッチ圧力を測定する能力を有するタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作していなければならない。上述のように、このようなタッチセンシティブスクリーンは、スクリーンに加えられている圧力を検出し、これを測定するために、加速度計を利用する場合がある。
【０２４２】
いくつかの実施形態では、消しゴムツールは画像処理操作を漸増的に適用解除しない。その代わりに、これらの実施形態の消しゴムツールは、画像のエリアに適用された画像処理操作を完全に除去する。すなわち、消しゴムツールは画像のエリアを、画像処理操作が適用される前の元の状態へ復元する。
【０２４３】
これより、いくつかの実施形態の消しゴムツールの操作例を説明する。第１段階２９０１は、画像編集アプリケーションが画像表示エリア４１０内に画像２４２０を表示している様子を示す。本例では、第１段階２９０１は、画像２４２０のエリア２９１０に明色化効果が適用された後のＧＵＩ４００を示す。画像編集アプリケーションはまた、ツール表示エリア４２５内にアイコン２９１５も表示する。アイコン２９１５は消しゴムツールを表す。
【０２４４】
段階２９０２において、ユーザはアイコン２９１５を選択し、画像編集アプリケーションはアイコン２９１５の選択に応答して消しゴムツールを起動する。段階２９０３において、ユーザは、画像２４２０内においてエリア２９１０の左に示されている空の上に指２９２０を載せる。次の段階２９０４は、ユーザが画像２４２０にタッチしながら指２９２０を右へドラッグし、エリア２９１０を通り越したことを示す。消しゴムツールは、エリア２９１０と、指２９２０によってスワイプされたエリアとの交点であるエリア２９２５から明色化効果を漸増的に除去する。図示されているように、消しゴムツールはエリア２９２５を暗くした。
【０２４５】
段階２９０４において、ユーザは指２９２０を左方向へドラッグした。ユーザが指２９２０を左へドラッグする際に、指２９２０はエリア２９２５に再びタッチする。消しゴムツールはエリア２９２５を更に暗くする。本例では、消しゴムツールは、エリア２９２５が、明色化効果が適用される前の状態に戻るように、エリア２９２５に適用されていた明色化効果を完全に動かした。
【０２４６】
図３０は、画像編集アプリケーションのユーザが、画像のエリアから、そのエリアを擦ることによって画像処理操作を適用解除することを可能にするために、いくつかの実施形態が実行するプロセス３０００を概念的に示す。いくつかの実施形態におけるプロセス３０００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、擦るジェスチャ）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス３０００は開始する。表示された画像が、画像処理操作が適用されたエリアを有している場合に、プロセス３０００は開始する。
【０２４７】
プロセス３０００は、画像編集アプリケーションにいくつかの実施形態の消しゴムツールを起動させるユーザ入力を（３００５において）受け取ることによって、始まる。いくつかの実施形態では、このようなユーザ入力は、アイコン（例えば、上記の図２９に示されているアイコン２９１５）を選択することを含む。
【０２４８】
次に、プロセス３０００は（３０１０において）、画像のエリアがタッチされているかどうかを判定する。いくつかの実施形態では、プロセス３０００は、画像のエリアがタッチされているかどうかを判定するために、コンピューティングデバイスからタッチ情報（例えば、ユーザの指がタッチしているタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアの座標）を受け取る又は取得する。プロセスが（３０１０において）、エリアがタッチされていないと判定した場合には、プロセス３０００は、ユーザの、表示された画像のエリアのタッチを待つために、３０１０へループして戻る。
【０２４９】
プロセス３０００が（３０１０において）、エリアがタッチされていると判定した場合には、プロセスは、タッチはエリアから動かされたかどうかを判定するために、３０１５へ進む。いくつかの実施形態では、タッチされていたエリアがもはやタッチされていない場合には、プロセス３０００は、タッチはエリアから動かされたと判定する。それゆえ、ユーザがエリアから指を上げるか、又はユーザが指を画像の別のエリアへ動かした場合には、プロセス３０００は、タッチはエリアから動かされたと判定する。プロセス３０００が（３０１５において）、タッチはエリアから動かされなかったと判定した場合には、プロセス３０００は、タッチが動くのを待つために、３０１５へループして戻る。
【０２５０】
プロセス３０００が（３０１５において）、タッチはエリアから動かされたと判定した場合には、プロセス３０００は（３０２０において）、エリアは、画像処理操作が適用されたエリアに重なっているかどうかを判定する。プロセス３０００が（３０２０において）、重なったエリアが存在すると判定した場合には、プロセス３０００は（３０２５において）、重なったエリアから画像処理操作を増分量だけ適用解除する。適用解除するべきものが残っていない場合には、プロセス３０００は画像処理操作を適用解除しない。
【０２５１】
異なる実施形態は、除去するべき画像処理操作の増分量を異なって決定する。例えば、いくつかの実施形態におけるプロセス３０００は、重なったエリアに適用されている画像処理操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、重なったエリアに適用された画像処理操作が明色化操作である場合には、プロセス３０００はエリアの輝度値を既定の輝度値デルタずつ減少させる。このデルタは、画像ブラシツール上の一部のものがタッチ毎に適用する同量の輝度値を表す場合がある。いくつかの実施形態では、プロセス３０００は画像特性値を１パーセントずつ増加又は減少させる。また、いくつかの実施形態におけるプロセス３０００は非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【０２５２】
プロセス３０００が（３０２０において）、重なったエリアは存在しないと判定した場合には、プロセスは３０３０へ進む。次に、プロセス３０００は（３０３０において）、画像の別のエリアがタッチされているかどうかを判定する。プロセス３０００が（３０３０において）、画像の他のエリアがタッチされていると判定した場合には、プロセス３０００は、タッチがこのエリアから動くのを待つために、３０１５へループして戻る。プロセス３０００が（３０３０において）、画像の他のエリアはタッチされていないと判定した場合には、プロセス３０００は終了する。
【０２５３】
セクションＩＩはいくつかの実施形態のいくつかの画像上ブラシツールを説明した。次のセクションは、画像にいくつかの特殊効果を適用するいくつかの画像上ツールを説明する。
【０２５４】
ＩＩＩ．画像上効果ツール
いくつかの実施形態は、ユーザが、表示された画像の一部分を選択することによって画像処理操作又は効果を適用することを可能にする画像上効果ツールを提供する。これらの画像上効果ツールはブラシツールではない。すなわち、これらの画像上効果ツールはエリアに、ブラシツールによって定義されていない効果を適用する。
【０２５５】
Ａ．画像上グラデーションツール
図３１は、ユーザが、画像の選択されたエリアの異なる部分に画像処理操作を選択的に適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、画像にタッチすることによって画像の部分にグラデーション効果を適用することを、５つの異なる段階３１０１〜３１０５において示す。図３１はＧＵＩ４００を示す。
【０２５６】
上述のように、いくつかの実施形態におけるツール選択ペイン４２０は、画像編集アプリケーションの異なる編集ツールセット群を表すアイコンのセットを表示する。ツール選択ペイン４２０は、いくつかの実施形態ではツール選択ペイン４３０内に表示されている左から５つ目のアイコンである、アイコン３１１０を含む。ツール選択ペイン４２０内に表示されているアイコン３１１０はいくつかの実施形態における画像上効果ツール群を表す。ユーザがアイコン３１１０を選択すると、いくつかの実施形態における画像編集アプリケーションは、ツール表示エリア４２５（又はＧＵＩ４００のその他の部分）内に、これらの画像上効果ツールを表す選択可能なＵＩ項目３１２５のセットを表示する。ツール群の１つが選択されると（ユーザが、そのツールを表すアイコンを選択すると）、そのツールが起動され、表示された画像へのユーザ入力は、選択されたツールへの入力として扱われる。
【０２５７】
いくつかの実施形態における選択可能なＵＩ項目３１２５のセットはサムネイル及びアイコンのセットである。いくつかの実施形態では、選択可能なＵＩ項目３１２５のセットは、アイコン３１１０が選択されると展開するカードのうちの１枚の上にある。米国仮特許出願第６１／６０７，５７４号には、カードの展開についての更なる詳細が記載されている。
【０２５８】
選択可能なＵＩ項目３１２５のセット内のサムネイル及びアイコンは多数の異なる効果を表す。例えば、ＵＩ項目３１３０は画像上暗色グラデーションツールを表す。ＵＩ項目３１３５は画像上暖色グラデーションツールを表す。ＵＩ項目３１４０は画像上寒色グラデーションツールを表す。ＵＩ項目３１４５はビネットツールを表す。ＵＩ項目３１５０はティルトシフトツールを表す。ツールはそれぞれ、起動されている時には、ユーザによって、エリアにタッチすることによって画定される画像のエリアに効果を適用する。
【０２５９】
これより、画像上グラデーションツールの操作例を説明する。第１段階３１０１は、指３１７０でサムネイル３１１０にタッチすることによるユーザのサムネイル３１１０の選択を示す。画像編集アプリケーションは、サムネイル３１１０の選択に応答して、サムネイル３１１０によって表されている画像３１１５を画像表示エリア４１０内に表示する。
【０２６０】
段階３１０２において、ユーザは、ツール選択ペイン４２０内に表示されているアイコン３１１０を選択する。それに応答して、画像編集アプリケーションは段階３１０３において、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目３１２５のセットを表示する。ユーザは、ＵＩ項目３１３０にタッチすることによって画像上暗色グラデーションツールを選択する。画像編集アプリケーションは画像上暗色グラデーションツールを起動する。
【０２６１】
段階３１０４において、ユーザは、指３１７０で画像３１１５の最上部の近くのロケーションにタッチしたか、又は画像３１１５にタッチしながら指３１７０を下方へそのロケーションまでドラッグした。画像上暗色グラデーションツールは画像３１１５の最上部から、指３１７０があるロケーションまで暗色グラデーション効果を適用した。指３１７０よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【０２６２】
段階３１０５は、ユーザが、画像３１１５の底部により近い画像のロケーションにタッチしたか、又は画像３１１５にタッチしながら指３１７０をこのロケーションまでドラッグした後のＧＵＩ４００を示す。暗色グラデーションツールは、前の段階３１０４において指３１７０があった垂直ロケーションから、現在の段階３１０５における指３１７０の垂直ロケーションまでグラデーション効果を適用した。指３１７０よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【０２６３】
いくつかの実施形態では、画像上暗色グラデーションツールは、ユーザが、画像内の２箇所のロケーションにタッチすることによってグラデーション効果を適用することを可能にする。ユーザが、上部のロケーション及び下部のロケーションの２箇所のロケーションにタッチすると、画像上暗色グラデーションツールは、２箇所のロケーションのそれぞれと交わる不可視の水平線を引き、２本の線の間の画像の部分の上にグラデーション効果を適用する。いくつかの実施形態では、これらの２本の線は平行線であり、２本の線の間の距離は、２箇所のロケーションにタッチするために使われている２本の指の一方又は両方を互いにより近く又はより遠くへドラッグすることによって、調整することができる。更に、いくつかの実施形態では、画像上暗色グラデーションツールは、ユーザが２本の線を、２本の線が水平でなくなるように回転させることを可能にする。更に、画像上暗色グラデーションツールは２本の線の間の画像の部分の上に異なる量のグラデーション効果を適用する。例えば、いくつかの実施形態では、２本の線の一方の付近の画素は最も暗くなり（例えば、１００％のグラデーション効果を表す）、他方の線の近くの画素は最も明るくなる（例えば、０％のグラデーション効果を表す）。いくつかのこのような実施形態では、部分内の画素に適用されるグラデーション効果の量は２本の線のいずれかへの画素の近接度に依存する。２本の線の使用は、本出願に説明されている他のグラデーションツール（例えば、暖色グラデーションツール）にも適用可能である。
【０２６４】
図３２は、画像編集アプリケーションのユーザが画像にグラデーション効果を適用することを可能にするためにいくつかの実施形態が実行するプロセス３２００を概念的に示す。いくつかの実施形態におけるプロセス３２００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、タップ操作、スワイプ操作等）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス３２００は開始する。プロセス３２００は、（３２０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０２６５】
次に、プロセス３２００は（３２１０において）、表示された画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス３２００は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス３２００は、ユーザが、（例えば指を上げずに）表示された画像にタッチしながら、指を、表示された画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。
【０２６６】
次に、プロセス３２００は（３２１５において）画像にグラデーション効果を適用する。ユーザが、表示された画像内のロケーションをタップすると、プロセス３２００は画像の最上部から画像のそのロケーションまでグラデーション効果を適用する。ユーザが指を画像の第１のロケーションから、第１のロケーションよりも画像の最上部から遠い第２のロケーションまでドラッグすると、プロセス３２００は、画像の最上部から第２のロケーションまで垂直にまたがる画像の部分にグラデーション効果を適用する。画像の最上部から第１のロケーションまでまたがる画像の部分にグラデーション効果がすでに適用されている場合には、プロセス３２００は、第１のロケーションから第２のロケーションまで垂直にまたがる画像の部分にグラデーション効果を適用する。
【０２６７】
上述したいくつかの異なる画像上グラデーション効果ツールは画像に異なるグラデーション効果を適用する。適用されると、これらの異なるグラデーション効果は異なる視覚特徴を提供する。例えば、「暗色グラデーション」効果が適用された画像の部分は暗く見える。「暖色グラデーション」効果は画像の一部分を「暖かく」見せる。画像上グラデーションツールは、画像の画素を異なって処理することによって、これらの異なる視覚特徴を実現する。次の４つの図、図３３〜３６は、画像上グラデーション効果ツールが適用し得る２つの異なるグラデーション効果の例を示す。
【０２６８】
図３３は、ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上グラデーション効果ツールが「青色」グラデーション効果を適用することを示す。図示されているように、図３３は、グラデーション効果ツール３３００、元の画像データ３３３０、及びグラデーション画像３３３５を示す。
【０２６９】
元の画像３３３０は、グラデーション効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。グラデーション画像３３３５は、画像にグラデーション効果を適用してできた画像のための画像データである。いくつかの実施形態では、グラデーション画像３３３５は、元の画像から新しい画像を生成するために実行する命令のセットである。
【０２７０】
グラデーション効果ツール３３００は元の画像に青色グラデーション効果を適用する。グラデーション効果ツール３３００は、白黒画像生成器３３０５、カラー画像生成器３３１０、画像混合器３３１５、グラデーション計算器３３２５、及びグラデーション画像生成器３３２０を含む。
【０２７１】
白黒（Ｂ／Ｗ）画像生成器３３０５は元の画像３３３０に基づき白黒画像を生成する。いくつかの実施形態では、Ｂ／Ｗ画像生成器３３０５は白黒画像内の青色を強調する。いくつかの実施形態におけるＢ／Ｗ画像生成器３３０５は青色のＲＧＢトリプレット、例えば、（０．０２、０．０１８、０．７７）を用いる。トリプレット内の３つの数は原色の３つのチャネル−すなわち、赤色、緑色、及び青色−をそれぞれ表す。３つの数はそれぞれ、色の範囲を表す、０〜１の範囲を有する。例えば、括弧内の第１の数については、０は青色がないことを表し、１は最大限の青色を表す。当業者は、その他の範囲、例えば、０〜２５５、０％〜１００％、０〜６５５３５等がＲＧＢ値のために用いられてもよいことを認識している。
【０２７２】
青色を強調するＢ／Ｗ画像を生成するために、Ｂ／Ｗ画像生成器３３０５は元の画像内のそれぞれの画素と青色ＲＧＢトリプレットの２乗とのドット積を計算する。このようなドット積は以下の擬似コードで表すことができる。
ｃ１＝ｄｏｔ（ｉｍａｇｅ．ｒｇｂ，ｂｌｕｅ．ｒｇｂ２）；
ｉｍａｇｅ．ｒｇｂは元の画像内の画素のＲＧＢトリプレットである。ｂｌｕｅ．ｒｇｂは青色ＲＧＢトリプレットである。Ｃ１はドット積であり、結果として生じるＢ／Ｗ画像内の対応する画素のための明度値（例えば、輝度値、ＲＧＢ合計、等）でもある。Ｂ／Ｗ画像内の画素のための明度値は０〜１の（グレイスケール）範囲を有する。ここで、０は黒色であり、１は白色である。
【０２７３】
カラー画像生成器３３１０は、Ｂ／Ｗ画像生成器３３０５によって生成されたＢ／Ｗ画像を青色画像に変換する。いくつかの実施形態では、カラー画像生成器３３１０は、Ｂ／Ｗ画像内の対応する画素の明度値を２乗し、青色ＲＧＢトリプレットに、２乗された明度値を乗算し、次に、乗算の結果を２倍にすることによって、青色画像のそれぞれの画素のＲＧＢトリプレットを生成する。これは以下の擬似コードで表すことができるであろう。
ｂｌｕｅＩｍａｇｅ＝２．０＊（ｃ１２）＊ｂｌｕｅ．ｒｇｂ。
ｂｌｕｅＩｍａｇｅは、生成された青色画像内の画素のＲＧＢ値である。
【０２７４】
画像混合器３３１５は、画像内の明るいエリアはそれらの白色度を保持し、それと同時に、より暗いエリアは青く見えることを確実にするために、０〜１のグレイスケールを用いることによって元の画像と青色画像とを混合する。混合は、以下の擬似コード例を用いて実行することができる。
ｍｉｘｅｄＩｍａｇｅ＝ｍｉｘ（ｏｒｉｇｉｎａｌＩｍａｇｅ，ｂｌｕｅＩｍａｇｅ，（１．０−ｃ１））。
ｍｉｘｅｄＩｍａｇｅは、混合された画像内の画素のＲＧＢトリプレットである。ｏｒｉｇｉｎａｌＩｍａｇｅは元の画像内の対応する画素のＲＧＢトリプレットである。ｍｉｘ（）は関数である。異なる実施形態は異なるｍｉｘ（）関数を用いる。いくつかの実施形態では、ｍｉｘ（）関数は３つの入力値／トリプレットの算術平均を計算する。トリプレットが単一値（例えば、１．０−ｃ１）を用いて平均される場合には、それぞれの値はその単一値を用いて平均される。
【０２７５】
グラデーション計算器３３２５は元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態におけるグラデーション計算器３３２５は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールはユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、グラデーション計算器３３２５は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【０２７６】
いくつかの実施形態では、画素の行番号は画素のｙ座標であり、一番上の画素（すなわち、画像の画素の最上部の行）は０のｙ座標を有し、最下部の画素（すなわち、画像の画素の最下部の行）は全体高さのｙ座標（すなわち、画像内の画素の列内の画素の数−１）を有する。すなわち、ｙ座標は画像の最上部の行から開始する。
【０２７７】
いくつかの実施形態におけるグラデーション計算器３３２５は、特定の画素がユーザのタッチの垂直ロケーションよりも下にある場合には、特定の画素のためのグラデーション値を０に設定する。これは以下の擬似コードで表される。
ｒｏｗ＞ｈｅｉｇｈｔＴｏｕｃｈｅｄである場合には、
ｇｒａｄｉｅｎｔ＝０．０；
ｒｏｗは特定の画素のｙ座標値である。ｈｅｉｇｈｔＴｏｕｃｈｅｄはユーザのタッチ（例えば、タッチされた画素のセットの垂直中心画素（単数又は複数））のｙ座標である。グラデーション計算器は、ユーザのタッチを受け取るユーザインタフェースモジュール（不図示）からのタッチ情報（すなわち、ユーザ入力）からｈｅｉｇｈｔＴｏｕｃｈｅｄ値を得る。
【０２７８】
いくつかの実施形態におけるグラデーション計算器３３２５は、特定の画素がユーザのタッチの垂直ロケーションよりも上にある場合には、以下の擬似コードを用いて特定の画素のためのグラデーション値を計算する。
ｔｏｐＹ＝ｍｉｎ（０．０，ｈｅｉｇｈｔＴｏｕｃｈｅｄ．ｎ−０．２）；
ｒ＝行／（ｈｅｉｇｈｔ−１）；
ｒ＝（ｒ−ｔｏｐＹ）／（ｈｅｉｇｈｔＴｏｕｃｈｅｄ．ｎ−ｔｏｐＹ）；
（ｒ＜０．８）である場合には、
ｇｒａｄｉｅｎｔ＝（０．１ｒ＋（０．８−ｒ）＊０．８）／０．８；
そうでなく、（ｒ＜０．９）である場合には、
ｇｒａｄｉｅｎｔ＝（（ｒ−０．８）＊０．０３＋（０．９−ｒ）＊０．１）／０．１；
そうでない場合には、
ｇｒａｄｉｅｎｔ＝（（ｒ−０．９）＊０．０３＋（１−ｒ）＊０．１）／０．１；
ＴｏｐＹは、画像の最上部の付近の画素のためのグラデーション効果の緩やかな減衰を適用するために計算される。ｒは、０〜１の範囲を有する正規化された行番号である。ｈｅｉｇｈｔは元の画像の全体高さ（すなわち、画素の列内の画素の数）である。ｈｅｉｇｈｔＴｏｕｃｈｅｄ．ｎは、正規化されたｈｅｉｇｈｔＴｏｕｃｈｅｄであり、０〜１の範囲を有する。ここで、０は元の画像の最上部の画素行であり、１は元の画像の最下部の画素行である。
【０２７９】
グラデーション画像生成器３３２０は、グラデーション計算器３３２５によって計算されたグラデーション値を用いて混合画像を元の画像とブレンドする。いくつかの実施形態では、グラデーション画像生成器３３２０は、新しい画像を生成するべく混合画像を元の画像とブレンドするために、以下の擬似コード用いる：
ｇｒａｄＩｍａｇｅ＝ｏｒｉｇｉｎａｌＩｍａｇｅ＊（１−ｇｒａｄｉｅｎｔ）＋ｍｉｘｅｄＩｍａｇｅ＊ｇｒａｄｉｅｎｔ；
ｇｒａｄＩｍａｇｅは、元の画像に青色グラデーション効果を適用することによって生成された新しい画像内の画素のＲＧＢトリプレットである。
【０２８０】
これより、図３３及び３４を参照して青色グラデーション効果ツール３３００の操作例を説明する。図３４は、いくつかの実施形態が、画像に青色グラデーション効果を適用するために実行するプロセス３４００を概念的に示す。いくつかの実施形態におけるプロセス３４００はグラデーション効果ツール３３００等の画像上グラデーション効果ツールによって実行される。画像上グラデーション効果ツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス３４００は開始する。
【０２８１】
プロセス３４００は、（３４０５において）元の画像に基づき１つの色を強調する白黒（Ｂ／Ｗ）画像を生成することによって、始まる。いくつかの実施形態におけるプロセス３４００は、青色ＲＧＢトリプレット、例えば、（０．０２、０．０１８、０．７７）を用いることによってＢ／Ｗ画像内で青色を強調する。青色ＲＧＢトリプレット内の値は、青色が赤色及び緑色よりも大きいかぎり、実施形態によって異なってもよい。例えば、トリプレット内の青色とその他の色との差は１桁であってもよい。
【０２８２】
いくつかの実施形態におけるプロセス３４００は、元の画像の対応する画素（すなわち、同じ座標を有する画素）のＲＧＢトリプレットを用いてＢ／Ｗ画像のそれぞれの画素のための明度値を計算する。例えば、Ｂ／Ｗ画像生成器３３０５は、元の画像の対応する画素のＲＧＢトリプレット、（０．５、０．５、０．５）、と青色ＲＧＢトリプレットとのドット積をとることによって、Ｂ／Ｗ画像の画素のための明度値を計算する。すると、Ｂ／Ｗ画像の画素のための明度値は、０．０２＊０．５＋０．０１８＊０．５＋０．７７＊０．５となるであろう。これは０．４０４になる。
【０２８３】
次に、プロセス３４００は、（３４１０において）、Ｂ／Ｗ画像に基づき、強調された色のためのカラー画像を生成する。いくつかの実施形態では、プロセス３４００は、Ｂ／Ｗ画像内の対応する画素の明度値に基づき青色画像のそれぞれの画素のためのＲＧＢトリプレットを計算することによって、青色画像を生成する。例えば、カラー画像生成器３３１０は、Ｂ／Ｗ画像内の対応する画素の以前に生成された明度値０．４０４を用いて青色画像のための画素のＲＧＢトリプレットを計算する。青色画像内の画素のＲＧＢトリプレットは２．０＊（０．４０４２）＊（０．０２、０．０１８、０．７７）となり、これは、（０．００６５２８６４、０．００５８７５７７６、０．２５１３５２６４）になる。
【０２８４】
次に、プロセス３４００は（３４１５において）、Ｂ／Ｗ画像に基づき、元の画像及び生成されたカラー画像を混合する。例えば、画像混合器３３１５は、元の画像、及び明度値０．４０４を用いて生成されたカラー画像の画素、並びにＢ／Ｗ画像内の対応する画素を混合する。上述のように、元の画素はＲＧＢトリプレット（０．５、０．５、０．５）を有する。青色画像内の対応する画素のＲＧＢトリプレットは（０．００６５２８６４、０．００５８７５７７６、０．２５１３５２６４）である。それゆえ、いくつかの実施形態では、混合画像内の対応する画素のＲＧＢトリプレットは、（（０．５＋０．００６５２８６４＋０．０４０４）／３、（０．５＋０．００５８７５７７６＋０．０４０４）／３、（０．５＋０．２５１３５２６４＋０．０４０４）／３）となり、これは、（０．１８２３０９５４７、０．１８２０９１９２５、０．２６３９１７５４７）になる。
【０２８５】
次に、プロセス３４００は（３４２０において）、元の画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス３４００は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス３４００は、ユーザが、（例えば、指を上げずに）表示された画像にタッチしながら、指を元の画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。例えば、元の画像は７６８画素の高さを有し、タッチのロケーションは画像の最上部から３００番目の画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの中心にある画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの平均画素座標である。
【０２８６】
次に、プロセス３４００は（３４２５において）元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態では、プロセス３４００は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールはユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、プロセス３４００は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【０２８７】
例えば、グラデーション計算器３３２５は、元の画像の最上部から２００番目の画素となる画素のためのグラデーション値を計算する。グラデーション計算器３３２５はｔｏｐＹを計算する。ｔｏｐＹは０．０及び（２００／７６８）−０．２の最小値であり、これは０．０になる。グラデーション計算器３３２５は、正規化された行番号を計算する。正規化された行番号は（２００／（７６８−１）−０．０）／（３００／７６８−０．０）となり、これは０．６６８４０７３１１になる。次に、グラデーション計算器３３２５はグラデーション値を計算する。正規化された行番号は０．８よりも小さいので、グラデーション値は（０．１＊０．６６８４０７３１１＋（０．８−０．６６８４０７３１１）＊０．８）／０．８となり、これは０．２１５１４３６０３になる。
【０２８８】
次に、プロセス３４００は（３４３０において）、計算されたグラデーション値を用いて混合画像及び元の画像をブレンドする。プロセス３４００はブレンド画像のそれぞれの画素のためのＲＧＢトリプレットを計算する。例えば、グラデーション画像生成器３３２０はブレンド画像内の画素のためのＲＧＢトリプレットを計算する。元の画像内の対応する画素は、最上部から２００番目の画素となる画素である。それゆえ、ブレンド画像内の画素のためのＲＧＢトリプレットは、（０．５、０．５、０．５）＊（１−０．２１５１４３６０３）＋（０．１８２３０９５４７、０．１８２０９１９２５、０．２６３９１７５４７）＊０．２１５１４３６０３となり、これは（０．４３１６５０９３１、０．４３１６０４１１１、０．４４９２０８３７）になる。
【０２８９】
図３５は、ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上グラデーション効果ツールが「コーヒー」グラデーション効果を適用することを示す。図示されているように、図３５は、グラデーション効果ツール３５００、元の画像データ３５２０、及びグラデーション画像３５２５を示す。
【０２９０】
元の画像３５２０は、グラデーション効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。グラデーション画像３５２５は、画像にグラデーション効果を適用してできた画像のための画像データである。いくつかの実施形態では、グラデーション画像３５２５は、元の画像から新しい画像を生成するために実行する命令のセットである。
【０２９１】
グラデーション効果ツール３５００は元の画像にコーヒーグラデーション効果を適用する。グラデーション効果ツール３５００は、白黒画像生成器３５０５、画像混合器３５１０、グラデーション計算器３３２５、及びグラデーション画像生成器３５１５を含む。
【０２９２】
白黒（Ｂ／Ｗ）画像生成器３５０５は元の画像３５３０に基づき白黒画像を生成する。いくつかの実施形態におけるＢ／Ｗ画像生成器は、Ｂ／Ｗ画像を生成するために、Ｂ／Ｗ  ＲＧＢトリプレット、例えば、（０．２、０．７、０．１）を用いる。トリプレット内の３つの数はそれぞれ、色の範囲を表す０〜１の範囲を有する。Ｂ／Ｗ画像を生成するために、Ｂ／Ｗ画像生成器３５０５は元の画像内のそれぞれの画素のためのＲＧＢトリプレットとＢ／Ｗ  ＲＧＢトリプレットとのドット積を計算する。いくつかの実施形態におけるＢ／Ｗ画像生成器３５０５はまた、より明るいＢ／Ｗ画像を得るために、ドット積を２．０によってスケール変更する。このようなドット積は以下の擬似コードで表すことができる。
ｂｗ＝２．０＊ｄｏｔ（ｉｍ，（０．２、０．７、０．１））＝２．０＊（ｉｍ．ｒ＊０．２＋ｉｍ．ｇ＊０．７＋ｉｍ．ｂ＊０．１）；
ｂｗはＢ／Ｗ画像内の画素の明度値である。ｉｍは、元の画像内の対応する画素のＲＧＢトリプレット（ｉｍ．ｒ，ｉｍ．ｇ，ｉｍ．ｂ）である。
【０２９３】
画像混合器３５１０は、茶色がかった色を定義するコーヒーＲＧＢトリプレットを用いることによって、元の画像及びＢ／Ｗ画像を混合する。いくつかの実施形態では、コーヒーＲＧＢトリプレットは（０．７、０．５、０．３５）である。いくつかの実施形態における画像混合器３５１０は、元の画像の画素のＲＧＢ値にコーヒーＲＧＢトリプレット及びＢ／Ｗ画像の画素の明度値を乗算することによって、元の画像及びＢ／Ｗ画像を混合する。このような混合は以下の擬似コードで表すことができる。
ｍｉｘｅｄＩｍａｇｅ＝ｉｍ＊ｃｏｆｆｅｅＲＧＢ＊ｂｗ；
ｍｉｘｅｄｉｍａｇｅは、混合された画像内の画素のＲＧＢトリプレットである。ｃｏｆｆｅｅＲＧＢはコーヒーＲＧＢトリプレットである。ｂｗは、Ｂ／Ｗ画像生成器３５０５によって生成されたＢ／Ｗ画像内の対応する画素のＲＧＢトリプレットである。
【０２９４】
グラデーション画像生成器３５２０は、グラデーション計算器３３２５によって計算されたグラデーション値を用いて混合画像を元の画像とブレンドする。いくつかの実施形態では、グラデーション画像生成器３５２０は、新しい画像を生成するべく混合画像を元の画像とブレンドするために、以下の擬似コード用いる。
ｇｒａｄＩｍａｇｅ＝ｏｒｉｇｉｎａｌＩｍａｇｅ＊（１−ｇｒａｄｉｅｎｔ）＋ｍｉｘｅｄＩｍａｇｅ＊ｇｒａｄｉｅｎｔ；
ｇｒａｄＩｍａｇｅは、元の画像にコーヒーグラデーション効果を適用することによって生成された新しい画像内の画素のＲＧＢトリプレットである。
【０２９５】
これより、図３５及び３６を参照してコーヒーグラデーション効果ツール３５００の操作例を説明する。図３６は、いくつかの実施形態が、画像にコーヒーグラデーション効果を適用するために実行するプロセス３６００を概念的に示す。いくつかの実施形態におけるプロセス３６００はグラデーション効果ツール３５００等の画像上グラデーション効果ツールによって実行される。画像上グラデーション効果ツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス３６００は開始する。
【０２９６】
プロセス３６００は、（３６０５において）白黒（Ｂ／Ｗ）画像を生成することによって、始まる。いくつかの実施形態におけるプロセス３６００は、Ｂ／Ｗ  ＲＧＢトリプレット、例えば、（０．２、０．７、０．１）を用いることによって、Ｂ／Ｗ画像を生成する。いくつかの実施形態におけるプロセス３６００は、元の画像の対応する画素（すなわち、同じ座標を有する画素）のＲＧＢトリプレットを用いてＢ／Ｗ画像のそれぞれの画素のための明度値を計算する。例えば、Ｂ／Ｗ画像生成器３５０５は、元の画像の対応する画素のＲＧＢトリプレット、例えば、（０．３、０．４、０．５）とＢ／Ｗ  ＲＧＢトリプレットとのドット積をとることによって、Ｂ／Ｗ画像の画素のための明度値を計算する。すると、Ｂ／Ｗ画像の画素のための明度値は、２．０＊（０．３＊０．２＋０．３＊０．７＋０．５＊０．１）となるであろう。これは０．６４になる。
【０２９７】
次に、プロセス３６００は（３６１０において）、コーヒーＲＧＢトリプレット、例えば、（０．７、０．５、０．３５）を用いて、元の画像及びＢ／Ｗ画像を混合する。例えば、画像混合器３５１５は、Ｂ／Ｗ画像内の対応する画素の明度値０．６４を用いて元の画像及び生成されたカラー画像の画素を混合する。上述のように、元の画素はＲＧＢトリプレット（０．３、０．４、０．５）を有する。それゆえ、混合画像内の対応する画素のＲＧＢトリプレットは、（０．３、０．４、０．５）＊（０．７、０．５、０．３５）＊０．６４となり、これは（０．０７６８、０．１２８、０．１１２）になる。
【０２９８】
次に、プロセス３６００は（３６１５において）、元の画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス３６００は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス３６００は、ユーザが、（例えば、指を上げずに）表示された画像にタッチしながら、指を元の画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。例えば、元の画像は７６８画素の高さを有し、タッチのロケーションは画像の最上部から４００番目の画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの中心にある画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの平均画素座標である。
【０２９９】
次に、プロセス３６００は（３６２０において）元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態では、プロセス３６００は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールは、ユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、プロセス３６００は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【０３００】
例えば、グラデーション計算器３３２５は、元の画像の最上部から３００番目の画素となる画素のためのグラデーション値を計算する。グラデーション計算器３５２５はｔｏｐＹを計算する。ｔｏｐＹは０．０及び（３００／７６８）−０．２の最小値であり、これは０．０になる。グラデーション計算器３５２５は、正規化された行番号を計算する。正規化された行番号は、（３００／（７６８−１）−０．０）／（４００／７６８−０．０）となり、これは０．７５０９７７８３５になる。次に、グラデーション計算器３３２５はグラデーション値を計算する。正規化された行番号は０．８よりも小さいので、グラデーション値は（０．１＊０．７５０９７７８３５＋（０．８−０．７５０９７７８３５）＊０．８）／０．８となり、これは０．１４２８９４３９４になる。
【０３０１】
次に、プロセス３６００は（３６２５において）、計算されたグラデーション値を用いて混合画像及び元の画像をブレンドする。プロセス３６００はブレンド画像のそれぞれの画素のためのＲＧＢトリプレットを計算する。例えば、グラデーション画像生成器３５１５はブレンド画像内の画素のためのＲＧＢトリプレットを計算する。元の画像内の対応する画素は、最上部から３００番目の画素となる画素である。それゆえ、ブレンド画像内の画素のためのＲＧＢトリプレットは、（０．３、０．４、０．５）＊（１−０．１４２８９４３９４）＋（０．０７６８、０．１２８、０．１１２）＊０．１４２８９４３９４となり、これは（０．２６８１０５９７１、０．３６１１３２７２４、０．４４４５５６９７５）になる。
【０３０２】
本サブセクションでは、いくつかの画像上グラデーション効果ツールが説明された。以下の次のサブセクションはいくつかの画像上ティルトシフトツールを説明する。
【０３０３】
Ｂ．画像上ティルトシフトツール
図３７は、ユーザが、画像にタッチすることによって、画像の選択された部分にティルトシフト効果を適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、可視的画像上ツールであるティルトシフトツール３７１５にタッチしてこれを操作することによって、画像３７２５にティルトシフト効果を適用することを、６つの異なる段階３７０１〜３７０６において示す。図３７は、ＧＵＩ４００、アイコン３１１０、及び３１３０〜２９５０を示す。
【０３０４】
上述のように、画像表示エリア４１０は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチし、ティルトシフトツール３７１５を操作することによって、画像にティルトシフト効果を適用することを可能にする。画像編集アプリケーションは、画像表示エリア４１０内に表示された画像にティルトシフトツール３７１５を重ね合わせる。ティルトシフトツール３７１５は、図２を参照して上述されているティルトシフトツール２１１と同様である。
【０３０５】
これより、画像上ティルトシフトツールの操作例を説明する。第１段階３７０１は、指３７２５でサムネイル３７２０にタッチすることによるユーザのサムネイル３７１０の選択を示す。画像編集アプリケーションは、サムネイル３７１０の選択に応答して、サムネイル３７２０によって表されている画像３７１０を画像表示エリア４１０内に表示する。
【０３０６】
段階３７０２において、ユーザは、ツール選択ペイン４２０内に表示されているアイコン３１１０を選択する。それに応答して、画像編集アプリケーションは段階３７０３において、図示されているように、ＧＵＩ４００内に、選択可能なＵＩ項目３１２５のセットを表示する。ユーザは、ＵＩ項目３１５０にタッチすることによって画像上ティルトシフトツールを選択する。画像編集アプリケーションは画像上ティルトシフトツールを起動する。
【０３０７】
次の段階３７０４は、ユーザが画像の垂直中心よりも少し下の画像エリアにタッチした後のＧＵＩ４００を示す。この段階において、ティルトシフトツール３７１５は２本の平行線を、タッチされたエリアの中心が２本の平行線から等距離となるように、画像上に配置した。ティルトシフトツール３７１５はまた、上部平行線よりも垂直上方にある画像の部分及び下部平行線よりも垂直下方にある画像の部分をぼかした。いくつかの実施形態では、ティルトシフトツール３７１５は、２本の平行線を画像のデフォルトのロケーション上にデフォルトの幅で配置する場合がある。
【０３０８】
段階３７０５において、ユーザは、２本の平行線を広げて更に離すために、指３７３０及び３７３５を使い、画像上で拡大ジェスチャ実行した。上部線及び下部線は両方とも移動した。上部線は上に移動し、下部線は下に移動した。その結果、２本の平行線の間の画像の部分はより大きくなっており、ティルトシフトツールは画像のこの部分はぼかさない。
【０３０９】
次の段階３７０６は、ユーザが画像３７３０から指３７３０及び３７３５を上げた後のＧＵＩ４００を示す。２本の平行線は、これらの２本の線は操作可能であることを示すために、可視状態で残っている。ユーザが画像編集アプリケーションの編集モードから抜けると、２本の平行線は画像３７１０から消える。
【０３１０】
図３８は、ユーザによって選択された画像の部分にティルトシフト効果を適用するいくつかの実施形態の画像上ティルトシフトツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上ティルト効果ツールが、元の選択画像に基づきぼかしたいくつかのあらかじめ生成された画像を用いてティルトシフト効果を適用することを示す。図示されているように、図３８は、画像上ティルトシフトツール３８００、元の画像データ３８３０、ぼかし画像３８３５、及びティルトシフト画像３８４０を示す。
【０３１１】
元の画像データ３８３０は、ティルトシフト効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。ティルトシフト画像３８４０は、画像にティルトシフトを適用してできた画像のための画像データである。いくつかの実施形態では、ティルトシフト画像３３３５は、元の画像から新しい画像を生成するために実行する命令のセットである。
【０３１２】
画像上ティルトシフトツール３８００は、ぼかし画像生成器３８１５、距離計算器３８０５、重み計算器３８１０、及び画像加算器３８２５を含む。いくつかの実施形態における画像上ティルトシフトツールは、ユーザのタッチの垂直ロケーションに基づき画定される画像の水平の帯を除き、画像を垂直ティルトシフト−ぼかすこと（換言すれば、ユーザのタッチのロケーションから既定の垂直距離以内にない画像の部分をぼかすこと）を可能にする。画像上ティルトシフトツール３８００は、ティルトシフトツール３８００がユーザのタッチのロケーションから既定の距離以内にない画像の部分を放射状ティルトシフトする−ぼかすことをできるようにすることを可能とするように変更されてもよい。いくつかの実施形態における画像上ティルトシフトツール３８００は、元の画像を、元の画像のぼかしたバージョンと結合することによって、ティルトシフト画像を生成する。
【０３１３】
ぼかし画像生成器３８１５は、元の画像に基づきいくつかのぼかし画像を生成する。いくつかの実施形態では、ぼかし画像生成器３８１５は、ガウスカーネルを用いて元の画像を畳み込むことによって、ぼかし画像を生成する。ガウスカーネルの標準偏差は、処理するべき元の画像のサイズと相対的なものである。また、標準偏差は元の画像の規模に比例して増加する。すなわち、元の画像の規模が大きいほど、ガウスカーネルの標準偏差は大きくなる。例えば、ぼかし画像生成器３８１５が５つのぼかし画像を生成する場合には、２０００画素の規模を有する元の画像については、５つのガウスカーネルのための標準偏差は１．６、４、８、１２及び１６画素の大きさとして設定される。画像上ティルトシフトツール３８００が画像編集アプリケーションによって起動されると、ぼかし画像生成器３８１５はぼかし画像をあらかじめ生成し、ぼかし画像を（例えば、キャッシュ内に）記憶し、それにより、元の画像上においてユーザのタッチを受け取るとこれらのぼかし画像を迅速に結合してティルトシフト画像を生成することができるようにする。
【０３１４】
距離計算器３８０５は、タッチ入力を受け取るユーザインタフェースモジュール（不図示）からユーザ入力を受け取る。元の画像内の画素毎に、距離計算器３８０５は、画素と、ユーザによってタッチされた画素との間の垂直距離（例えば、ｙ軸値の差）を計算する。いくつかの実施形態では、距離計算器３８０５は、この擬似コードの例を用いて、計算された垂直距離を正規化する：
ｄｅｎｏｍ＝１．０／ｍａｘ（ｈｅｉｇｈｔＴｏｕｃｈｅｄ、ｉｍａｇｅＨｅｉｇｈｔ−ｈｅｉｇｈｔＴｏｕｃｈｅｄ）；
ｄｉｓｔ＝１．１−｜（ｃｕｒｒｅｎｔＲｏｗ−ｈｅｉｇｈｔＴｏｕｃｈｅｄ）｜＊ｄｅｎｏｍ＊１．２５；
ｄｉｓｔ＝ｍａｘ（ｍｉｎ（ｄｉｓｔ、１．０）、０．０）；
ｈｅｉｇｈｔＴｏｕｃｈｅｄは、ユーザがタッチした画素のｙ座標（例えば、タッチされた画素のセットの垂直中心画素（単数又は複数））である。いくつかの実施形態では、ｙ座標は画像の最上部の行から開始する。すなわち、画像の画素の最上部の行は０のｙ座標を有し、画像の画素の最下部の行は全体高さのｙ座標（例えば、画像内の画素の列内の画素の数−１）を有する。ｉｍａｇｅＨｅｉｇｈｔは元の画像の全体高さである。ｃｕｒｒｅｎｔＲｏｗは、現在処理されている特定の画素が属する行のｙ座標である。ｄｉｓｔは、特定の画素のための正規化された距離である。距離は、０〜１．１の範囲を有するように正規化される。
【０３１５】
計算された距離は、図３９に示されているグラフ３９００において曲線３９０５として描かれている。ユーザがタッチした画素は最上部の行から約８００番目の画素である。グラフ３９００は、２５００画素の高さを有する元の画像についてのものである。グラフ３９００の縦軸は、曲線３９０５のための正規化された距離を表し、曲線３９１０、３９１５、３９２０、３９２５、３９３０、及び３９３５のための正規化された重みを表す。横軸は最上部の行、０、から最下部の行、２５００、までの行番号を表す。曲線３９０５は、平坦な頂上を有するピラミッドのように見える。以上に示されている擬似コードの第４行は、１．０を超える正規化された距離値を全て１．０に設定するので、曲線３９０５は平坦な頂上を有する。
【０３１６】
重み計算器３８１０は、ぼかし画像生成器３８１５によって生成されたぼかし画像のそれぞれのための重み、及び元の画像のための重みを計算する。いくつかの実施形態における重み計算器は、ユーザがタッチした画素の垂直ロケーションからの距離からそれぞれのぼかし画像のための重みを導き出す。重み計算器３８１０は、ガウス関数であって、その入力は、正規化された距離であるガウス関数を用いて、それぞれのぼかし画像のための重みを計算する。重み計算器３８１０が用いるガウス関数は次式である。
【０３１７】
【数１】
0005986232.tif 000002
【０３１８】
パラメータａはいくつかの実施形態では１に設定され、そのため、関数は２つのパラメータｂ及びｃによって調節される。当技術分野において周知のように、ｂは対称的な「釣鐘曲線」又はガウスカーネルの中心の位置であり、ｃは「釣鐘」の幅を調節する。元の画像のための重みを調節するガウスカーネル３９１０の中心は、ユーザがタッチした画素の垂直画素ロケーションとして設定される。他のガウスカーネル３９１０〜３９３５の中心は、１つのガウスカーネル及び次のガウスカーネルがそれらの半値又はその付近において交わるように、順次、設定される。ガウスカーネルの幅はユーザのピンチジェスチャによって調節される。指の間の距離（すなわち、画像上ティルトシフトツールの２本の平行線の間の距離）が大きいほど、ガウスカーネルの幅は広くなる。全てのガウスカーネルは同じ幅を有する。重み計算器３８１０は、以下の擬似コードを用いてガウスカーネルの幅を計算する。
ｗｉｄｔｈ＝０．１２＊ＦＸｈｅｉｇｈｔ／０．３２；
（ｗｉｄｔｈ＜０．０６）である場合には、
ｗｉｄｔｈ＝０．０６；
ＦＸｈｅｉｇｈｔは、画像上ティルトシフトツールの２本の平行線の間の正規化された距離である。ｗｉｄｔｈは、計算された幅である。重み計算器３８１０は、重みが合計して１．０になることを確実にするように、重みを正規化する。
【０３１９】
画像加算器３８２５は、重み付けされた元の画像及び重み付けされたぼかし画像を加算することによって、ティルトシフト画像を生成する。すなわち、画像加算器３８２５は、元の画像のそれぞれの画素の重み付けされた画素値に、ぼかし画像生成器３８３５によって生成されたぼかし画像の重み付けされた画素値を加算する。
【０３２０】
これより、図３８及び４０を参照して画像上ティルトシフトツール３８００の操作例を説明する。図４０は、いくつかの実施形態が、画像にティルトシフト効果を適用するために実行するプロセス４０００を概念的に示す。いくつかの実施形態におけるプロセス４０００は、オンラインシフトツール３８００等の画像上ティルトシフトツールによって実行される。画像上ティルトシフトツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス４０００は開始する。
【０３２１】
プロセス４０００は、（４００５において）元の画像に基づきいくつかのぼかし画像をあらかじめ生成することによって、始まる。例えば、ぼかし画像生成器３８１５は５つのぼかし画像を生成する。ぼかし画像生成器３８１５は、サイズが１．６画素に等しい平均を用いて第１のぼかし画像を生成する。すなわち、いくつかの実施形態におけるぼかし画像生成器３８１５は、元の画像の各１．６×１．６画素平方内の全ての画素の画素値を平均する。ぼかし画像生成器３８１５は、サイズが４画素に等しい平均を用いて第２のぼかし画像を生成する。すなわち、いくつかの実施形態におけるぼかし画像生成器３８１５は、元の画像の各４×４画素平方内の全ての画素の画素値を平均する。同様の方法で、ぼかし画像生成器３８１５は、サイズがそれぞれ８、１２、及び１６画素に等しい平均を用いて第３、第４、及び第５のぼかし画像を生成する。
【０３２２】
次に、プロセス４０００は（４０１０において）中心画素の選択を受け取る。例えば、距離計算器３８０５は、ユーザによってタッチされた画素のロケーションを受け取る。本例では、ユーザによってタッチされた画素は、垂直に２５００画素を有する元の画像の最上部から８００番目である。
【０３２３】
次に、プロセス４０００は（４０１５において）、画素の行毎に、タッチされた画素からの距離を計算する。いくつかの実施形態では、プロセス４０００はまた、計算された距離を正規化する。例えば、距離計算器３８０５は、画像の最上部から５００番目の行とタッチされた画素との間の距離を計算する。距離は、１．１−（｜４９９−７９９｜＊（１．０／ｍａｘ（７９９，２４９９−７９９））＊１．２５）となり、これは０．８７９４１１７６５になる。
【０３２４】
次に、プロセス４０００は（４０２０において）、生成されたぼかし画像のそれぞれのため、及び元の画像のための重みを計算する。いくつかの実施形態では、プロセス４０００はまた、全ての重みが総計で１．０になるように、計算された重みを正規化する。例えば、重み計算器３８１０は、全てのぼかし画像のための全てのガウスカーネルのために同じ幅を計算する。本例では、画像上ティルトシフトツールの２本の平行線の間の距離は２００画素である。この距離は、正規化されると、１．１−（｜２００−７９９｜＊（１．０／最大（７９９，２４９９−７９９））＊１．２５）となり、これは０．６５８８２３５２９になる。それゆえ、幅は０．１２＊０．６５８８２３５２９／０．３２となり、これは０．２４７０５８８２３になる。幅は０．０６よりも小さくないので、幅は０．２４７０５８８２３になる。すると、元の画像のための重みは、ｅ（（１．０−１．０）＾２／２＊（０．２４７０５８８２３）＾２）となり、これは１になる。重み計算器３８１０がそれぞれのぼかし画像のための重みを計算した後、重み計算器３８１０は、元の画像のための計算された重みを正規化する。
【０３２５】
次に、プロセス４０００は（４０２５において）、重み付けされた元の画像及び重み付けされたぼかし画像を加算する。すなわち、プロセス４０００は、元の画像内の画素の重み付けされた画素値、及びぼかし画像内の対応する画素の重み付けされた画素値を加算する。
【０３２６】
本サブセクションでは、いくつかの実施形態の画像上ティルトシフトツールを説明した。以下の次のサブセクションは画像上ビネットツールを説明する。
【０３２７】
Ｃ．画像上ビネットツール
図４１は、ユーザが、画像にタッチすることによって、画像の選択された部分にビネット効果を適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、不可視の（例えば、境界のない）幾何学形状にタッチしてこれを操作することによって、画像３７１０にビネット効果を適用することを、６つの異なる段階４１０１〜４１０６において示す。図４１は、ＧＵＩ４００、サムネイル３７２０、画像３７１０、並びにアイコン３１１０及び３１３０〜２９５０を示す。
【０３２８】
上述のように、画像表示エリア４１０は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、幾何学形状を動かし、サイズ変更することによって、画像へのビネット効果の適用を操作することを可能にする。ユーザが画像のロケーションにタッチすると、画像編集アプリケーションは、画像のタッチされたロケーションに基づきビネット効果を適用する。いくつかの実施形態における画像編集アプリケーションは、画像のタッチされたロケーションを囲む不可視の幾何学形状（すなわち、可視的な境界線を有しない形状）を描画し、幾何学形状の外側にある画像のエリアを暗くする。その結果、幾何学形状の内側にある画像のエリアは、幾何学形状の外側にある画像のエリアよりも明るく見える。したがって、幾何学形状の外側のエリアと幾何学形状の内側のエリアとの明度の差の故に、幾何学形状は可視的に見える。しかし、形状はそれ自身の境界線を有しないという意味においては、幾何学形状自体は依然として不可視である。
【０３２９】
いくつかの実施形態の画像編集アプリケーションは、ユーザが幾何学形状（すなわち、より明るい領域）を動かし、サイズ変更することを可能にする。ユーザは、幾何学形状にタッチすることによって幾何学形状を動かし、幾何学形状を、表示された画像内の他のロケーションへドラッグすることができる。ユーザは、複数の指で幾何学形状の内部にタッチし、指を広げて離すことによって、幾何学形状を拡大することができる。ユーザは、幾何学形状の上でピンチジェスチャを実行すること（例えば、幾何学形状にタッチしている指同士をより近くに引き寄せること）によって、幾何学形状を収縮させることができる。
【０３３０】
いくつかの実施形態では、幾何学は任意の他の形状であってもよい。非包括的なリストは、円、三角形、長方形等を含む。形状は、不規則な形状、又は手、花等のなじみのある物体形状であってもよい。
【０３３１】
これより、ＧＵＩ４１００を有する画像編集アプリケーションの操作例を説明する。最初の２つの段階４１０１及びＱ０２はそれぞれ段階３７０１及び３７０２と同一である。前の段階３７０２におけるサムネイル３１１０のユーザの選択に応答して、画像編集アプリケーションは段階４１０３において、図示されているように、ＧＵＩ４００内に選択可能なＵＩ項目３１２５のセットを表示する。ユーザは、ＵＩ項目３１４５にタッチすることによって画像上ビネットツールを選択する。画像編集アプリケーションは画像上ビネットツールを起動する。
【０３３２】
段階４１０４において、ユーザは指４１１０で画像内の左側の人物の顔の付近の画像のロケーションにタッチした。画像上ビネットツールは、画像のタッチされたロケーションを囲む境界のない楕円４１２０を描画し、楕円の外側のエリアを暗くする。その結果、左の人物の顔はスポットライトが当てられているように見える。
【０３３３】
段階４１０５において、ユーザは指４１１０を画像の別のロケーション、右側の人物の顔へドラッグする。画像上ビネットツールはそのロケーションまで楕円を指４１１０に追従させる（又はそれと一緒に移動させる）。代替的に、ユーザは画像から指４１１０を上げ、指４１１０で画像３７１０の最上部の付近のロケーションにタッチしていてもよく、又はユーザは画像３７１０にタッチしながら指４１１０をロケーションへドラッグしていてもよい。画像上ビネットツールは、図示されているように、楕円の外側のエリアを暗くすることによってビネット効果を適用した。
【０３３４】
次に段階４１０６において、ユーザは楕円４１２０上で、拡大アクション（例えば、画像にタッチしながら指を広げること）を実行した。画像上ビネットツールは楕円をサイズ変更し、サイズ変更された楕円サイズに基づきビネット効果を適用する。
【０３３５】
図４２は、画像編集アプリケーションのユーザが画像にビネット効果を適用することを可能にするためにいくつかの実施形態が実行するプロセス４２００を概念的に示す。いくつかの実施形態におけるプロセス４２００は画像編集アプリケーションによって実行される。ユーザからのタッチ入力（例えば、タップ操作、スワイプ操作等）を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス４２００は開始する。プロセス４２００は、（４２０５において）画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【０３３６】
次に、プロセス４２００は（４２１０において）、表示された画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス４２００は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス４２００は、ユーザが、（例えば、指を上げずに）表示された画像にタッチしながら、指を、表示された画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。
【０３３７】
次に、プロセス４２００は（４２１５において）画像にビネット効果を適用する。ユーザが、表示された画像内のロケーションをタップすると、プロセス４２００は不可視の幾何学形状を描画し、幾何学形状の外側のエリアを暗くする。
【０３３８】
図４３は、画像編集アプリケーションのユーザが画像にビネットを適用することを可能にするためにいくつかの実施形態が実行するプロセス４３００を概念的に示す。いくつかの実施形態におけるプロセス４３００は画像上ビネットツールによって実行される。プロセス４３００は、画像上ビネットツールが最初のタッチ入力を受け取り、最初のタッチ入力のロケーションに基づきビネット効果を適用した後に、開始する。
【０３３９】
プロセス４３００は、画像上ビネットツールは新たなタッチ入力を受け取ったかどうかを判定することによって、始まる。プロセス４３００が、画像上ビネットツールは新たなタッチ入力を受け取らなかったと判定した場合には、プロセス４３００は、新たなタッチ入力を受け取るのを待つために、４３２０へループして戻る。
【０３４０】
プロセス４３００が、画像上ビネットツールは新たなタッチ入力を受け取ったと判定した場合には、プロセス４３００は、タッチ入力は幾何学形状に対するものであるのかどうかを判定するために、４３２５へ進む。いくつかの実施形態では、タッチ入力が幾何学形状の内部又はその付近のエリアにタッチした場合に、プロセス４３００は、タッチ入力は幾何学形状に対するものであると判定する。プロセス４３００が、タッチ入力は幾何学形状に対するものではないと判定した場合には、プロセス４３００は、以下において更に説明される４３６０へ進む。
【０３４１】
プロセス４３００が、タッチ入力は幾何学形状のためのものであると判定した場合には（４１２５）、プロセスは、タッチ入力はマルチタッチ入力であるかどうかを判定する（４１３０）。プロセス４３００が、タッチ入力はマルチタッチ入力ではないと判定した場合には、プロセス４３００は、以下において更に説明される４３５５へ進む。プロセス４３００が（４３３０において）、タッチ入力はマルチタッチ入力であると判定した場合には、プロセス４３００は、マルチタッチ入力はピンチアクションであったかどうかを判定するために、４３３５へ進む。
【０３４２】
プロセス４３００が（４３３５において）、マルチタッチ入力はピンチアクションであったと判定した場合には、プロセス４３００は（４３４０において）幾何学形状を収縮させ、幾何学形状のサイズを縮小する。プロセス４３００が（４３３５において）、マルチタッチ入力はピンチアクションではなかったと判定した場合には、プロセス４３００は（４３４５において）、マルチタッチ入力は、拡大アクション（又は、拡大ジェスチャ）であったかどうかを判定する。プロセス４３００が（４３４５において）、マルチタッチ入力は拡大アクションではなかったと判定した場合には、プロセスは終了する。さもなければ、プロセス４３００は幾何学形状を拡大する。
【０３４３】
プロセス４３００が（４３３０において）、タッチ入力はマルチタッチ入力ではなかったと判定した場合には、プロセス４３００は、タッチ入力はドラッグされたかどうかを判定する（４１５５）。プロセス４３００が（４３５５において）、タッチはドラッグされなかったと判定した場合には、プロセス４３００は終了する。さもなければ、プロセス４３００は、タッチ入力のロケーション及び既定の幾何学形状に基づき、効果を適用する。
【０３４４】
図４４は、いくつかの実施形態が、表示された画像内におけるユーザのタッチのロケーションに基づきビネット効果を適用するために実行するプロセス４４００を概念的に示す。いくつかの実施形態におけるプロセス４４００は画像上ビネットツールによって実行される。画像上ビネットツールがユーザのタッチのロケーションを受け取ると、プロセス４４００は開始する。
【０３４５】
プロセス４４００は、（４４０５において）スケール値を受け取ることによって、始まる。いくつかの実施形態では、ビネット効果は、単一の「スケール」値に基づく「シグモイド」形状の減衰である。スケール値は、画像上ビネットツールが起動されている時に、ユーザが、ピンチジェスチャ又は拡大ジェスチャを実行することによって調整する幾何学形状のサイズ（例えば、円形状の半径）に対応する。いくつかの実施形態では、スケール値は、０〜１の範囲を有するように正規化される。
【０３４６】
次に、プロセス４４００は（４４１０において）円形状の内径及び外径を計算する。いくつかの実施形態では、プロセス４４００は、半径を計算するために、以下の擬似コードの例を用いる。
ｉｎｎｅｒＲａｄｉｕｓ＝ｓｃａｌｅ＊（１−ｓｃａｌｅ）＊０．８；
ｏｕｔｅｒＲａｄｉｕｓ＝ｓｃａｌｅ＋０．５；
ｉｎｎｅｒＲａｄｉｕｓは円形状の内径である。ｏｕｔｅｒＲａｄｉｕｓは円形状の外径である。ｓｃａｌｅは、受け取ったスケール値である。
【０３４７】
次に、プロセス４４００は（４４１５において）、ユーザがタッチした画素と元の画像内のそれぞれの画素との間の距離を計算する。いくつかの実施形態では、距離は、以下のユークリッド距離メトリックを用いて算出される。
ｄｉｓｔ＝（（ｘ−ｃｅｎｔｅｒＸ）２＋（ｙ−ｃｅｎｔｅｒＹ）２）（１／２）；
ｄｉｓｔは、計算された距離である。ｘは画素のｘ座標であり、ｙは画素のｙ座標であり、画像の左下角部が原点、（０、０）である。いくつかの実施形態では、プロセスは、２乗された距離を用いる。
【０３４８】
次に、プロセス４４００は（４４２０において）、計算された距離は、円形状の計算された内径よりも小さいかどうかを判定する。計算された距離が、計算された内径よりも小さい場合には、プロセス４４００は（４４２５において）画像のそれぞれの画素のためのビネット値を第１の既定値に設定する。いくつかの実施形態では、第１の既定値は１．０である。次に、プロセスは、以下において更に説明する４４５５へ進む。
【０３４９】
プロセス４４００が（４４２０において）、計算された距離は、円形状の計算された内径よりも小さくないと判定した場合には、プロセス４４００は（４４３０において）、計算された距離は、円形状の計算された外径よりも大きいかどうかを判定する。計算された距離が、計算された外径よりも大きい場合には、プロセス４４００は（４４３５において）画像のそれぞれの画素のためのビネット値を第２の既定値に設定する。いくつかの実施形態では、第２の既定値は０．０５である。次に、プロセスは、以下において更に説明する４４５５へ進む。
【０３５０】
プロセス４４００が（４４３０において）、計算された距離は、計算された外径よりも大きくないと判定した場合には、プロセス４４００は（４４４０において）シグモイド形状の範囲を計算する。プロセスは（４４２０及び４４３０において）、計算された距離は、計算された内径よりも小さくなく、かつ計算された外径よりも大きくないと判定したため、処理されている画像の画素の間の距離は２つの半径の間にある。いくつかの実施形態におけるプロセス４４００は、範囲を計算するために、以下の擬似コードの例を用いる：
ｒａｎｇｅ＝３．０＋２．０＊ｓｃａｌｅ；
【０３５１】
プロセス４４００はまた（４４４５において）、以下の擬似コードの例を用いていくつかの正規化コンポーネントを計算する。
ｒａｎｇｅＭｉｎ＝１／（１＋ｅｒａｎｇｅ）；
ｒａｎｇｅＮｏｒｍ＝１＋ｅ−ｒａｎｇｅ−ｒａｎｇｅＭｉｎ；
ｒａｎｇｅＭｉｎは、正規化された最小範囲である。ｒａｎｇｅＮｏｒｍは、正規化された範囲である。
【０３５２】
次に、プロセス４４００は（４４５０において）、画像であって、そのタッチされた画素からの距離は、計算された半径の間にある、画像のそれぞれの画素のためのビネット値を計算する。プロセス４４００は、以下の擬似コードの例を用いてこのような画素のためのビネット値を計算する。
ｔｍｐ＝１／（１＋ｅｔｍｐ）；
ｖｉｇｎｅｔｔｅ＝１−（ｔｍｐ−ｒａｎｇｅＭｉｎ）＊ｒａｎｇｅＮｏｒｍ＊０．９５；
ｅはオイラー数である。ｒａｎｇｅＭｉｎ及びｒａｎｇｅＮｏｒｍは、ビネット値が１．０を超えるか又は０．０５を下回るのを防ぐ働きをする。
【０３５３】
次に、プロセス４４００は画像にビネットを適用する。いくつかの実施形態では、プロセスは、画像のそれぞれの画素値に画素のためのビネット値を単純に乗算することによって、画像にビネットを適用する。しかし、当業者は、画像の画素にビネット値を適用するために、乗算以外の方法が用いられてもよいことを認識するであろう。
【０３５４】
ＩＶ．代替的なユーザインタフェースレイアウト
上述の図に示されている画像編集アプリケーションのＧＵＩは、画像編集アプリケーションが動作するデバイスは、ＧＵＩを表示するために十分大きいスクリーンを有することを前提として示されている。しかし、画像編集アプリケーションが動作するデバイスの一部は、制約されたスクリーンサイズを有する場合があり、より大きなデバイスのより大きなスクリーン内に項目が表示されるようにはＵＩ項目を表示することができない場合がある。また、より大きなデバイスのより大きなスクリーンも、デバイスが異なる配向（例えば、縦向き）で保持されている時には、制約されていると見なされる場合がある。いくつかの実施形態では、画像編集アプリケーションは、制約されたスクリーンサイズに対応するために、異なる時間インスタンスにおいて異なるＵＩ項目の異なるセットを表示する。
【０３５５】
図４５Ａ、図４５Ｂは、いくつかの実施形態のＧＵＩ４５００を概念的に示す。具体的には、本図は、いくつかの実施形態の画像編集アプリケーションが異なる時間インスタンスにおいて異なるＵＩ項目の異なるセットを表示することを、１０個の異なる段階４５０１〜４５１０において示す。図４５Ａ、図４５Ｂは、ＧＵＩ４５００は、制御ペイン４５１５、画像表示エリア４５１６、コレクション表示エリア４５２０、及びツールナビゲーションペイン４５２５を含むことを示す。
【０３５６】
画像表示エリア４５１６は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する点において、画像表示エリア４５１６は上述の画像表示エリア４１０と同様である。コレクション表示エリア４５１５は、コレクション表示エリア４５１５が画像編集アプリケーションを用いた編集に利用可能である画像のサムネイルのコレクションを表示する点において、コレクション表示エリア４１５と同様である。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、異なるサムネイルを表示するために、上及び下あるいは横にスクロールすることを可能にする。また、画像編集アプリケーションは、サムネイルが選ばれ、対応する画像が表示エリア内に表示されていることを示すためのサムネイル上の視覚的な表示（例えば、強調表示）も提供する。更に、いくつかの実施形態の画像編集アプリケーションは、対応する画像が編集されたことを示すためのサムネイル上の視覚的な指示（例えば、ツールボックスアイコン）を提供する。
【０３５７】
ツールナビゲーションペイン４５２５は、異なる時間インスタンスにおいて、選択可能又は調節可能なＵＩ項目の異なるセットを表示する。いくつかの実施形態では、ツールナビゲーションペイン４５２５内に現在表示されているユーザインタフェース項目のセットは、ツールナビゲーションペイン４５２５内に以前に表示されていたＵＩ項目のセットとのユーザの対話に依存する。例えば、ユーザが、編集ツールのセットを表す特定のＵＩ項目にタッチすると、その特定のＵＩ項目に関連する編集ツールのセットのためのＵＩ項目のセットが、ツールナビゲーションペイン４５２５内において特定のＵＩ項目を含むＵＩ項目のセットに取って代わる。
【０３５８】
画像編集アプリケーションは、ツールナビゲーションペイン４５２５内に表示された第１のＵＩ項目のセットを多数の異なる方法で第２のＵＩ項目のセットで置き換えてもよい。例えば、画像編集アプリケーションは、第２のセットがスライドして中に入ってくるのに従って、第１のセットに第２のセットを重ね合わせる。画像編集アプリケーションは、第２のセットをスライドさせて中に入れながら、第１のセットをスライドさせて外へ出す場合もある。更に、第１及び第２のセットによるスライドの方向は任意の方向−上、下、左、右、斜め等−であってもよい。
【０３５９】
ここで、ＧＵＩ４５００の操作例を説明する。段階４５０１において、画像編集アプリケーションは画像表示エリア４５１６内に画像４５１７を表示する。画像４５１７は、コレクション表示エリア４５２０内に表示されたサムネイル４５３５に対応する。すなわち、画像編集アプリケーションは、ユーザの選択（例えば、タッチすることによる）サムネイル４５３５に応答して画像表示エリア４５１６内に画像４５１７を表示する。この段階において、ユーザは、本例ではツールボックスを示すアイコンであるＵＩ項目４５３０を選択する。ＵＩ項目４５３０は、画像編集アプリケーションが提供する編集ツールのセットを表す。
【０３６０】
次の段階４５０２は、ツールナビゲーションペイン４５２５内に表示されていた第１のＵＩ項目のセット４５２４が第２のＵＩ項目のセット４５２６によって置き換えられていくことを示す。本例では、段階４５０２は、第２のＵＩ項目のセット４５２６が右へスライドし、ツールナビゲーションペイン４５２５内に入りつつ、第１のＵＩ項目のセットに第２のＵＩ項目のセットが重ね合わせられつつあることを示す。しかし、いくつかの実施形態では、図示されているように、第２のＵＩ項目のセット４５２６がスライドしてＵＩ項目４５３０の下に潜り込み、第１のＵＩ項目のセットの残りのものの上に覆い被さりつつある間、第１のＵＩ項目のセットのＵＩ項目４５３０は定位置にとどまる。
【０３６１】
段階４５０３において、画像編集アプリケーションはツールナビゲーションペイン４５２５内に第２のＵＩ項目のセット４５２６を表示する。図示されているように、本例における第２のＵＩ項目のセット４５２６は、ＵＩ項目４５４５、４５５０、及び４５５５を含む、５つのＵＩ項目を含む。第２のＵＩ項目のセットに属さないＵＩ項目４５４０がＵＩ項目４５３０に取って代わった。ＵＩ項目４５４０は、第２のＵＩ項目のセットをツールナビゲーションペイン４５２５内の別のＵＩ項目のセットで置き換えるためのものである。ＵＩ項目４５４０はまた、ユーザが、ユーザは第２のＵＩ項目のセットによって表された編集ツールを使用したくないことを示すためにタッチするためのものでもある。ＵＩ項目４５４５は画像上切り抜き及び角度補正ツールを表す。ＵＩ項目４５５０は画像上ブラシツールを表す。ＵＩ項目４５５５は画像上効果ツールを表す。この段階において、ユーザは、画像上切り抜き及び角度補正ツールを選択するためにＵＩ項目４５４５にタッチする。
【０３６２】
段階４５０４において、画像編集アプリケーションは、前の段階４５０３におけるユーザのＵＩ項目４５４５の選択に応答して、第３のＵＩ項目のセットを現しつつある。いくつかの実施形態では、画像編集アプリケーションは、第３のＵＩ項目のセットを現すために、第２のＵＩ項目のセットをスライドさせて外へ出す。第３のＵＩ項目のセットは、段階４５０４においては完全に示されていないが、切り抜き及び角度補正ツールを表す。いくつかの実施形態では、画像編集アプリケーションは、図示されているように、第２のＵＩ項目のセットを左へスライドさせ、ＵＩ項目４５４０の下へ潜り込ませて外へ出す。
【０３６３】
次の段階４５０５は、画像編集アプリケーションが第２のＵＩ項目のセット及びＵＩ項目４５４０を第３のＵＩ項目のセットで置き換えた後のＧＵＩ４５００を示す。第３のＵＩ項目のセットは切り抜き及び角度補正ツールを表し、ＵＩ項目４５６０及び４５６５を含む。ＵＩ項目４５５０は、現在、ツールナビゲーションペイン４５２５内に示され、起動されているのは、切り抜き及び角度補正ツールであることを示す。ＵＩ項目４５６０はまた、第３のＵＩ項目のセットをツールナビゲーションペイン４５２５内の別のＵＩ項目のセットで置き換えるためのものでもある。ＵＩ項目４５６０は、ユーザが、ユーザは、切り抜き及び角度補正ツールを用いることを望まないか又はそれを用いることを終えたことを示すためにタッチするためのものでもある。ＵＩ項目４５６５は上述のダイアル４５５と同様である。また、段階４５０５において、ユーザは、画像を切り抜くために、表示された画像４５１７上で拡大ジェスチャを実行した。
【０３６４】
次の段階４５０６は、切り抜き及び角度補正ツールが画像４５１７を拡大し、画像表示エリア４５１６内に表示可能でなかった画像の部分を切り落とした後のＧＵＩ４５００を示す。ユーザはまた、切り抜き及び角度補正ツールから抜けるために、ＵＩ項目４５６０にタッチする。
【０３６５】
段階４５０７において、画像編集アプリケーションは、前の段階４５０６におけるユーザのＵＩ項目４５６０の選択に応答して、第２のＵＩ項目のセットをスライドさせて入れつつある。図示されているように、いくつかの実施形態では、画像編集アプリケーションは第２のＵＩ項目のセット４５２６を、ＵＩ項目４５６５の上に覆い被さるが、ＵＩ項目４５６０の下へ潜り込むように、左へスライドさせて中へ入れる。
【０３６６】
次の段階４５０８は、画像編集アプリケーションが第３のＵＩ項目のセットを第２のＵＩ項目のセットで置き換えた後のＧＵＩ４５００を示す。第３のＵＩ項目のセットのＵＩ項目４５６０は、図示されているように、ＵＩ項目４５４０によって置き換えられた。画像編集アプリケーションはまた、サムネイル４５３５上に視覚的な指示４５６０も重ね合わせた。視覚的な指示４５６０は、サムネイル４５３５によって表されている画像が編集されたことを示す。段階４５０８において、ユーザは、第２のＵＩ項目のセット４５２６から抜けるために、ＵＩ項目４５４０を選択する。
【０３６７】
段階４５０９において、画像編集アプリケーションは、前の段階４５０６におけるユーザのＵＩ項目４５４０の選択に応答して、第１のＵＩ項目のセットを現すために、第２のＵＩ項目のセットを左へスライドさせ、ＵＩ項目４５４０の下へ潜り込ませて外へ出しつつある。次の段階４５１０は、画像編集アプリケーションが第２のＵＩ項目のセットを第１のＵＩ項目のセットで置き換えた後のＧＵＩ４５００を示す。図示されているように、ＵＩ項目４５３０がＵＩ項目４５４０に取って代わった。
【０３６８】
Ｖ．ソフトウェアアーキテクチャ
いくつかの実施形態では、図５、８、１１、１５、１７、２１、２５、２８、３０、３２、３４、３６、４０、４２、４３、及び４４を参照して上述されているプロセスは、コンピュータ若しくはハンドヘルドデバイス等の特定の装置上で動作するソフトウェアとして実装されるか、又はコンピュータ可読媒体内に記憶される。図４６は、いくつかの実施形態の画像編集アプリケーション４６００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、画像編集アプリケーションは、独立型アプリケーションであるか又は別のアプリケーションに一体化され、他の実施形態において、アプリケーションは、オペレーティングシステム内で実施されてもよい。更に、いくつかの実施形態において、アプリケーションは、サーバベースソリューションの一部として提供される。いくつかのそのような実施形態において、アプリケーションは、シンクライアントによって提供される。即ち、アプリケーションは、サーバ上で動作し、ユーザは、サーバからリモートの別個のマシンを介してアプリケーションと対話する。他のそのような実施形態において、アプリケーションは、シッククライアントによって提供される。即ち、アプリケーションは、サーバからクライアントマシンに分配され、クライアントマシン上で動作する。
【０３６９】
画像編集アプリケーション４６００は、ユーザインタフェース（ＵＩ）対話モジュール４６０５、切り抜き及び角度補正ツール４６１０、ブラシツール群４６１５、効果ツール群４６２０、ティルトシフトツール４６２５、グラデーションツール４６３０、ビネットツール４６３５、及び起動マネージャ４６７０を含む。画像編集アプリケーションはまた、ソースファイル４６４０及び編集命令４６４５も用いる。いくつかの実施形態では、ソースファイル４６４０はメディアコンテンツ（例えば、テキスト、音声、画像、及びビデオコンテンツ）を記憶する。編集命令４６４５は、画像編集アプリケーション４６００が実行した画像編集操作を命令のセットとして記憶する。画像編集アプリケーション４６００は、ソースファイル内に記憶されている元のデータに基づき新しい画像を生成するために、これらの命令のセット用いる。いくつかの実施形態では、メディアコンテンツデータは、．ｍｏｖ、．ａｖｉ、．ｊｐｇ、．ｐｎｇ、ｇｉｆ、ｐｄｆ、．ｍｐ３、．ｗａｖ、．ｔｘｔ等のファイルとしてソースファイル４６４０内に記憶される。いくつかの実施形態では、記憶４６４０及び４６４５は全て１つの物理記憶内に記憶される。他の実施形態では、記憶は別個の物理記憶内にあるか、又は記憶の一方は１つの物理記憶内にあり、その一方、他方は異なる物理記憶内にある。例えば、その他のプロジェクトデータ及びソースファイルは多くの場合、別々にあることになる。
【０３７０】
図４６は、また、入力デバイスドライバ（単数又は複数）４６６０及びディスプレイモジュール４６６５を含むオペレーティングシステム４６５０を示す。いくつかの実施形態では、図示されているように、デバイスドライバ４６５５及び４６６０並びにディスプレイモジュール４６６５は、画像編集アプリケーションがオペレーティングシステムと別個のアプリケーションのときでも、オペレーティングシステム４６５５の一部である。
【０３７１】
入力デバイスドライバ４６６０は、キーボード、マウス、タッチパッド、タブレット、タッチスクリーン、ジャイロスコープ、加速度計などからの信号を変換するためのドライバを含むことがある。ユーザは、これらの入力装置のうちの１つ以上と対話し、これらの入力装置は、信号をその対応するデバイスドライバに送る。次に、デバイスドライバは、信号を、ＵＩ対話モジュール４６０５に提供されるユーザ入力データに変換する。
【０３７２】
本出願は、異なる組の動作及び機能を実行する多数の方法をユーザに提供するグラフィカルユーザインタフェースについて述べる。いくつかの実施形態において、これらの動作及び機能は、様々な入力装置（例えば、キーボード、トラックパッド、タッチパッド、マウスなど）を介してユーザから受け取った様々なコマンドに基づき実行される。例えば、本出願は、グラフィカルユーザインタフェース内のカーソルを使用してグラフィカルユーザインタフェース内のオブジェクトを制御する（例えば、選択し、移動させる）ことを説明する。しかしながら、いくつかの実施形態において、グラフィカルユーザインタフェース内のオブジェクトを、タッチ制御などの他の制御によって制御又は操作することもできる。いくつかの実施形態において、タッチ制御は、装置のディスプレイ上のタッチの存在及び位置を検出することができる入力装置によって実現される。そのような装置の一例は、タッチスクリーン装置である。いくつかの実施形態において、タッチ制御によって、ユーザは、タッチスクリーン装置のディスプレイ上に重ね合わせられたグラフィカルユーザインタフェースとの対話によって、オブジェクトを直接操作することができる。例えば、ユーザは、タッチスクリーン装置のディスプレイ上の特定のオブジェクトにタッチするだけで、グラフィカルユーザインタフェース内の特定のオブジェクトを選択することができる。したがって、タッチ制御が利用されるとき、いくつかの実施形態において、グラフィカルユーザインタフェースのオブジェクトの選択を可能にするためにカーソルが提供されなくてもよい。しかしながら、グラフィカルユーザインタフェース内にカーソルが提供されるとき、いくつかの実施形態において、タッチ制御を使用してカーソルを制御することができる。
【０３７３】
更に、本出願は、いくつかの実施形態において、メディアクリップ又は一連のメディアクリップを編集するために種々のコマンド（例えば、トリミング、編集点の拡張、分割、関心のある領域のマーキングなど等の編集コマンド）を呼び出すためのホットキーの使用を説明する。いくつかの実施形態では、ホットキーは典型的なキーボード（例えば、デスクトップコンピュータのためのキーボード、スマートフォンのためのキーパッド等）内の有形のキーである。しかし、他の実施形態では、ホットキーはタッチ制御を通じて提供される。いくつかのこのような実施形態におけるホットキーは、タッチスクリーン装置上にレンダリングされたグラフィカルキーボード内のキー、選択可能若しくはクリック可能である任意のユーザインタフェース項目、又は任意のその他のタッチスクリーン手法である。
【０３７４】
ディスプレイモジュール４６６５は、ディスプレイ装置用のユーザインタフェースの出力を変換する。即ち、ディスプレイモジュール４６６５は、何を表示すべきかを示す信号を（例えば、ＵＩ対話モジュール４６０５から）受け取り、それらの信号をディスプレイ装置に送られる画素情報に変換する。ディスプレイ装置は、ＬＣＤ、プラズマスクリーン、ＣＲＴモニタ、タッチスクリーンなどでよい。
【０３７５】
画像編集アプリケーション４６００のＵＩ対話モジュール４６０５は、入力デバイスドライバから受け取ったユーザ入力データを解釈し、それを、切り抜き及び角度補正ツール４６１０、ブラシツール群４６１５、効果ツール群４６２０、ティルトシフトツール４６２５、グラデーションツール４６３０、及びビネットツール４６３５を含む、種々のモジュールに渡す。ＵＩ対話モジュールは、また、ＵＩの表示を管理し、この表示情報をディスプレイモジュール４６６５に出力する。
【０３７６】
起動マネージャ４６７０は編集ツールの起動及び停止を管理する。起動マネージャ４６７０は、編集ツールを起動及び停止するためのＵＩ項目へのユーザ入力を解釈し、画像へのユーザ入力が適切な編集ツール（単数又は複数）によって処理されるように、編集ツールを起動及び停止する。
【０３７７】
ツール４６１０は切り抜き、角度補正、及び拡大操作を実行する点において、切り抜き及び角度補正ツール４６１０は上述の切り抜き及び角度補正ツールと同様である。ブラシツール群４６１５は、上述の欠点除去ツール、赤目除去ツール、飽和ツール、脱飽和ツール、明色化ツール、暗色化ツール、シャープ化ツール、ソフト化ツール、及びスマート縁部検出ツールを含む。効果ツール群４６２０は、表示された画像に効果を適用するためのツール群を含む。ティルトシフトツール４６２５は上述のティルトシフトツールと同様である。いくつかの実施形態におけるグラデーションツール群４６３０は、上述されている暗色グラデーションツール、暖色グラデーションツール、寒色グラデーションツール、青色グラデーションツール、及びコーヒーグラデーションツールを含む。ビネットツール４６３５は上述のビネットツールと同様である。
【０３７８】
特徴の多くは、１つのモジュール（例えば、グラデーションツール群４６３０）によって実行されるように説明されているが、当業者は、機能は複数のモジュールに分割される場合があり得ること、及び１つの特徴の実行でも複数のモジュールを必要とする場合があり得ることを認識するであろう。
【０３７９】
ＶＩ．画像閲覧、編集、及び編成アプリケーション
上述した種々の図は、いくつかの実施形態の画像閲覧、編集、及び編成アプリケーションのＧＵＩの様々な実施例を示したものである。図４７は、画像を閲覧、編集、及び編成するいくつかの実施形態のＧＵＩ４７００の詳細図を示す。いくつかの実施形態のアプリケーションによって記憶される画像についてデータ構造４８００を概念的に示す図４８をある程度参照してＧＵＩ４７００を説明する。
【０３８０】
データ構造４８００は、画像ＩＤ４８０５と、画像データ４８１０と、編集命令４８１５と、画像のキャッシュされたバージョン４８４０と、画像の任意の更なるデータ４８５０とを含む。画像ＩＤ４８０５は、いくつかの実施形態において、コレクション内に記憶された画像を参照するためのコレクションデータ構造によって使用される画像の固有の識別子である。画像データ４８１０は、画像を表示する実際のフルサイズの画素データ（例えば、画像又はその符号化されたバージョン内の各画素の一連の色空間チャネル値）である。いくつかの実施形態において、このデータは、画像閲覧、編集、及び編成アプリケーションのデータベース内に記憶することができるか、又は同じ機器上で別のアプリケーションのデータと共に記憶することができる。いくつかの実施形態において、追加のアプリケーションは、画像閲覧、編集、及び編成が動作する機器で動作する別の画像編成アプリケーションである。
【０３８１】
したがって、データ構造は、アプリケーションに関連したローカルファイルへのポインタ、又は別のアプリケーションのデータベースに問い合わせるために使用することができるＩＤを記憶することができる。いくつかの実施形態において、アプリケーションがジャーナル内の画像を使用するか、又は画像の編集を行うと、アプリケーションは、画像データを含む画像ファイルのローカルコピーを自動的に作製する。
【０３８２】
編集命令４８１５は、ユーザが画像に適用した任意の編集に関する情報を含む。このようにすると、アプリケーションは、アプリケーションがいつでも画像の編集されたバージョンから原本に簡単に戻すことができるように、非破壊形式で画像を記憶する。例えば、ユーザは、画像に飽和効果を適用して、アプリケーションを出て、その後、別の折りにアプリケーションを再開して効果を除去することができる。これらの命令に記憶された編集は、切り抜き及び回転、完全な画像露光及び色調整、局所化された調整及び特殊効果、並びに画像の画素に影響を与える他の編集とすることができる。いくつかの実施形態は、ユーザが特定の組の編集の適用のみで、画像の異なるバージョンを閲覧することができるように、特定の順番でこれらの編集命令を記憶する。
【０３８３】
いくつかの実施形態において、編集命令４８１５は、編集作業のリスト４８６０として実行される。リスト４８６０は、編集４８６１、４８６２、４８６３、及び４８６５などの編集作業を含む。リスト４８６０内の各編集作業では、編集作業を実行するのに必要なパラメータを指定する。例えば、リスト４８６０内の編集作業４８６５は、画像に対する、色選択パラメータθを用いて飽和効果を適用する編集を指定する。
【０３８４】
いくつかの実施形態において、リスト４８６０は、最終的な編集された画像を作成するためにユーザによって着手された編集作業のシーケンスを記録する。いくつかの実施形態において、リスト４８６０は、いくつかの実施形態がアプリケーションによって行われる異なる可能な編集について特定の順序を規定するので、画像編集アプリケーションが表示に対して出力画像を生成するために編集を画像に適用する順序で編集命令を記憶する。例えば、いくつかの実施形態は、切り抜き及び回転、完全な画像露光、及び色調整等の他の編集作業よりも後に適用されることになる編集作業の１つとして飽和効果を定義する。これらの実施形態の一部のリスト４８６０は、飽和効果のための編集命令を、他の編集作業のうちの一部（例えば、編集４８６１〜１３６３）よりも後に適用されるであろう位置（すなわち、編集４８６５）内に記憶するであろう。
【０３８５】
キャッシュされた画像バージョン４８４０は、共通にアクセス及び表示される画像のバージョンを格納し、その結果、アプリケーションは、これらの画像をフルサイズの画像データ４８１０から繰り返し生成する必要がない。例えば、アプリケーションは、画像のサムネイル、並びに、表示解像度バージョン（例えば、画像表示エリアに対して調整されたバージョン）を記憶することが多いだろう。いくつかの実施形態のアプリケーションは、編集が適用されるたびに画像の新しいサムネイルを生成して先のサムネイルを入れ替える。いくつかの実施形態は、元の画像及び画像の１つ以上の編集されたバージョンを含め複数の表示解像度のバージョンを記憶する。
【０３８６】
最後に、画像データ構造４８００は、アプリケーションが画像と共に記憶することがあり得る更なるデータ４８５０（例えば、場所及び顔のサイズなど）を含む。いくつかの実施形態において、更なるデータとして、エクスチェンジャブル・イメージ・ファイル・フォーマット（Exchangeable image file format、Ｅｘｉｆ）データ、見出しデータ、共有画像データ、画像上のタグ、又は任意の他の形式のデータを挙げることができる。Ｅｘｉｆデータは、カメラ設定、ＧＰＳデータ、タイムスタンプなど等の、画像をキャプチャしたカメラによって記憶される種々の情報を含む。見出しは、ユーザによって入力される画像の説明である。タグは、画像をお気に入り、フラグ付き、非表示等としてマーキングするなどのように、アプリケーションが、ユーザが画像に関連付けることを許す情報である。
【０３８７】
当業者は、画像データ構造４８００は、画像の所要の情報を記憶するためにアプリケーションが使用することがあり得る１つの可能なデータ構造であるにすぎないことを認識するであろう。例えば、異なる実施形態は、更なる又はより少ない情報を記憶する、異なる順番で情報を記憶するなどし得る。
【０３８８】
図４７に戻ると、ＧＵＩ４７００は、サムネイル表示エリア４７０５と、画像表示エリア４７１０と、第１のツールバー４７１５と、第２のツールバー４７２０と、第３のツールバー４７２５とを含む。サムネイル表示エリア４７０５は、選択されたコレクション内の画像のサムネイルを表示する。サムネイルは、フルサイズの画像の小さい表現であり、いくつかの実施形態において画像の一部のみを表す。例えば、サムネイル表示エリア４７０５内のサムネイルは、フルサイズの画像のアスペクト比にかかわらず、全て、正方形である。サムネイルに使用するべき矩形画像の部分を判断するために、アプリケーションは、画像の小さい方の寸法を識別して、画像の中心部を長い方の方向に使用する。例えば、１６００×１２００画素の画像であれば、アプリケーションは、４７００×１２００の正方形を使用することになる。選択された部分をサムネイルに対して更に洗練するために、いくつかの実施形態は、（顔検出アルゴリズムを使用して）画像内の全ての顔の中心を識別して、その後、この場所を利用して切り取られる方向にサムネイル部分の中心を置く。したがって、理論的な１６００×１２００画像の顔が全て画像の左側に位置する場合、アプリケーションは、両側で２００列を切り落すのではなく、画素の一番左の４７００列を使用することになる。
【０３８９】
サムネイルに使用するべき画像の部分を判断した後に、画像閲覧アプリケーションは、（例えば、画素混合及び他の技法を使用して）画像の低解像度バージョンを生成する。いくつかの実施形態のアプリケーションは、画像のサムネイルを画像のキャッシュされたバージョン４８４０として記憶する。したがって、ユーザがコレクションを選択するとき、アプリケーションは、（コレクションデータ構造を介して）コレクション内の画像の全てを識別して、サムネイル表示エリアでの表示のために各画像データ構造内のキャッシュされたサムネイルにアクセスする。
【０３９０】
ユーザは、（例えば、上述の様々なタッチ相互作用を介して、又は他のユーザ入力相互作用を介して）サムネイル表示エリア内の１つ以上の画像を選択することができる。選択されたサムネイルは、選択のハイライト又は他のインジケータで表示される。サムネイル表示エリア４７０５において、サムネイル４７３０が選択される。更に、図示されるように、いくつかの実施形態のサムネイル表示エリア４７０５は、コレクション内のフラグが付された（例えば、はいに設定されたフラグのタグを有する）いくつかの画像を表示する。いくつかの実施形態において、このテキストは、フラグ付きの画像のサムネイルのみを表示するために選択可能である。
【０３９１】
アプリケーションは、選択された画像を対応するサムネイルよりも大きい解像度にて画像表示エリア４７１０内に表示する。画像は、ディスプレイ機器よりも高い解像度を有するので通常は画像のフルサイズでは表示されないことが多い。この点を踏まえて、いくつかの実施形態のアプリケーションは、画像表示エリアに収まるようにデザインされた画像のキャッシュされたバージョン４８４０を記憶する。画像表示エリア４７１０内の画像は、フルサイズの画像のアスペクト比で表示される。１つの画像が選択されたとき、アプリケーションは、画像の一切の部分を切り落すことなく、画像表示エリア以内でできるだけ大きい画像を表示する。複数の画像が選択されたとき、アプリケーションは、画像が異なるアスペクト比を有するときでも各画像についてほぼ同じ画素数を使用することによって視覚的重み付けを維持するように画像を表示する。
【０３９２】
第１のツールバー４７１５は、タイトル情報（例えば、ＧＵＩに示すコレクションの名前、ユーザが現在選択されている画像に付け加えた見出しなど）を表示する。更に、ツールバー４７１５は、第１の組のＧＵＩ項目４７３５〜１２３８と、第２の組のＧＵＩ項目４７４０〜１２４３とを含む。
【０３９３】
ＧＵＩ項目の第１の組は、戻るボタン４７３５と、格子ボタン４７３６と、ヘルプボタン４７３７と、取り消しボタン４７３８とを含む。戻るボタン４７３５によって、ユーザは、画像の異なるコレクション（例えば、アルバム、イベント、ジャーナルなど）から選択することができるコレクション編成ＧＵＩに戻ることができる。グリッドボタン４７３６の選択によって、アプリケーションは、（例えば、スライドアニメーションを介して）サムネイル表示エリアをＧＵＩに乗せ、又はサムネイル表示エリアから外す。いくつかの実施形態において、ユーザは、スワイプジェスチャを介してサムネイル表示エリアをＧＵＩに乗せた、又はサムネイル表示エリアから外すこともできる。ヘルプボタン４７３７は、ユーザに対してアクティブな現在のツールセットを識別するコンテキストに応じたヘルプ機能を起動させて、ツールをユーザに簡潔に記述するツールのペルプインジケータを提示する。いくつかの実施形態において、ペルプインジケータは、ツールに関する追加情報にアクセスするために選択可能である。取り消しボタン４７３８の選択によって、アプリケーション、この編集が切り抜き、色調整などであるかどうかにかかわらず、画像の最新の編集を除去する。この取り消しを行うために、いくつかの実施形態は、最新の命令を画像とともに記憶された編集命令４８１５の組から除去する。
【０３９４】
ＧＵＩ項目の第２の組は、共有ボタン４７４０と、情報ボタン４７４１と、原本を示すボタン４７４２と、編集ボタン４７４３とを含む。共有ボタン４７４０によって、ユーザは、様々な異なる方法で画像を共用することができる。いくつかの実施形態において、ユーザは、選択した画像を同じネットワーク（例えば、Ｗｉ  Ｆｉ（登録商標）又はＢｌｕｅｔｏｏｔｈ（登録商標）ネットワーク）上の別の適合した機器に送り、画像を画像ホスティング又はソーシャルメディアウェブサイトにアップロードし、かつ、とりわけ、選択した画像の組からジャーナル（即ち、追加のコンテンツを追加することができる配置された画像のプレゼンテーション）を作成することができる。
【０３９５】
情報ボタン４７４１は、１つ以上の選択された画像に関する追加の情報を表示する表示エリアを起動させる。起動した表示エリア内で表示される情報は、画像について記憶されたＥｘｉｆデータ（例えば、カメラ設定、タイムスタンプなど）の一部又は全部を含むことができる。複数の画像が選択されたとき、いくつかの実施形態は、選択された画像の全てに共通のＥｘｉｆデータのみを表示する。いくつかの実施形態は、（ｉ）情報が利用可能な場合、ＧＰＳデータに従ってどこで画像又は複数の画像がキャプチャされたかを示すマップを表示し、かつ、（ｉｉ）任意の写真共有ウェブサイト上の画像についてコメントストリームを表示する追加のタブを情報表示エリア内に含む。ウェブサイトからこの情報をダウンロードするために、アプリケーションは、共有画像データと共に画像について記憶されたオブジェクトＩＤを使用してウェブサイトにこの情報を送信する。コメントストリーム、及び場合によっては追加の情報が、ウェブサイトから受信されてユーザに表示される。
【０３９６】
原本を示すボタン４７４２によって、ユーザは、画像の元のバージョンと画像の現在の編集されたバージョンを切り替えることができる。ユーザがボタンを選択したとき、アプリケーションは、編集命令４８１５が一切適応されていない画像の元のバージョンを表示する。いくつかの実施形態において、適切なサイズ画像が、画像のキャッシュされたバージョン４８４０の１つとして記憶され、この画像が素早くアクセス可能となる。ユーザがボタン再び４７４２を再び選択したとき、アプリケーションは、編集命令４８１５を適用された画像の編集されたバージョンを表示する。
【０３９７】
編集ボタン４７４３によって、ユーザは、編集モードに入るか又は編集モードを出ることができる。ユーザがツールバー４７２０内の編集ツールの１組を選択したとき、図４７に示されるように、編集ボタン４７４３は、閲覧及び編成モードにユーザを戻す。ユーザが閲覧モードにある間に編集ボタン４７４３を選択したとき、アプリケーションは、ツールバー４７２０に示す順番で最後に使用された１組の編集ツールに戻る。即ち、ツールバー４７２０内の項目は、特定の順序で配置され、編集ボタン４７４３は、選択された画像に編集が行われた項目の一番右を起動させる。
【０３９８】
ツールバー４７２０は、言及したように、左から右に特定の順序で配置された５つの項目４７４５〜１２４９を含む。切り抜き項目４７４５は、ユーザがゆがんだ画像を整合させて画像の不必要な部分を除去することを可能にする切り抜き及び回転ツールを起動させる。露光項目４７４６は、ユーザが画像の黒色点、シャドウ、コントラスト、明度、ハイライト、及び白色点を修正することを可能にする１組の露光ツールを起動させる。いくつかの実施形態において、この１組の露光ツールは、画像の階調属性を修正するために異なる組み合わせで共に機能する１組のスライダである。色項目４７４７は、ユーザが飽和及び活気、並びに、色特有の飽和（例えば、青色画素又は緑色画素）及びホワイトバランスを修正することを可能にする１組の色ツールを起動させる。いくつかの実施形態において、これらのツールの一部は、１組のスライダとして提示される。ブラシ項目４７４８は、ユーザが画像の修正を局所化することを可能にする１組の補正ツールを起動させる。ブラシで、ユーザは、赤目及び傷を除去し、かつ、擦るアクションを画像上に行うことによって画像の局所化された部分に飽和及び他の特徴を適用又は除去することができる。最後に、効果項目４７４９は、ユーザが画像に適用することができる１組の特殊効果を起動させる。これらの効果としては、デュオトーン効果、ざらざら効果、グラデーション、ティルトシフト、非写実的不飽和化効果、グレイスケール効果、様々なフィルタなどがある。いくつかの実施形態において、アプリケーションはこれらの効果を、ツールバー４７２５から展開する項目のセットとして提示する。
【０３９９】
述べたように、ＵＩ項目４７４５〜１２４９は、特定の順番で配置される。この順序は、ユーザが最も一般に５つの異なる形式の編集を適用する順序に従う。したがって、編集命令４８１５は、いくつかの実施形態においてこの同じ順番で記憶される。ユーザが項目４７４５〜１２４９の１つを選択したとき、いくつかの実施形態は、選択されたツールの左のツールからの編集のみを表示された画像に適用する（が、他の編集は命令セット４８１５内に記憶されたままである）。
【０４００】
ツールバー４７２５は、１組のＧＵＩ項目４７５０〜１２５４、並びに、設定項目４７５５を含む。自動増強項目４７５０は、補正編集（例えば、明らかな赤目の除去、色バランス調整など）を画像に自動的に行う。回転ボタン４７５１は、任意の選択された画像を回転させる。いくつかの実施形態において、回転ボタンが押されるたびに、画像は、特定の方向に９０°回転する。自動補正は、いくつかの実施形態において、命令セット４８１５内に置かれる所定の組の編集命令を含む。いくつかの実施形態は、画像の分析を行って、その後、分析結果に基づき１組の命令を定義する。例えば、自動増強ツールは、画像において赤目を検出しようとするが、赤目が検出されなかった場合、赤目を補正する命令は、生成されない。同様に、自動色バランス調整は、画像の分析結果に基づく。回転ボタンによって生成された回転も、編集命令として記憶される。
【０４０１】
フラグボタン４７５２は、任意の選択された画像にフラグ付きとしてタグを付ける。いくつかの実施形態において、コレクションのフラグ付き画像は、フラグなし画像が一切なく表示することができる。お気に入りボタン４７５３によって、ユーザは、任意の選択された画像をお気に入りとしてマーキングすることができる。いくつかの実施形態において、これによって、お気に入りとして画像にタグが付され、また画像がお気に入り画像のコレクションに追加される。非表示ボタン４７５４によって、ユーザは、画像に非表示としてタグを付けることができる。いくつかの実施形態において、非表示画像は、サムネイル表示エリア内で表示されず、及び／又はユーザが画像表示エリア内でコレクションの画像を巡回するときに表示されない。図４８を参照して上に論じたように、これらの特徴の多くは、タグとして画像データ構造に記憶される。
【０４０２】
最後に、設定ボタン４７５５は、現在アクティブのツールセットに応じて異なるメニューオプションを提示するコンテキストに応じたメニューを起動させる。例えば、閲覧モードでは、いくつかの実施形態のメニューは、新しいアルバムの作成、アルバム用の重要な写真の設定、及び写真間での設定のコピーのためのオプション、及び他のオプションを提示する。編集ツールの異なる組がアクティブとき、メニューは、特定のアクティブのツールセットに関係するオプションを提示する。
【０４０３】
当業者は、画像閲覧及び編集ＧＵＩ４７００は、画像閲覧、編集及び編成アプリケーションに関する画像の多くの可能なグラフィカルユーザインタフェースの１つの実施例にすぎないことを認識するであろう。例えば、様々な項目は、異なるエリアに、又は異なる順序で位置することができ、いくつかの実施形態は、追加の又は異なる機能性を有する項目を含むことがあり得る。いくつかの実施形態のサムネイル表示エリアは、対応するフルサイズの画像などのアスペクト比に適合するサムネイルを表示することがあり得る。
【０４０４】
ＶＩＩ．電子システム
前述の機能及びアプリケーションの多くは、コンピュータ可読記憶媒体（コンピュータ可読媒体とも呼ばれる）に記録される命令セットとして指定されるソフトウェアプロセスとして実現される。これらの命令が、１つ以上の計算又は処理ユニット（例えば、１つ以上のプロセッサ、プロセッサのコア、又は他の処理ユニット）によって実行されるとき、それらの命令は、処理ユニットに、命令に示されたアクションを実行させる。コンピュータ可読媒体の例には、ＣＤ−ＲＯＭ、フラッシュドライブ、ランダムアクセスメモリ（ＲＡＭ）チップ、ハードディスク、消去可能プログラム可能な読出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）などがあるが、これらに限定されない。コンピュータ可読媒体は、無線によって又は有線接続により進行する搬送波及び電子信号を含まない。
【０４０５】
この明細書では、用語「ソフトウェア」は、プロセッサによって処理するためにメモリに読み込むことができる、読み出し専用メモリ内に存在するファームウェア又は磁気記憶装置に記憶されたアプリケーションを含む。また、いくつかの実施形態において、複数のソフトウェア発明は、別個のソフトウェア発明をそのままにしながら、より大きいプログラムの下位区分として実施されてもよい。いくつかの実施形態において、複数のソフトウェア発明を別個のプログラムとして実行することもできる。最後に、本明細書で述べたソフトウェア発明を一緒に実行する別個のプログラムの如何なる組み合わせも本発明の範囲内である。いくつかの実施形態において、ソフトウェアプログラムは、１つ以上の電子システム上で動作するようにインストールされたとき、ソフトウェアプログラムの動作を実行し行なう１つ以上の特定のマシン実装を定義する。
【０４０６】
Ａ．モバイルデバイス
いくつかの実施形態の画像編集及び閲覧アプリケーションは、モバイルデバイス上で動作する。図４９は、そのようなモバイルコンピューティングデバイスのアーキテクチャ４９００の実施例である。モバイルコンピューティングデバイスの実施例としては、スマートフォン、タブレット、ラップトップなどが挙げられる。図示されるように、モバイルコンピューティングデバイス４９００は、１つ以上の処理ユニット４９０５と、メモリインタフェース４９１０と、周辺機器インタフェース４９１５とを含む。
【０４０７】
周辺機器インタフェース４９１５は、カメラサブシステム４９２０、無線通信サブシステム４９２５、オーディオサブシステム４９３０、Ｉ／Ｏサブシステム４９３５などを含め、様々なセンサ及びサブシステムに結合される。周辺機器インタフェース４９１５は、処理ユニット４９０５と様々な周辺機器との間の通信を可能にする。例えば、配向センサ４９４５（例えば、ジャイロスコープ）及び加速度センサ４９５０（例えば、加速度計）は、配向及び加速度機能を容易にするために周辺機器インタフェース４９１５に結合される。
【０４０８】
カメラサブシステム４９２０は、１つ以上の光センサ４９４０（例えば、電荷結合素子（charged coupled device、ＣＣＤ）光センサ、相補型金属酸化膜半導体（complementary metal-oxide-semiconductor、ＣＭＯＳ）光センサなど）に結合される。光センサ４９２０と結合されたカメラサブシステム４９４０は、画像及び／又は映像データキャプチャなど、カメラ機能を容易にする。無線通信サブシステム４９２５は、通信機能を容易にする役目をする。いくつかの実施形態において、無線通信サブシステム４９２５は、無線受信器及び送信器と、光受信器及び送信器（図４９では図示せず）とを含む。いくつかの実施形態のこれらの受信器及び送信器は、ＧＳＭネットワーク、ＷｉＦｉネットワーク、Ｂｌｕｅｔｏｏｔｈネットワークなどの１つ以上の通信ネットワーク上で動作するように実装される。オーディオサブシステム４９３０は、オーディオを出力するために、（例えば、異なる画像操作に関連した異なる音響効果を出力するために）スピーカに結合される。更に、オーディオサブシステム４９３０は、音声認識、デジタル録音など音声起動機能を容易にするためにマイクに結合される。
【０４０９】
Ｉ／Ｏサブシステム４９３５は、周辺機器インタフェース４９１５を介して、ディスプレイ、タッチスクリーンなど入出力周辺機器４９０５とＣＰＵのデータバスとの間の転送を行う。Ｉ／Ｏサブシステム４９３５は、入出力周辺装置と処理ユニット４９０５のデータバスの間で転送を容易にするために、タッチスクリーンコントローラ４９５５と他の入力コントローラ４９６０とを含む。図示されるように、タッチスクリーンコントローラ４９５５は、タッチスクリーン４９６５に結合される。タッチスクリーンコントローラ４９５５は、複数のタッチ感度技術のいずれかを使用してタッチスクリーン４９６５上の接触及び動きを検出する。他の入力コントローラ４９６０は、１つ以上のボタンなど、他の入力／コントロール機器に結合される。いくつかの実施形態は、タッチ相互作用の代わりに、又はそれに加えてニアタッチ（ｎｅａｒ−タッチ）相互作用を検出することができるニアタッチ感応画面（ｎｅａｒ−タッチセンシティブスクリーン）及び対応するコントローラを含む。
【０４１０】
メモリインタフェース４９１０は、メモリ４９７０に結合することができる。いくつかの実施形態において、メモリ４９７０は、揮発性メモリ（例えば、高速ランダムアクセスメモリ）、不揮発性メモリ（例えば、フラッシュメモリ）、揮発性及び不揮発性メモリの組み合わせ及び／又は任意の他の形式のメモリを含む。図４９に示されるように、メモリ４９７０は、オペレーティングシステム（ＯＳ）４９７２を記憶する。ＯＳ  ４９７２は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。
【０４１１】
メモリ４９７０は、１つ以上の追加の機器と通信することを容易にする通信命令４９７４と、グラフィカルユーザインタフェース処理を容易にするグラフィカルユーザインタフェース命令４９７６と、画像関係の処理及び機能を容易にする画像処理命令４９７８と、入力関係（例えば、タッチ入力）の処理及び機能を容易にする入力処理命令４９８０と、オーディオ関係の処理及び機能を容易にするオーディオ処理命令４９８２と、カメラ関係の処理及び機能を容易にするカメラ命令４９８４と、も含む。上述の命令は、単に例示的であり、メモリ４９７０は、いくつかの実施形態において更なる及び／又は他の命令を含む。例えば、スマートフォンのメモリは、電話関係のプロセス及び機能を容易にする電話命令を含むことができる。上に特定した命令は、別個のソフトウェアプログラム又はモジュールとして実行される必要はない。モバイルコンピューティング機器の様々な機能は、１つ以上の信号処理及び／又は特定用途向け集積回路を含め、ハードウェア及び／又はソフトウェアにおいて実行することができる。
【０４１２】
図４９に示すコンポーネントは別個のコンポーネントと図示されているが、当業者は、２つ以上のコンポーネントを１つ以上の集積回路に一体化することができることを認識するであろう。更に、２つ以上のコンポーネントを１本以上の通信バス又は信号線によって共に結合することができる。また、機能の多くは１つのコンポーネントによって実行されるとして説明したが、当業者は、図４９に関して説明した機能が２つ以上の集積回路に分割することができることを認識するであろう。
【０４１３】
Ｂ．コンピュータシステム
図５０は、本発明のいくつかの実施形態が実現される電子システム５０００の別の実施例を概念的に示す。電子システム５０００は、コンピュータ（例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータなど）、電話、ＰＤＡ、又は他の種類の電子若しくはコンピューティング装置でよい。そのような電子システムは、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体のためのインタフェースを含む。電子システム５０００は、バス５００５、処理ユニット５０１０、グラフィク処理ユニット（ＧＰＵ）５０１５、システムメモリ５０２０、ネットワーク５０２５、読み出し専用メモリ５０３０、永久記憶装置５０３５、入力デバイス５０４０及び出力装置５０４５を含む。
【０４１４】
バス５００５は、電子システム５０００の多数の内部装置を通信で接続する全てのシステムバス、周辺装置バス及びチップセットバスを集合的に表す。例えば、バス５００５は、処理ユニット５０１０を、読み出し専用メモリ５０３０、ＧＰＵ  ５０１５、システムメモリ５０２０、及び永久記憶装置５０３５と通信可能に結合する。
【０４１５】
これらの様々なメモリユニットから、処理ユニット５０１０は、本発明のプロセスを実行するために実行すべき命令及び処理すべきデータを取得する。処理ユニットは、異なる実施形態において、シングルプロセッサ又はマルチコアプロセッサでよい。いくつかの命令は、ＧＰＵ  ５０１５に渡され、ＧＰＵ  ５０１５によって実行される。ＧＰＵ  ５０１５は、処理ユニット５０１０によって提供される、様々な計算をオフロードしたり、画像処理を補完したりすることができる。いくつかの実施形態において、そのような機能は、ＣｏｒｅＩｍａｇｅのカーネルシェーディング言語を使用して提供されてもよい。
【０４１６】
読み出し専用メモリ（ＲＯＭ）５０３０は、処理ユニット５０１０及び電子システムの他のモジュールによって必要とされる静的データ及び命令を記憶する。他方、永久記憶装置５０３５は、読み書きメモリ装置である。この装置は、電子システム５０００がオフでも、命令及びデータを記憶する不揮発性メモリユニットである。本発明のいくつかの実施形態は、永久記憶装置５０３５として大容量記憶装置（磁気又は光ディスク、及びその対応するディスクドライブなど）を使用する。
【０４１７】
他の実施形態は、永久記憶装置としてリムーバブル記憶装置（フロッピディスク、フラッシュメモリデバイスなど、及びその対応ドライブ）を使用する。永久記憶装置５０３５と同様に、システムメモリ５０２０は、読み書きメモリ装置である。しかしながら、記憶装置５０３５と異なり、システムメモリ５０２０は、ランダムアクセスメモリなどの揮発性読み書きメモリである。システムメモリ５０２０は、実行時にプロセッサが必要とする命令及びデータのうちのいくつかを記憶する。いくつかの実施形態において、本発明のプロセスは、システムメモリ５０２０、永久記憶装置５０３５、及び／又は読み出し専用メモリ５０３０に記憶される。例えば、様々なメモリユニットは、いくつかの実施形態によれば、マルチメディアクリップを処理する命令を含む。これらの様々なメモリユニットから、処理ユニット５０１０は、いくつかの実施形態のプロセスを実行するために実行する命令及び処理するデータを取得する。
【０４１８】
バス５００５は、また、入力デバイス５０４０及び出力装置５０４５に接続する。ユーザは、入力デバイス５０４０によって、電子システムに情報を送り、コマンドを選択することができる。入力デバイス５０４０には、英数字キーボード及びポインティングデバイス（「カーソル制御デバイス」とも呼ばれる）、カメラ（例えば、ウェブカメラ）、音声コマンドを受け取るマイクロフォン又は類似の装置などが挙げられる。出力装置５０４５は、電子システムによって生成された画像を表示するか、又はデータを他の方法で出力する。出力装置５０４５には、プリンタ、陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などのディスプレイデバイス、並びにスピーカ又は類似のオーディオ出力装置が挙げられる。いくつかの実施形態には、入力デバイスと出力装置との両方として機能するタッチスクリーンなどのデバイスを含む。
【０４１９】
最後に、図５０に示されたように、バス５００５は、ネットワークアダプタ（図示せず）を介して電子システム５０００をネットワーク５０２５に結合する。このように、コンピュータは、コンピュータのネットワークの一部（ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、又はイントラネットなど）、又はインターネットなどのネットワークのネットワークでもよい。電子システム５０００のいずれか又は全てのコンポーネントが、本発明で使用されてもよい。
【０４２０】
いくつかの実施形態は、マイクロプロセッサ、機械可読又はコンピュータ可読媒体（あるいは、コンピュータ可読記憶媒体、機械可読媒体又は機械可読記憶媒体と呼ばれる）にコンピュータプログラム命令を記憶する記憶装置及びメモリなどの電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例には、ＲＡＭ、ＲＯＭ、読み出し専用コンパクトディスク（ＣＤ−ＲＯＭ）、追記型コンパクトディスク（ＣＤ−Ｒ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）、読み出し専用多目的ディスク（例えば、ＤＶＤ−ＲＯＭ、２層ＤＶＤ−ＲＯＭ）、様々な記録可能／書き換え可能ＤＶＤ（例えば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷなど）、フラッシュメモリ（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカードなど）、磁気及び／又はソリッドステートハードディスク、読み出し専用記録可能Ｂｌｕ−Ｒａｙ（登録商標）ディスク、超高密度光ディスク、任意の他の光学又は磁気メディア、及びフロッピディスクが挙げられる。コンピュータ可読媒体は、少なくとも１つの処理ユニットによって実行可能で、様々な操作を実行するための命令セットを含むコンピュータプログラムを記憶してもよい。コンピュータプログラム又はコンピュータコードの例には、コンパイラによって作成されるようなマシンコード、及びインタープリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
【０４２１】
上記の考察は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを参照しているが、いくつかの実施形態は、特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの１つ以上の集積回路によって実行される。いくつかの実施形態において、そのような集積回路は、回路自体に記憶された命令を実行する。更に、いくつかの実施形態は、プログラマブルロジックデバイス（ＰＬＤ）、ＲＯＭ、又はＲＡＭデバイスに記憶されたソフトウェアを実行する。
【０４２２】
本出願のこの明細書及びクレームで使用されるとき、用語「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」は全て、電子又は他の技術装置を参照する。これらの用語は、人々又は人々のグループを含まない。規定のため、用語「ディスプレイ又は表示」は、電子システム上の表示を意味する。本出願のこの明細書及びクレームで使用されるとき、用語「コンピュータ可読媒体」、「コンピュータ可読媒体」、及び「機械可読媒体」は、コンピュータによって読み出し可能な形式で情報を記憶する有形な物理的物体に完全に制限される。これらの用語は、無線信号、有線でダウンロードされた信号、及び他の暫時信号を除外する。
【０４２３】
本発明を多数の特定の詳細に関して述べたが、当業者は、本発明を、本発明の趣旨から逸脱しない他の特定の形式で実施できることを理解するであろう。例えば、図の多くは、様々なタッチジェスチャ（例えば、タップ、ダブルタップ、スワイプジェスチャ、押したままにするジェスチャなど）を示す。しかしながら、例示する操作の多くは、異なるタッチジェスチャ（例えば、タップなどの代わりにスワイプ）を介して、又は非タッチ入力によって（例えば、カーソルコントローラ、キーボード、タッチパッド／トラックパッド、ニアタッチ感応画面などを使用して）行うことができる。更に、いくつかの図（図５、図８、図１１、図１５、図１７、図２１、図２５、図２８、図３０、図３２、図３４、図３６、図４０、及び図４２〜４４を含む）は、プロセスを概念的に示す。これらのプロセスの具体的な操作は、図示され記述された厳密な順序で実行されなくてもよい。具体的な操作は、１つの連続した一連の操作で実行されなくてもよく、様々な具体的な操作が、異なる実施形態で実行されてもよい。更に、プロセスは、いくつかのサブプロセスを使用して、又はより大きいマクロプロセスの一部として実施されてもよい。したがって、当業者は、本発明が、以上の実例となる詳細によって制限されず、添付の特許請求の範囲によって定義されることを理解するであろう。
【図１】
0005986232.tif 000003
【図２】
0005986232.tif 000004
【図３】
0005986232.tif 000005
【図４Ａ】
0005986232.tif 000006
【図４Ｂ】
0005986232.tif 000007
【図５】
0005986232.tif 000008
【図６】
0005986232.tif 000009
【図７】
0005986232.tif 000010
【図８】
0005986232.tif 000011
【図９】
0005986232.tif 000012
【図１０】
0005986232.tif 000013
【図１１】
0005986232.tif 000014
【図１２】
0005986232.tif 000015
【図１３】
0005986232.tif 000016
【図１４】
0005986232.tif 000017
【図１５】
0005986232.tif 000018
【図１６】
0005986232.tif 000019
【図１７】
0005986232.tif 000020
【図１８Ａ】
0005986232.tif 000021
【図１８Ｂ】
0005986232.tif 000022
【図１８Ｃ】
0005986232.tif 000023
【図１９】
0005986232.tif 000024
【図２０】
0005986232.tif 000025
【図２１】
0005986232.tif 000026
【図２２】
0005986232.tif 000027
【図２３】
0005986232.tif 000028
【図２４】
0005986232.tif 000029
【図２５】
0005986232.tif 000030
【図２６】
0005986232.tif 000031
【図２７】
0005986232.tif 000032
【図２８】
0005986232.tif 000033
【図２９】
0005986232.tif 000034
【図３０】
0005986232.tif 000035
【図３１】
0005986232.tif 000036
【図３２】
0005986232.tif 000037
【図３３】
0005986232.tif 000038
【図３４】
0005986232.tif 000039
【図３５】
0005986232.tif 000040
【図３６】
0005986232.tif 000041
【図３７】
0005986232.tif 000042
【図３８】
0005986232.tif 000043
【図３９】
0005986232.tif 000044
【図４０】
0005986232.tif 000045
【図４１】
0005986232.tif 000046
【図４２】
0005986232.tif 000047
【図４３】
0005986232.tif 000048
【図４４】
0005986232.tif 000049
【図４５Ａ】
0005986232.tif 000050
【図４５Ｂ】
0005986232.tif 000051
【図４６】
0005986232.tif 000052
【図４７】
0005986232.tif 000053
【図４８】
0005986232.tif 000054
【図４９】
0005986232.tif 000055
【図５０】
0005986232.tif 000056