【文献】
iPhoneでオシャレなミニチュア風写真を撮る方法/fladdict,2011年 9月12日,URL,http://fladdict.net/blog/2011/09/how-to-take-miniature-pics.html
(58)【調査した分野】(Int.Cl.,DB名)
コンピューティングデバイスの少なくとも1つの処理ユニットにより実行されると、画像を編集するためのグラフィカルユーザインタフェース(GUI)を提供するプログラムであって、前記GUIは、
画像を表示するための表示エリアと、
画像処理ツールとを備え、前記画像処理ツールは、(i)前記画像の場所の選択を受けとり、(ii)前記画像にユーザインターフェースアイテムを重ね合わせ、前記ユーザインターフェースアイテムは、前記選択された場所の第1の側に配置され、前記画像を前記場所を含む第1の領域と前記場所を含まない第2の領域とに分割する第1の線と、前記場所の他の側に配置され、前記画像を前記場所を含む第3の領域と前記場所を含まない第4の領域とに分割する第2の線とを備え、(iii)前記画像の効果を適用するべき領域を規定し、前記規定された領域は、前記場所を含まない前記第2の領域と前記第4の領域を備え、(iv)前記規定された領域に前記効果を適用する、プログラム。
前記画像は複数の画素を備え、前記画像処理ツールは、前記規定された領域内の画素に、前記画素から前記選択された場所までの距離に基づいて異なる量の前記効果を適用する、請求項11に記載のプログラム。
【発明を実施するための形態】
【0024】
本発明のいくつかの実施形態は、画像編集アプリケーションの表示エリア上に表示された画像を編集するための新しい画像上編集ツールを提供する。これらの画像上ツールは、ユーザが、画像上ツールにタッチし、これらを操作することによって画像に画像処理操作(例えば、飽和、脱飽和、欠点除去、角度補正、切り抜き等)を適用することを可能にする。
【0025】
これらの画像上ツールの一部は、いくつかの実施形態の画像編集アプリケーションが、表示された画像に重ね合わせる可視的ツールである。他の画像上ツールは、不可視ツールである。これらの不可視ツールは、ユーザが画像に直接タッチすることによって画像処理操作を適用することを可能にする。
【0026】
図1は、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのグラフィカルユーザインタフェース(GUI)100を概念的に示す。具体的には、本図は、ユーザが、画像表示エリア125内に表示された画像を角度補正するべく画像を回転させるために、グラフィカルツールにタッチすることを、3つの異なる段階105〜115において示す。
図1は、GUI100は画像表示エリア125及び角度補正ツール120を含むことを示す。
【0027】
いくつかの実施形態における画像編集アプリケーション(不図示)は画像編集用のソフトウェアアプリケーションである。画像編集アプリケーションは、いくつかの実施形態では、タッチ入力を受け取るためのタッチ又はニアタッチスクリーンを備えるコンピューティングデバイス(例えば、タブレットコンピュータ、スマートフォン等)上で動作する。画像編集アプリケーションは、ユーザが、画像編集アプリケーションの表示エリア内に表示された画像を示すスクリーンにタッチすることによって、画像にタッチすることを可能にする。
【0028】
画像表示エリア125は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像表示エリア125は、画像表示エリア125内に画像を適合させ、画像を迅速に処理するために、元の画像の解像度よりも低い解像度を有する画像を表示する。
【0029】
角度補正ツール120は、ユーザが、画像表示エリア125内に表示された画像を回転させるために操作するGUI項目である。いくつかの実施形態では、角度補正ツール120は、ユーザによって可動である(例えば、旋回可能、回転可能、等)幾何学形状として表示される。例えば、
図1に示されるように、角度補正ツール120はダイアル(例えば、部分円)である。角度補正ツール120は、ユーザが、ダイアルを旋回させることによって画像を回転させることを可能にする。いくつかの実施形態では、ユーザがダイアルを(例えば、ドラッグ操作又はスワイプ操作によって)一方向に(例えば、左又は右、時計回り、反時計回りに)旋回させるにつれて、角度補正ツール120はそれに応じて、画像表示エリア125内に表示された画像を回転させる。
【0030】
図1に示されるように、いくつかの実施形態における角度補正ツール120は画像表示エリア125に重なる。他の実施形態では、角度補正ツール120及びディスプレイ125は重ならない。更に、幾何学形状を有する代わりに、又はそれと併用して、いくつかの実施形態における角度補正ツール120は、ユーザが、画像を回転させる数値(例えば、角度の度数)を入力してもよい入力テキストフィールド(不図示)を有する。更に、いくつかの実施形態における角度補正ツール120は、ユーザが、表示された画像を角度補正するためにタッチすることができる、スライダコントロール(例えば、トラック、及びトラックに沿って動くコントロールノブ)も含む。
【0031】
これより、GUI100を有する画像編集アプリケーションの操作例を説明する。段階105において、画像編集アプリケーションは画像表示エリア125内に画像126を表示する。次に、段階110において、ユーザは角度補正ツール120上に指111を載せる。
【0032】
第3段階115は、ユーザが角度補正ツール120を右に(すなわち、時計回りに)旋回させた後のGUI100を示す。ユーザが角度補正ツール120を旋回させるにつれて、いくつかの実施形態における角度補正ツール120は、画像表示エリア125内に表示された画像を回転させる。第3段階115に示されるように、ユーザは、表示された画像126を真っ直ぐにするのに(例えば、画像内に示されている建物及び3人の人物をGUI100の画像表示エリア125の水平線と水平にするのに)ちょうど足りるだけ角度補正ツールを旋回させた。
【0033】
図2は、ユーザが、表示された画像に、画像にタッチすることによってティルトシフト効果(すなわち、選択的焦点効果)を適用することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI200を概念的に示す。具体的には、本図は、ユーザが、重ね合わせられたUI制御部であるティルトシフトツール211にタッチしてこれを操作することによって、画像225にティルトシフト効果を適用することを、4つの異なる段階205〜220において示す。図示されているように、
図2は、GUI200は画像表示エリア225を含むことを示す。
【0034】
画像表示エリア225は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチし、ティルトシフトツール211を操作することによって、画像にティルトシフト効果を適用することを可能にする。画像編集アプリケーションは、画像表示エリア225内に表示された画像にティルトシフトツール211を重ね合わせる。
【0035】
いくつかの実施形態では、ティルトシフトツール211は、画像編集アプリケーションが、表示された画像230上におけるユーザのタッチを受け取ることに応答して、表示された画像230上に重ね合わせる2本の平行線(上部及び下部平行線)を含む。いくつかの実施形態では、ユーザが、表示された画像にタッチしながら指を動かすと、ティルトシフトツールは2本の平行線を表示する。ティルトシフトツール211は2本の平行線を既定の距離(例えば、数百画素)離して配置する。次に、ティルトシフトツール211は、上部平行線よりも上にある画像の部分及び下部平行線よりも下にある画像の部分をぼかす。その結果、2本の線の間の画像の部分は、画像の残りの部分の鮮明さと比べて鮮明に見える。
【0036】
いくつかの実施形態におけるティルトシフトツール211は、ユーザが画像にタッチすることによって2本の平行線の間の距離を調整することを可能にする。ユーザは、2本の平行線上で、拡大ジェスチャ(例えば、画像にタッチしながら2本の指を広げて離すこと)を実行することによって、距離を増加させることができる。ユーザは、ピンチジェスチャ(例えば、画像にタッチしながら2本の指を互いに引き寄せること)を実行することによって、距離を減少させることができる。また、ユーザは、2本の平行線のうちの一方又は両方を動かすことによって(例えば、ドラッグすることによって)、距離を増加又は減少させることもできる。ティルトシフトツール211はまた、ユーザが、2本の線の間の空間にタッチしてこれをドラッグすることによって、2本の平行線を一緒に動かすことも可能にする。
【0037】
これより、GUI200を有する画像編集アプリケーションの操作例を説明する。段階205において、画像編集アプリケーションは画像表示エリア225内に画像230を表示する。第2段階210は、ユーザが画像の垂直中心よりも少し下の画像エリアにタッチした後のGUI200を示す。この段階において、ティルトシフトツール211は2本の平行線を、タッチされたエリアの中心が2本の平行線から等距離となるように、画像上に配置した。ティルトシフトツール211はまた、上部平行線よりも垂直上方にある画像の部分及び下部平行線よりも垂直下方にある画像の部分をぼかした。
【0038】
段階215において、ユーザは、2本の平行線を広げて更に離すために、指212及びもう1本の指213を使い、画像上で拡大ジェスチャ実行した。上部線及び下部線は両方とも移動した。上部線は上に移動し、下部線は下に移動した。その結果、2本の平行線の間の画像の部分はより大きくなっており、ティルトシフトツールは画像のこの部分はぼかさない。
【0039】
第4段階220は、ユーザが画像230から指212及び213を上げた後のGUI200を示す。2本の平行線は、これらの2本の線は操作可能であることを示すために、可視のまま残っている。ユーザが画像編集アプリケーションの編集モードを終了すると、2本の平行線は画像230から消える。
【0040】
図3は、ユーザが、画像表示エリア内に表示された画像に、画像にタッチすることによって画像処理操作を適用することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI300を概念的に示す。具体的には、本図は、ユーザが、画像にタッチすることによって、画像の部分にグラデーション効果を適用することを、3つの異なる段階305〜315において示す。
図3は、GUI300は画像表示エリア325を含むことを示す。
【0041】
画像表示エリア325は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、画像のエリアにタッチすること又は指を下方へ表示エリア325の底部までスワイプすることによって、表示された画像にグラデーション効果を適用することを可能にする。ユーザが画像のロケーションにタッチすると、画像編集アプリケーションは画像の最上部から画像内のタッチの垂直ロケーションまでグラデーション効果を適用する。すなわち、画像編集アプリケーションは、効果(例えば、明色化、暗色化、色の適用、等)の程度を画像の最上部からタッチのロケーションまで変化させる。
【0042】
ユーザが画像をスワイプダウンすると(例えば、画像にタッチしながら指を下方へドラッグすると)、画像編集アプリケーションは画像の最上部から、指があった最も低い垂直ロケーションまでグラデーション効果を適用する。画像編集アプリケーションはまた、ユーザが、グラデーション効果が適用されているエリアを縮小するために、グラデーション効果が適用されている最も低い垂直ロケーションよりも垂直上方にあるロケーションを上方へスワイプするか又はそこにタッチすることも可能にする。
【0043】
いくつかの実施形態では、画像編集アプリケーションは、ユーザが操作することができる可視水平線を示さない。しかし、グラデーション効果が適用された画像の上部、及びグラデーション効果が適用されていない画像の底部は、上部の効果のおかげで視覚的に識別可能である。それゆえ、上部及び底部を分離する可視的な境界(又は可視的な水平の帯)が存在する。この境界はユーザに視覚的な手がかりを提供し、ユーザが「不可視的」効果ツールを操作することを可能にする。
【0044】
これより、GUI300を有する画像編集アプリケーションの操作例を説明する。段階305において、画像編集アプリケーションは画像表示エリア345内に画像330を表示する。段階310において、ユーザは、指311で画像330の最上部の近くのロケーションにタッチしたか、又は画像330にタッチしながら指311を下方へそのロケーションまでドラッグした。画像編集アプリケーションは画像330の最上部から、指311があるロケーションまでグラデーション効果を適用した。指311よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【0045】
第3段階315は、ユーザが、画像330の底部により近い画像のロケーションにタッチしたか、又は画像330にタッチしながら指311をこのロケーションまでドラッグした後のGUI300を示す。画像編集アプリケーションは、前の段階310において指311があった垂直ロケーションから、現在の段階315における指311の垂直ロケーションまでグラデーション効果を適用した。指311よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【0046】
以下のセクションにおいて、画像上編集ツールのいくつかのより詳細な実施形態を説明する。セクションIは、いくつかの実施形態の画像切り抜き及び角度補正ツールを説明する。次に、セクションIIは、画像を擦ることによって、又は画像のエリアを選択することによって、画像に画像処理操作を適用することを可能にするいくつかの画像上編集ツールを説明する。セクションIIIは、画像に特殊効果を適用することを可能にするいくつかの可視的画像上ツール及び不可視的画像上ツールを説明する。その後、画像編集アプリケーションのための代替的なUIレイアウトを説明するセクションIVが続く。セクションVは、いくつかの実施形態の画像編集アプリケーションのソフトウェアアーキテクチャを説明する。次に、セクションVIは、いくつかの実施形態の画像編集アプリケーションは、画像閲覧、編集、及び編成アプリケーションでもあることを説明する。最後に、セクションVIIは、本明細書に記載されているいくつかの実施形態を実装するいくつかの電子システムについて説明する。
【0047】
I.画像上角度補正及び切り抜きツール
A.画像上角度補正
図4Aは、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが画像を角度補正するべく画像を回転させるためにグラフィカルツールにタッチすることを、6つの異なる段階401〜406において示す。図示されているように、
図1は、GUI400は、画像表示エリア410、コレクション表示エリア415、ツール選択ペイン420、ツール表示エリア425、及び制御ペイン430を含むことを示す。
【0048】
画像表示エリア410は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。コレクション表示エリア415は、画像編集アプリケーションを用いて編集するために利用可能である画像のサムネイルのコレクションを表示する。ユーザがコレクション表示エリア415内のサムネイルを(例えば、タッチすることによって)選択すると、画像編集アプリケーションは、画像表示エリア410内の選択されたサムネイルによって表されている画像を表示する。いくつかの実施形態における画像は、もともとはデジタル写真デバイス(例えば、デジタルカメラ)によって撮影されたデジタル写真画像、デジタルスキャンされた写真画像、又はデジタル的に作成された任意の画像である。
【0049】
いくつかの実施形態におけるツール選択ペイン420は、画像編集アプリケーションの異なる編集ツールセットを表すアイコンのセットを表示する。ユーザがツール選択ペイン420内のアイコンを(例えば、タッチすることによって)選択すると、画像編集アプリケーションは、ツール表示エリア425内及び/又は画像表示エリア410内の対応するツールのセットを表示する。いくつかの実施形態における画像編集アプリケーションは、どのツールのセットが現在選択されているのかを示すための視覚的な合図を提供する。例えば、画像編集アプリケーションは、選択されたアイコンを強調表示する。いくつかの実施形態では、ツール選択ペイン420内に表示されている最左端のアイコン421は画像上切り抜き及び角度補正ツールを表す。ユーザがアイコン421を選択すると、いくつかの実施形態における画像編集アプリケーションは切り抜き及び角度補正ツールを起動する。すなわち、画像編集アプリケーションは、画像表示エリア内の画像へのユーザ入力(例えば、タッチ入力)の一部を、起動されたツールへの入力として扱う。画像編集アプリケーションはまた、アイコン421の選択に応答してツール表示エリア425内に角度補正ツール430も表示する。
【0050】
角度補正ツールは、ユーザが、画像表示エリア410内に表示された画像を角度補正することを可能にする。画像の角度補正とは、画像内の物体及び人物を写真の一方の側に傾いて見えないようにすることを意味する。いくつかの実施形態における角度補正ツールはまた、角度補正された画像のために元の画像のアスペクト比を維持するため、及び最終的な切り抜き内に元の画像の外側のエリアを含むことを回避するために、画像が角度補正されていくにつれて、画像を拡大し、及び/又はそれを切り抜く。
【0051】
角度補正ツールは、表示された画像を角度補正するための多数の異なる方法を提供する。例えば、いくつかの実施形態の角度補正ツールはダイアル435を含む。角度補正ツールは、ユーザが、ダイアル435を旋回又は回転させることによって、表示された画像を角度補正することを可能にする。いくつかの実施形態では、角度補正ツールは、表示された画像を、ダイアル435が旋回又は回転している方向に(例えば、時計回り又は反時計回りに)回転させる。角度補正ツールは、表示された画像を、ダイアル435が旋回又は回転する量だけ回転させる。
【0052】
いくつかの実施形態では、ダイアル435は、ダイアル435の旋回又は回転の量を示すためのマーキング及び数字を有する。ダイアル435はまた、基準系を提供するために、ダイアル435が回転するときに動かない固定ノブ460も有する。固定ノブ460によって指し示されるか又はそれと一直線に並んだ数字又はマーキングは、ダイアル435の旋回又は回転の量を示す。いくつかの実施形態におけるダイアル435上の数字は、度数若しくはラジアン、又は回転の角度若しくは量を表すことができる任意のその他の好適な単位で角度を表す。数字の符号(すなわち、負又は正)は回転の方向を示す。いくつかの実施形態では、負の数字は、ダイアル435及び表示された画像が時計回りに回転したことを示す。正の数字は、ダイアル435及び表示された画像が反時計回りに回転したことを示す。
【0053】
異なる実施形態は、ユーザのタッチの方向、ダイアル435の回転の方向、画像の回転の方向、及びダイアル435内で示される数字の符号の間の関係を異なって定義する。例えば、いくつかの実施形態では、画像編集アプリケーションは、表示された画像を、ダイアル435の回転の方向とは反対である方向に回転させる。更に、ダイアル435上の正の数字は、表示された画像の時計回りの回転を示す場合もあり、ダイアル435上の負の数字は、表示された画像の反時計回りの回転を示す場合もある。
【0054】
いくつかの実施形態では、画像編集アプリケーションは、ユーザがダイアル435を旋回させている最中に可聴的合図をユーザに提供するために、音声を再生する。画像編集アプリケーションが再生する音声は、いくつかの実施形態では、機械式ダイアルが、この機械式ダイアルが旋回又は回転されている時に出す音である。
【0055】
いくつかの実施形態におけるダイアル435は、ユーザがツール選択ペイン420内のアイコン421を選択した時に、ツール表示エリア425内に表示される。他の実施形態では、画像編集アプリケーションは、ダイアル435が、画像表示エリア410内に表示された画像に部分的に重なるように、ダイアル435を画像表示エリア410内に表示する。画像編集アプリケーションはまた、ダイアルを、GUI400の異なる部分内に異なる形状及びサイズで表示する場合もある。例えば、ダイアル410は、画像表示エリア410の角部内において完全な円形状を有するように表示されてもよい。
【0056】
ユーザのアイコン421の選択に応答して画像編集アプリケーションが切り抜き及び角度補正ツールを起動すると、いくつかの実施形態における画像編集アプリケーションは、画像表示エリア410内に表示された画像の上にグリッド線450のセットを表示する。グリッド線450は、切り抜き及び角度補正ツールが起動されていることを示し、また、ユーザが、表示された画像を切り抜く際の案内も提供する。いくつかの実施形態におけるグリッド線450は画像表示エリア410を3×3のグリッドに変える。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチするまで、グリッド線450のセットを表示しない。いくつかの実施形態では、画像編集アプリケーションは、ダイアル435が旋回されるまで、グリッド線450のセットを表示しない。
【0057】
グリッド線450のセットに加えて、画像編集アプリケーションは、ユーザがダイアル435を旋回させ始めると、グリッド線455の別のセットを表示する。このグリッド線455の追加のセットは、ユーザが、表示された画像を角度補正しようと試みるときに、追加の視覚補助を提供する。例えば、表示された画像内に示された物体又は人物がグリッド線と直交すると、ユーザは、表示された画像が角度補正されたことが分かる。いくつかの実施形態におけるグリッド線450及び455は相まって画像ディスプレイ410を9×9のグリッドに変える。当業者は、グリッド線450及び455が表示エリアを変えて成すグリッドは、必ずしも3×3又は9×9のような特定の寸法を有する必要はなく、任意の異なる寸法を有し得ることを認識するであろう。更に、いくつかの実施形態における画像編集アプリケーションはグリッド線450及び455を異なる色で描画する。例えば、グリッド線450は白色であり、グリッド線455は黄色である。
【0058】
制御ペイン430は、アイコンの選択に応答して画像編集アプリケーションが実行する異なる操作を表す異なるアイコンのセットを表示する。いくつかの実施形態における制御ペイン430は、コレクション表示エリア415内にサムネイルが表示されている画像のコレクションの名前を表示する。制御ペイン430は、画像表示エリア425内に表示されている画像の名前(例えば、ファイル名)を表示してもよい。
【0059】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。第1段階401は、指441でサムネイル440にタッチすることによるユーザのサムネイル440の選択を示す。画像編集アプリケーションは、サムネイル440の選択に応答して、サムネイル440によって表されている画像445を画像表示エリア410内に表示する。
【0060】
段階402において、次に、ユーザは、ツール選択ペイン420内に表示されているアイコン421を選択する。それに応答して、画像編集アプリケーションは段階403において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションはアイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、画像表示エリア410内にグリッド線450も表示する。固定ノブ460によって指し示されたダイアル435上の数字は「0」を示しており、ダイアル435はどちらの方向にも全く旋回されていないことを示している。
【0061】
段階404において、ユーザはダイアル425の一部分上に指441を載せ、ダイアルを時計回りに(すなわち、右に)旋回させ始める。いくつかの実施形態における画像編集アプリケーションは、ユーザが指441を載せるか又はユーザがダイアル435を旋回させ始めると、グリッド線455を表示する。
【0062】
次の段階405は、ユーザがダイアル435を時計回りに旋回させた後のGUI400を示す。切り抜き及び角度補正ツールは、表示された画像445を時計回りにダイアル435の回転の量だけ旋回させた。本例では、固定ノブ460によって指し示されている「−10」、ダイアル435及び表示された画像445が時計回りに10度回転したことを示す。段階405はまた、角度補正ツールは、回転される前に画像445の外側にはみ出している部分を表示エリア410内に表示することを回避するために、画像445を拡大し(そのため、画像内の自転車はより大きく見える)、それを切り抜いたことも示す。すなわち、もし、角度補正ツールが切り抜き及び拡大を行わずに画像445を回転させたならば、画像445の外側にはみ出している部分を画像表示エリア410内に表示しなければならなくなるであろう。図示されているように、いくつかの実施形態における角度補正ツールは、ダイアル435が回転されるにつれて、画像を表示エリア410の縁部に対して回転させる。すなわち、画像内に示されている物体及び人物のみが画像表示エリア410の縁部に対して回転され、それにより、物体及び人物が傾いて見えないようにする。
【0063】
最終段階406は、ユーザがダイアル435から指441を上げ、ダイアル435にもはやタッチしなくなった後のGUI400を示す。ダイアル435はもはやタッチされていないので、画像編集アプリケーションはグリッド線455も除去した。
【0064】
図4Bは、ユーザが画像上ツールを用いることによって画像を角度補正することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。本図は、ユーザが画像を角度補正するべく画像を回転させるためにグラフィカルツールにタッチすることを、6つの異なる段階401a〜406aにおいて示す。具体的には、
図4Bは、内側表示エリア480aを有するいくつかの実施形態のGUI400を示す。
【0065】
いくつかの実施形態の画像表示エリア410は内側表示エリア480aを含む。いくつかの実施形態の画像編集アプリケーションは、画像が時計回り又は反時計回りに回転されている最中に、画像の境界を内側表示エリア480a内に表示することを回避しつつ、表示された画像の最大限の部分が内側表示エリア480a内に表示されるように、表示された画像のための拡大レベルを調整する。いくつかの実施形態では、画像が回転されている最中に、内側表示エリア480aの外側にある表示エリア410のエリア内に画像の境界が表示される。このエリアは表示エリア410の外側エリアと呼ばれる。また、いくつかの実施形態では、表示エリア410の外側エリア内に入る画像の部分は薄く見える。内側表示エリア480aは、以下において(例えば、
図9、12、及び13を参照して)説明されている実施形態の画像編集アプリケーションに適用可能である。
【0066】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。第1段階401a及び第2段階402aは、
図4Aを参照して上述された段階401及び段階402と同一である。段階402aにおけるアイコン421の選択に応答して、画像編集アプリケーションは段階403aにおいて切り抜き及び角度補正ツールを起動する。画像編集アプリケーションは表示エリア410内に内側表示エリア480aを表示する。いくつかの実施形態では、内側表示エリア480aは表示エリア410よりも小さく、画像編集アプリケーションは内側表示エリア480aを表示エリア410の中心に表示する。
【0067】
画像編集アプリケーションは内側表示エリア480a内に画像445を表示する。画像編集アプリケーションはアイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、内側表示エリア480a内にグリッド線450も表示する。固定ノブ460によって指し示されたダイアル435上の数字は「0」を示しており、ダイアル435がどちらの方向にも全く旋回されていないことを示している。
【0068】
段階404aにおいて、ユーザはダイアル425の一部分上に指441を載せ、ダイアルを時計回りに(すなわち、右に)旋回させ始める。いくつかの実施形態における画像編集アプリケーションは、ユーザが指441を載せるか又はユーザがダイアル435を旋回させ始めると、内側表示エリア480a内にグリッド線455を表示する。
【0069】
次の段階405aは、ユーザがダイアル435を時計回りに旋回させた後のGUI400を示す。切り抜き及び角度補正ツールは、表示された画像445を時計回りにダイアル435の回転の量だけ旋回させた。本例では、固定ノブ460によって指し示されている「−5」は、ダイアル435及び表示された画像445が時計回りに5度回転したことを示す。段階405aはまた、角度補正ツールは、画像の境界を内側表示エリア480a内に表示することなく画像445の最大限の部分が内側表示エリア480a内に表示されるように、画像を拡大したことも示す(そのため、画像内の自転車はより大きく見える)。図示されているように、内側表示エリア480aの外部へはみ出す画像の他の部分は外側エリア485a(すなわち、内側表示エリア480aの外側にある表示エリア410の領域)内に表示される。画像455の上部及び側部境界の部分も表示エリア410の外側エリア485a内に表示される。
【0070】
最終段階406aは、ユーザがダイアル435を時計回りに更に旋回させた後のGUI400を示す。切り抜き及び角度補正ツールは、表示された画像445を時計回りにダイアル435の回転の量だけ旋回させた。本例では、固定ノブ460によって指し示されている「−10」は、ダイアル435及び表示された画像445はすぐ前の段階405a以降、追加の5度だけ時計回りに回転したことを示す。段階406aはまた、角度補正ツールは、画像の境界を内側表示エリア480a内に表示することなく、この特定の画像の回転量のために画像445の最大限の部分が内側表示エリア480a内に表示されるように、画像の拡大レベルを変更したことも示す(そのため、画像内の自転車はより大きく見える)。図示されているように、画像編集アプリケーションが画像455を更に拡大したために、自転車は、それが前の段階405aにおいて見えていたよりも大きく見える。いくつかの実施形態では、ユーザがダイアルから指を上げると、グリッド線455は消えるであろう。
【0071】
図5は、ユーザが、画像編集アプリケーションのグラフィカルユーザインタフェース項目(例えば、
図4A及び4Bを参照して上述されているダイアル435)を操作することによって画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス500を概念的に示す。いくつかの実施形態におけるプロセス500は画像編集アプリケーションによって実行される。ユーザからのタッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス500は開始する。プロセス500は(505において)、画像編集アプリケーションの画像表示エリア(例えば、上述の表示エリア410又は内側表示エリア480a)内に画像を表示することによって始まる。
【0072】
次に、プロセス500は(510において)画像編集アプリケーションのエリア内に幾何学形状を表示する。いくつかの実施形態では、プロセス500は画像表示エリア(例えば、画像表示エリア410)内に幾何学形状を少なくとも部分的に表示する。他の実施形態では、プロセス500は、幾何学形状及び表示された画像が重ならないように、幾何学形状を表示する。異なる実施形態は、表示するべき異なる幾何学形状を用いる。例えば、プロセス500は、ダイアル形状(例えば、部分円形状)を、表示するべき幾何学形状として用いる。
【0073】
次に、プロセス500は(515において)、幾何学形状はいくらかのタッチ入力を受け取ったかどうかを判定する。すなわち、プロセスは(515において)、ユーザは、(幾何学形状を示すタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアにタッチすることによって)幾何学形状にタッチしたのかどうかを判定する。プロセス500が(515において)、幾何学形状はタッチ入力を全く受け取らなかったと判定した場合には、プロセス500は、幾何学形状上におけるタッチ入力を待つために、515へループする。
【0074】
プロセス500が(515において)、幾何学形状はタッチ入力を受け取ったと判定した場合には、プロセスは、受け取ったタッチ入力に基づき幾何学形状を動かすために、520へ進む。例えば、ユーザが幾何学形状を左から右へスワイプすると、プロセス500は幾何学形状を右へ(すなわち、時計回りに)回転させる。同様に、ユーザが幾何学形状を右から左へスワイプすると、プロセス500は幾何学形状を左へ回転させる。
【0075】
次に、プロセス500は(525において)、幾何学形状の動きに基づき、表示された画像を回転させる。いくつかの実施形態では、プロセス500は、幾何学形状が回転した量に比例する量(例えば、角度の度数)だけ、表示された画像を回転させる。次に、プロセスは終了する。
【0076】
これまでに説明されたいくつかの実施形態の切り抜き及び角度補正ツールは、画像が角度補正されていくにつれて、表示された画像を拡大する。場合によっては、切り抜き及び角度補正ツールは、表示された画像が角度補正されていくにつれて、拡大を行わない。
【0077】
図6は画像編集アプリケーションのGUI400を示す。具体的には、本図は、GUI400が、表示された画像610上で拡大を行った場合には、角度補正ツールは、画像を角度補正するのに先立って、画像610上で拡大を行わないことを、6つの異なる段階601〜606において示す。
【0078】
いくつかの実施形態では、画像編集アプリケーションは、ユーザが、画像上で拡大ジェスチャを実行すること(例えば、2本の指をくっつけて画像にタッチし、次に、画像にタッチしながら指を広げること)によって、表示された画像を拡大することによって、表示エリア410内に表示された画像を切り抜くことを可能にする。画像編集アプリケーションが画像を拡大すると、画像の一部の部分は、それらの部分は画像表示エリアの外部へはみ出すことになるため、画像表示エリア410内に表示されなくなる。いくつかの実施形態における画像編集アプリケーションは画像のこれらの部分を切り落とす(すなわち、これらの部分を画像からトリミングする)。
【0079】
画像編集アプリケーションが、表示された画像を拡大した後に、画像が角度補正される場合には、いくつかの実施形態の角度補正ツールは、画像を角度補正するために角度補正ツールが画像を回転させるときに、追加的に拡大を行わない。これは、角度補正ツールが画像を角度補正するときには、角度補正ツールは画像の切り落とされた部分を用いることができるためである。
【0080】
これより、画像編集アプリケーションの操作例を説明する。段階601において、画像610が画像表示エリア410内に表示される。アイコン421は、切り抜き及び角度補正ツールが起動されていることを示すために、強調表示される。固定ノブ460によって指し示されたダイアル435上の数字は0であり、ダイアル435が回転されていないことを示している。画像表示エリア410内にはグリッド線450も表示される。
【0081】
段階602において、ユーザは2本の指で画像610にタッチする。段階603において、ユーザは画像610にタッチしながら指を広げて離す。切り抜き及び角度補正ツールは画像を拡大し、それにより、画像表示エリア410内に収まることができない画像の部分を切り落とす。
【0082】
段階604において、ユーザはダイアル435上に指を載せ、画像610を回転させ始める。追加のグリッド線455が画像表示エリア410内に表示される。次の段階605は、ユーザがダイアル435を時計回りに旋回させた後のGUI400を示す。切り抜き及び角度補正ツールはそれに応じて、表示された画像610を時計回りに旋回させたが、段階603において切り落とされた画像の部分を用いることによって、画像610をこれ以上拡大しなかった。固定ノブ460によって示された数字は、ダイアル435及び画像610は時計回りに10度回転したことを示している。
【0083】
最終段階605は、ユーザがダイアル435から指441を上げ、ダイアル435にもはやタッチしなくなった後のGUI400を示す。ダイアル435はもはやタッチされていないので、画像編集アプリケーションはグリッド線455も除去した。
【0084】
これまでに説明されたいくつかの実施形態の切り抜き及び角度補正ツールは、ユーザが、ダイアルにタッチすることによって、表示された画像を角度補正することを可能にする。切り抜き及び角度補正ツールは他のダイアル調節手段を提供する。
図7は、いくつかの実施形態の画像編集アプリケーションが動作するコンピューティングデバイス700を概念的に示す。具体的には、本図は、ユーザが、コンピューティングデバイス700を旋回又は回転させることによって、重ね合わせられた角度補正ツールを操作することによって、表示された画像を回転させることを、3つの異なる段階705〜715において示す。
図7は、画像表示エリア725及び角度補正ツール730を含む画像編集アプリケーションのGUIを示す。
【0085】
コンピューティングデバイス700は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有する。コンピューティングデバイス700のいくつかの例としては、タブレットコンピュータ(例えば、Apple iPad(登録商標))及びスマートフォン(例えば、Apple iPhone(登録商標))が挙げられる。コンピューティングデバイス700はまた、コンピューティングデバイス700の動きを検出及び測定する1つ以上のデバイス(例えば、ジャイロスコープ、加速度計等)も有する。いくつかの実施形態では、画像編集アプリケーションは、コンピューティングデバイス700の動きを検出及び測定するために、これらのデバイスを用いる。例えば、画像編集アプリケーションはコンピューティングデバイス700のジャイロスコープ(不図示)から配向値を受け取る。いくつかの実施形態では、これらの配向値はx軸配向値、y軸配向値、及びz軸配向値を含む。ここで、z軸は地表と直交し、x軸及びy軸は地表と平行である。それゆえ、コンピューティングデバイス700が地表レベルから同じ高さにおいて回転される場合には(例えば、コンピューティングデバイス700が、地表上で水平であるテーブルの上で回転される場合には)、z軸配向値のみが変化する。
【0086】
GUI720は、
図1を参照して上述されているGUI100と同様である。また、画像表示エリア725は画像表示エリア125と同様であり、角度補正ツール730は角度補正ツール120と同様である。角度補正ツール730は、画像表示エリア725内に表示された画像の回転の量を示すためのマーキング731を有する。
【0087】
いくつかの実施形態では、いくつかの実施形態における画像編集アプリケーションは、ユーザが、コンピューティングデバイス730を動かすこと(例えば、旋回させること、回転させること等)によって、角度補正ツール730を操作することを可能にする。画像編集アプリケーションは、コンピューティングデバイス730がユーザによって動かされる前のコンピューティングデバイス730の全ての3つのx、y、及びz軸あるいは少なくともz軸についての初期配向値を記録する。ユーザがコンピューティングデバイス730を旋回させると(例えば、その配向を変化させると)、いくつかの実施形態における画像編集アプリケーションは、記録されているコンピューティングデバイス730の初期配向値(特に、z軸配向値)に対する角度補正ツール130の配向を保持する。その結果、角度補正ツール730は、ユーザがコンピューティングデバイス700を旋回させるにつれて、コンピューティングデバイス730の変化する配向に対して旋回する。
【0088】
角度補正ツール730は、画像表示エリア725内に表示された画像を、角度補正ツール730が回転した量に応じて、コンピューティングデバイス730の変化する配向に対して回転させる。その結果、いくつかの実施形態の画像編集アプリケーションは、コンピューティングデバイスが動かされている最中に、表示された画像の配向をコンピューティングデバイスの初期配向に対して保持する。
【0089】
これより、角度補正ツール730を有する画像編集アプリケーションの操作例を説明する。第1段階705は、ユーザはコンピューティングデバイス700を動かないように保持し、画像編集アプリケーションは画像表示エリア720内に画像726を表示していることを示す。ここでは、コンピューティングデバイス730は、本例では地表と水平であるテーブル上に置かれていることを前提とされている。角度補正ツール730のマーキング731はそれらのそれぞれの初期位置にある。画像編集アプリケーションは、コンピューティングデバイス700が動かされる前のコンピューティングデバイス700のz軸配向を(例えば、コンピューティングデバイス700のメモリ内に)記録する。
【0090】
段階110において、ユーザは、表示された画像内に示されている人及び建物がコンピューティングデバイス700の現在の配向に対して角度補正されるまで、コンピューティングデバイス700を図示のように左へ傾ける。ユーザがコンピューティングデバイスを左へ旋回させるにつれて、画像編集アプリケーションは、コンピューティングデバイス700のジャイロスコープ(不図示)から、コンピューティングデバイス700がコンピューティングデバイス700の初期配向から回転した量を受け取る又は取得する。画像編集アプリケーションは角度補正ツール730を、コンピューティングデバイス730の変化する配向に対して右へ旋回させる。マーキング731は、角度補正ツール730が右へ旋回したことを示すために、右へ回転している。角度補正ツール730は、角度補正ツール730が回転した量に応じて、画像710を右へ回転させる。
【0091】
画像編集アプリケーションはまた、ユーザは、コンピューティングデバイス700を回転させることによって、角度補正ツール730及び表示された画像を回転させようと意図していないことを示すユーザ入力も受け取る。このような入力を受け取ると、画像編集アプリケーションは、ユーザがコンピューティングデバイス700を更に回転させたときに、角度補正ツール730及び表示された画像を回転させない。
【0092】
第3段階715において、ユーザは、コンピューティングデバイス730の現在の配向が、コンピューティングデバイス730の記録されている初期配向と同じになるように、角度補正ツール730を旋回させた。図示されているように、表示された画像は角度補正された。すなわち、表示された画像内に示されている人及び建物は画像表示エリア725の縁部と直交している。
【0093】
図8は、ユーザが、コンピューティングデバイス上で動作する画像編集アプリケーションのグラフィカルユーザインタフェース項目を操作することによって画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス800を概念的に示す。いくつかの実施形態におけるプロセス800は画像編集アプリケーションによって実行される。コンピューティングデバイスの動きを検出及び測定する1つ以上のデバイス(例えば、ジャイロスコープ、加速度計等)を有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス800は開始する。プロセス800は、(805において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。画像表示エリアの例としては、
図7を参照して上述されている画像表示エリア725が挙げられる。
【0094】
次に、プロセス800は(810において)画像編集アプリケーションのエリア内に幾何学形状を表示する。いくつかの実施形態では、プロセス800は画像表示エリア内に幾何学形状を少なくとも部分的に表示する。他の実施形態では、プロセス800は、幾何学形状及び表示された画像が重ならないように、幾何学形状を表示する。異なる実施形態は異なる幾何学形状を表示する。例えば、プロセス800はダイアル形状(例えば、部分円形状)を幾何学形状として表示する。
【0095】
次に、プロセス800は(815において)、コンピューティングデバイスは動いたかどうかを判定する。いくつかの実施形態では、プロセス800はコンピューティングデバイスのジャイロスコープから配向情報を受け取り又は取得し、配向情報を用いて、コンピューティングデバイスは動いたかどうかを判定する。プロセス800はまた、コンピューティングデバイスの現在の配向を包含する配向情報も保持する。プロセス800は、特定の軸に対するコンピューティングデバイスの動きを判定するために、コンピューティングデバイスの現在の配向と、コンピューティングデバイスの以前に記録された配向とを比較する。プロセスは、特定の軸に対する配向が変化していない場合には、コンピューティングデバイスは特定の軸に対して動かなかったと判定する。
【0096】
プロセス800が(815において)、コンピューティングデバイスは動かなかったと判定すると、プロセス800は、コンピューティングデバイスの動きを待つために、815へループする。プロセス800が(815において)、コンピューティングデバイスは動いたと判定すると、プロセスは、コンピューティングデバイスの動きに基づき幾何学形状を動かすために、820へ進む。例えば、ユーザがコンピューティングデバイスを左へ傾けた場合には、プロセス800は、コンピューティングデバイスの記録されている初期回転に対して幾何学形状を右へ回転させる。同様に、ユーザがコンピューティングデバイスを右へ傾けた場合には、プロセス820は幾何学形状を左へ回転させる。
【0097】
次に、プロセス800は(825において)、幾何学形状の動きに基づき、表示された画像を回転させる。いくつかの実施形態では、プロセス800は、幾何学形状が回転した量に比例する量(例えば、角度の度数)だけ、表示された画像を回転させる。次に、プロセスは終了する。
【0098】
図9は、いくつかの実施形態の画像編集アプリケーションが動作するコンピューティングデバイス900を概念的に示す。具体的には、本図は、ユーザが、コンピューティングデバイス900を旋回又は回転させることによって、ダイアル435を操作することによって、表示された画像910を回転させることを、7つの異なる段階901〜907において示す。図示されているように、
図9は、コンピューティングデバイスは、GUI400を有するいくつかの実施形態の画像編集アプリケーションを動作させることを示す。
【0099】
コンピューティングデバイス900は、コンピューティングデバイス900の動きを検出及び測定する1つ以上のデバイス(例えば、ジャイロスコープ、加速度計等)を含む点において、コンピューティングデバイス900は、
図7を参照して上述されているコンピューティングデバイス700と同様である。
【0100】
画像編集アプリケーションはまた、ユーザが、ユーザは、コンピューティングデバイス900を動かすことによるダイアル435の調節を始めるか又は調節をやめようと意図していることを示すことも可能にする。例えば、アイコン421の選択に応答して画像編集アプリケーションの切り抜き及び角度補正ツールが起動されている場合には、画像編集アプリケーションは、ダイアル435上におけるタップを受け取ると、ダイアル435がコンピューティングデバイス900の動きによって調節されるモードに入る。画像編集アプリケーションは、ダイアル435上における新たなタップを受け取ると、そのモードから抜ける。いくつかの実施形態では、画像編集アプリケーションは、画像編集アプリケーションはそのモードに入っていることを示すための視覚的な指示を提供する。例えば、画像編集アプリケーションは、画像編集アプリケーションがそのモードに入っているときには、ダイアル435を強調表示するか、又はダイアル435を点滅させる。
【0101】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。第1段階901は、指920でサムネイル915にタッチすることによるユーザのサムネイル915の選択を示す。画像編集アプリケーションは、サムネイル915の選択に応答して、サムネイル910によって表されている画像910を画像表示エリア410内に表示する。
【0102】
段階902において、次に、ユーザは、ツール選択ペイン420内に表示されているアイコン421を選択する。それに応答して、画像編集アプリケーションは段階903において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションはアイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、画像表示エリア410内にグリッド線450も表示する。
【0103】
ユーザはまた、ユーザはコンピューティングデバイス900を動かすことによってダイアル435を調節したいことを示すために、ダイアル435の上を(例えば、素早く指を下ろし、上げることによって)タップする。切り抜き及び角度補正ツールは、コンピューティングデバイス900が動かされる前のコンピューティングデバイス900の初期配向を記録する。例えば、切り抜き及び角度補正ツールはコンピューティングデバイス900のジャイロスコープからコンピューティングデバイス900のy軸値を入手し、少なくともz軸配向値を記録する。
【0104】
段階904において、ユーザはコンピューティングデバイス900を反時計回りに回転させ始める。切り抜き及び角度補正ツールは、コンピューティングデバイス900の初期配向に対するダイアル435の配向を維持する。これにより、切り抜き及び角度補正ツールはダイアル435を時計回りに回転させ始める。切り抜き及び角度補正ツールはまた、グリッド線455を表示し、画像表示エリア410を9×9のグリッドに変える。
【0105】
次の段階905は、表示された画像内に示されている人及び建物が画像表示エリア410の現在の配向(すなわち、コンピューティングデバイス900の現在の配向)に対して角度補正されるように、ユーザが、コンピューティングデバイス905を反時計回りに旋回させることによって、ダイアル435を時計回りに旋回させた後のGUI400を示す。
【0106】
段階905はまた、角度補正ツールは、回転される前に画像910の外側にはみ出している部分を表示エリア410内に表示することを回避するために、画像910を拡大し(そのため、画像内に示されている人及び建物はより大きく見える)、それを切り抜いたことも示す。次の段階906は、ユーザは、ユーザはコンピューティングデバイス900を動かすことによってダイアル435を調節したいともはや望んでいないことを示すために、ダイアル435の上を(例えば、素早く指を下ろし、上げることによって)タップすることを示す。
【0107】
最終段階907は、ユーザがコンピューティングデバイス905を回転させた後であるが、画像910は画像表示エリア410の縁部に対して回転されていないGUI400を示す。ユーザは前の段階906において、ユーザはコンピューティングデバイス900を回転させることによってダイアル及び画像をもはや回転させないことを示したため、切り抜き及び角度補正ツールはまた、グリッド線455も除去している。
【0108】
以上及び以下において説明されているいくつかの実施形態の切り抜き及び角度補正ツールは、ツールが停止状態となった時に表示画像エリア内に表示されている画像の部分を、新しい画像として保存する。以上のように、切り抜き及び角度補正ツールは画像を「編集」し、新しい画像を生成する。
【0109】
更に、いくつかの実施形態の切り抜き及び角度補正ツールは、画像が拡大され、表示エリア内に表示するために切り抜かれている間に、画像を編集する。他の実施形態では、切り抜き及び角度補正ツールは、画像を拡大及び縮小し、これを切り抜くことによって、画像が回転されている最中に表示エリア内の画像の一部ではないエリアを表示することなく、画像のできるだけ多くの部分を表示エリア内に表示するための閲覧補助として純粋に用いられる。換言すれば、純粋な閲覧補助として、切り抜き及び角度補正ツール自体は画像を「編集」しない。
【0110】
上述されたいくつかの実施形態の切り抜き及び角度補正ツールは、ユーザが、UI項目を操作することによって、表示された画像を角度補正することを可能にする。いくつかの実施形態は、ユーザが、表示された画像を、画像に直接タッチし、これを回転させることによって、角度補正することを可能にする。
【0111】
図10は、コンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのGUI1000を概念的に示す。具体的には、本図は、ユーザが、表示された画像を、2本の指1011及び1012で画像にタッチし、これを旋回させることによって、回転させることを、4つの異なる段階1005〜1020において示す。
図10は、GUI1000は画像表示エリア1025を含むことを示す。
【0112】
画像編集アプリケーションが動作するコンピューティングデバイス(不図示)は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有する。画像編集アプリケーションは、タッチセンシティブスクリーン又はニアタッチセンシティブスクリーン上で行われたタッチ入力(例えば、タッチジェスチャについての空間的及び時間的情報)を受け取り又は取得し、その入力を用いて、画像表示エリア1025内に表示された画像を回転させる。画像表示エリア1025は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する点において、画像表示エリア1025は画像表示エリア125と同様である。
【0113】
画像編集アプリケーションは、タッチ入力を受け取ると、ユーザは、表示された画像を回転させたいのかどうかを判定する。いくつかの実施形態では、ユーザが2本以上の指を使って、表示された画像にタッチし、画像上で指を閾値量(例えば、数度)よりも多く回転させると、画像編集アプリケーションは、ユーザは、表示された画像を回転させたいと判定する。画像編集アプリケーションは、タッチスクリーン上の指の位置を追跡し、2本の指の位置を結ぶ線が作り出す回転の量を測定することによって、指の回転の量を判定する。
【0114】
いくつかの実施形態における画像編集アプリケーションは、画像にタッチしているユーザの指が閾値量よりも多く回転するまで、表示された画像を回転させ始めない。これによって、ユーザが2本以上の指で、表示された画像にタッチすることによって何らかの他のアクションを実行しようと意図しているときには、画像編集アプリケーションは画像を回転させることを控える。例えば、ユーザが単に画像にタッチしながら2本の指を開いて更に遠く離すときには、メディア編集アプリケーションは、表示された画像を拡大し、表示された画像を回転させない。別の例として、画像編集アプリケーションは、ユーザが2本以上の指で画像をスワイプする場合には、画像を表示エリア内で回転させずに、画像の異なる部分を表示する。このように、画像編集アプリケーションは、ユーザが画像から指を上げずに、表示された画像を角度補正すること、切り抜くこと、拡大縮小すること、及びスライドさせることを可能にする。
【0115】
これより、GUI1000を有する画像編集アプリケーションの操作例を説明する。段階1005において、画像編集アプリケーションは画像表示エリア1025内に画像1026を表示する。段階1010において、ユーザは2本の指1011及び1012を画像1026上に載せる。段階1015において、ユーザは2本の指1011及び1012を時計回りに少し、ただし、既定の閾値(例えば、数度の角度)よりも少なく、回転させる。指の回転の量は閾値を超えなかったので、画像編集アプリケーションは、表示された画像1026を回転させ始めない。
【0116】
第4段階1020において、次に、ユーザは指1011及び1012を時計回りに更に回転させ、画像編集アプリケーションはそれに応じて、表示された画像1026を回転させる。ユーザは、表示された画像126を真っ直ぐにするのに(例えば、画像内に示されている建物及び3人の人物をGUI1000の水平線と水平にするのに)ちょうど足るだけ、指1011及び1012を回転させた。
【0117】
図11は、ユーザが、2本以上の指を使って、表示された画像にタッチし、これを旋回させることによって、画像処理アプリケーションの画像表示エリア内に表示された画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス1100を概念的に示す。いくつかの実施形態におけるプロセス1100は画像編集アプリケーションによって実行される。タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス1100は開始する。プロセス1100は、(1105において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。画像表示エリアの例としては、
図10を参照して上述されている画像表示エリア1025が挙げられる。
【0118】
次に、プロセス1100は(1110において)、表示された画像は2つ以上のタッチ入力を受け取ったどうかを判定する。すなわち、プロセス1100は(1110において)、ユーザは、表示された画像上に2本以上の指を載せたかどうかを判定する。プロセスが(1110において)、表示された画像は2つ以上のタッチ入力を受け取らなかったと判定した場合には、プロセス1100は、複数のタッチ入力を待つために、1110へループして戻る。
【0119】
プロセス1100が(1110において)、表示された画像は2つ以上のタッチ入力を受け取ったと判定した場合には、プロセスは(1115において)、タッチ入力は回転性であるかどうかを判定する。いくつかの実施形態では、ユーザの指がタッチしている2つのロケーションを結ぶ線が回転した場合には、プロセスは、タッチ入力は回転性であると判定する。
【0120】
プロセス1100が(1115において)、タッチ入力は回転性ではないと判定すると、プロセス1100は終了する。さもなければ、プロセス1100は、受け取ったタッチ入力が作り出した回転の量(例えば、角度の度数)を特定するために、1120へ進む。
【0121】
次に、プロセス1100は(1125において)、特定された回転の量は特定の閾値(例えば、数度の角度)を超えているかどうかを判定する。プロセス1100が(1125において)、回転の量は閾値よりも少ないと判定すると、プロセスは終了する。さもなければ、プロセスは、表示された画像を回転させるために、1130へ進む。いくつかの実施形態では、プロセス1100は(1130において)、画像を、タッチ入力が移動した特定された量に比例する量だけ回転させる。すなわち、いくつかの実施形態では、プロセス1100は(1130において)、表示された画像を、タッチ入力が移動した同じ量だけ回転させる。他の実施形態では、プロセス1100は、表示された画像を、タッチ入力が移動した量よりも多いか又は少ない量だけ回転させる。次に、プロセスは終了する。
【0122】
図12は、タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、表示された画像を、画像にタッチし、これを旋回させることによって、回転させることを、6つの異なる段階1205〜1230において示す。
【0123】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。第1段階1201は、指1230でサムネイル440にタッチすることによるユーザのサムネイル440の選択を示す。画像編集アプリケーションは、サムネイル440の選択に応答して、サムネイル440によって表されている画像445を画像表示エリア410内に表示する。
【0124】
段階1202において、次に、ユーザは、ツール選択ペイン420内に表示されているアイコン421を選択する。それに応答して、画像編集アプリケーションは段階1203において切り抜き及び角度補正ツールを起動する。画像編集アプリケーションは、切り抜き及び角度補正ツールが起動されていることを示すために、アイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、画像表示エリア410内にグリッド線450も表示する。固定ノブ460によって指し示された数字は、ダイアル435はどちらの方向にも全く旋回されていないことを示している。
【0125】
段階1204において、ユーザは2本の指1235及び1240で画像にタッチし、2本の指を時計回りに少し、ただし、既定の閾値(例えば、数度の角度)よりも少なく、回転させる。指の回転の量は閾値を超えなかったので、切り抜き及び角度補正ツールは、表示された画像445を回転させ始めない。切り抜き及び角度補正ツールはダイアル435の回転も開始せず、グリッド線450に加えてより多くのグリッド線も表示しない。
【0126】
次の段階1205において、ユーザは指1235及び1240を時計回りに既定の閾値度超回転させた。切り抜き及び角度補正ツールはそれに応じて、表示された画像445を回転させる。ユーザは、画像445内に表示されている自転車が角度補正されるまで、指1235及び1240を回転させた。本例では、固定ノブ460によって指し示されている「−10」は、ダイアル435及び表示された画像445は時計回りに10度回転したことを示している。段階405はまた、角度補正ツールは、回転される前に画像445の外側にはみ出している部分を表示することを回避するために、画像445を拡大し(そのため、画像内の自転車はより大きく見える)、それを切り抜いたことも示す。また、切り抜き及び角度補正ツールは、指1235の回転が既定の閾値を超えるとすぐに、グリッド線455を表示する。
【0127】
最終段階1206は、ユーザが、表示された画像445から指1235及び1240を上げ、画像にもはやタッチしなくなった後のGUI400を示す。画像445はもはやタッチされていないので、切り抜き及び角度補正ツールはグリッド線455も除去した。
【0128】
ユーザが画像にタッチし、表示された画像を角度補正することを可能にすることに加えて、いくつかの実施形態の画像編集アプリケーションは、画像上に重ね合わせられる少なくとも1つのUI制御項目であって、ユーザがそのUI制御項目を用いて画像を角度補正することを可能にする、UI制御項目を提供する。
【0129】
図13はいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの切り抜き及び回転ツールによって検出された水平線を用いることによって、表示された画像を回転させることを、5つの異なる段階1301〜1305において示す。
【0130】
いくつかの実施形態では、切り抜き及び角度補正ツールは、表示エリア内に表示された画像を分析し、画像の水平線を検出する。切り抜き及び角度補正ツールは、検出された水平線を画像の上に表示し、ユーザが、表示された水平線を用いて画像を角度補正することを可能にする。検出された水平線に加えて、いくつかの実施形態の切り抜き及び角度補正ツールは、画像を角度補正するための1つ以上の選択可能なユーザインタフェース項目を提供する。いくつかの実施形態において提供されるユーザインタフェース項目の1つは、画像編集アプリケーションが、画像を角度補正するために水平線をどの方向へ旋回させることになるのかを示す。ユーザが、水平線及びユーザインタフェース項目によって示唆された通りに画像を角度補正したい場合には、ユーザは、画像を角度補正するために、ユーザインタフェース項目を選択することができる。02/06/2012に出願された米国特許出願第13/366,613号には、水平線の検出が詳細に記載されている。米国特許出願第13/366,613号は本明細書において参照により組み込まれている。
【0131】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。第1段階1301は、指1325でサムネイル1315にタッチすることによるユーザのサムネイル1315の選択を示す。画像編集アプリケーションは、サムネイル1310の選択に応答して、サムネイル1315によって表されている画像1320を画像表示エリア410内に表示する。
【0132】
段階1302において、次に、ユーザは、ツール選択ペイン420内に表示されているアイコン421を選択する。それに応答して、画像編集アプリケーションは段階1303において切り抜き及び角度補正ツールを起動する。切り抜き及び角度補正ツールは水平線1345を検出し、表示された画像1320の上に水平線1345を表示する。加えて、切り抜き及び角度補正ツールは、検出された水平線1345の両端において、選択可能なUI項目1335及び1340を表示する。UI項目1340は、画像を角度補正するためのものであり、ユーザがユーザインタフェース項目1340を選択した時に水平線1345が旋回することになる方向を示す。水平線1345は左へ傾いている(例えば、左端が右端よりも下にある)ので、画像1320を角度補正させるために切り抜き及び角度補正ツールは水平線1345及び画像1320を時計回りに回転させることになることを示すために、切り抜き及び角度補正ツールはUI項目1340内に下向きの矢印を配置する。ユーザインタフェース項目1335は、水平線1345を閉じるためのものである。ユーザがユーザインタフェース項目1335を選択すると、画像編集アプリケーションは水平線1345及びユーザインタフェース項目1335及び1340を消すことになる。
【0133】
また、段階1303において、画像編集アプリケーションはアイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、画像表示エリア410内にグリッド線450も表示する。固定ノブ460によって指し示されたダイアル435上の数字は「0」を示しており、ダイアル435はどちらの方向にも全く旋回されていないことを示している。
【0134】
段階1304において、ユーザは指1325でユーザインタフェース項目1340を選択する。次に、段階1305において、切り抜き及び角度補正ツールはそれに応答して、水平線1345が水平になるように(すなわち、画像表示エリア1325の下縁部と平行になるように)画像1330を時計回りに回転させることによって、画像1330を角度補正する。切り抜き及び角度補正ツールは、表示された画像445を時計回りにダイアル435の回転の量だけ旋回させた。本例では、固定ノブ460によって指し示されている「−10」は、ダイアル435及び表示された画像445は時計回りに10度回転したことを示している。段階1305はまた、角度補正ツールは、回転される前に画像445の外側にはみ出している部分を表示することを回避するために、画像445を拡大し(そのため、画像内の自転車はより大きく見える)、それを切り抜いたことも示す。
【0135】
図14は、ユーザが画像1320を角度補正するために水平線1345を用いないことを望む場合には、検出された水平線1345を閉じることを示す。具体的には、本図は、ユーザが、UI項目1335を選択することによって、検出された水平線1345を閉じることを、5つの異なる段階1401〜1405において示す。
【0136】
上述のように、UI項目1335は、水平線1345を閉じるためのものである。ユーザがUI項目1335を選択すると、切り抜き及び角度補正ツールは水平線1345並びにUI項目1335及び1340を消すことになる。いくつかの実施形態では、切り抜き及び角度補正ツールは、UI項目1335を選択すること以外の方法を提供する。例えば、切り抜き及び角度補正ツールは、ユーザがGUI400の他のエリアの上をタップすると、水平線1345並びにUI項目1335及び1340を消すことになる。GUI400のこれらの他のエリアは、ダイアル435、UI項目1335以外の画像表示エリア410の部分等を含む。いくつかの実施形態では、画像編集アプリケーションは、ユーザが選択するための別のUI項目(不図示)を提供する。ユーザがこのUI項目(例えば、リセットボタン)を選択すると、画像編集アプリケーションは、閉じられた水平線1345を再表示する。
【0137】
これより、GUI400を含む画像編集アプリケーションの操作例を説明する。最初の3つの段階1401〜1403は、
図13を参照して上述されている段階1301〜1303と同一である。段階1404において、ユーザは指1425でUI項目1435を選択する。次に、段階1405において、切り抜き及び角度補正ツールはそれに応答して、画像表示エリアからUI項目1335及び1340並びに検出された水平線1345を除去する。
【0138】
図15は、ユーザが、画像を角度補正するためのユーザインタフェース項目を選択することによって、画像処理アプリケーションの画像表示エリア内に表示された画像を角度補正することを可能にするために、いくつかの実施形態が実行するプロセス1500を概念的に示す。いくつかの実施形態におけるプロセス1500は画像編集アプリケーションによって実行される。タッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス1500は開始する。プロセス1500は、(1505において)画像の水平線を特定することによって、始まる。米国特許出願第13/366,613号には、水平線の特定が詳細に記載されている。
【0139】
次に、プロセス1500は(1510において)画像編集アプリケーションの表示エリア内に画像及び特定された水平線を表示する。画像表示エリアの例としては、
図13を参照して上述されている画像表示エリア1325が挙げられる。プロセス1500はまた(1515において)、表示された画像を角度補正するためのユーザインタフェース項目も表示する。いくつかの実施形態では、プロセス1500は、プロセスは水平線及び画像を、水平線及び画像を角度補正する方向に回転させることになることを示すためのユーザインタフェース項目を水平線内に表示する。このようなユーザインタフェース項目の一例は、
図13を参照して上述されているユーザインタフェース項目1340である。
【0140】
次に、プロセス1500は(1520において)、ユーザは表示されたユーザインタフェース項目を選択したかどうかを判定する。プロセス1500が(1520において)、ユーザはユーザインタフェース項目を選択しなかったと判定すると、プロセス1500は、ユーザがユーザインタフェース項目を選択するのを待つために、1520へループして戻る。
【0141】
プロセス1500が(1520において)、ユーザはユーザインタフェース項目を選択したと判定すると、プロセス1500は、水平線を用いて画像を回転させるために、1525へ進む。いくつかの実施形態では、プロセス1500は、水平線及び画像が回転するにつれて画像に対する水平線の位置が変化しないように、水平線を画像と共に回転させる。プロセス1500は、表示された画像を角度補正するために、水平線を用いて、表示された画像を回転させる。次に、プロセスは終了する。
【0142】
B.画像上切り抜き
図16は、ユーザが画像上切り抜きツールを操作することによって画像を切り抜くことを可能にするいくつかの実施形態の画像編集アプリケーションのGUI1600を概念的に示す。具体的には、本図は、ユーザが、画像1640の角部及び縁部にタッチし、これらをドラッグすることによって、画像1640を切り抜くことを、6つの異なる段階1605〜1615において示す。
図16は、GUI1600は画像表示エリア535を含むことを示す。
【0143】
図6を参照して上述されているように、画像上切り抜きツールは、ユーザが、画像を拡大することによって、画像から不必要な部分をトリミングして除去することを可能にする。いくつかの実施形態では、画像上切り抜きツールはまた、ユーザが、画像の角部及び縁部を内外にドラッグすることによって、画像から不必要な部分をトリミングして除去することも可能にする。切り抜きツールはまた、複数のタッチによって画像の角部及び縁部をドラッグすることも可能にする。例えば、ユーザは、画像に対して対角方向にピンチジェスチャを行うこと(例えば、タッチセンシティブスクリーン又はニアタッチセンシティブスクリーン上で2本の指を互いに向けて寄せること)によって、画像の2つの角部を画像の中心に向けてドラッグすることができる。
【0144】
いくつかの実施形態における画像上切り抜きツールは、ユーザが、アスペクト比を維持しつつ画像を切り抜くことを可能にする。維持するべきアスペクト比は、切り抜かれる前の元の画像のアスペクト比、又はユーザが選ぶことができる既定のアスペクト比(例えば、2×3)のうちの1つであり得るであろう。また、いくつかの実施形態における画像上切り抜きツールは、切り抜かれた後の画像を、切り抜かれる前の画像の元のサイズに一致するように、引き伸ばす。
【0145】
これより、GUI1600を有する画像編集アプリケーションの操作例を説明する。段階1605において、画像編集アプリケーションは画像表示エリア1635内に画像1640を表示する。次に、段階1610において、ユーザは指1611を画像1640の右上角部に載せる。段階1615において、ユーザは、画像内に示されている山及びギタリストを切り落とすために、画像1640の右上角部を対角方向にドラッグする。
【0146】
段階1620において、画像編集アプリケーションは、画像の残りの部分(すなわち、ドラマーを示す画像の部分)を引き伸ばす。残りの部分のアスペクト比は画像表示エリア1635のアスペクト比に一致しないので、画像処理アプリケーションは、画像の引き伸ばされた残りの部分の両側に2つのグレイエリアを配置する。
【0147】
この段階1620において、ユーザはまた、指1611を残りの部分の下縁部に載せる。次の段階1625において、ユーザは、画像1640の更に多くの部分をトリミングして除去するために、下縁部を上にドラッグする。段階1630において、画像編集アプリケーションは画像の残りの部分をいっぱいに引き伸ばす。画像の最終的な残りの部分は、切り抜かれる前の画像の元のアスペクト比と同じアスペクト比を有するので、画像編集アプリケーションは表示エリア1640内にグレイエリアを表示しない。
【0148】
図17は、画像編集アプリケーションのユーザが画像を切り抜くことを可能にするためにいくつかの実施形態が実行するプロセス1700を概念的に示す。いくつかの実施形態におけるプロセス1700は画像編集アプリケーションによって実行される。ユーザからのタッチ入力を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス1700は開始する。プロセス1700は、(1705において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0149】
次に、プロセス1700は(1710において)、表示された画像の上に幾何学形状を表示する。いくつかの実施形態では、幾何学形状は、表示された画像の縁部に最初に重なっている形状である。幾何学形状がサイズ変更されると、幾何学形状は、切り抜かれた画像の縁部を画定する。次に、プロセス1700は(1715において)、幾何学形状はユーザ入力を受け取ったかどうかを判定する。いくつかの実施形態では、ユーザが指を角部又は縁部の上に載せることによって幾何学形状の角部又は縁部を選択した場合に、プロセス1700は、幾何学形状はユーザ入力を受け取ったと判定する。また、ユーザが2本以上の指を幾何学形状の角部及び縁部並びに幾何学形状内のエリアの上に載せて動かした場合に、プロセス1700は、幾何学形状はユーザ入力を受け取ったと判定する。
【0150】
次に、プロセス1700は(1720において)、受け取った入力に基づき幾何学形状をサイズ変更する。プロセス1700は、ユーザが1本以上の指を使って行ったジェスチャを異なって解釈する。例えば、ユーザが幾何学形状の縁部を選択し、幾何学形状の中心に向けてドラッグすると、プロセス1700は縁部を内側へ動かす。また、ユーザが指を幾何学形状の角部の上に載せ、表示された画像の中心に向けてドラッグすると、プロセス1700は角部を内側へ移動させる。更に、ユーザが2本以上の指を使って画像の縁部及び角部を選択し、ドラッグすると、あるいはユーザが幾何学形状の上でピンチジェスチャ(例えば、幾何学形状の内側にタッチしながら2本の指をくっつけること)若しくは幾何学形状の上で拡大ジェスチャ(例えば、幾何学形状の内部にタッチしながら2本の指を広げて離すこと)を実行すると、プロセス1700は幾何学形状の1つを超える縁部又は1つを超える角部を一度に動かす。
【0151】
次に、プロセス1700は、幾何学形状を用いて、表示された画像を切り抜く(1725)。いくつかの実施形態では、プロセスは、幾何学形状の範囲に入らない、表示された画像の部分を切り落とす。次に、プロセスは終了する。
【0152】
図18Aはいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの画像上切り抜きツールを用いることによって、表示された画像1810を切り抜くことを、6つの異なる段階1801〜1806において示す。
【0153】
図16を参照して上述されているように、いくつかの実施形態の画像上切り抜きツールは、ユーザが、画像の縁部及び角部を操作することによって、画像の不必要な部分を切り落とすことを可能にする。いくつかの実施形態では、画像上切り抜きツールはまた、ユーザが、画像を拡大することによって、表示された画像を切り抜くことも可能にする。画像上切り抜きツールは、画像が拡大された後に画像表示エリア410の外部へはみ出す画像の部分を切り落とす。
【0154】
これより、GUI400を有する画像編集アプリケーションの操作例を説明する。第1段階1801は、指1815でサムネイル1810にタッチすることによるユーザのサムネイル1810の選択を示す。画像編集アプリケーションは、サムネイル1815の選択に応答して、サムネイル1810によって表されている画像1816を画像表示エリア410内に表示する。
【0155】
段階1802において、次に、ユーザは、ツール選択ペイン420内に表示されているアイコン421を選択する。それに応答して、画像編集アプリケーションは段階1803において画像上切り抜きツールを起動する。画像編集アプリケーションはアイコン421を強調表示する。画像編集アプリケーションはまた、ツール表示エリア425内にダイアル435も表示し、画像表示エリア410内にグリッド線450も表示する。
【0156】
段階1804において、ユーザは2本の指1820及び1825で画像1810にタッチする。次の段階1805は、ユーザが画像1810上で拡大ジェスチャを実行した後のGUI400を示す。それに応答して、画像上切り抜きツールは画像1810を拡大し、画像表示エリア410の外部へはみ出す画像部分を切り落とす。画像上切り抜きツールは、切り抜かれた画像を、画像表示エリア410全体を占めるように引き伸ばした。最終段階1806は、ユーザが画像1810から指1820及び1825を上げ、画像1810にもはやタッチしなくなった後のGUI400を示す。
【0157】
図18B及び18Cはいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、画像編集アプリケーションの画像上切り抜きツールを用いることによって、表示された画像1810を切り抜くことを、9つの異なる段階1801b〜1809bにおいて示す。具体的には、
図18B及び18Cは、内側表示エリア480を有するいくつかの実施形態のGUI400を示す。
【0158】
これより、GUI400を有する画像編集アプリケーションの操作例を説明する。第1段階1801b及び第2段階1802bは、
図18Aを参照して上述された段階1801及び段階1802と同一である。段階1802aにおけるアイコン421の選択に応答して、画像編集アプリケーションは段階1803aにおいて切り抜きツールを起動する。画像編集アプリケーションは表示エリア410内に内側表示エリア480aを表示する。
【0159】
段階1804aにおいて、ユーザは2本の指1820及び1825で画像1810にタッチする。次の段階1805aは、ユーザが、画像を拡大するために、画像1810上で拡大ジェスチャを実行した後のGUI400を示す。それに応答して、画像上切り抜きツールは画像1810を拡大する。拡大の結果、内側表示エリア480aの外部へはみ出す画像の部分は外側エリア485a内に表示される。画像の境界も外側エリア485a内に表示される。画像上切り抜きツールは、ユーザが画像を更に拡大することを可能にし、画像の一部の部分は表示エリア410の外部へはみ出す場合がある。
【0160】
次の段階1806aは、ユーザが画像1810から指1820及び1825を上げ、画像1810にもはやタッチしなくなった後のGUI400を示す。図示されているように、外側エリア485a内に表示されていた画像の部分及び画像の境界は外側エリア485a内にもはや表示されていない。次の段階1807aは、ユーザが画像1810に再びタッチした後のGUI400を示す。段階1805aにおいて外側エリア485a内に表示されていた画像の部分及び画像の境界は外側エリア485a内に再び現れている。
【0161】
段階1808aにおいて、ユーザは画像を右へドラッグし、その結果、画像1810の異なる部分が内側表示エリア480a内に表示される。また、内側表示エリア480aの外部へはみ出す画像の異なる部分が今度は外側エリア485a内に表示される。次の段階1809aは、ユーザが画像1810から指を上げ、画像1810にもはやタッチしなくなった後のGUI400を示す。図示されているように、前の段階1808aにおいて外側エリア485a内に表示されていた画像のそれらの部分及び画像の境界は外側エリア485a内にもはや表示されていない。
【0162】
図19はいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、プリセットされたアスペクト比を選択することによって、表示された画像1910を切り抜くことを、4つの異なる段階1901〜1904において示す。
【0163】
いくつかの実施形態における画像編集アプリケーションは、ユーザが選ぶことができるアスペクト比のセットを提供する。画像編集アプリケーションは、選択されたアスペクト比を用いて、画像表示エリア410内に表示された画像を切り抜く。例えば、画像表示エリア410内に表示された元の画像は3×2のアスペクト比(例えば、3は幅に関し、2は高さに関する)を有し、選択されたアスペクト比は2×3である場合には、画像編集アプリケーションは元の画像の両側をトリミングし、アスペクト比を2×3の比に変更する。
【0164】
いくつかの実施形態における画像編集アプリケーションは、元の画像内に示されている顔(単数又は複数)のロケーションに基づき、切り落とすべき部分を決定する。画像編集アプリケーションは、画像の残りの部分が画像の中心内に顔(単数又は複数)を有するように、画像の部分を切り落とす。画像編集アプリケーションは、顔検出技法(例えば、あらゆる顔を検出する)及び/又は顔認識技法(例えば、関心がある顔を検出する)を用いて顔(単数又は複数)を見つける。
【0165】
画像編集アプリケーションが複数の顔を見つけた場合には、異なる実施形態は、切り抜かれた画像の中心に顔を据えるために、異なる技法を用いる。例えば、いくつかの実施形態の画像編集アプリケーションは、それぞれの見つけられた顔の中心座標を特定し、特定された中心座標を平均し、平均中心座標を有する画像の部分を、切り抜かれた画像の中心内に配置する。別の例として、いくつかの実施形態の画像編集アプリケーションは、見つけられたそれぞれの顔のサイズを特定し、最も大きな顔を、切り抜かれた画像内に配置する。更に別の例として、いくつかの実施形態の画像編集アプリケーションは、関心がある顔を、切り抜かれた画像の中心内に配置する。
【0166】
いくつかの実施形態では、画像編集アプリケーションはサムネイルのセットをアスペクト比のセットと共に提供する。これらのサムネイルはそれぞれ、対応する選択可能なアスペクト比に基づき切り抜かれた画像のプレビューを提供する。
【0167】
これより、GUI400を有する画像編集アプリケーションの操作例を説明する。第1段階1901は、ユーザが、編集するべき画像を選択し、アイコン421を選択した後のGUI400を示す。画像編集アプリケーションはツール表示エリア425内にダイアル435を配置し、アイコン421を強調表示した。
【0168】
段階1902において、ユーザは、プリセットされたアスペクト比を示すためのアイコン1910を選択する。画像編集アプリケーションは、ユーザが選ぶことができるプリセットされたアスペクト比を表示する。次の段階1903はユーザの2×3のアスペクト比の選択を示す。
【0169】
最終段階1904は、画像編集アプリケーションが画像1910を切り抜いた後のGUI400を示す。画像編集アプリケーションは顔1915を見つけ、切り抜かれた画像が顔1915を中心に有するように画像を切り抜く。3×2の比から2×3の比を作るためには、画像の上部及び下部ではなく、画像の側部がトリミングされるので、画像編集アプリケーションは顔1915を、切り抜かれた画像の左右中心内に配置する。画像表示エリア410内に表示されるグレイエリアは、切り落とされた画像の部分を表す。
【0170】
いくつかの実施形態の画像上切り抜き及び角度補正ツールについて説明したが、次のセクションは、いくつかの実施形態の画像編集アプリケーションを用いて、画像の選択されたエリアに画像処理操作を適用するための他の画像上ツールについて説明する。
【0171】
II.画像上ブラシツール
いくつかの実施形態の画像編集アプリケーションは、表示された画像の選択されたエリアに画像処理操作を適用するための画像上ブラシツールのセットを提供する。これらのツールの一部は、ユーザが、表示された画像のエリアを選択し、選択されたエリアに画像処理操作を適用することを可能にする。これらのツールの一部は、ユーザが、表示された画像のエリアを複数回選択し、画像のエリアが選択された回数に基づき、画像処理操作を適用することを可能にする。
【0172】
A.エリアの選択による画像処理操作の適用
図20は、ユーザが、画像処理操作を適用するべき画像内のエリアを選択することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが画像にタッチすることによって画像のエリアを選択し、画像の選択されたエリアに画像処理操作を適用することを、6つの異なる段階2001〜2006において示す。
【0173】
上述のように、いくつかの実施形態におけるツール選択ペイン420は、画像編集アプリケーションの異なる編集ツールセットを表すアイコンのセットを表示する。ツール選択ペイン420は、いくつかの実施形態ではツール選択ペイン430内に表示されている左から4つ目のアイコンである、アイコン2020を含む。ツール選択ペイン420内に表示されているアイコン2020が表すツール群は画像上ブラシツール群を含む。ユーザがアイコン2020を選択すると、いくつかの実施形態における画像編集アプリケーションは、ツール表示エリア425(又はGUI400のその他の部分)内に、これらの画像上ブラシツール群を表す選択可能なUI項目2025のセットを表示する。ツール群のうちの1つが選択されると(例えば、ユーザが、そのツールを表すアイコンを選択すると)、そのツールが起動され、表示された画像へのユーザ入力は、選択されたツールへの入力として扱われる。
【0174】
いくつかの実施形態における選択可能なUI項目2025のセットは、画像処理操作又は効果によって異なる形状のブラシを有するアイコンのセットである。例えば、アイコン2030は欠点除去ツールを表す。アイコン2035は赤目除去ツールを表す。アイコン2040は飽和ツールを表す。アイコン2045は脱飽和ツールを表す。アイコン2050は明色化ツールを表す。アイコン2055は暗色化ツールを表す。アイコン2060はシャープ化ツールを表す。アイコン2065はソフト化ツールを表す。ツールはそれぞれ、起動されると、ユーザがエリアにタッチすることによって選択した画像のエリアに、効果を適用する。
【0175】
これらのツール群の一部は、エリアがタッチされる回数にかかわらず、エリアに、対応する効果を適用する。すなわち、このようなツール群は、エリアが初めてタッチされた時に、効果を1度適用するが、エリアがその後、再びタッチされた時には、効果を適用しない。例えば、いくつかの実施形態における欠点除去ツールは、ユーザが初めてエリアにタッチすると、エリアから欠点を除去するが、ユーザがエリアに再びタッチした時には、エリアから欠点を更に除去しようとは試みない。いくつかの実施形態では、もう1つのこのようなツールは赤目除去ツールである。
【0176】
選択可能なUI項目2025のセットによって表されたツール群の一部は、画像のエリアがタッチされる回数に基づき、対応する効果を適用する。以下において、このようなツールについて更に詳細に説明する。
【0177】
これより、GUI2000を有する画像編集アプリケーションの操作例を説明する。第1段階2001は、指2070でサムネイル2010にタッチすることによるユーザのサムネイル2010の選択を示す。画像編集アプリケーションは、サムネイル2010の選択に応答して、サムネイル2010によって表されている画像2015を画像表示エリア410内に表示する。
【0178】
段階2002において、ユーザは、ツール選択ペイン420内に表示されているアイコン2020を選択する。それに応答して、画像編集アプリケーションは段階2003において、図示されているように、GUI400内に、選択可能なUI項目2025のセットを表示する。段階2004において、ユーザは、アイコン2030にタッチすることによって欠点除去ツールを選択する。画像編集アプリケーションは欠点除去ツールを起動する。
【0179】
段階2005において、ユーザは指2070を使って水面及びオールの先端を左右に複数回擦る。欠点除去ツールは、ユーザによって擦られたエリアを特定し、エリアに欠点除去操作を適用する。08/13/2009に公開された米国特許出願公開第2009/0202170号には、欠点除去操作の例が詳細に記載されている。米国特許出願公開第2009/0202170号は本明細書において参照により組み込まれている。段階2006において、画像編集アプリケーションは、オールの先端、及び擦られたエリアの範囲に含まれていたオールの部分を除去した。
【0180】
図21は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアにタッチすることによって画像処理操作を適用することを可能にするために、いくつかの実施形態が実行するプロセス2100を概念的に示す。いくつかの実施形態におけるプロセス2100は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、擦るジェスチャ)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス2100は開始する。プロセス2100は、(2105において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0181】
次に、プロセス2100は(2110において)、適用するべき画像処理操作の選択を受け取る。いくつかの実施形態では、画像処理操作を表すユーザインタフェース項目にユーザがタッチすると、プロセス2100は、画像編集アプリケーションのユーザインタフェース項目(例えば、アイコン)を通じて、画像処理操作の選択を受け取る。画像処理操作の例には、欠点の除去、赤目の除去等がある。
【0182】
次に、プロセス2100は(2115において)、画像のエリアが選択されているかどうかを判定する。いくつかの実施形態では、プロセス2100は、ユーザがエリアにタッチした場合に、画像のエリアが選択されていると判定する。プロセスが(2115において)、エリアが選択されなかったと判定した場合には、プロセス2100は、ユーザのエリアの選択を待つために、2110へループして戻る。
【0183】
プロセス2100が(2115において)、エリアが選択されたと判定した場合には、プロセスは、選択されたエリアの画像特性を特定するために、2120へ進む。プロセス2100が特定する画像特性の例には、輝度、色等がある。次に、プロセス2100は(2125において)、特定された画像特性に基づき、選択されたエリアに、選択された画像処理操作を適用する。次に、プロセスは終了する。
【0184】
これまでに説明されたいくつかの実施形態のブラシツールは一定のブラシサイズを用いる。すなわち、画像表示エリアのサイズに対するブラシツールを用いて作り出される行程の幅は一定である。いくつかの実施形態の画像編集アプリケーションは異なるブラシのサイズを提供しない。一部のこのような実施形態では、画像編集アプリケーションは、一定のブラシサイズを備えるブラシツールのために、効果をより細かい粒度で適用することを可能にする。
【0185】
図22は、いくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、画像編集アプリケーションが、ユーザが、画像表示エリアのサイズに対して変化しないサイズを有するブラシを用いてより細かいレベルで欠点除去効果を適用するために、画像を拡大することを可能にすることを、8つの異なる段階2201〜2208において示す。
【0186】
これより、GUI400を有する画像編集アプリケーションの操作例を説明する。段階2201において、アイコン2020は、画像編集アプリケーションがGUI400内に選択可能なUI項目2025のセットを表示していることを示すために、強調表示される。ユーザは、指2210でアイコン2030にタッチすることによって、欠点除去ツールを選択した。画像編集アプリケーションはまた、画像表示エリア410内に画像2215を表示した。
【0187】
段階2202において、ユーザは、画像2215内に示されている星の付近にタッチする。段階2203において、ユーザは、画像2215にタッチしながら指を右へドラッグする。グレイエリア2220はユーザが作り出した行程を示す。グレイエリア2220の高さはブラシサイズを表す。ブラシサイズは、空にある欠点を覆うには十分に小さいが、画像内に示されているより小さな物体に欠点除去効果を適用するには大きすぎる。例えば、ブラシサイズは、画像2215内に示されているスピーカボックスの上部の円のみにタッチするには大きすぎる。
【0188】
段階2204は、画像編集アプリケーションは、画像2215内に示されている空から2つの星を除去したことを示す。段階2205において、ユーザは、画像2215上で拡大ジェスチャを実行することによって、画像2215を拡大する。段階2206において、ユーザは、画像2215内に示されているスピーカボックスの上部の円にタッチする。段階2207において、ユーザは画像2215にタッチしながら指を右へドラッグする。グレイエリア2225はユーザが作り出した行程を表す。グレイエリア2225の高さはブラシサイズを表す。画像は拡大されているので、同じブラシサイズが、今では、上部の円のみにタッチし、上部の円の内部の欠点を除去するのに十分小さくなっている。最終段階2207は、上部の円内の欠点は除去されたことを示す。
【0189】
図23は、画像の選択されたエリアに画像処理操作を適用する別の画像上ブラシツールの使用を示す。具体的には、本図は、ユーザが、GUI400の画像表示エリア410内に表示された画像2310に赤目除去効果を適用することを、5つの異なる段階2301〜2305において示す。
【0190】
上述のように、画像上ブラシツールの一部は、エリアがタッチされる回数に関係なく、エリアに、対応する効果を適用する。アイコン2035によって表されている赤目除去ツールは、いくつかの実施形態におけるこのようなツールの1つである。いくつかの実施形態の画像編集アプリケーションはまた、表示された画像内の赤目から全ての「赤色」を自動的に除去する、自動赤目除去ツールを提供する場合もある。アイコン2035によって表された赤目除去ツールは、自動ツールが用いられる前又は後に用いることができる。
【0191】
これより、赤目除去ツールを用いたGUI400の操作例を説明する。第1段階2301は、指2325でサムネイル2315にタッチすることによるユーザのサムネイル2315の選択を示す。画像編集アプリケーションは、サムネイル2315の選択に応答して、サムネイル2315によって表されている画像2310を画像表示エリア410内に表示する。
【0192】
段階2302において、ユーザは、ツール選択ペイン420内に表示されているアイコン2320を選択する。それに応答して、画像編集アプリケーションは段階2303において、図示されているように、GUI400内に、選択可能なUI項目2325のセットを表示する。また、ユーザは、アイコン2330にタッチすることによって赤目除去ツールを選択する。画像編集アプリケーションは赤目除去ツールを起動する。
【0193】
段階2304において、ユーザは、指2325で、画像2310内に示された人物の右目(画像2310の左側の目)にタッチする。いくつかの実施形態における赤目除去ツールは、ユーザがタッチしたエリアに基づき、瞳を特定する。次に、赤目除去ツールは、特定された瞳から赤色を除去する。いくつかの実施形態では、赤目除去ツールは、タッチされた赤目から赤色を除去するために、従来の赤目除去方法を用いる。
【0194】
段階2305において、ユーザは画像から指2325を上げており、画像表示エリア410にもはやタッチしていない。この段階は、画像編集アプリケーションは人物の右目から「赤色」を除去したことを示す。
【0195】
いくつかの実施形態では、赤目除去ツールは、赤色が除去されるときに、音を再生する。また、いくつかの実施形態における赤目除去ツールは、選択された目から赤色が除去されることを示すための視覚的な指示を提示する。例えば、赤目除去ツールは、選択された目から円が広がるアニメーションを表示する。赤目除去ツールは、ユーザが目を再び選択すると、赤色の除去を取り消す。赤目除去ツールは、ツールが赤色の除去を取り消すときに、別の異なる音を再生する。
【0196】
B.タッチの回数に基づく画像処理操作の適用
上述のように、いくつかの実施形態における画像上ブラシツール群の一部は、エリアがタッチされる回数に基づき、エリアに、対応する効果を適用する。このような画像上ブラシツールを用いるいくつかの例を以下において説明する。
【0197】
図24は、ユーザが、画像の選択されたエリアに画像処理操作を漸増的に適用することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、画像のエリアに、画像を擦ることによって画像処理操作を漸増的に適用することを、6つの異なる段階2401〜2406において示す。
図24は、GUI2400は画像表示エリア2425を含むことを示す。
【0198】
いくつかの実施形態では、画像上ブラシツール群の一部は、ユーザが、画像を擦ること(例えば、画像のエリアを1回以上スワイプすること)によって画像処理操作を適用することを可能にする。いくつかの実施形態では、このような画像上ブラシツール群は、アイコン2040によって表されている飽和ツール、アイコン2045によって表されている脱飽和ツール、アイコン2050によって表されている明色化ツール、アイコン2055によって表されている暗色化ツール、アイコン2060によって表されているシャープ化ツール、及びアイコン2065によって表されているソフト化ツールを含む。
【0199】
画像のエリアがタッチされるたびに、画像上ブラシツールは、対応する画像処理操作又は効果を増分量ずつ適用する。例えば、明色化ツールは、エリアがタッチされるたびに、表示された画像のエリアを段階的に明るくする(例えば、輝度値を増加させる)。
【0200】
異なる実施形態は、適用するべき画像処理操作の増分量を異なって決定する。例えば、画像上ブラシツールは、選択された画像処理操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、選択された画像処理操作が明色化操作である場合には、スクリーン上ブラシツールは既定の輝度値デルタずつエリアの輝度値を増加させる。いくつかの実施形態では、画像上ブラシツールは画像特性値を1パーセントずつ増加又は減少させる。また、いくつかの実施形態における画像上ブラシツールは非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【0201】
いくつかの実施形態では、画像上ブラシツールは、画像処理操作を漸増的に適用するために、マスク値を用いる。画像処理操作のためのマスク値が、表示された画像の画素のセットに付与される。いくつかの実施形態における画像上ブラシツールは、マスク値が付与された画素のセットに画像処理操作を適用するために、マスク値を変更する。すなわち、これらの実施形態における画像上ブラシツールは、画像処理操作を漸増的に適用するために、マスク値を変更する。
【0202】
いくつかの実施形態では、画像上ブラシツールが起動されている間、エリアが受け取るタッチの回数は累積する。すなわち、ユーザが、画像のエリア上で擦る操作(例えば、指を上げる前に画像のエリアを1回以上スワイプすること)を実行した後に、指(又はスタイラス等の、タッチ用のその他のデバイス)を上げ、その後、同じエリア上で新たな擦る操作を再び実行した場合には、そのエリアは、連続的に擦られていると見なされる。一部のこのような実施形態では、別の画像上ブラシツールが、異なる対応する効果を適用するために選択され、起動されると、エリアがタッチされる回数はゼロから累積するか、又はこの画像上ブラシツールが最後に起動され、用いられた時にエリアがタッチされた回数から累積する。
【0203】
これより、いくつかの実施形態の画像上ブラシツールの操作例を説明する。第1段階2401は、画像編集アプリケーションが画像表示エリア410内に画像2420を表示している様子を示す。ユーザは、ツール選択ペイン420内に表示されているアイコン2020を選択する。
【0204】
段階2402において、画像編集アプリケーションは、図示されているように、GUI400内に、選択可能なUI項目2025のセットを表示する。ユーザは、アイコン2050にタッチすることによって明色化ツールを選択する。画像編集アプリケーションは明色化ツールを起動する。
【0205】
段階2403において、いくつかの実施形態における画像編集アプリケーションは、明色化ツールが起動されたことを示すために、アイコン2050を強調表示する。ユーザは指2425を、画像2420内に示されている空の上に載せる。段階2404において、ユーザは画像2420にタッチしながら指2425を右へドラッグした。明色化ツールは、指2425によってタッチされたエリアをより明るくする。
【0206】
段階2405において、ユーザは指2425を左上方向へドラッグした。明色化ツールは、指2425によってタッチされたエリアをより明るくする。しかし、部分2430は2回タッチされており、したがって、1回しかタッチされていない部分2435及び2440よりも明るく見える。
【0207】
段階2406において、ユーザは指2425を、段階2404において指2425があった位置へドラッグして戻した。明色化ツールは、これで2回タッチされた部分2435をより明るくする。部分2430は3回タッチされたので、部分2430は以前よりも明るく見える。
【0208】
図25は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアを擦ることによって画像処理操作を漸増的に適用することを可能にするために、いくつかの実施形態が実行するプロセス2500を概念的に示す。いくつかの実施形態におけるプロセス2500は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、擦るジェスチャ)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス2500が開始する。プロセス2500は、(2505において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0209】
次に、プロセス2500は(2510において)、適用するべき画像処理操作の選択を受け取る。いくつかの実施形態では、画像処理操作を表すユーザインタフェース項目にユーザがタッチすると、プロセス2500は画像編集アプリケーションのユーザインタフェース項目(例えば、アイコン)を通じて画像処理操作の選択を受け取る。
【0210】
次に、プロセス2500は(2515において)、画像のエリアがタッチされているかどうかを判定する。いくつかの実施形態では、プロセス2500は、画像のエリアがタッチされているかどうかを判定するために、コンピューティングデバイスからタッチ情報(例えば、ユーザの指がタッチしているタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアの座標)を受け取る又は取得する。プロセスが(2515において)、エリアがタッチされていないと判定した場合には、プロセス2500は、表示された画像のエリアのユーザのタッチを待つために、2515へループして戻る。
【0211】
プロセス2500が(2515において)、エリアがタッチされていると判定した場合には、プロセスは、タッチはエリアから動かされたかどうかを判定するために、2520へ進む。いくつかの実施形態では、タッチされていたエリアがもはやタッチされていない場合には、プロセス2500は、タッチはエリアから動かされたと判定する。それゆえ、ユーザがエリアから指を上げるか、又はユーザが指を画像の別のエリアへ動かした場合には、プロセス2500は、タッチはエリアから動かされたと判定する。プロセス2500が(2520において)、タッチはエリアから動かされなかったと判定した場合には、プロセス2500は、タッチが動くのを待つために、2520へループして戻る。
【0212】
プロセス2500が(2520において)、タッチはエリアから動かされたと判定した場合には、プロセス2500は(2525において)画像のエリアに、選択された画像操作を漸増的に適用する。次に、プロセス2500は(2530において)、画像の別のエリアがタッチされているかどうかを判定する。プロセス2500が(2530において)、画像の他のエリアがタッチされていると判定した場合には、プロセス2500は、タッチがこのエリアから動くのを待つために、2520へループして戻る。プロセス2500が(2530において)、画像の他のエリアはタッチされていないと判定した場合には、プロセス2500は終了する。
【0213】
エリアが受け取るタッチの回数に基づき画像処理操作を適用するいくつかの実施形態の画像上ブラシツールを説明したが、次のサブセクションは、タッチ圧力に基づき画像処理操作を適用するいくつかの実施形態の画像上ブラシツールを説明する。
【0214】
C.タッチ圧力に基づく画像処理操作の適用
図26は、画像のエリアが受けるタッチ圧力に基づき画像処理操作又は効果を適用するいくつかの実施形態の画像上ブラシツールの使用を示す。具体的には、本図は、ユーザが、表示された画像の異なるエリアに、異なる圧力で画像にタッチすることによって、異なるレベルの明色化効果を適用することを、6つの異なる段階2601〜2606において示す。
図26は、上述したように、タッチ圧力を測定する能力を有するタッチスクリーンを有するコンピューティングデバイス上で動作するいくつかの実施形態の画像編集アプリケーションのものである、GUI400を示す。
【0215】
いくつかの実施形態では、画像上ブラシツールは、タッチ圧力に基づき画像のエリアに効果を適用する。すなわち、これらの実施形態における画像上ブラシツールは、エリアがタッチされている時にエリアに加えられる圧力に基づき、エリアに適用するべき効果の量を決定する。それゆえ、これらの実施形態における画像上ブラシツールを含む画像編集アプリケーションは、タッチ圧力を測定する能力を有するタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作していなければならない。このようなタッチセンシティブスクリーンは、スクリーンに加えられている圧力を検出し、これを測定するために、加速度計を利用する場合がある。
【0216】
これより、いくつかの実施形態の画像上ブラシツールの操作例を説明する。最初の3つの段階2601〜2603は、
図24を参照して上述されている段階2401〜2403と同一である。段階2604において、ユーザは指2625を、段階2603において指2625があった位置から右へドラッグした。明色化ツールは、指2625によってタッチされたエリア2630をより明るくする。
【0217】
段階2605において、ユーザは指2625を更に右へドラッグした。しかし、ユーザは、前の段階2604において指2625があった位置から指を右へ動かしている最中には、画像2420をより強く押した。それゆえ、明色化ツールは、タッチされたエリア2635に、前の段階2604におけるよりも多くの明色化効果を適用する。その結果、エリア2635はエリア2630よりも明るく見える。
【0218】
段階2606において、ユーザは指2625を更に右へドラッグした。しかし、ユーザは、前の段階2605において指2625があった位置から指を右へ動かしている最中には、画像2420をいっそうより強く押した。それゆえ、明色化ツールは、前の段階2605以降にタッチされたエリア2640にいっそう多くの明色化効果を適用する。その結果、エリア2640はエリア2630よりも明るく見える。
【0219】
これまでに説明されたいくつかの実施形態の画像上ブラシツールは、選択されたエリアに効果を適用する。次のサブセクションは、画像上ブラシツールが、これらの異なる部分の画像特性に基づき、選択されたエリアの異なる部分に効果を選択的に適用することを可能にする、スマートな縁部検出ツールを説明する。
【0220】
D.スマートな縁部検出ツール
図27は、スマートな縁部検出ツールの使用を概念的に示す。
図27は、ユーザが、画像の選択されたエリアの異なる部分に画像処理操作を選択的に適用することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を示す。具体的には、本図は、ユーザが、一定の評価基準を満たす画像のエリア内のそれらの画素のみに画像処理操作を適用することを、5つの異なる段階2701〜2705において示す。
【0221】
上述のように、いくつかの実施形態の画像編集アプリケーションは、ユーザが、画像処理操作を適用するべきエリアを選択することを可能にする。一部のこのような実施形態では、スマートな縁部検出ツールは、画像上ブラシツールが、一定の評価基準を満たすそれらの画素にのみ、対応する画像処理操作を適用することを可能にする。例えば、スマートな縁部検出ツールが起動されているときに、ユーザが、選択されたエリアに明色化操作を適用することを選ぶと、明色化ツールは、選択されたエリア内の青色の画素を明るくするが、赤色の画素は手を付けずにそのままにしておく。
【0222】
いくつかの実施形態では、スマートな縁部検出ツールは、ユーザによって最初にタッチされた1つ以上の画素を特定する。例えば、ツールはまず、ユーザの画像のスワイプ操作の最中にタッチされた最初の画素を特定し、最初の画素の特性を用いて評価基準を決定する。他の実施形態では、ツールは、ユーザの画像のスワイプ操作の最中にタッチされた画素のセット(最初の数十及び数百個の画素)を特定し、それらの画素の特性を用いて評価基準を決定する。スワイプ操作の最中にタッチされた全ての画素のうち、有効にされた画像上ブラシツールは、評価基準を満たすそれらの画素のみである。以下において、評価基準の決定の詳細について更に説明する。
【0223】
いくつかの実施形態では、スマートな縁部検出ツールは、画像がタッチされるたびに(すなわち、指が画像から上げられた後にユーザの指が画像に再びタッチするたびに)評価基準を再定義する。他の実施形態では、スマートな縁部検出ツールは、異なる画像上ブラシツールが選択されるか、又はスマートな縁部検出ツールの動作が停止されるまで、評価基準を再定義しない。すなわち、これらの実施形態では、異なる画像上ブラシツールが選択されるか、又はスマートな縁部検出ツールの動作が停止されるまで、最初に決定された評価基準が全ての後続のタッチのために用いられる。
【0224】
この技法はまた、エリアがユーザによってタッチされるたびに画像のエリアに画像処理操作を漸増的に適用する上述の実施形態のいくつかの画像編集アプリケーションにも適用可能である。すなわち、いくつかの実施形態の画像編集アプリケーションは、評価基準を満たすそれらの画素のみに画像処理操作を漸増的に適用する。
【0225】
更に、いくつかの実施形態の画像編集アプリケーションは縁部検出を用い、タッチエリア内の検出された縁部によって分離される異なる領域を特定する。これらの実施形態の画像編集アプリケーションは、評価基準を満たし、かつ最初にタッチされた画素のセットを含む特定された領域内にあるそれらの画素に画像処理操作を適用する。
【0226】
これより、スマートな縁部検出ツールが起動されている状態での画像上ブラシツールの操作例を説明する。第1段階2701は、画像編集アプリケーションが画像表示エリア410内に画像2720を表示している様子を示す。ユーザは、ツール選択ペイン420内に表示されているアイコン2020を選択する。
【0227】
段階2702において、画像編集アプリケーションは、図示されているように、GUI400内に、選択可能なUI項目2025のセットを表示する。ユーザは、アイコン2050にタッチすることによって明色化ツールを選択する。画像編集アプリケーションは明色化ツールを起動する。
【0228】
段階2703において、いくつかの実施形態における画像編集アプリケーションは、起動されたのは明色化ツールであることを示すために、アイコン2050を強調表示する。ユーザは、スマートな縁部検出ツールを表すアイコン2710を選択する。いくつかの実施形態では、画像編集アプリケーションはツール表示エリア425内にアイコン2710を表示する。また、いくつかの実施形態では、ユーザが画像上ブラシツール及びスマートな縁部検出ツールを選択する順序は問わない。すなわち、スマートな縁部検出ツールは、一度起動されると、その後に起動されるあらゆる他の画像上ブラシツールを有効にする。
【0229】
段階2704において、ユーザは、画像2720内に示されているオールの下端部の近くの海の上に指2730を載せる。スマートな縁部検出ツールは、指2730によって最初にタッチされた画像2720の部分内の画素を分析し、画像の他の部分内の他の画素のための、明色化ツールがそれらの画素に明色化効果を適用するために満たすべき評価基準を設定する。最初にタッチされる画像の部分は、画像2720内に示されている海の内部であるため、本例における明色化ツールは、海の色と同様の色を有するそれらの画素のみの上に明色化効果を適用する。
【0230】
段階2705において、ユーザは画像2720にタッチしながら指2730を右へドラッグした。明色化ツールは、指2725によってタッチされたエリアをより明るくする。しかし、明色化ツールは、画像2720内に示されているオールの下端部を、たとえ指2730がオールのこの部分にタッチしても、より明るくしない。これは、スマートな縁部検出が起動され、明色化ツールが、前の段階2704において設定された評価基準を満たすそれらの画素のみを明るくすることを可能にしたためである。
【0231】
図28は、画像編集アプリケーションのユーザが、画像のエリアに、そのエリアを擦ることによって画像処理操作を選択的に適用することを可能にするために、いくつかの実施形態が実行するプロセス2800を概念的に示す。いくつかの実施形態におけるプロセス2800は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、擦るジェスチャ)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス2800は開始する。プロセス2800は、(2805において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0232】
次に、プロセス2800は(2810において)画像のエリアの選択を受け取る。次に、プロセス2800は(2815において)、画素間の類似度を判定するための一定の評価基準を特定する。いくつかの実施形態におけるプロセス2800は、選択されたエリア内の画素のうちの一部の画像特性を用いる。より具体的には、いくつかの実施形態におけるプロセス2800は、ユーザによって最初にタッチされた、選択されたエリアの画素のセットを用いる。
【0233】
異なる実施形態は、画像特性を用いて評価基準を異なって特定する。例えば、いくつかの実施形態におけるプロセス2800は画素のセットの平均色値を用いる。プロセス2800はRGB色モデルの平均色値をLAB色空間の色値に変換する。次に、プロセス2800は、LAB色空間の色値からの距離の範囲を評価基準として定義する。米国特許第8,229,211号には、RGB色モデルの色値のLAB色空間の色値への変換の更なる詳細が記載されている。米国特許第8,229,211号は本明細書において参照により組み込まれている。
【0234】
次に、プロセス2800は(2820において)、特定された評価基準を満たす画素に画像処理操作(例えば、飽和、脱飽和、明色化、暗色化、シャープ化、ソフト化等)を適用する。いくつかの実施形態では、プロセス2800は、定義された範囲内に含まれるLAB色空間の色値を有するエリア内のそれぞれの画素に画像処理操作を適用する。次に、プロセスは終了する。
【0235】
E.画像処理操作の適用解除
上述のように、いくつかの実施形態における画像上ブラシツール群の一部はエリアに、対応する効果を適用する。いくつかの実施形態では、画像編集アプリケーションは、エリアに適用されている効果を除去する画像上ブラシツールを提供する。
【0236】
図29は、ユーザが、画像のエリアから画像処理操作を適用解除することを可能にするいくつかの実施形態の画像編集アプリケーションのGUI400を概念的に示す。具体的には、本図は、ユーザが、画像のエリアを擦ることによって、画像のエリアに適用された画像処理操作を漸増的に適用解除することを、5つの異なる段階2901〜2905において示す。
図29は、GUI2400は画像表示エリア2425を含むことを示す。
【0237】
いくつかの実施形態では、いくつかの実施形態の画像編集アプリケーションは、ユーザが、画像のエリアを擦ること(例えば、画像のエリアを1回以上スワイプすること)によって、画像のエリアに適用された画像処理操作を適用解除することを可能にする消しゴムツールを提供する。例えば、消しゴムツールは、明色化効果を除去することによって、明色化効果が適用された画像の特定のエリアを暗くする。すなわち、消しゴムツールは画像のエリアを、明色化効果が適用される前の以前の状態に戻す。
【0238】
いくつかの実施形態では、消しゴムツールは、画像のエリアがタッチされるたびに画像処理操作を漸増的に適用解除する。例えば、消しゴムツールは、明色化効果が適用された画像の特定のエリアを増分量だけ暗くする。特定のエリアが再びタッチされると、消しゴムツールはエリアを増分量だけ更に暗くする。いくつかの実施形態では、画像のエリアが、画像処理操作が適用される前の状態に戻ると、消しゴムツールは画像処理操作を適用解除しない。
【0239】
異なる実施形態は、除去するべき画像処理操作の増分量を異なって決定する。例えば、消しゴムツールは、選択された画像操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、適用された画像処理操作が明色化操作である場合には、消しゴムツールはエリアの輝度値を既定の輝度値デルタずつ減少させる。このデルタは、画像ブラシツール上の一部のものがタッチ毎にエリアに適用する同量の輝度値を表す場合がある。いくつかの実施形態では、消しゴムツールは画像特性値を1パーセントずつ増加又は減少させる。また、いくつかの実施形態における消しゴムツールは非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【0240】
いくつかの実施形態の画像上ブラシツールが上述のように行うのと同様に、消しゴムツールは、画像処理操作を漸増的に適用解除するために、マスク値を用いる。すなわち、いくつかの実施形態における消しゴムツールは、マスク値が付与された画素のセットに画像処理操作を適用解除するために、マスク値を変更する。
【0241】
いくつかの実施形態では、消しゴムツールは、タッチ圧力に基づき画像のエリアから画像処理操作を適用解除する。すなわち、これらの実施形態における消しゴムツールは、エリアから適用解除するべき画像処理操作の量を、そのエリアがタッチされている時にエリアに加えられている圧力に基づき、決定する。それゆえ、これらの実施形態の消しゴムツールを含む画像編集アプリケーションは、タッチ圧力を測定する能力を有するタッチセンシティブスクリーンを有するコンピューティングデバイス上で動作していなければならない。上述のように、このようなタッチセンシティブスクリーンは、スクリーンに加えられている圧力を検出し、これを測定するために、加速度計を利用する場合がある。
【0242】
いくつかの実施形態では、消しゴムツールは画像処理操作を漸増的に適用解除しない。その代わりに、これらの実施形態の消しゴムツールは、画像のエリアに適用された画像処理操作を完全に除去する。すなわち、消しゴムツールは画像のエリアを、画像処理操作が適用される前の元の状態へ復元する。
【0243】
これより、いくつかの実施形態の消しゴムツールの操作例を説明する。第1段階2901は、画像編集アプリケーションが画像表示エリア410内に画像2420を表示している様子を示す。本例では、第1段階2901は、画像2420のエリア2910に明色化効果が適用された後のGUI400を示す。画像編集アプリケーションはまた、ツール表示エリア425内にアイコン2915も表示する。アイコン2915は消しゴムツールを表す。
【0244】
段階2902において、ユーザはアイコン2915を選択し、画像編集アプリケーションはアイコン2915の選択に応答して消しゴムツールを起動する。段階2903において、ユーザは、画像2420内においてエリア2910の左に示されている空の上に指2920を載せる。次の段階2904は、ユーザが画像2420にタッチしながら指2920を右へドラッグし、エリア2910を通り越したことを示す。消しゴムツールは、エリア2910と、指2920によってスワイプされたエリアとの交点であるエリア2925から明色化効果を漸増的に除去する。図示されているように、消しゴムツールはエリア2925を暗くした。
【0245】
段階2904において、ユーザは指2920を左方向へドラッグした。ユーザが指2920を左へドラッグする際に、指2920はエリア2925に再びタッチする。消しゴムツールはエリア2925を更に暗くする。本例では、消しゴムツールは、エリア2925が、明色化効果が適用される前の状態に戻るように、エリア2925に適用されていた明色化効果を完全に動かした。
【0246】
図30は、画像編集アプリケーションのユーザが、画像のエリアから、そのエリアを擦ることによって画像処理操作を適用解除することを可能にするために、いくつかの実施形態が実行するプロセス3000を概念的に示す。いくつかの実施形態におけるプロセス3000は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、擦るジェスチャ)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス3000は開始する。表示された画像が、画像処理操作が適用されたエリアを有している場合に、プロセス3000は開始する。
【0247】
プロセス3000は、画像編集アプリケーションにいくつかの実施形態の消しゴムツールを起動させるユーザ入力を(3005において)受け取ることによって、始まる。いくつかの実施形態では、このようなユーザ入力は、アイコン(例えば、上記の
図29に示されているアイコン2915)を選択することを含む。
【0248】
次に、プロセス3000は(3010において)、画像のエリアがタッチされているかどうかを判定する。いくつかの実施形態では、プロセス3000は、画像のエリアがタッチされているかどうかを判定するために、コンピューティングデバイスからタッチ情報(例えば、ユーザの指がタッチしているタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンのエリアの座標)を受け取る又は取得する。プロセスが(3010において)、エリアがタッチされていないと判定した場合には、プロセス3000は、ユーザの、表示された画像のエリアのタッチを待つために、3010へループして戻る。
【0249】
プロセス3000が(3010において)、エリアがタッチされていると判定した場合には、プロセスは、タッチはエリアから動かされたかどうかを判定するために、3015へ進む。いくつかの実施形態では、タッチされていたエリアがもはやタッチされていない場合には、プロセス3000は、タッチはエリアから動かされたと判定する。それゆえ、ユーザがエリアから指を上げるか、又はユーザが指を画像の別のエリアへ動かした場合には、プロセス3000は、タッチはエリアから動かされたと判定する。プロセス3000が(3015において)、タッチはエリアから動かされなかったと判定した場合には、プロセス3000は、タッチが動くのを待つために、3015へループして戻る。
【0250】
プロセス3000が(3015において)、タッチはエリアから動かされたと判定した場合には、プロセス3000は(3020において)、エリアは、画像処理操作が適用されたエリアに重なっているかどうかを判定する。プロセス3000が(3020において)、重なったエリアが存在すると判定した場合には、プロセス3000は(3025において)、重なったエリアから画像処理操作を増分量だけ適用解除する。適用解除するべきものが残っていない場合には、プロセス3000は画像処理操作を適用解除しない。
【0251】
異なる実施形態は、除去するべき画像処理操作の増分量を異なって決定する。例えば、いくつかの実施形態におけるプロセス3000は、重なったエリアに適用されている画像処理操作に基づく既定の増分値ずつ画像特性値を増加又は減少させる。例えば、重なったエリアに適用された画像処理操作が明色化操作である場合には、プロセス3000はエリアの輝度値を既定の輝度値デルタずつ減少させる。このデルタは、画像ブラシツール上の一部のものがタッチ毎に適用する同量の輝度値を表す場合がある。いくつかの実施形態では、プロセス3000は画像特性値を1パーセントずつ増加又は減少させる。また、いくつかの実施形態におけるプロセス3000は非線形関数を用いて画像のエリアの画像特性値を非線形的に減少又は増加させる。
【0252】
プロセス3000が(3020において)、重なったエリアは存在しないと判定した場合には、プロセスは3030へ進む。次に、プロセス3000は(3030において)、画像の別のエリアがタッチされているかどうかを判定する。プロセス3000が(3030において)、画像の他のエリアがタッチされていると判定した場合には、プロセス3000は、タッチがこのエリアから動くのを待つために、3015へループして戻る。プロセス3000が(3030において)、画像の他のエリアはタッチされていないと判定した場合には、プロセス3000は終了する。
【0253】
セクションIIはいくつかの実施形態のいくつかの画像上ブラシツールを説明した。次のセクションは、画像にいくつかの特殊効果を適用するいくつかの画像上ツールを説明する。
【0254】
III.画像上効果ツール
いくつかの実施形態は、ユーザが、表示された画像の一部分を選択することによって画像処理操作又は効果を適用することを可能にする画像上効果ツールを提供する。これらの画像上効果ツールはブラシツールではない。すなわち、これらの画像上効果ツールはエリアに、ブラシツールによって定義されていない効果を適用する。
【0255】
A.画像上グラデーションツール
図31は、ユーザが、画像の選択されたエリアの異なる部分に画像処理操作を選択的に適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、画像にタッチすることによって画像の部分にグラデーション効果を適用することを、5つの異なる段階3101〜3105において示す。
図31はGUI400を示す。
【0256】
上述のように、いくつかの実施形態におけるツール選択ペイン420は、画像編集アプリケーションの異なる編集ツールセット群を表すアイコンのセットを表示する。ツール選択ペイン420は、いくつかの実施形態ではツール選択ペイン430内に表示されている左から5つ目のアイコンである、アイコン3110を含む。ツール選択ペイン420内に表示されているアイコン3110はいくつかの実施形態における画像上効果ツール群を表す。ユーザがアイコン3110を選択すると、いくつかの実施形態における画像編集アプリケーションは、ツール表示エリア425(又はGUI400のその他の部分)内に、これらの画像上効果ツールを表す選択可能なUI項目3125のセットを表示する。ツール群の1つが選択されると(ユーザが、そのツールを表すアイコンを選択すると)、そのツールが起動され、表示された画像へのユーザ入力は、選択されたツールへの入力として扱われる。
【0257】
いくつかの実施形態における選択可能なUI項目3125のセットはサムネイル及びアイコンのセットである。いくつかの実施形態では、選択可能なUI項目3125のセットは、アイコン3110が選択されると展開するカードのうちの1枚の上にある。米国仮特許出願第61/607,574号には、カードの展開についての更なる詳細が記載されている。
【0258】
選択可能なUI項目3125のセット内のサムネイル及びアイコンは多数の異なる効果を表す。例えば、UI項目3130は画像上暗色グラデーションツールを表す。UI項目3135は画像上暖色グラデーションツールを表す。UI項目3140は画像上寒色グラデーションツールを表す。UI項目3145はビネットツールを表す。UI項目3150はティルトシフトツールを表す。ツールはそれぞれ、起動されている時には、ユーザによって、エリアにタッチすることによって画定される画像のエリアに効果を適用する。
【0259】
これより、画像上グラデーションツールの操作例を説明する。第1段階3101は、指3170でサムネイル3110にタッチすることによるユーザのサムネイル3110の選択を示す。画像編集アプリケーションは、サムネイル3110の選択に応答して、サムネイル3110によって表されている画像3115を画像表示エリア410内に表示する。
【0260】
段階3102において、ユーザは、ツール選択ペイン420内に表示されているアイコン3110を選択する。それに応答して、画像編集アプリケーションは段階3103において、図示されているように、GUI400内に、選択可能なUI項目3125のセットを表示する。ユーザは、UI項目3130にタッチすることによって画像上暗色グラデーションツールを選択する。画像編集アプリケーションは画像上暗色グラデーションツールを起動する。
【0261】
段階3104において、ユーザは、指3170で画像3115の最上部の近くのロケーションにタッチしたか、又は画像3115にタッチしながら指3170を下方へそのロケーションまでドラッグした。画像上暗色グラデーションツールは画像3115の最上部から、指3170があるロケーションまで暗色グラデーション効果を適用した。指3170よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【0262】
段階3105は、ユーザが、画像3115の底部により近い画像のロケーションにタッチしたか、又は画像3115にタッチしながら指3170をこのロケーションまでドラッグした後のGUI400を示す。暗色グラデーションツールは、前の段階3104において指3170があった垂直ロケーションから、現在の段階3105における指3170の垂直ロケーションまでグラデーション効果を適用した。指3170よりも上にある画像の部分は、この部分にグラデーション効果が適用されたことを示すために、以前よりも暗く描画されている。
【0263】
いくつかの実施形態では、画像上暗色グラデーションツールは、ユーザが、画像内の2箇所のロケーションにタッチすることによってグラデーション効果を適用することを可能にする。ユーザが、上部のロケーション及び下部のロケーションの2箇所のロケーションにタッチすると、画像上暗色グラデーションツールは、2箇所のロケーションのそれぞれと交わる不可視の水平線を引き、2本の線の間の画像の部分の上にグラデーション効果を適用する。いくつかの実施形態では、これらの2本の線は平行線であり、2本の線の間の距離は、2箇所のロケーションにタッチするために使われている2本の指の一方又は両方を互いにより近く又はより遠くへドラッグすることによって、調整することができる。更に、いくつかの実施形態では、画像上暗色グラデーションツールは、ユーザが2本の線を、2本の線が水平でなくなるように回転させることを可能にする。更に、画像上暗色グラデーションツールは2本の線の間の画像の部分の上に異なる量のグラデーション効果を適用する。例えば、いくつかの実施形態では、2本の線の一方の付近の画素は最も暗くなり(例えば、100%のグラデーション効果を表す)、他方の線の近くの画素は最も明るくなる(例えば、0%のグラデーション効果を表す)。いくつかのこのような実施形態では、部分内の画素に適用されるグラデーション効果の量は2本の線のいずれかへの画素の近接度に依存する。2本の線の使用は、本出願に説明されている他のグラデーションツール(例えば、暖色グラデーションツール)にも適用可能である。
【0264】
図32は、画像編集アプリケーションのユーザが画像にグラデーション効果を適用することを可能にするためにいくつかの実施形態が実行するプロセス3200を概念的に示す。いくつかの実施形態におけるプロセス3200は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、タップ操作、スワイプ操作等)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス3200は開始する。プロセス3200は、(3205において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0265】
次に、プロセス3200は(3210において)、表示された画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス3200は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス3200は、ユーザが、(例えば指を上げずに)表示された画像にタッチしながら、指を、表示された画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。
【0266】
次に、プロセス3200は(3215において)画像にグラデーション効果を適用する。ユーザが、表示された画像内のロケーションをタップすると、プロセス3200は画像の最上部から画像のそのロケーションまでグラデーション効果を適用する。ユーザが指を画像の第1のロケーションから、第1のロケーションよりも画像の最上部から遠い第2のロケーションまでドラッグすると、プロセス3200は、画像の最上部から第2のロケーションまで垂直にまたがる画像の部分にグラデーション効果を適用する。画像の最上部から第1のロケーションまでまたがる画像の部分にグラデーション効果がすでに適用されている場合には、プロセス3200は、第1のロケーションから第2のロケーションまで垂直にまたがる画像の部分にグラデーション効果を適用する。
【0267】
上述したいくつかの異なる画像上グラデーション効果ツールは画像に異なるグラデーション効果を適用する。適用されると、これらの異なるグラデーション効果は異なる視覚特徴を提供する。例えば、「暗色グラデーション」効果が適用された画像の部分は暗く見える。「暖色グラデーション」効果は画像の一部分を「暖かく」見せる。画像上グラデーションツールは、画像の画素を異なって処理することによって、これらの異なる視覚特徴を実現する。次の4つの図、
図33〜36は、画像上グラデーション効果ツールが適用し得る2つの異なるグラデーション効果の例を示す。
【0268】
図33は、ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上グラデーション効果ツールが「青色」グラデーション効果を適用することを示す。図示されているように、
図33は、グラデーション効果ツール3300、元の画像データ3330、及びグラデーション画像3335を示す。
【0269】
元の画像3330は、グラデーション効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。グラデーション画像3335は、画像にグラデーション効果を適用してできた画像のための画像データである。いくつかの実施形態では、グラデーション画像3335は、元の画像から新しい画像を生成するために実行する命令のセットである。
【0270】
グラデーション効果ツール3300は元の画像に青色グラデーション効果を適用する。グラデーション効果ツール3300は、白黒画像生成器3305、カラー画像生成器3310、画像混合器3315、グラデーション計算器3325、及びグラデーション画像生成器3320を含む。
【0271】
白黒(B/W)画像生成器3305は元の画像3330に基づき白黒画像を生成する。いくつかの実施形態では、B/W画像生成器3305は白黒画像内の青色を強調する。いくつかの実施形態におけるB/W画像生成器3305は青色のRGBトリプレット、例えば、(0.02、0.018、0.77)を用いる。トリプレット内の3つの数は原色の3つのチャネル−すなわち、赤色、緑色、及び青色−をそれぞれ表す。3つの数はそれぞれ、色の範囲を表す、0〜1の範囲を有する。例えば、括弧内の第1の数については、0は青色がないことを表し、1は最大限の青色を表す。当業者は、その他の範囲、例えば、0〜255、0%〜100%、0〜65535等がRGB値のために用いられてもよいことを認識している。
【0272】
青色を強調するB/W画像を生成するために、B/W画像生成器3305は元の画像内のそれぞれの画素と青色RGBトリプレットの2乗とのドット積を計算する。このようなドット積は以下の擬似コードで表すことができる。
c1=dot(image.rgb,blue.rgb
2);
image.rgbは元の画像内の画素のRGBトリプレットである。blue.rgbは青色RGBトリプレットである。C1はドット積であり、結果として生じるB/W画像内の対応する画素のための明度値(例えば、輝度値、RGB合計、等)でもある。B/W画像内の画素のための明度値は0〜1の(グレイスケール)範囲を有する。ここで、0は黒色であり、1は白色である。
【0273】
カラー画像生成器3310は、B/W画像生成器3305によって生成されたB/W画像を青色画像に変換する。いくつかの実施形態では、カラー画像生成器3310は、B/W画像内の対応する画素の明度値を2乗し、青色RGBトリプレットに、2乗された明度値を乗算し、次に、乗算の結果を2倍にすることによって、青色画像のそれぞれの画素のRGBトリプレットを生成する。これは以下の擬似コードで表すことができるであろう。
blueImage=2.0*(c1
2)*blue.rgb。
blueImageは、生成された青色画像内の画素のRGB値である。
【0274】
画像混合器3315は、画像内の明るいエリアはそれらの白色度を保持し、それと同時に、より暗いエリアは青く見えることを確実にするために、0〜1のグレイスケールを用いることによって元の画像と青色画像とを混合する。混合は、以下の擬似コード例を用いて実行することができる。
mixedImage=mix(originalImage,blueImage,(1.0−c1))。
mixedImageは、混合された画像内の画素のRGBトリプレットである。originalImageは元の画像内の対応する画素のRGBトリプレットである。mix()は関数である。異なる実施形態は異なるmix()関数を用いる。いくつかの実施形態では、mix()関数は3つの入力値/トリプレットの算術平均を計算する。トリプレットが単一値(例えば、1.0−c1)を用いて平均される場合には、それぞれの値はその単一値を用いて平均される。
【0275】
グラデーション計算器3325は元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態におけるグラデーション計算器3325は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールはユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、グラデーション計算器3325は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【0276】
いくつかの実施形態では、画素の行番号は画素のy座標であり、一番上の画素(すなわち、画像の画素の最上部の行)は0のy座標を有し、最下部の画素(すなわち、画像の画素の最下部の行)は全体高さのy座標(すなわち、画像内の画素の列内の画素の数−1)を有する。すなわち、y座標は画像の最上部の行から開始する。
【0277】
いくつかの実施形態におけるグラデーション計算器3325は、特定の画素がユーザのタッチの垂直ロケーションよりも下にある場合には、特定の画素のためのグラデーション値を0に設定する。これは以下の擬似コードで表される。
row>heightTouchedである場合には、
gradient=0.0;
rowは特定の画素のy座標値である。heightTouchedはユーザのタッチ(例えば、タッチされた画素のセットの垂直中心画素(単数又は複数))のy座標である。グラデーション計算器は、ユーザのタッチを受け取るユーザインタフェースモジュール(不図示)からのタッチ情報(すなわち、ユーザ入力)からheightTouched値を得る。
【0278】
いくつかの実施形態におけるグラデーション計算器3325は、特定の画素がユーザのタッチの垂直ロケーションよりも上にある場合には、以下の擬似コードを用いて特定の画素のためのグラデーション値を計算する。
topY=min(0.0,heightTouched.n−0.2);
r=行/(height−1);
r=(r−topY)/(heightTouched.n−topY);
(r<0.8)である場合には、
gradient=(0.1r+(0.8−r)*0.8)/0.8;
そうでなく、(r<0.9)である場合には、
gradient=((r−0.8)*0.03+(0.9−r)*0.1)/0.1;
そうでない場合には、
gradient=((r−0.9)*0.03+(1−r)*0.1)/0.1;
TopYは、画像の最上部の付近の画素のためのグラデーション効果の緩やかな減衰を適用するために計算される。rは、0〜1の範囲を有する正規化された行番号である。heightは元の画像の全体高さ(すなわち、画素の列内の画素の数)である。heightTouched.nは、正規化されたheightTouchedであり、0〜1の範囲を有する。ここで、0は元の画像の最上部の画素行であり、1は元の画像の最下部の画素行である。
【0279】
グラデーション画像生成器3320は、グラデーション計算器3325によって計算されたグラデーション値を用いて混合画像を元の画像とブレンドする。いくつかの実施形態では、グラデーション画像生成器3320は、新しい画像を生成するべく混合画像を元の画像とブレンドするために、以下の擬似コード用いる:
gradImage=originalImage*(1−gradient)+mixedImage*gradient;
gradImageは、元の画像に青色グラデーション効果を適用することによって生成された新しい画像内の画素のRGBトリプレットである。
【0280】
これより、
図33及び34を参照して青色グラデーション効果ツール3300の操作例を説明する。
図34は、いくつかの実施形態が、画像に青色グラデーション効果を適用するために実行するプロセス3400を概念的に示す。いくつかの実施形態におけるプロセス3400はグラデーション効果ツール3300等の画像上グラデーション効果ツールによって実行される。画像上グラデーション効果ツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス3400は開始する。
【0281】
プロセス3400は、(3405において)元の画像に基づき1つの色を強調する白黒(B/W)画像を生成することによって、始まる。いくつかの実施形態におけるプロセス3400は、青色RGBトリプレット、例えば、(0.02、0.018、0.77)を用いることによってB/W画像内で青色を強調する。青色RGBトリプレット内の値は、青色が赤色及び緑色よりも大きいかぎり、実施形態によって異なってもよい。例えば、トリプレット内の青色とその他の色との差は1桁であってもよい。
【0282】
いくつかの実施形態におけるプロセス3400は、元の画像の対応する画素(すなわち、同じ座標を有する画素)のRGBトリプレットを用いてB/W画像のそれぞれの画素のための明度値を計算する。例えば、B/W画像生成器3305は、元の画像の対応する画素のRGBトリプレット、(0.5、0.5、0.5)、と青色RGBトリプレットとのドット積をとることによって、B/W画像の画素のための明度値を計算する。すると、B/W画像の画素のための明度値は、0.02*0.5+0.018*0.5+0.77*0.5となるであろう。これは0.404になる。
【0283】
次に、プロセス3400は、(3410において)、B/W画像に基づき、強調された色のためのカラー画像を生成する。いくつかの実施形態では、プロセス3400は、B/W画像内の対応する画素の明度値に基づき青色画像のそれぞれの画素のためのRGBトリプレットを計算することによって、青色画像を生成する。例えば、カラー画像生成器3310は、B/W画像内の対応する画素の以前に生成された明度値0.404を用いて青色画像のための画素のRGBトリプレットを計算する。青色画像内の画素のRGBトリプレットは2.0*(0.404
2)*(0.02、0.018、0.77)となり、これは、(0.00652864、0.005875776、0.25135264)になる。
【0284】
次に、プロセス3400は(3415において)、B/W画像に基づき、元の画像及び生成されたカラー画像を混合する。例えば、画像混合器3315は、元の画像、及び明度値0.404を用いて生成されたカラー画像の画素、並びにB/W画像内の対応する画素を混合する。上述のように、元の画素はRGBトリプレット(0.5、0.5、0.5)を有する。青色画像内の対応する画素のRGBトリプレットは(0.00652864、0.005875776、0.25135264)である。それゆえ、いくつかの実施形態では、混合画像内の対応する画素のRGBトリプレットは、((0.5+0.00652864+0.0404)/3、(0.5+0.005875776+0.0404)/3、(0.5+0.25135264+0.0404)/3)となり、これは、(0.182309547、0.182091925、0.263917547)になる。
【0285】
次に、プロセス3400は(3420において)、元の画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス3400は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス3400は、ユーザが、(例えば、指を上げずに)表示された画像にタッチしながら、指を元の画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。例えば、元の画像は768画素の高さを有し、タッチのロケーションは画像の最上部から300番目の画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの中心にある画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの平均画素座標である。
【0286】
次に、プロセス3400は(3425において)元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態では、プロセス3400は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールはユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、プロセス3400は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【0287】
例えば、グラデーション計算器3325は、元の画像の最上部から200番目の画素となる画素のためのグラデーション値を計算する。グラデーション計算器3325はtopYを計算する。topYは0.0及び(200/768)−0.2の最小値であり、これは0.0になる。グラデーション計算器3325は、正規化された行番号を計算する。正規化された行番号は(200/(768−1)−0.0)/(300/768−0.0)となり、これは0.668407311になる。次に、グラデーション計算器3325はグラデーション値を計算する。正規化された行番号は0.8よりも小さいので、グラデーション値は(0.1*0.668407311+(0.8−0.668407311)*0.8)/0.8となり、これは0.215143603になる。
【0288】
次に、プロセス3400は(3430において)、計算されたグラデーション値を用いて混合画像及び元の画像をブレンドする。プロセス3400はブレンド画像のそれぞれの画素のためのRGBトリプレットを計算する。例えば、グラデーション画像生成器3320はブレンド画像内の画素のためのRGBトリプレットを計算する。元の画像内の対応する画素は、最上部から200番目の画素となる画素である。それゆえ、ブレンド画像内の画素のためのRGBトリプレットは、(0.5、0.5、0.5)*(1−0.215143603)+(0.182309547、0.182091925、0.263917547)*0.215143603となり、これは(0.431650931、0.431604111、0.44920837)になる。
【0289】
図35は、ユーザによって選択された画像の一部分に特定のグラデーション効果を適用する画像上グラデーション効果ツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上グラデーション効果ツールが「コーヒー」グラデーション効果を適用することを示す。図示されているように、
図35は、グラデーション効果ツール3500、元の画像データ3520、及びグラデーション画像3525を示す。
【0290】
元の画像3520は、グラデーション効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。グラデーション画像3525は、画像にグラデーション効果を適用してできた画像のための画像データである。いくつかの実施形態では、グラデーション画像3525は、元の画像から新しい画像を生成するために実行する命令のセットである。
【0291】
グラデーション効果ツール3500は元の画像にコーヒーグラデーション効果を適用する。グラデーション効果ツール3500は、白黒画像生成器3505、画像混合器3510、グラデーション計算器3325、及びグラデーション画像生成器3515を含む。
【0292】
白黒(B/W)画像生成器3505は元の画像3530に基づき白黒画像を生成する。いくつかの実施形態におけるB/W画像生成器は、B/W画像を生成するために、B/W RGBトリプレット、例えば、(0.2、0.7、0.1)を用いる。トリプレット内の3つの数はそれぞれ、色の範囲を表す0〜1の範囲を有する。B/W画像を生成するために、B/W画像生成器3505は元の画像内のそれぞれの画素のためのRGBトリプレットとB/W RGBトリプレットとのドット積を計算する。いくつかの実施形態におけるB/W画像生成器3505はまた、より明るいB/W画像を得るために、ドット積を2.0によってスケール変更する。このようなドット積は以下の擬似コードで表すことができる。
bw=2.0*dot(im,(0.2、0.7、0.1))=2.0*(im.r*0.2+im.g*0.7+im.b*0.1);
bwはB/W画像内の画素の明度値である。imは、元の画像内の対応する画素のRGBトリプレット(im.r,im.g,im.b)である。
【0293】
画像混合器3510は、茶色がかった色を定義するコーヒーRGBトリプレットを用いることによって、元の画像及びB/W画像を混合する。いくつかの実施形態では、コーヒーRGBトリプレットは(0.7、0.5、0.35)である。いくつかの実施形態における画像混合器3510は、元の画像の画素のRGB値にコーヒーRGBトリプレット及びB/W画像の画素の明度値を乗算することによって、元の画像及びB/W画像を混合する。このような混合は以下の擬似コードで表すことができる。
mixedImage=im*coffeeRGB*bw;
mixedimageは、混合された画像内の画素のRGBトリプレットである。coffeeRGBはコーヒーRGBトリプレットである。bwは、B/W画像生成器3505によって生成されたB/W画像内の対応する画素のRGBトリプレットである。
【0294】
グラデーション画像生成器3520は、グラデーション計算器3325によって計算されたグラデーション値を用いて混合画像を元の画像とブレンドする。いくつかの実施形態では、グラデーション画像生成器3520は、新しい画像を生成するべく混合画像を元の画像とブレンドするために、以下の擬似コード用いる。
gradImage=originalImage*(1−gradient)+mixedImage*gradient;
gradImageは、元の画像にコーヒーグラデーション効果を適用することによって生成された新しい画像内の画素のRGBトリプレットである。
【0295】
これより、
図35及び36を参照してコーヒーグラデーション効果ツール3500の操作例を説明する。
図36は、いくつかの実施形態が、画像にコーヒーグラデーション効果を適用するために実行するプロセス3600を概念的に示す。いくつかの実施形態におけるプロセス3600はグラデーション効果ツール3500等の画像上グラデーション効果ツールによって実行される。画像上グラデーション効果ツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス3600は開始する。
【0296】
プロセス3600は、(3605において)白黒(B/W)画像を生成することによって、始まる。いくつかの実施形態におけるプロセス3600は、B/W RGBトリプレット、例えば、(0.2、0.7、0.1)を用いることによって、B/W画像を生成する。いくつかの実施形態におけるプロセス3600は、元の画像の対応する画素(すなわち、同じ座標を有する画素)のRGBトリプレットを用いてB/W画像のそれぞれの画素のための明度値を計算する。例えば、B/W画像生成器3505は、元の画像の対応する画素のRGBトリプレット、例えば、(0.3、0.4、0.5)とB/W RGBトリプレットとのドット積をとることによって、B/W画像の画素のための明度値を計算する。すると、B/W画像の画素のための明度値は、2.0*(0.3*0.2+0.3*0.7+0.5*0.1)となるであろう。これは0.64になる。
【0297】
次に、プロセス3600は(3610において)、コーヒーRGBトリプレット、例えば、(0.7、0.5、0.35)を用いて、元の画像及びB/W画像を混合する。例えば、画像混合器3515は、B/W画像内の対応する画素の明度値0.64を用いて元の画像及び生成されたカラー画像の画素を混合する。上述のように、元の画素はRGBトリプレット(0.3、0.4、0.5)を有する。それゆえ、混合画像内の対応する画素のRGBトリプレットは、(0.3、0.4、0.5)*(0.7、0.5、0.35)*0.64となり、これは(0.0768、0.128、0.112)になる。
【0298】
次に、プロセス3600は(3615において)、元の画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス3600は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス3600は、ユーザが、(例えば、指を上げずに)表示された画像にタッチしながら、指を元の画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。例えば、元の画像は768画素の高さを有し、タッチのロケーションは画像の最上部から400番目の画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの中心にある画素である。いくつかの実施形態では、タッチされたと見なされる画素は、ユーザの指によってタッチされた画素のセットの平均画素座標である。
【0299】
次に、プロセス3600は(3620において)元の画像のそれぞれの画素のためのグラデーション値を計算する。いくつかの実施形態では、プロセス3600は、元の画像内の画素のロケーションに基づき特定の画素のためのグラデーション値を計算する。いくつかの実施形態における画像上グラデーション効果ツールは、ユーザのタッチの垂直ロケーションに基づきグラデーション効果を適用するので、プロセス3600は特定の画素の行番号に基づきグラデーション値を計算する。特定の画素のためのグラデーション値の計算はまた、タッチされたロケーションの行番号及び元の画像の全体高さにも基づく。
【0300】
例えば、グラデーション計算器3325は、元の画像の最上部から300番目の画素となる画素のためのグラデーション値を計算する。グラデーション計算器3525はtopYを計算する。topYは0.0及び(300/768)−0.2の最小値であり、これは0.0になる。グラデーション計算器3525は、正規化された行番号を計算する。正規化された行番号は、(300/(768−1)−0.0)/(400/768−0.0)となり、これは0.750977835になる。次に、グラデーション計算器3325はグラデーション値を計算する。正規化された行番号は0.8よりも小さいので、グラデーション値は(0.1*0.750977835+(0.8−0.750977835)*0.8)/0.8となり、これは0.142894394になる。
【0301】
次に、プロセス3600は(3625において)、計算されたグラデーション値を用いて混合画像及び元の画像をブレンドする。プロセス3600はブレンド画像のそれぞれの画素のためのRGBトリプレットを計算する。例えば、グラデーション画像生成器3515はブレンド画像内の画素のためのRGBトリプレットを計算する。元の画像内の対応する画素は、最上部から300番目の画素となる画素である。それゆえ、ブレンド画像内の画素のためのRGBトリプレットは、(0.3、0.4、0.5)*(1−0.142894394)+(0.0768、0.128、0.112)*0.142894394となり、これは(0.268105971、0.361132724、0.444556975)になる。
【0302】
本サブセクションでは、いくつかの画像上グラデーション効果ツールが説明された。以下の次のサブセクションはいくつかの画像上ティルトシフトツールを説明する。
【0303】
B.画像上ティルトシフトツール
図37は、ユーザが、画像にタッチすることによって、画像の選択された部分にティルトシフト効果を適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、可視的画像上ツールであるティルトシフトツール3715にタッチしてこれを操作することによって、画像3725にティルトシフト効果を適用することを、6つの異なる段階3701〜3706において示す。
図37は、GUI400、アイコン3110、及び3130〜2950を示す。
【0304】
上述のように、画像表示エリア410は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、表示された画像にタッチし、ティルトシフトツール3715を操作することによって、画像にティルトシフト効果を適用することを可能にする。画像編集アプリケーションは、画像表示エリア410内に表示された画像にティルトシフトツール3715を重ね合わせる。ティルトシフトツール3715は、
図2を参照して上述されているティルトシフトツール211と同様である。
【0305】
これより、画像上ティルトシフトツールの操作例を説明する。第1段階3701は、指3725でサムネイル3720にタッチすることによるユーザのサムネイル3710の選択を示す。画像編集アプリケーションは、サムネイル3710の選択に応答して、サムネイル3720によって表されている画像3710を画像表示エリア410内に表示する。
【0306】
段階3702において、ユーザは、ツール選択ペイン420内に表示されているアイコン3110を選択する。それに応答して、画像編集アプリケーションは段階3703において、図示されているように、GUI400内に、選択可能なUI項目3125のセットを表示する。ユーザは、UI項目3150にタッチすることによって画像上ティルトシフトツールを選択する。画像編集アプリケーションは画像上ティルトシフトツールを起動する。
【0307】
次の段階3704は、ユーザが画像の垂直中心よりも少し下の画像エリアにタッチした後のGUI400を示す。この段階において、ティルトシフトツール3715は2本の平行線を、タッチされたエリアの中心が2本の平行線から等距離となるように、画像上に配置した。ティルトシフトツール3715はまた、上部平行線よりも垂直上方にある画像の部分及び下部平行線よりも垂直下方にある画像の部分をぼかした。いくつかの実施形態では、ティルトシフトツール3715は、2本の平行線を画像のデフォルトのロケーション上にデフォルトの幅で配置する場合がある。
【0308】
段階3705において、ユーザは、2本の平行線を広げて更に離すために、指3730及び3735を使い、画像上で拡大ジェスチャ実行した。上部線及び下部線は両方とも移動した。上部線は上に移動し、下部線は下に移動した。その結果、2本の平行線の間の画像の部分はより大きくなっており、ティルトシフトツールは画像のこの部分はぼかさない。
【0309】
次の段階3706は、ユーザが画像3730から指3730及び3735を上げた後のGUI400を示す。2本の平行線は、これらの2本の線は操作可能であることを示すために、可視状態で残っている。ユーザが画像編集アプリケーションの編集モードから抜けると、2本の平行線は画像3710から消える。
【0310】
図38は、ユーザによって選択された画像の部分にティルトシフト効果を適用するいくつかの実施形態の画像上ティルトシフトツールのアーキテクチャを概念的に示す。具体的には、本図は、画像上ティルト効果ツールが、元の選択画像に基づきぼかしたいくつかのあらかじめ生成された画像を用いてティルトシフト効果を適用することを示す。図示されているように、
図38は、画像上ティルトシフトツール3800、元の画像データ3830、ぼかし画像3835、及びティルトシフト画像3840を示す。
【0311】
元の画像データ3830は、ティルトシフト効果が適用される前の選択された画像のための画像データである。選択された画像は、画像編集アプリケーションの画像表示エリア内に表示される画像である。ティルトシフト画像3840は、画像にティルトシフトを適用してできた画像のための画像データである。いくつかの実施形態では、ティルトシフト画像3335は、元の画像から新しい画像を生成するために実行する命令のセットである。
【0312】
画像上ティルトシフトツール3800は、ぼかし画像生成器3815、距離計算器3805、重み計算器3810、及び画像加算器3825を含む。いくつかの実施形態における画像上ティルトシフトツールは、ユーザのタッチの垂直ロケーションに基づき画定される画像の水平の帯を除き、画像を垂直ティルトシフト−ぼかすこと(換言すれば、ユーザのタッチのロケーションから既定の垂直距離以内にない画像の部分をぼかすこと)を可能にする。画像上ティルトシフトツール3800は、ティルトシフトツール3800がユーザのタッチのロケーションから既定の距離以内にない画像の部分を放射状ティルトシフトする−ぼかすことをできるようにすることを可能とするように変更されてもよい。いくつかの実施形態における画像上ティルトシフトツール3800は、元の画像を、元の画像のぼかしたバージョンと結合することによって、ティルトシフト画像を生成する。
【0313】
ぼかし画像生成器3815は、元の画像に基づきいくつかのぼかし画像を生成する。いくつかの実施形態では、ぼかし画像生成器3815は、ガウスカーネルを用いて元の画像を畳み込むことによって、ぼかし画像を生成する。ガウスカーネルの標準偏差は、処理するべき元の画像のサイズと相対的なものである。また、標準偏差は元の画像の規模に比例して増加する。すなわち、元の画像の規模が大きいほど、ガウスカーネルの標準偏差は大きくなる。例えば、ぼかし画像生成器3815が5つのぼかし画像を生成する場合には、2000画素の規模を有する元の画像については、5つのガウスカーネルのための標準偏差は1.6、4、8、12及び16画素の大きさとして設定される。画像上ティルトシフトツール3800が画像編集アプリケーションによって起動されると、ぼかし画像生成器3815はぼかし画像をあらかじめ生成し、ぼかし画像を(例えば、キャッシュ内に)記憶し、それにより、元の画像上においてユーザのタッチを受け取るとこれらのぼかし画像を迅速に結合してティルトシフト画像を生成することができるようにする。
【0314】
距離計算器3805は、タッチ入力を受け取るユーザインタフェースモジュール(不図示)からユーザ入力を受け取る。元の画像内の画素毎に、距離計算器3805は、画素と、ユーザによってタッチされた画素との間の垂直距離(例えば、y軸値の差)を計算する。いくつかの実施形態では、距離計算器3805は、この擬似コードの例を用いて、計算された垂直距離を正規化する:
denom=1.0/max(heightTouched、imageHeight−heightTouched);
dist=1.1−|(currentRow−heightTouched)|*denom*1.25;
dist=max(min(dist、1.0)、0.0);
heightTouchedは、ユーザがタッチした画素のy座標(例えば、タッチされた画素のセットの垂直中心画素(単数又は複数))である。いくつかの実施形態では、y座標は画像の最上部の行から開始する。すなわち、画像の画素の最上部の行は0のy座標を有し、画像の画素の最下部の行は全体高さのy座標(例えば、画像内の画素の列内の画素の数−1)を有する。imageHeightは元の画像の全体高さである。currentRowは、現在処理されている特定の画素が属する行のy座標である。distは、特定の画素のための正規化された距離である。距離は、0〜1.1の範囲を有するように正規化される。
【0315】
計算された距離は、
図39に示されているグラフ3900において曲線3905として描かれている。ユーザがタッチした画素は最上部の行から約800番目の画素である。グラフ3900は、2500画素の高さを有する元の画像についてのものである。グラフ3900の縦軸は、曲線3905のための正規化された距離を表し、曲線3910、3915、3920、3925、3930、及び3935のための正規化された重みを表す。横軸は最上部の行、0、から最下部の行、2500、までの行番号を表す。曲線3905は、平坦な頂上を有するピラミッドのように見える。以上に示されている擬似コードの第4行は、1.0を超える正規化された距離値を全て1.0に設定するので、曲線3905は平坦な頂上を有する。
【0316】
重み計算器3810は、ぼかし画像生成器3815によって生成されたぼかし画像のそれぞれのための重み、及び元の画像のための重みを計算する。いくつかの実施形態における重み計算器は、ユーザがタッチした画素の垂直ロケーションからの距離からそれぞれのぼかし画像のための重みを導き出す。重み計算器3810は、ガウス関数であって、その入力は、正規化された距離であるガウス関数を用いて、それぞれのぼかし画像のための重みを計算する。重み計算器3810が用いるガウス関数は次式である。
【0318】
パラメータaはいくつかの実施形態では1に設定され、そのため、関数は2つのパラメータb及びcによって調節される。当技術分野において周知のように、bは対称的な「釣鐘曲線」又はガウスカーネルの中心の位置であり、cは「釣鐘」の幅を調節する。元の画像のための重みを調節するガウスカーネル3910の中心は、ユーザがタッチした画素の垂直画素ロケーションとして設定される。他のガウスカーネル3910〜3935の中心は、1つのガウスカーネル及び次のガウスカーネルがそれらの半値又はその付近において交わるように、順次、設定される。ガウスカーネルの幅はユーザのピンチジェスチャによって調節される。指の間の距離(すなわち、画像上ティルトシフトツールの2本の平行線の間の距離)が大きいほど、ガウスカーネルの幅は広くなる。全てのガウスカーネルは同じ幅を有する。重み計算器3810は、以下の擬似コードを用いてガウスカーネルの幅を計算する。
width=0.12*FXheight/0.32;
(width<0.06)である場合には、
width=0.06;
FXheightは、画像上ティルトシフトツールの2本の平行線の間の正規化された距離である。widthは、計算された幅である。重み計算器3810は、重みが合計して1.0になることを確実にするように、重みを正規化する。
【0319】
画像加算器3825は、重み付けされた元の画像及び重み付けされたぼかし画像を加算することによって、ティルトシフト画像を生成する。すなわち、画像加算器3825は、元の画像のそれぞれの画素の重み付けされた画素値に、ぼかし画像生成器3835によって生成されたぼかし画像の重み付けされた画素値を加算する。
【0320】
これより、
図38及び40を参照して画像上ティルトシフトツール3800の操作例を説明する。
図40は、いくつかの実施形態が、画像にティルトシフト効果を適用するために実行するプロセス4000を概念的に示す。いくつかの実施形態におけるプロセス4000は、オンラインシフトツール3800等の画像上ティルトシフトツールによって実行される。画像上ティルトシフトツールが画像編集アプリケーションによって起動され、表示された画像のための画像データを受け取ると、プロセス4000は開始する。
【0321】
プロセス4000は、(4005において)元の画像に基づきいくつかのぼかし画像をあらかじめ生成することによって、始まる。例えば、ぼかし画像生成器3815は5つのぼかし画像を生成する。ぼかし画像生成器3815は、サイズが1.6画素に等しい平均を用いて第1のぼかし画像を生成する。すなわち、いくつかの実施形態におけるぼかし画像生成器3815は、元の画像の各1.6×1.6画素平方内の全ての画素の画素値を平均する。ぼかし画像生成器3815は、サイズが4画素に等しい平均を用いて第2のぼかし画像を生成する。すなわち、いくつかの実施形態におけるぼかし画像生成器3815は、元の画像の各4×4画素平方内の全ての画素の画素値を平均する。同様の方法で、ぼかし画像生成器3815は、サイズがそれぞれ8、12、及び16画素に等しい平均を用いて第3、第4、及び第5のぼかし画像を生成する。
【0322】
次に、プロセス4000は(4010において)中心画素の選択を受け取る。例えば、距離計算器3805は、ユーザによってタッチされた画素のロケーションを受け取る。本例では、ユーザによってタッチされた画素は、垂直に2500画素を有する元の画像の最上部から800番目である。
【0323】
次に、プロセス4000は(4015において)、画素の行毎に、タッチされた画素からの距離を計算する。いくつかの実施形態では、プロセス4000はまた、計算された距離を正規化する。例えば、距離計算器3805は、画像の最上部から500番目の行とタッチされた画素との間の距離を計算する。距離は、1.1−(|499−799|*(1.0/max(799,2499−799))*1.25)となり、これは0.879411765になる。
【0324】
次に、プロセス4000は(4020において)、生成されたぼかし画像のそれぞれのため、及び元の画像のための重みを計算する。いくつかの実施形態では、プロセス4000はまた、全ての重みが総計で1.0になるように、計算された重みを正規化する。例えば、重み計算器3810は、全てのぼかし画像のための全てのガウスカーネルのために同じ幅を計算する。本例では、画像上ティルトシフトツールの2本の平行線の間の距離は200画素である。この距離は、正規化されると、1.1−(|200−799|*(1.0/最大(799,2499−799))*1.25)となり、これは0.658823529になる。それゆえ、幅は0.12*0.658823529/0.32となり、これは0.247058823になる。幅は0.06よりも小さくないので、幅は0.247058823になる。すると、元の画像のための重みは、e
((1.0−1.0)^2/2*(0.247058823)^2)となり、これは1になる。重み計算器3810がそれぞれのぼかし画像のための重みを計算した後、重み計算器3810は、元の画像のための計算された重みを正規化する。
【0325】
次に、プロセス4000は(4025において)、重み付けされた元の画像及び重み付けされたぼかし画像を加算する。すなわち、プロセス4000は、元の画像内の画素の重み付けされた画素値、及びぼかし画像内の対応する画素の重み付けされた画素値を加算する。
【0326】
本サブセクションでは、いくつかの実施形態の画像上ティルトシフトツールを説明した。以下の次のサブセクションは画像上ビネットツールを説明する。
【0327】
C.画像上ビネットツール
図41は、ユーザが、画像にタッチすることによって、画像の選択された部分にビネット効果を適用することを可能にするいくつかの実施形態の画像上効果ツールの使用を概念的に示す。具体的には、本図は、ユーザが、不可視の(例えば、境界のない)幾何学形状にタッチしてこれを操作することによって、画像3710にビネット効果を適用することを、6つの異なる段階4101〜4106において示す。
図41は、GUI400、サムネイル3720、画像3710、並びにアイコン3110及び3130〜2950を示す。
【0328】
上述のように、画像表示エリア410は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、幾何学形状を動かし、サイズ変更することによって、画像へのビネット効果の適用を操作することを可能にする。ユーザが画像のロケーションにタッチすると、画像編集アプリケーションは、画像のタッチされたロケーションに基づきビネット効果を適用する。いくつかの実施形態における画像編集アプリケーションは、画像のタッチされたロケーションを囲む不可視の幾何学形状(すなわち、可視的な境界線を有しない形状)を描画し、幾何学形状の外側にある画像のエリアを暗くする。その結果、幾何学形状の内側にある画像のエリアは、幾何学形状の外側にある画像のエリアよりも明るく見える。したがって、幾何学形状の外側のエリアと幾何学形状の内側のエリアとの明度の差の故に、幾何学形状は可視的に見える。しかし、形状はそれ自身の境界線を有しないという意味においては、幾何学形状自体は依然として不可視である。
【0329】
いくつかの実施形態の画像編集アプリケーションは、ユーザが幾何学形状(すなわち、より明るい領域)を動かし、サイズ変更することを可能にする。ユーザは、幾何学形状にタッチすることによって幾何学形状を動かし、幾何学形状を、表示された画像内の他のロケーションへドラッグすることができる。ユーザは、複数の指で幾何学形状の内部にタッチし、指を広げて離すことによって、幾何学形状を拡大することができる。ユーザは、幾何学形状の上でピンチジェスチャを実行すること(例えば、幾何学形状にタッチしている指同士をより近くに引き寄せること)によって、幾何学形状を収縮させることができる。
【0330】
いくつかの実施形態では、幾何学は任意の他の形状であってもよい。非包括的なリストは、円、三角形、長方形等を含む。形状は、不規則な形状、又は手、花等のなじみのある物体形状であってもよい。
【0331】
これより、GUI4100を有する画像編集アプリケーションの操作例を説明する。最初の2つの段階4101及びQ02はそれぞれ段階3701及び3702と同一である。前の段階3702におけるサムネイル3110のユーザの選択に応答して、画像編集アプリケーションは段階4103において、図示されているように、GUI400内に選択可能なUI項目3125のセットを表示する。ユーザは、UI項目3145にタッチすることによって画像上ビネットツールを選択する。画像編集アプリケーションは画像上ビネットツールを起動する。
【0332】
段階4104において、ユーザは指4110で画像内の左側の人物の顔の付近の画像のロケーションにタッチした。画像上ビネットツールは、画像のタッチされたロケーションを囲む境界のない楕円4120を描画し、楕円の外側のエリアを暗くする。その結果、左の人物の顔はスポットライトが当てられているように見える。
【0333】
段階4105において、ユーザは指4110を画像の別のロケーション、右側の人物の顔へドラッグする。画像上ビネットツールはそのロケーションまで楕円を指4110に追従させる(又はそれと一緒に移動させる)。代替的に、ユーザは画像から指4110を上げ、指4110で画像3710の最上部の付近のロケーションにタッチしていてもよく、又はユーザは画像3710にタッチしながら指4110をロケーションへドラッグしていてもよい。画像上ビネットツールは、図示されているように、楕円の外側のエリアを暗くすることによってビネット効果を適用した。
【0334】
次に段階4106において、ユーザは楕円4120上で、拡大アクション(例えば、画像にタッチしながら指を広げること)を実行した。画像上ビネットツールは楕円をサイズ変更し、サイズ変更された楕円サイズに基づきビネット効果を適用する。
【0335】
図42は、画像編集アプリケーションのユーザが画像にビネット効果を適用することを可能にするためにいくつかの実施形態が実行するプロセス4200を概念的に示す。いくつかの実施形態におけるプロセス4200は画像編集アプリケーションによって実行される。ユーザからのタッチ入力(例えば、タップ操作、スワイプ操作等)を受け取るためのタッチセンシティブスクリーン又はニアタッチセンシティブスクリーンを有するコンピューティングデバイス上で画像編集アプリケーションが動作すると、プロセス4200は開始する。プロセス4200は、(4205において)画像編集アプリケーションの画像表示エリア内に画像を表示することによって、始まる。
【0336】
次に、プロセス4200は(4210において)、表示された画像内のロケーション上におけるタッチ入力を受け取る。いくつかの実施形態では、プロセス4200は、ユーザがロケーション上をタップした時に、ロケーション上におけるタッチ入力を受け取る。プロセス4200は、ユーザが、(例えば、指を上げずに)表示された画像にタッチしながら、指を、表示された画像内の別のロケーションからドラッグした時に、タッチ入力を受け取る。
【0337】
次に、プロセス4200は(4215において)画像にビネット効果を適用する。ユーザが、表示された画像内のロケーションをタップすると、プロセス4200は不可視の幾何学形状を描画し、幾何学形状の外側のエリアを暗くする。
【0338】
図43は、画像編集アプリケーションのユーザが画像にビネットを適用することを可能にするためにいくつかの実施形態が実行するプロセス4300を概念的に示す。いくつかの実施形態におけるプロセス4300は画像上ビネットツールによって実行される。プロセス4300は、画像上ビネットツールが最初のタッチ入力を受け取り、最初のタッチ入力のロケーションに基づきビネット効果を適用した後に、開始する。
【0339】
プロセス4300は、画像上ビネットツールは新たなタッチ入力を受け取ったかどうかを判定することによって、始まる。プロセス4300が、画像上ビネットツールは新たなタッチ入力を受け取らなかったと判定した場合には、プロセス4300は、新たなタッチ入力を受け取るのを待つために、4320へループして戻る。
【0340】
プロセス4300が、画像上ビネットツールは新たなタッチ入力を受け取ったと判定した場合には、プロセス4300は、タッチ入力は幾何学形状に対するものであるのかどうかを判定するために、4325へ進む。いくつかの実施形態では、タッチ入力が幾何学形状の内部又はその付近のエリアにタッチした場合に、プロセス4300は、タッチ入力は幾何学形状に対するものであると判定する。プロセス4300が、タッチ入力は幾何学形状に対するものではないと判定した場合には、プロセス4300は、以下において更に説明される4360へ進む。
【0341】
プロセス4300が、タッチ入力は幾何学形状のためのものであると判定した場合には(4125)、プロセスは、タッチ入力はマルチタッチ入力であるかどうかを判定する(4130)。プロセス4300が、タッチ入力はマルチタッチ入力ではないと判定した場合には、プロセス4300は、以下において更に説明される4355へ進む。プロセス4300が(4330において)、タッチ入力はマルチタッチ入力であると判定した場合には、プロセス4300は、マルチタッチ入力はピンチアクションであったかどうかを判定するために、4335へ進む。
【0342】
プロセス4300が(4335において)、マルチタッチ入力はピンチアクションであったと判定した場合には、プロセス4300は(4340において)幾何学形状を収縮させ、幾何学形状のサイズを縮小する。プロセス4300が(4335において)、マルチタッチ入力はピンチアクションではなかったと判定した場合には、プロセス4300は(4345において)、マルチタッチ入力は、拡大アクション(又は、拡大ジェスチャ)であったかどうかを判定する。プロセス4300が(4345において)、マルチタッチ入力は拡大アクションではなかったと判定した場合には、プロセスは終了する。さもなければ、プロセス4300は幾何学形状を拡大する。
【0343】
プロセス4300が(4330において)、タッチ入力はマルチタッチ入力ではなかったと判定した場合には、プロセス4300は、タッチ入力はドラッグされたかどうかを判定する(4155)。プロセス4300が(4355において)、タッチはドラッグされなかったと判定した場合には、プロセス4300は終了する。さもなければ、プロセス4300は、タッチ入力のロケーション及び既定の幾何学形状に基づき、効果を適用する。
【0344】
図44は、いくつかの実施形態が、表示された画像内におけるユーザのタッチのロケーションに基づきビネット効果を適用するために実行するプロセス4400を概念的に示す。いくつかの実施形態におけるプロセス4400は画像上ビネットツールによって実行される。画像上ビネットツールがユーザのタッチのロケーションを受け取ると、プロセス4400は開始する。
【0345】
プロセス4400は、(4405において)スケール値を受け取ることによって、始まる。いくつかの実施形態では、ビネット効果は、単一の「スケール」値に基づく「シグモイド」形状の減衰である。スケール値は、画像上ビネットツールが起動されている時に、ユーザが、ピンチジェスチャ又は拡大ジェスチャを実行することによって調整する幾何学形状のサイズ(例えば、円形状の半径)に対応する。いくつかの実施形態では、スケール値は、0〜1の範囲を有するように正規化される。
【0346】
次に、プロセス4400は(4410において)円形状の内径及び外径を計算する。いくつかの実施形態では、プロセス4400は、半径を計算するために、以下の擬似コードの例を用いる。
innerRadius=scale*(1−scale)*0.8;
outerRadius=scale+0.5;
innerRadiusは円形状の内径である。outerRadiusは円形状の外径である。scaleは、受け取ったスケール値である。
【0347】
次に、プロセス4400は(4415において)、ユーザがタッチした画素と元の画像内のそれぞれの画素との間の距離を計算する。いくつかの実施形態では、距離は、以下のユークリッド距離メトリックを用いて算出される。
dist=((x−centerX)2+(y−centerY)
2)
(1/2);
distは、計算された距離である。xは画素のx座標であり、yは画素のy座標であり、画像の左下角部が原点、(0、0)である。いくつかの実施形態では、プロセスは、2乗された距離を用いる。
【0348】
次に、プロセス4400は(4420において)、計算された距離は、円形状の計算された内径よりも小さいかどうかを判定する。計算された距離が、計算された内径よりも小さい場合には、プロセス4400は(4425において)画像のそれぞれの画素のためのビネット値を第1の既定値に設定する。いくつかの実施形態では、第1の既定値は1.0である。次に、プロセスは、以下において更に説明する4455へ進む。
【0349】
プロセス4400が(4420において)、計算された距離は、円形状の計算された内径よりも小さくないと判定した場合には、プロセス4400は(4430において)、計算された距離は、円形状の計算された外径よりも大きいかどうかを判定する。計算された距離が、計算された外径よりも大きい場合には、プロセス4400は(4435において)画像のそれぞれの画素のためのビネット値を第2の既定値に設定する。いくつかの実施形態では、第2の既定値は0.05である。次に、プロセスは、以下において更に説明する4455へ進む。
【0350】
プロセス4400が(4430において)、計算された距離は、計算された外径よりも大きくないと判定した場合には、プロセス4400は(4440において)シグモイド形状の範囲を計算する。プロセスは(4420及び4430において)、計算された距離は、計算された内径よりも小さくなく、かつ計算された外径よりも大きくないと判定したため、処理されている画像の画素の間の距離は2つの半径の間にある。いくつかの実施形態におけるプロセス4400は、範囲を計算するために、以下の擬似コードの例を用いる:
range=3.0+2.0*scale;
【0351】
プロセス4400はまた(4445において)、以下の擬似コードの例を用いていくつかの正規化コンポーネントを計算する。
rangeMin=1/(1+e
range);
rangeNorm=1+e
−range−rangeMin;
rangeMinは、正規化された最小範囲である。rangeNormは、正規化された範囲である。
【0352】
次に、プロセス4400は(4450において)、画像であって、そのタッチされた画素からの距離は、計算された半径の間にある、画像のそれぞれの画素のためのビネット値を計算する。プロセス4400は、以下の擬似コードの例を用いてこのような画素のためのビネット値を計算する。
tmp=1/(1+e
tmp);
vignette=1−(tmp−rangeMin)*rangeNorm*0.95;
eはオイラー数である。rangeMin及びrangeNormは、ビネット値が1.0を超えるか又は0.05を下回るのを防ぐ働きをする。
【0353】
次に、プロセス4400は画像にビネットを適用する。いくつかの実施形態では、プロセスは、画像のそれぞれの画素値に画素のためのビネット値を単純に乗算することによって、画像にビネットを適用する。しかし、当業者は、画像の画素にビネット値を適用するために、乗算以外の方法が用いられてもよいことを認識するであろう。
【0354】
IV.代替的なユーザインタフェースレイアウト
上述の図に示されている画像編集アプリケーションのGUIは、画像編集アプリケーションが動作するデバイスは、GUIを表示するために十分大きいスクリーンを有することを前提として示されている。しかし、画像編集アプリケーションが動作するデバイスの一部は、制約されたスクリーンサイズを有する場合があり、より大きなデバイスのより大きなスクリーン内に項目が表示されるようにはUI項目を表示することができない場合がある。また、より大きなデバイスのより大きなスクリーンも、デバイスが異なる配向(例えば、縦向き)で保持されている時には、制約されていると見なされる場合がある。いくつかの実施形態では、画像編集アプリケーションは、制約されたスクリーンサイズに対応するために、異なる時間インスタンスにおいて異なるUI項目の異なるセットを表示する。
【0355】
図45A、
図45Bは、いくつかの実施形態のGUI4500を概念的に示す。具体的には、本図は、いくつかの実施形態の画像編集アプリケーションが異なる時間インスタンスにおいて異なるUI項目の異なるセットを表示することを、10個の異なる段階4501〜4510において示す。
図45A、
図45Bは、GUI4500は、制御ペイン4515、画像表示エリア4516、コレクション表示エリア4520、及びツールナビゲーションペイン4525を含むことを示す。
【0356】
画像表示エリア4516は、ユーザが画像編集アプリケーションを用いて編集したい画像を表示する点において、画像表示エリア4516は上述の画像表示エリア410と同様である。コレクション表示エリア4515は、コレクション表示エリア4515が画像編集アプリケーションを用いた編集に利用可能である画像のサムネイルのコレクションを表示する点において、コレクション表示エリア415と同様である。いくつかの実施形態では、画像編集アプリケーションは、ユーザが、異なるサムネイルを表示するために、上及び下あるいは横にスクロールすることを可能にする。また、画像編集アプリケーションは、サムネイルが選ばれ、対応する画像が表示エリア内に表示されていることを示すためのサムネイル上の視覚的な表示(例えば、強調表示)も提供する。更に、いくつかの実施形態の画像編集アプリケーションは、対応する画像が編集されたことを示すためのサムネイル上の視覚的な指示(例えば、ツールボックスアイコン)を提供する。
【0357】
ツールナビゲーションペイン4525は、異なる時間インスタンスにおいて、選択可能又は調節可能なUI項目の異なるセットを表示する。いくつかの実施形態では、ツールナビゲーションペイン4525内に現在表示されているユーザインタフェース項目のセットは、ツールナビゲーションペイン4525内に以前に表示されていたUI項目のセットとのユーザの対話に依存する。例えば、ユーザが、編集ツールのセットを表す特定のUI項目にタッチすると、その特定のUI項目に関連する編集ツールのセットのためのUI項目のセットが、ツールナビゲーションペイン4525内において特定のUI項目を含むUI項目のセットに取って代わる。
【0358】
画像編集アプリケーションは、ツールナビゲーションペイン4525内に表示された第1のUI項目のセットを多数の異なる方法で第2のUI項目のセットで置き換えてもよい。例えば、画像編集アプリケーションは、第2のセットがスライドして中に入ってくるのに従って、第1のセットに第2のセットを重ね合わせる。画像編集アプリケーションは、第2のセットをスライドさせて中に入れながら、第1のセットをスライドさせて外へ出す場合もある。更に、第1及び第2のセットによるスライドの方向は任意の方向−上、下、左、右、斜め等−であってもよい。
【0359】
ここで、GUI4500の操作例を説明する。段階4501において、画像編集アプリケーションは画像表示エリア4516内に画像4517を表示する。画像4517は、コレクション表示エリア4520内に表示されたサムネイル4535に対応する。すなわち、画像編集アプリケーションは、ユーザの選択(例えば、タッチすることによる)サムネイル4535に応答して画像表示エリア4516内に画像4517を表示する。この段階において、ユーザは、本例ではツールボックスを示すアイコンであるUI項目4530を選択する。UI項目4530は、画像編集アプリケーションが提供する編集ツールのセットを表す。
【0360】
次の段階4502は、ツールナビゲーションペイン4525内に表示されていた第1のUI項目のセット4524が第2のUI項目のセット4526によって置き換えられていくことを示す。本例では、段階4502は、第2のUI項目のセット4526が右へスライドし、ツールナビゲーションペイン4525内に入りつつ、第1のUI項目のセットに第2のUI項目のセットが重ね合わせられつつあることを示す。しかし、いくつかの実施形態では、図示されているように、第2のUI項目のセット4526がスライドしてUI項目4530の下に潜り込み、第1のUI項目のセットの残りのものの上に覆い被さりつつある間、第1のUI項目のセットのUI項目4530は定位置にとどまる。
【0361】
段階4503において、画像編集アプリケーションはツールナビゲーションペイン4525内に第2のUI項目のセット4526を表示する。図示されているように、本例における第2のUI項目のセット4526は、UI項目4545、4550、及び4555を含む、5つのUI項目を含む。第2のUI項目のセットに属さないUI項目4540がUI項目4530に取って代わった。UI項目4540は、第2のUI項目のセットをツールナビゲーションペイン4525内の別のUI項目のセットで置き換えるためのものである。UI項目4540はまた、ユーザが、ユーザは第2のUI項目のセットによって表された編集ツールを使用したくないことを示すためにタッチするためのものでもある。UI項目4545は画像上切り抜き及び角度補正ツールを表す。UI項目4550は画像上ブラシツールを表す。UI項目4555は画像上効果ツールを表す。この段階において、ユーザは、画像上切り抜き及び角度補正ツールを選択するためにUI項目4545にタッチする。
【0362】
段階4504において、画像編集アプリケーションは、前の段階4503におけるユーザのUI項目4545の選択に応答して、第3のUI項目のセットを現しつつある。いくつかの実施形態では、画像編集アプリケーションは、第3のUI項目のセットを現すために、第2のUI項目のセットをスライドさせて外へ出す。第3のUI項目のセットは、段階4504においては完全に示されていないが、切り抜き及び角度補正ツールを表す。いくつかの実施形態では、画像編集アプリケーションは、図示されているように、第2のUI項目のセットを左へスライドさせ、UI項目4540の下へ潜り込ませて外へ出す。
【0363】
次の段階4505は、画像編集アプリケーションが第2のUI項目のセット及びUI項目4540を第3のUI項目のセットで置き換えた後のGUI4500を示す。第3のUI項目のセットは切り抜き及び角度補正ツールを表し、UI項目4560及び4565を含む。UI項目4550は、現在、ツールナビゲーションペイン4525内に示され、起動されているのは、切り抜き及び角度補正ツールであることを示す。UI項目4560はまた、第3のUI項目のセットをツールナビゲーションペイン4525内の別のUI項目のセットで置き換えるためのものでもある。UI項目4560は、ユーザが、ユーザは、切り抜き及び角度補正ツールを用いることを望まないか又はそれを用いることを終えたことを示すためにタッチするためのものでもある。UI項目4565は上述のダイアル455と同様である。また、段階4505において、ユーザは、画像を切り抜くために、表示された画像4517上で拡大ジェスチャを実行した。
【0364】
次の段階4506は、切り抜き及び角度補正ツールが画像4517を拡大し、画像表示エリア4516内に表示可能でなかった画像の部分を切り落とした後のGUI4500を示す。ユーザはまた、切り抜き及び角度補正ツールから抜けるために、UI項目4560にタッチする。
【0365】
段階4507において、画像編集アプリケーションは、前の段階4506におけるユーザのUI項目4560の選択に応答して、第2のUI項目のセットをスライドさせて入れつつある。図示されているように、いくつかの実施形態では、画像編集アプリケーションは第2のUI項目のセット4526を、UI項目4565の上に覆い被さるが、UI項目4560の下へ潜り込むように、左へスライドさせて中へ入れる。
【0366】
次の段階4508は、画像編集アプリケーションが第3のUI項目のセットを第2のUI項目のセットで置き換えた後のGUI4500を示す。第3のUI項目のセットのUI項目4560は、図示されているように、UI項目4540によって置き換えられた。画像編集アプリケーションはまた、サムネイル4535上に視覚的な指示4560も重ね合わせた。視覚的な指示4560は、サムネイル4535によって表されている画像が編集されたことを示す。段階4508において、ユーザは、第2のUI項目のセット4526から抜けるために、UI項目4540を選択する。
【0367】
段階4509において、画像編集アプリケーションは、前の段階4506におけるユーザのUI項目4540の選択に応答して、第1のUI項目のセットを現すために、第2のUI項目のセットを左へスライドさせ、UI項目4540の下へ潜り込ませて外へ出しつつある。次の段階4510は、画像編集アプリケーションが第2のUI項目のセットを第1のUI項目のセットで置き換えた後のGUI4500を示す。図示されているように、UI項目4530がUI項目4540に取って代わった。
【0368】
V.ソフトウェアアーキテクチャ
いくつかの実施形態では、
図5、8、11、15、17、21、25、28、30、32、34、36、40、42、43、及び44を参照して上述されているプロセスは、コンピュータ若しくはハンドヘルドデバイス等の特定の装置上で動作するソフトウェアとして実装されるか、又はコンピュータ可読媒体内に記憶される。
図46は、いくつかの実施形態の画像編集アプリケーション4600のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、画像編集アプリケーションは、独立型アプリケーションであるか又は別のアプリケーションに一体化され、他の実施形態において、アプリケーションは、オペレーティングシステム内で実施されてもよい。更に、いくつかの実施形態において、アプリケーションは、サーバベースソリューションの一部として提供される。いくつかのそのような実施形態において、アプリケーションは、シンクライアントによって提供される。即ち、アプリケーションは、サーバ上で動作し、ユーザは、サーバからリモートの別個のマシンを介してアプリケーションと対話する。他のそのような実施形態において、アプリケーションは、シッククライアントによって提供される。即ち、アプリケーションは、サーバからクライアントマシンに分配され、クライアントマシン上で動作する。
【0369】
画像編集アプリケーション4600は、ユーザインタフェース(UI)対話モジュール4605、切り抜き及び角度補正ツール4610、ブラシツール群4615、効果ツール群4620、ティルトシフトツール4625、グラデーションツール4630、ビネットツール4635、及び起動マネージャ4670を含む。画像編集アプリケーションはまた、ソースファイル4640及び編集命令4645も用いる。いくつかの実施形態では、ソースファイル4640はメディアコンテンツ(例えば、テキスト、音声、画像、及びビデオコンテンツ)を記憶する。編集命令4645は、画像編集アプリケーション4600が実行した画像編集操作を命令のセットとして記憶する。画像編集アプリケーション4600は、ソースファイル内に記憶されている元のデータに基づき新しい画像を生成するために、これらの命令のセット用いる。いくつかの実施形態では、メディアコンテンツデータは、.mov、.avi、.jpg、.png、gif、pdf、.mp3、.wav、.txt等のファイルとしてソースファイル4640内に記憶される。いくつかの実施形態では、記憶4640及び4645は全て1つの物理記憶内に記憶される。他の実施形態では、記憶は別個の物理記憶内にあるか、又は記憶の一方は1つの物理記憶内にあり、その一方、他方は異なる物理記憶内にある。例えば、その他のプロジェクトデータ及びソースファイルは多くの場合、別々にあることになる。
【0370】
図46は、また、入力デバイスドライバ(単数又は複数)4660及びディスプレイモジュール4665を含むオペレーティングシステム4650を示す。いくつかの実施形態では、図示されているように、デバイスドライバ4655及び4660並びにディスプレイモジュール4665は、画像編集アプリケーションがオペレーティングシステムと別個のアプリケーションのときでも、オペレーティングシステム4655の一部である。
【0371】
入力デバイスドライバ4660は、キーボード、マウス、タッチパッド、タブレット、タッチスクリーン、ジャイロスコープ、加速度計などからの信号を変換するためのドライバを含むことがある。ユーザは、これらの入力装置のうちの1つ以上と対話し、これらの入力装置は、信号をその対応するデバイスドライバに送る。次に、デバイスドライバは、信号を、UI対話モジュール4605に提供されるユーザ入力データに変換する。
【0372】
本出願は、異なる組の動作及び機能を実行する多数の方法をユーザに提供するグラフィカルユーザインタフェースについて述べる。いくつかの実施形態において、これらの動作及び機能は、様々な入力装置(例えば、キーボード、トラックパッド、タッチパッド、マウスなど)を介してユーザから受け取った様々なコマンドに基づき実行される。例えば、本出願は、グラフィカルユーザインタフェース内のカーソルを使用してグラフィカルユーザインタフェース内のオブジェクトを制御する(例えば、選択し、移動させる)ことを説明する。しかしながら、いくつかの実施形態において、グラフィカルユーザインタフェース内のオブジェクトを、タッチ制御などの他の制御によって制御又は操作することもできる。いくつかの実施形態において、タッチ制御は、装置のディスプレイ上のタッチの存在及び位置を検出することができる入力装置によって実現される。そのような装置の一例は、タッチスクリーン装置である。いくつかの実施形態において、タッチ制御によって、ユーザは、タッチスクリーン装置のディスプレイ上に重ね合わせられたグラフィカルユーザインタフェースとの対話によって、オブジェクトを直接操作することができる。例えば、ユーザは、タッチスクリーン装置のディスプレイ上の特定のオブジェクトにタッチするだけで、グラフィカルユーザインタフェース内の特定のオブジェクトを選択することができる。したがって、タッチ制御が利用されるとき、いくつかの実施形態において、グラフィカルユーザインタフェースのオブジェクトの選択を可能にするためにカーソルが提供されなくてもよい。しかしながら、グラフィカルユーザインタフェース内にカーソルが提供されるとき、いくつかの実施形態において、タッチ制御を使用してカーソルを制御することができる。
【0373】
更に、本出願は、いくつかの実施形態において、メディアクリップ又は一連のメディアクリップを編集するために種々のコマンド(例えば、トリミング、編集点の拡張、分割、関心のある領域のマーキングなど等の編集コマンド)を呼び出すためのホットキーの使用を説明する。いくつかの実施形態では、ホットキーは典型的なキーボード(例えば、デスクトップコンピュータのためのキーボード、スマートフォンのためのキーパッド等)内の有形のキーである。しかし、他の実施形態では、ホットキーはタッチ制御を通じて提供される。いくつかのこのような実施形態におけるホットキーは、タッチスクリーン装置上にレンダリングされたグラフィカルキーボード内のキー、選択可能若しくはクリック可能である任意のユーザインタフェース項目、又は任意のその他のタッチスクリーン手法である。
【0374】
ディスプレイモジュール4665は、ディスプレイ装置用のユーザインタフェースの出力を変換する。即ち、ディスプレイモジュール4665は、何を表示すべきかを示す信号を(例えば、UI対話モジュール4605から)受け取り、それらの信号をディスプレイ装置に送られる画素情報に変換する。ディスプレイ装置は、LCD、プラズマスクリーン、CRTモニタ、タッチスクリーンなどでよい。
【0375】
画像編集アプリケーション4600のUI対話モジュール4605は、入力デバイスドライバから受け取ったユーザ入力データを解釈し、それを、切り抜き及び角度補正ツール4610、ブラシツール群4615、効果ツール群4620、ティルトシフトツール4625、グラデーションツール4630、及びビネットツール4635を含む、種々のモジュールに渡す。UI対話モジュールは、また、UIの表示を管理し、この表示情報をディスプレイモジュール4665に出力する。
【0376】
起動マネージャ4670は編集ツールの起動及び停止を管理する。起動マネージャ4670は、編集ツールを起動及び停止するためのUI項目へのユーザ入力を解釈し、画像へのユーザ入力が適切な編集ツール(単数又は複数)によって処理されるように、編集ツールを起動及び停止する。
【0377】
ツール4610は切り抜き、角度補正、及び拡大操作を実行する点において、切り抜き及び角度補正ツール4610は上述の切り抜き及び角度補正ツールと同様である。ブラシツール群4615は、上述の欠点除去ツール、赤目除去ツール、飽和ツール、脱飽和ツール、明色化ツール、暗色化ツール、シャープ化ツール、ソフト化ツール、及びスマート縁部検出ツールを含む。効果ツール群4620は、表示された画像に効果を適用するためのツール群を含む。ティルトシフトツール4625は上述のティルトシフトツールと同様である。いくつかの実施形態におけるグラデーションツール群4630は、上述されている暗色グラデーションツール、暖色グラデーションツール、寒色グラデーションツール、青色グラデーションツール、及びコーヒーグラデーションツールを含む。ビネットツール4635は上述のビネットツールと同様である。
【0378】
特徴の多くは、1つのモジュール(例えば、グラデーションツール群4630)によって実行されるように説明されているが、当業者は、機能は複数のモジュールに分割される場合があり得ること、及び1つの特徴の実行でも複数のモジュールを必要とする場合があり得ることを認識するであろう。
【0379】
VI.画像閲覧、編集、及び編成アプリケーション
上述した種々の図は、いくつかの実施形態の画像閲覧、編集、及び編成アプリケーションのGUIの様々な実施例を示したものである。
図47は、画像を閲覧、編集、及び編成するいくつかの実施形態のGUI4700の詳細図を示す。いくつかの実施形態のアプリケーションによって記憶される画像についてデータ構造4800を概念的に示す
図48をある程度参照してGUI4700を説明する。
【0380】
データ構造4800は、画像ID4805と、画像データ4810と、編集命令4815と、画像のキャッシュされたバージョン4840と、画像の任意の更なるデータ4850とを含む。画像ID4805は、いくつかの実施形態において、コレクション内に記憶された画像を参照するためのコレクションデータ構造によって使用される画像の固有の識別子である。画像データ4810は、画像を表示する実際のフルサイズの画素データ(例えば、画像又はその符号化されたバージョン内の各画素の一連の色空間チャネル値)である。いくつかの実施形態において、このデータは、画像閲覧、編集、及び編成アプリケーションのデータベース内に記憶することができるか、又は同じ機器上で別のアプリケーションのデータと共に記憶することができる。いくつかの実施形態において、追加のアプリケーションは、画像閲覧、編集、及び編成が動作する機器で動作する別の画像編成アプリケーションである。
【0381】
したがって、データ構造は、アプリケーションに関連したローカルファイルへのポインタ、又は別のアプリケーションのデータベースに問い合わせるために使用することができるIDを記憶することができる。いくつかの実施形態において、アプリケーションがジャーナル内の画像を使用するか、又は画像の編集を行うと、アプリケーションは、画像データを含む画像ファイルのローカルコピーを自動的に作製する。
【0382】
編集命令4815は、ユーザが画像に適用した任意の編集に関する情報を含む。このようにすると、アプリケーションは、アプリケーションがいつでも画像の編集されたバージョンから原本に簡単に戻すことができるように、非破壊形式で画像を記憶する。例えば、ユーザは、画像に飽和効果を適用して、アプリケーションを出て、その後、別の折りにアプリケーションを再開して効果を除去することができる。これらの命令に記憶された編集は、切り抜き及び回転、完全な画像露光及び色調整、局所化された調整及び特殊効果、並びに画像の画素に影響を与える他の編集とすることができる。いくつかの実施形態は、ユーザが特定の組の編集の適用のみで、画像の異なるバージョンを閲覧することができるように、特定の順番でこれらの編集命令を記憶する。
【0383】
いくつかの実施形態において、編集命令4815は、編集作業のリスト4860として実行される。リスト4860は、編集4861、4862、4863、及び4865などの編集作業を含む。リスト4860内の各編集作業では、編集作業を実行するのに必要なパラメータを指定する。例えば、リスト4860内の編集作業4865は、画像に対する、色選択パラメータθを用いて飽和効果を適用する編集を指定する。
【0384】
いくつかの実施形態において、リスト4860は、最終的な編集された画像を作成するためにユーザによって着手された編集作業のシーケンスを記録する。いくつかの実施形態において、リスト4860は、いくつかの実施形態がアプリケーションによって行われる異なる可能な編集について特定の順序を規定するので、画像編集アプリケーションが表示に対して出力画像を生成するために編集を画像に適用する順序で編集命令を記憶する。例えば、いくつかの実施形態は、切り抜き及び回転、完全な画像露光、及び色調整等の他の編集作業よりも後に適用されることになる編集作業の1つとして飽和効果を定義する。これらの実施形態の一部のリスト4860は、飽和効果のための編集命令を、他の編集作業のうちの一部(例えば、編集4861〜1363)よりも後に適用されるであろう位置(すなわち、編集4865)内に記憶するであろう。
【0385】
キャッシュされた画像バージョン4840は、共通にアクセス及び表示される画像のバージョンを格納し、その結果、アプリケーションは、これらの画像をフルサイズの画像データ4810から繰り返し生成する必要がない。例えば、アプリケーションは、画像のサムネイル、並びに、表示解像度バージョン(例えば、画像表示エリアに対して調整されたバージョン)を記憶することが多いだろう。いくつかの実施形態のアプリケーションは、編集が適用されるたびに画像の新しいサムネイルを生成して先のサムネイルを入れ替える。いくつかの実施形態は、元の画像及び画像の1つ以上の編集されたバージョンを含め複数の表示解像度のバージョンを記憶する。
【0386】
最後に、画像データ構造4800は、アプリケーションが画像と共に記憶することがあり得る更なるデータ4850(例えば、場所及び顔のサイズなど)を含む。いくつかの実施形態において、更なるデータとして、エクスチェンジャブル・イメージ・ファイル・フォーマット(Exchangeable image file format、Exif)データ、見出しデータ、共有画像データ、画像上のタグ、又は任意の他の形式のデータを挙げることができる。Exifデータは、カメラ設定、GPSデータ、タイムスタンプなど等の、画像をキャプチャしたカメラによって記憶される種々の情報を含む。見出しは、ユーザによって入力される画像の説明である。タグは、画像をお気に入り、フラグ付き、非表示等としてマーキングするなどのように、アプリケーションが、ユーザが画像に関連付けることを許す情報である。
【0387】
当業者は、画像データ構造4800は、画像の所要の情報を記憶するためにアプリケーションが使用することがあり得る1つの可能なデータ構造であるにすぎないことを認識するであろう。例えば、異なる実施形態は、更なる又はより少ない情報を記憶する、異なる順番で情報を記憶するなどし得る。
【0388】
図47に戻ると、GUI4700は、サムネイル表示エリア4705と、画像表示エリア4710と、第1のツールバー4715と、第2のツールバー4720と、第3のツールバー4725とを含む。サムネイル表示エリア4705は、選択されたコレクション内の画像のサムネイルを表示する。サムネイルは、フルサイズの画像の小さい表現であり、いくつかの実施形態において画像の一部のみを表す。例えば、サムネイル表示エリア4705内のサムネイルは、フルサイズの画像のアスペクト比にかかわらず、全て、正方形である。サムネイルに使用するべき矩形画像の部分を判断するために、アプリケーションは、画像の小さい方の寸法を識別して、画像の中心部を長い方の方向に使用する。例えば、1600×1200画素の画像であれば、アプリケーションは、4700×1200の正方形を使用することになる。選択された部分をサムネイルに対して更に洗練するために、いくつかの実施形態は、(顔検出アルゴリズムを使用して)画像内の全ての顔の中心を識別して、その後、この場所を利用して切り取られる方向にサムネイル部分の中心を置く。したがって、理論的な1600×1200画像の顔が全て画像の左側に位置する場合、アプリケーションは、両側で200列を切り落すのではなく、画素の一番左の4700列を使用することになる。
【0389】
サムネイルに使用するべき画像の部分を判断した後に、画像閲覧アプリケーションは、(例えば、画素混合及び他の技法を使用して)画像の低解像度バージョンを生成する。いくつかの実施形態のアプリケーションは、画像のサムネイルを画像のキャッシュされたバージョン4840として記憶する。したがって、ユーザがコレクションを選択するとき、アプリケーションは、(コレクションデータ構造を介して)コレクション内の画像の全てを識別して、サムネイル表示エリアでの表示のために各画像データ構造内のキャッシュされたサムネイルにアクセスする。
【0390】
ユーザは、(例えば、上述の様々なタッチ相互作用を介して、又は他のユーザ入力相互作用を介して)サムネイル表示エリア内の1つ以上の画像を選択することができる。選択されたサムネイルは、選択のハイライト又は他のインジケータで表示される。サムネイル表示エリア4705において、サムネイル4730が選択される。更に、図示されるように、いくつかの実施形態のサムネイル表示エリア4705は、コレクション内のフラグが付された(例えば、はいに設定されたフラグのタグを有する)いくつかの画像を表示する。いくつかの実施形態において、このテキストは、フラグ付きの画像のサムネイルのみを表示するために選択可能である。
【0391】
アプリケーションは、選択された画像を対応するサムネイルよりも大きい解像度にて画像表示エリア4710内に表示する。画像は、ディスプレイ機器よりも高い解像度を有するので通常は画像のフルサイズでは表示されないことが多い。この点を踏まえて、いくつかの実施形態のアプリケーションは、画像表示エリアに収まるようにデザインされた画像のキャッシュされたバージョン4840を記憶する。画像表示エリア4710内の画像は、フルサイズの画像のアスペクト比で表示される。1つの画像が選択されたとき、アプリケーションは、画像の一切の部分を切り落すことなく、画像表示エリア以内でできるだけ大きい画像を表示する。複数の画像が選択されたとき、アプリケーションは、画像が異なるアスペクト比を有するときでも各画像についてほぼ同じ画素数を使用することによって視覚的重み付けを維持するように画像を表示する。
【0392】
第1のツールバー4715は、タイトル情報(例えば、GUIに示すコレクションの名前、ユーザが現在選択されている画像に付け加えた見出しなど)を表示する。更に、ツールバー4715は、第1の組のGUI項目4735〜1238と、第2の組のGUI項目4740〜1243とを含む。
【0393】
GUI項目の第1の組は、戻るボタン4735と、格子ボタン4736と、ヘルプボタン4737と、取り消しボタン4738とを含む。戻るボタン4735によって、ユーザは、画像の異なるコレクション(例えば、アルバム、イベント、ジャーナルなど)から選択することができるコレクション編成GUIに戻ることができる。グリッドボタン4736の選択によって、アプリケーションは、(例えば、スライドアニメーションを介して)サムネイル表示エリアをGUIに乗せ、又はサムネイル表示エリアから外す。いくつかの実施形態において、ユーザは、スワイプジェスチャを介してサムネイル表示エリアをGUIに乗せた、又はサムネイル表示エリアから外すこともできる。ヘルプボタン4737は、ユーザに対してアクティブな現在のツールセットを識別するコンテキストに応じたヘルプ機能を起動させて、ツールをユーザに簡潔に記述するツールのペルプインジケータを提示する。いくつかの実施形態において、ペルプインジケータは、ツールに関する追加情報にアクセスするために選択可能である。取り消しボタン4738の選択によって、アプリケーション、この編集が切り抜き、色調整などであるかどうかにかかわらず、画像の最新の編集を除去する。この取り消しを行うために、いくつかの実施形態は、最新の命令を画像とともに記憶された編集命令4815の組から除去する。
【0394】
GUI項目の第2の組は、共有ボタン4740と、情報ボタン4741と、原本を示すボタン4742と、編集ボタン4743とを含む。共有ボタン4740によって、ユーザは、様々な異なる方法で画像を共用することができる。いくつかの実施形態において、ユーザは、選択した画像を同じネットワーク(例えば、Wi Fi(登録商標)又はBluetooth(登録商標)ネットワーク)上の別の適合した機器に送り、画像を画像ホスティング又はソーシャルメディアウェブサイトにアップロードし、かつ、とりわけ、選択した画像の組からジャーナル(即ち、追加のコンテンツを追加することができる配置された画像のプレゼンテーション)を作成することができる。
【0395】
情報ボタン4741は、1つ以上の選択された画像に関する追加の情報を表示する表示エリアを起動させる。起動した表示エリア内で表示される情報は、画像について記憶されたExifデータ(例えば、カメラ設定、タイムスタンプなど)の一部又は全部を含むことができる。複数の画像が選択されたとき、いくつかの実施形態は、選択された画像の全てに共通のExifデータのみを表示する。いくつかの実施形態は、(i)情報が利用可能な場合、GPSデータに従ってどこで画像又は複数の画像がキャプチャされたかを示すマップを表示し、かつ、(ii)任意の写真共有ウェブサイト上の画像についてコメントストリームを表示する追加のタブを情報表示エリア内に含む。ウェブサイトからこの情報をダウンロードするために、アプリケーションは、共有画像データと共に画像について記憶されたオブジェクトIDを使用してウェブサイトにこの情報を送信する。コメントストリーム、及び場合によっては追加の情報が、ウェブサイトから受信されてユーザに表示される。
【0396】
原本を示すボタン4742によって、ユーザは、画像の元のバージョンと画像の現在の編集されたバージョンを切り替えることができる。ユーザがボタンを選択したとき、アプリケーションは、編集命令4815が一切適応されていない画像の元のバージョンを表示する。いくつかの実施形態において、適切なサイズ画像が、画像のキャッシュされたバージョン4840の1つとして記憶され、この画像が素早くアクセス可能となる。ユーザがボタン再び4742を再び選択したとき、アプリケーションは、編集命令4815を適用された画像の編集されたバージョンを表示する。
【0397】
編集ボタン4743によって、ユーザは、編集モードに入るか又は編集モードを出ることができる。ユーザがツールバー4720内の編集ツールの1組を選択したとき、
図47に示されるように、編集ボタン4743は、閲覧及び編成モードにユーザを戻す。ユーザが閲覧モードにある間に編集ボタン4743を選択したとき、アプリケーションは、ツールバー4720に示す順番で最後に使用された1組の編集ツールに戻る。即ち、ツールバー4720内の項目は、特定の順序で配置され、編集ボタン4743は、選択された画像に編集が行われた項目の一番右を起動させる。
【0398】
ツールバー4720は、言及したように、左から右に特定の順序で配置された5つの項目4745〜1249を含む。切り抜き項目4745は、ユーザがゆがんだ画像を整合させて画像の不必要な部分を除去することを可能にする切り抜き及び回転ツールを起動させる。露光項目4746は、ユーザが画像の黒色点、シャドウ、コントラスト、明度、ハイライト、及び白色点を修正することを可能にする1組の露光ツールを起動させる。いくつかの実施形態において、この1組の露光ツールは、画像の階調属性を修正するために異なる組み合わせで共に機能する1組のスライダである。色項目4747は、ユーザが飽和及び活気、並びに、色特有の飽和(例えば、青色画素又は緑色画素)及びホワイトバランスを修正することを可能にする1組の色ツールを起動させる。いくつかの実施形態において、これらのツールの一部は、1組のスライダとして提示される。ブラシ項目4748は、ユーザが画像の修正を局所化することを可能にする1組の補正ツールを起動させる。ブラシで、ユーザは、赤目及び傷を除去し、かつ、擦るアクションを画像上に行うことによって画像の局所化された部分に飽和及び他の特徴を適用又は除去することができる。最後に、効果項目4749は、ユーザが画像に適用することができる1組の特殊効果を起動させる。これらの効果としては、デュオトーン効果、ざらざら効果、グラデーション、ティルトシフト、非写実的不飽和化効果、グレイスケール効果、様々なフィルタなどがある。いくつかの実施形態において、アプリケーションはこれらの効果を、ツールバー4725から展開する項目のセットとして提示する。
【0399】
述べたように、UI項目4745〜1249は、特定の順番で配置される。この順序は、ユーザが最も一般に5つの異なる形式の編集を適用する順序に従う。したがって、編集命令4815は、いくつかの実施形態においてこの同じ順番で記憶される。ユーザが項目4745〜1249の1つを選択したとき、いくつかの実施形態は、選択されたツールの左のツールからの編集のみを表示された画像に適用する(が、他の編集は命令セット4815内に記憶されたままである)。
【0400】
ツールバー4725は、1組のGUI項目4750〜1254、並びに、設定項目4755を含む。自動増強項目4750は、補正編集(例えば、明らかな赤目の除去、色バランス調整など)を画像に自動的に行う。回転ボタン4751は、任意の選択された画像を回転させる。いくつかの実施形態において、回転ボタンが押されるたびに、画像は、特定の方向に90°回転する。自動補正は、いくつかの実施形態において、命令セット4815内に置かれる所定の組の編集命令を含む。いくつかの実施形態は、画像の分析を行って、その後、分析結果に基づき1組の命令を定義する。例えば、自動増強ツールは、画像において赤目を検出しようとするが、赤目が検出されなかった場合、赤目を補正する命令は、生成されない。同様に、自動色バランス調整は、画像の分析結果に基づく。回転ボタンによって生成された回転も、編集命令として記憶される。
【0401】
フラグボタン4752は、任意の選択された画像にフラグ付きとしてタグを付ける。いくつかの実施形態において、コレクションのフラグ付き画像は、フラグなし画像が一切なく表示することができる。お気に入りボタン4753によって、ユーザは、任意の選択された画像をお気に入りとしてマーキングすることができる。いくつかの実施形態において、これによって、お気に入りとして画像にタグが付され、また画像がお気に入り画像のコレクションに追加される。非表示ボタン4754によって、ユーザは、画像に非表示としてタグを付けることができる。いくつかの実施形態において、非表示画像は、サムネイル表示エリア内で表示されず、及び/又はユーザが画像表示エリア内でコレクションの画像を巡回するときに表示されない。
図48を参照して上に論じたように、これらの特徴の多くは、タグとして画像データ構造に記憶される。
【0402】
最後に、設定ボタン4755は、現在アクティブのツールセットに応じて異なるメニューオプションを提示するコンテキストに応じたメニューを起動させる。例えば、閲覧モードでは、いくつかの実施形態のメニューは、新しいアルバムの作成、アルバム用の重要な写真の設定、及び写真間での設定のコピーのためのオプション、及び他のオプションを提示する。編集ツールの異なる組がアクティブとき、メニューは、特定のアクティブのツールセットに関係するオプションを提示する。
【0403】
当業者は、画像閲覧及び編集GUI4700は、画像閲覧、編集及び編成アプリケーションに関する画像の多くの可能なグラフィカルユーザインタフェースの1つの実施例にすぎないことを認識するであろう。例えば、様々な項目は、異なるエリアに、又は異なる順序で位置することができ、いくつかの実施形態は、追加の又は異なる機能性を有する項目を含むことがあり得る。いくつかの実施形態のサムネイル表示エリアは、対応するフルサイズの画像などのアスペクト比に適合するサムネイルを表示することがあり得る。
【0404】
VII.電子システム
前述の機能及びアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録される命令セットとして指定されるソフトウェアプロセスとして実現される。これらの命令が、1つ以上の計算又は処理ユニット(例えば、1つ以上のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行されるとき、それらの命令は、処理ユニットに、命令に示されたアクションを実行させる。コンピュータ可読媒体の例には、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードディスク、消去可能プログラム可能な読出し専用メモリ(EPROM)、電気的消去可能プログラム可能な読み出し専用メモリ(EEPROM)などがあるが、これらに限定されない。コンピュータ可読媒体は、無線によって又は有線接続により進行する搬送波及び電子信号を含まない。
【0405】
この明細書では、用語「ソフトウェア」は、プロセッサによって処理するためにメモリに読み込むことができる、読み出し専用メモリ内に存在するファームウェア又は磁気記憶装置に記憶されたアプリケーションを含む。また、いくつかの実施形態において、複数のソフトウェア発明は、別個のソフトウェア発明をそのままにしながら、より大きいプログラムの下位区分として実施されてもよい。いくつかの実施形態において、複数のソフトウェア発明を別個のプログラムとして実行することもできる。最後に、本明細書で述べたソフトウェア発明を一緒に実行する別個のプログラムの如何なる組み合わせも本発明の範囲内である。いくつかの実施形態において、ソフトウェアプログラムは、1つ以上の電子システム上で動作するようにインストールされたとき、ソフトウェアプログラムの動作を実行し行なう1つ以上の特定のマシン実装を定義する。
【0406】
A.モバイルデバイス
いくつかの実施形態の画像編集及び閲覧アプリケーションは、モバイルデバイス上で動作する。
図49は、そのようなモバイルコンピューティングデバイスのアーキテクチャ4900の実施例である。モバイルコンピューティングデバイスの実施例としては、スマートフォン、タブレット、ラップトップなどが挙げられる。図示されるように、モバイルコンピューティングデバイス4900は、1つ以上の処理ユニット4905と、メモリインタフェース4910と、周辺機器インタフェース4915とを含む。
【0407】
周辺機器インタフェース4915は、カメラサブシステム4920、無線通信サブシステム4925、オーディオサブシステム4930、I/Oサブシステム4935などを含め、様々なセンサ及びサブシステムに結合される。周辺機器インタフェース4915は、処理ユニット4905と様々な周辺機器との間の通信を可能にする。例えば、配向センサ4945(例えば、ジャイロスコープ)及び加速度センサ4950(例えば、加速度計)は、配向及び加速度機能を容易にするために周辺機器インタフェース4915に結合される。
【0408】
カメラサブシステム4920は、1つ以上の光センサ4940(例えば、電荷結合素子(charged coupled device、CCD)光センサ、相補型金属酸化膜半導体(complementary metal-oxide-semiconductor、CMOS)光センサなど)に結合される。光センサ4920と結合されたカメラサブシステム4940は、画像及び/又は映像データキャプチャなど、カメラ機能を容易にする。無線通信サブシステム4925は、通信機能を容易にする役目をする。いくつかの実施形態において、無線通信サブシステム4925は、無線受信器及び送信器と、光受信器及び送信器(
図49では図示せず)とを含む。いくつかの実施形態のこれらの受信器及び送信器は、GSM(登録商標)ネットワーク、WiFiネットワーク、Bluetooth(登録商標)ネットワークなどの1つ以上の通信ネットワーク上で動作するように実装される。オーディオサブシステム4930は、オーディオを出力するために、(例えば、異なる画像操作に関連した異なる音響効果を出力するために)スピーカに結合される。更に、オーディオサブシステム4930は、音声認識、デジタル録音など音声起動機能を容易にするためにマイクに結合される。
【0409】
I/Oサブシステム4935は、周辺機器インタフェース4915を介して、ディスプレイ、タッチスクリーンなど入出力周辺機器4905とCPUのデータバスとの間の転送を行う。I/Oサブシステム4935は、入出力周辺装置と処理ユニット4905のデータバスの間で転送を容易にするために、タッチスクリーンコントローラ4955と他の入力コントローラ4960とを含む。図示されるように、タッチスクリーンコントローラ4955は、タッチスクリーン4965に結合される。タッチスクリーンコントローラ4955は、複数のタッチ感度技術のいずれかを使用してタッチスクリーン4965上の接触及び動きを検出する。他の入力コントローラ4960は、1つ以上のボタンなど、他の入力/コントロール機器に結合される。いくつかの実施形態は、タッチ相互作用の代わりに、又はそれに加えてニアタッチ(near−タッチ)相互作用を検出することができるニアタッチ感応画面(near−タッチセンシティブスクリーン)及び対応するコントローラを含む。
【0410】
メモリインタフェース4910は、メモリ4970に結合することができる。いくつかの実施形態において、メモリ4970は、揮発性メモリ(例えば、高速ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、揮発性及び不揮発性メモリの組み合わせ及び/又は任意の他の形式のメモリを含む。
図49に示されるように、メモリ4970は、オペレーティングシステム(OS)4972を記憶する。OS 4972は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。
【0411】
メモリ4970は、1つ以上の追加の機器と通信することを容易にする通信命令4974と、グラフィカルユーザインタフェース処理を容易にするグラフィカルユーザインタフェース命令4976と、画像関係の処理及び機能を容易にする画像処理命令4978と、入力関係(例えば、タッチ入力)の処理及び機能を容易にする入力処理命令4980と、オーディオ関係の処理及び機能を容易にするオーディオ処理命令4982と、カメラ関係の処理及び機能を容易にするカメラ命令4984と、も含む。上述の命令は、単に例示的であり、メモリ4970は、いくつかの実施形態において更なる及び/又は他の命令を含む。例えば、スマートフォンのメモリは、電話関係のプロセス及び機能を容易にする電話命令を含むことができる。上に特定した命令は、別個のソフトウェアプログラム又はモジュールとして実行される必要はない。モバイルコンピューティング機器の様々な機能は、1つ以上の信号処理及び/又は特定用途向け集積回路を含め、ハードウェア及び/又はソフトウェアにおいて実行することができる。
【0412】
図49に示すコンポーネントは別個のコンポーネントと図示されているが、当業者は、2つ以上のコンポーネントを1つ以上の集積回路に一体化することができることを認識するであろう。更に、2つ以上のコンポーネントを1本以上の通信バス又は信号線によって共に結合することができる。また、機能の多くは1つのコンポーネントによって実行されるとして説明したが、当業者は、
図49に関して説明した機能が2つ以上の集積回路に分割することができることを認識するであろう。
【0413】
B.コンピュータシステム
図50は、本発明のいくつかの実施形態が実現される電子システム5000の別の実施例を概念的に示す。電子システム5000は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータなど)、電話、PDA、又は他の種類の電子若しくはコンピューティング装置でよい。そのような電子システムは、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体のためのインタフェースを含む。電子システム5000は、バス5005、処理ユニット5010、グラフィク処理ユニット(GPU)5015、システムメモリ5020、ネットワーク5025、読み出し専用メモリ5030、永久記憶装置5035、入力デバイス5040及び出力装置5045を含む。
【0414】
バス5005は、電子システム5000の多数の内部装置を通信で接続する全てのシステムバス、周辺装置バス及びチップセットバスを集合的に表す。例えば、バス5005は、処理ユニット5010を、読み出し専用メモリ5030、GPU 5015、システムメモリ5020、及び永久記憶装置5035と通信可能に結合する。
【0415】
これらの様々なメモリユニットから、処理ユニット5010は、本発明のプロセスを実行するために実行すべき命令及び処理すべきデータを取得する。処理ユニットは、異なる実施形態において、シングルプロセッサ又はマルチコアプロセッサでよい。いくつかの命令は、GPU 5015に渡され、GPU 5015によって実行される。GPU 5015は、処理ユニット5010によって提供される、様々な計算をオフロードしたり、画像処理を補完したりすることができる。いくつかの実施形態において、そのような機能は、CoreImageのカーネルシェーディング言語を使用して提供されてもよい。
【0416】
読み出し専用メモリ(ROM)5030は、処理ユニット5010及び電子システムの他のモジュールによって必要とされる静的データ及び命令を記憶する。他方、永久記憶装置5035は、読み書きメモリ装置である。この装置は、電子システム5000がオフでも、命令及びデータを記憶する不揮発性メモリユニットである。本発明のいくつかの実施形態は、永久記憶装置5035として大容量記憶装置(磁気又は光ディスク、及びその対応するディスクドライブなど)を使用する。
【0417】
他の実施形態は、永久記憶装置としてリムーバブル記憶装置(フロッピディスク、フラッシュメモリデバイスなど、及びその対応ドライブ)を使用する。永久記憶装置5035と同様に、システムメモリ5020は、読み書きメモリ装置である。しかしながら、記憶装置5035と異なり、システムメモリ5020は、ランダムアクセスメモリなどの揮発性読み書きメモリである。システムメモリ5020は、実行時にプロセッサが必要とする命令及びデータのうちのいくつかを記憶する。いくつかの実施形態において、本発明のプロセスは、システムメモリ5020、永久記憶装置5035、及び/又は読み出し専用メモリ5030に記憶される。例えば、様々なメモリユニットは、いくつかの実施形態によれば、マルチメディアクリップを処理する命令を含む。これらの様々なメモリユニットから、処理ユニット5010は、いくつかの実施形態のプロセスを実行するために実行する命令及び処理するデータを取得する。
【0418】
バス5005は、また、入力デバイス5040及び出力装置5045に接続する。ユーザは、入力デバイス5040によって、電子システムに情報を送り、コマンドを選択することができる。入力デバイス5040には、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)、カメラ(例えば、ウェブカメラ)、音声コマンドを受け取るマイクロフォン又は類似の装置などが挙げられる。出力装置5045は、電子システムによって生成された画像を表示するか、又はデータを他の方法で出力する。出力装置5045には、プリンタ、陰極線管(CRT)又は液晶ディスプレイ(LCD)などのディスプレイデバイス、並びにスピーカ又は類似のオーディオ出力装置が挙げられる。いくつかの実施形態には、入力デバイスと出力装置との両方として機能するタッチスクリーンなどのデバイスを含む。
【0419】
最後に、
図50に示されたように、バス5005は、ネットワークアダプタ(図示せず)を介して電子システム5000をネットワーク5025に結合する。このように、コンピュータは、コンピュータのネットワークの一部(ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、又はイントラネットなど)、又はインターネットなどのネットワークのネットワークでもよい。電子システム5000のいずれか又は全てのコンポーネントが、本発明で使用されてもよい。
【0420】
いくつかの実施形態は、マイクロプロセッサ、機械可読又はコンピュータ可読媒体(あるいは、コンピュータ可読記憶媒体、機械可読媒体又は機械可読記憶媒体と呼ばれる)にコンピュータプログラム命令を記憶する記憶装置及びメモリなどの電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例には、RAM、ROM、読み出し専用コンパクトディスク(CD−ROM)、追記型コンパクトディスク(CD−R)、書き換え可能コンパクトディスク(CD−RW)、読み出し専用多目的ディスク(例えば、DVD−ROM、2層DVD−ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカードなど)、磁気及び/又はソリッドステートハードディスク、読み出し専用記録可能Blu−Ray(登録商標)ディスク、超高密度光ディスク、任意の他の光学又は磁気メディア、及びフロッピディスクが挙げられる。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能で、様々な操作を実行するための命令セットを含むコンピュータプログラムを記憶してもよい。コンピュータプログラム又はコンピュータコードの例には、コンパイラによって作成されるようなマシンコード、及びインタープリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
【0421】
上記の考察は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを参照しているが、いくつかの実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの1つ以上の集積回路によって実行される。いくつかの実施形態において、そのような集積回路は、回路自体に記憶された命令を実行する。更に、いくつかの実施形態は、プログラマブルロジックデバイス(PLD)、ROM、又はRAMデバイスに記憶されたソフトウェアを実行する。
【0422】
本出願のこの明細書及びクレームで使用されるとき、用語「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」は全て、電子又は他の技術装置を参照する。これらの用語は、人々又は人々のグループを含まない。規定のため、用語「ディスプレイ又は表示」は、電子システム上の表示を意味する。本出願のこの明細書及びクレームで使用されるとき、用語「コンピュータ可読媒体」、「コンピュータ可読媒体」、及び「機械可読媒体」は、コンピュータによって読み出し可能な形式で情報を記憶する有形な物理的物体に完全に制限される。これらの用語は、無線信号、有線でダウンロードされた信号、及び他の暫時信号を除外する。
【0423】
本発明を多数の特定の詳細に関して述べたが、当業者は、本発明を、本発明の趣旨から逸脱しない他の特定の形式で実施できることを理解するであろう。例えば、図の多くは、様々なタッチジェスチャ(例えば、タップ、ダブルタップ、スワイプジェスチャ、押したままにするジェスチャなど)を示す。しかしながら、例示する操作の多くは、異なるタッチジェスチャ(例えば、タップなどの代わりにスワイプ)を介して、又は非タッチ入力によって(例えば、カーソルコントローラ、キーボード、タッチパッド/トラックパッド、ニアタッチ感応画面などを使用して)行うことができる。更に、いくつかの図(
図5、
図8、
図11、
図15、
図17、
図21、
図25、
図28、
図30、
図32、
図34、
図36、
図40、及び
図42〜44を含む)は、プロセスを概念的に示す。これらのプロセスの具体的な操作は、図示され記述された厳密な順序で実行されなくてもよい。具体的な操作は、1つの連続した一連の操作で実行されなくてもよく、様々な具体的な操作が、異なる実施形態で実行されてもよい。更に、プロセスは、いくつかのサブプロセスを使用して、又はより大きいマクロプロセスの一部として実施されてもよい。したがって、当業者は、本発明が、以上の実例となる詳細によって制限されず、添付の特許請求の範囲によって定義されることを理解するであろう。