本発明に係る多くの詳細、実施例及び実施形態については、下掲の発明を実施するための形態に記載され説明されている。しかしながら、当業者にとって容易に明らかであるように、本発明は、記載されている実施形態だけに限定されるものではなく、かつ幾つかの特定の詳細及び実施例を検討することなしに実施し得る。
画像編集アプリケーションのために、本発明の幾つかの実施形態は、一連の扇形編出ユーザインタフェース(UI)コントロールを含む新規なUIツールを提供する。幾つかの実施形態において、UIツールがアクティブ化されると、UIツールは、UIコントロールを開いた状態に扇形編出するアニメーションを提供する。UIツールのUIコントロールのうち使用するものをどれか1つ選択すると、そのUIツールによって、選択されたUIコントロールが表示されるようにUIコントロールを閉じた状態に扇形編出するアニメーションが提供される。
UIツールの様々な実施形態によって、異なる種類の扇形編出アニメーションが提供されている。例えば、幾つかの実施形態のUIツールは、固定ロケーションの周りに一方向にUIコントロールを扇形編出することによって、そのUIコントロールを扇形編出する。このようにして、UIコントロールは、UIコントロールの一端においてピン留めされたUIコントロールの外観を呈することもあれば、UIコントロールがピン留めされたロケーションの周りに開いた状態及び閉じた状態に扇形編出されたUIコントロールの外観を呈することもある。
幾つかの実施形態において、UIツールは固定ロケーションの周りに二方向にUIコントロールを扇形編出することによって、そのUIコントロールを扇形編出する。そのような実施形態において、UIツールは、UIコントロールのうちの幾つかを固定ロケーションの周りに一方向に扇形編出し、他のUIコントロールを固定ロケーションの周りに反対方向に扇形編出する。
幾つかの実施形態のUIツールは、UIコントロールが開いた状態に扇形編出される間、UIコントロールが表示エリアの外側から表示エリア上(例えば、コンピューティングデバイスのスクリーン全体)へとスライドするかのような外観でUIコントロールを表示する。同様に、幾つかの実施形態のUIツールは、UIコントロールが閉じた状態に扇形編出される間、UIコントロールが表示エリアの中心付近から表示エリアの外側へとスライドするかのような外観でUIコントロールを表示する。
様々な実施形態のUIツールによって異なる種類のUIコントロールが提供されている。例えば、幾つかの実施形態において、UIツールは、エフェクトを画像に適用するためのUIコントロールを提供する。本出願においてこれらの種類のUIコントロールは、エフェクトコントロールと言い換えることもできる。エフェクトの例としては、様々なフィルタエフェクト、デュオトーンエフェクト、非写実的な低彩度エフェクト、グラデーションエフェクト、ビネットエフェクト、チルトシフトエフェクトなどが挙げられる。
様々な実施形態によって、異なる種類のエフェクトコントロールが提供されている。例えば、第1の種類のエフェクトコントロールには、編集中の画像の一連の選択可能なサムネイル画像が表示される。選択可能な各サムネイル画像には、サムネイル画像に適用されたエフェクトコントロールに関連付けられている別の範囲のエフェクトが表示される。サムネイル画像を選択すると、アプリケーションに、サムネイル画像にエフェクトが適用される範囲において、編集中の画像にエフェクトを適用させる。このようにして、画像にエフェクトを適用する際は事前に、選択可能なサムネイル画像が編集中の画像に適用されているエフェクトのプレビューを提供する。
第2の種類のエフェクトコントロールは、摺動領域を含む。摺動領域に沿った別々のロケーションは、編集中の画像に別々の範囲のエフェクトを適用する目的に対応している。ユーザは、(例えば、タッチスクリーン上のロケーションにタッチして)摺動領域に沿った別々のロケーションを選択することによって、編集中の画像に別々の範囲のエフェクトを適用することができる。あるいは、ユーザは摺動領域にタッチし、摺動領域の別々のロケーションに沿ってスライドしながら引き続き摺動領域にタッチすることによって別々の範囲のエフェクトを画像に適用することもできる。
第2の種類のエフェクトコントロールにおいては、編集中の画像の一連のサムネイル画像が、摺動領域に沿った別々のロケーションに表示される。各サムネイル画像には、サムネイル画像に適用されたエフェクトコントロールに関連付けられている別の範囲のエフェクトが表示される。摺動領域に沿った特定のサムネイル画像があるロケーション又はその付近のロケーションは、サムネイル画像に適用されるエフェクトの範囲に対応している。よって、サムネイル画像に対する全範囲のエフェクトを含むサムネイル画像のロケーションは、全範囲のエフェクトを編集中の画像に適用する目的に対応しており、サムネイル画像に対する半分の範囲のエフェクトを含むサムネイル画像のロケーションは、編集中の画像に半分の範囲のエフェクトを適用する目的に対応している、といったようになる。
幾つかの実施形態のUIツールが提供する別の種類のUIコントロールは、画像の一部にブラシエフェクトを適用する目的に対応している。本出願において、これらの種類のUIコントロールは、ブラシコントロールと言い換えることもできる。ブラシコントロールの例としては、レッドアイ及び汚点を除去するためのブラシコントロール、画像の一部を高彩度化、低彩度化、明色化、暗色化、シャープ化又はソフト化するためのブラシコントロールなどが挙げられる。
幾つかの実施形態において、一部の実施形態に係る画像編集アプリケーションは画像編集用の様々なツールを提供する。様々なツールを使用して画像に様々な編集を行った場合、アプリケーションは、その様々な編集内容を特定の順序で適用する。例えば、エフェクト編集が画像に適用される前に、アプリケーションは露光編集を画像に適用できる。ユーザが第1のタイプの編集を画像に適用することを望んでいる場合、第2のタイプの編集が適用される前に第1のタイプの編集が画像に適用されることを保証するため、幾つかの実施形態のアプリケーションでは、第2のタイプの編集(存在する場合)が一時的に画像から解除されるようになっている。ユーザが第1のタイプの編集を適用し終えた後、アプリケーションは、画像から解除されていた第2のタイプの編集を画像に適用し直す。幾つかの実施形態において、アプリケーションは、ユーザに対し編集を解除するか又は画像に適用することを示すピーリングオン及びピーリングオフアニメーションを提供する。
幾つかの実施形態のアプリケーションは、アプリケーションにより管理される画像を表すデータ構造に、情報を記憶する。幾つかの実施形態において、アプリケーションは、画像の編集時に元の画像が保持されるような様式で、データ構造を記憶する。アプリケーションのGUIを介して画像のクイックビューが提供されるように、幾つかの実施形態のアプリケーションは、頻繁にアクセス、使用、及び/又は表示される画像の別々のバージョンをキャッシュに記憶する。幾つかの実施形態において、アプリケーションは、ユーザが現在の画像の編集済みバージョンと元の画像とを切り替えることができる機能を提供する。画像の様々なバージョン間の迅速な切り替えを円滑にするため、幾つかの実施形態のアプリケーションは、非破壊的な画像記憶方法を利用する。
上記の機能に加えて、幾つかの実施形態のアプリケーションは、アプリケーションのユーザが、同じくアプリケーションを走らせている他のデバイスのユーザに画像を送信する機能も提供している。幾つかの実施形態において、アプリケーションは、画像を非破壊的な様式で記憶するデータ構造に、画像を送信する。このようにして、画像の受信者は、元の画像、送信者が編集したバージョンの閲覧、画像への追加的な及び/又は別途の編集、他のユーザへの画像の送信などを行うことができる。
本発明の更に幾つかのより詳細な実施形態については、下掲の節で記載する。第I節では、扇形編出UIコントロールを備えるUIツールの詳細を概念的に記載する。次の第II節では、本発明の幾つかの実施形態による順序付けられた編集処理の詳細を概念的に記載する。それに続く第III節では、幾つかの実施形態による画像を表すためのデータ構造について説明する。次の第IV節では、幾つかの実施形態のアプリケーションによって提供されるビーム機能について詳述する。第V節では、幾つかの実施形態の画像閲覧、編集及び編成アプリケーションの例を記載する。最後の第VI節では、本発明の幾つかの実施形態を実施する幾つかの電子システムについて説明する。
I.扇形編出UIコントロールを備えるユーザインタフェースツール
上述したように、幾つかの実施形態の画像編集アプリケーションは、一連の扇形編出UIコントロールを含むUIツールを提供する。UIツールの様々な実施形態によって、異なる種類のUIコントロールが提供されている。エフェクトを画像に適用するためのUIツールの例、及びブラシエフェクトを画像に適用するためのUIツールの例について、以降の節で説明する。
A.エフェクトツール
図1は、幾つかの実施形態のエフェクトツール175を含む画像編集アプリケーションのグラフィカルユーザインタフェース(GUI)100、及びエフェクトツール175のアクティブ化を、概念的に示す。具体的には、図1は、エフェクトツールのアクティブ化操作の4つの別々のステージ105〜120におけるGUI100を図示している。ステージ105〜120の各々については後で更に詳述するが、最初にGUI100のエレメントについて説明する。
図示のように、GUI100は、サムネイル表示エリア125、画像表示エリア145、第1のツールバー150、第2のツールバー135、及び第3のツールバー195を含む。サムネイル表示エリア125には、選択されたコレクション内の画像のサムネイルが表示される。サムネイルは、フルサイズ画像を縮小サイズで表したものであり、幾つかの実施形態においては画像の一部のみを表す。ユーザは、サムネイル表示エリア内の(例えば、サムネイル画像にタッチして)1つ以上の画像を選択できる。選択されたサムネイルは、ハイライトされて、又は他の選択インジケータと共に表示される。サムネイル表示エリア125ではサムネイル130が選択されている。
画像表示エリア145において選択されているサムネイル画像の方が高い解像度で表示されている。サムネイル画像は典型的に、画像のフルサイズではない(多くの場合、アプリケーションによって画像が表示されているデバイスのディスプレイ画面よりも高い解像度のものである)。幾つかの実施形態において、画像表示エリア145内の画像は、フルサイズ画像の縦横比で表示される。
第1のツールバー150には、タイトル情報(例えば、GUI内に表示されたコレクションの名前、現在選択されている画像にユーザが追加したキャプションなど)が表示される。加えて、ツールバー150は、第1の一連のUIアイテム151〜154、及び第2の一連のUIアイテム155〜158を含む。
第1の一連のアイテムの中の戻るボタン151を使用することで、ユーザはコレクション編成GUIにナビゲートして戻ることができる。グリッドボタン152を選択すると、アプリケーションに(例えば、スライドアニメーションを介して)サムネイル表示エリアをGUI上に、又はGUIから遠ざかるように移動させる。幾つかの実施形態において、ユーザはまた、スワイプジェスチャを介してサムネイル表示エリアをGUI100上に、又はそこから遠ざかるようにスライドさせることもできる。ヘルプボタン153は、現在アクティブになっている一連のツールを識別するコンテキスト依存ヘルプ機能をユーザのためにアクティブ化し、これらのツールについて簡潔に説明したヘルプインジケータをユーザに提供する。幾つかの実施形態において、ヘルプインジケータは、ツールに関する追加情報にアクセスできるように選択可能になっている。ユーザが元に戻すボタン154を選択すると、アプリケーションに、この編集が切り抜きか、色調整か、それとも他のものであるかによらず、画像に対する最新の編集内容を解除させる。
ユーザは、第2の一連のUIアイテムの中の共有ボタン155により、多様な方法で画像を共有することができる。幾つかの実施形態において、ユーザは、選択された画像を同じネットワーク(例えば、Wi−Fi又はBluetoothネットワーク)上の別の互換デバイスに送信し、画像ホスティング又はソーシャルメディアウェブサイトに画像をアップロードして、他の画像の中から選択された一連の画像を基にジャーナル(即ち、付加的なコンテンツを追加できるように配列された画像のプレゼンテーション)を作成できる。
1つ以上の選択された画像に関する追加情報を表示する表示エリアは、情報ボタン156でアクティブ化される。アクティブ化された表示エリア内に表示される情報としては、画像用に記憶されるExifデータ(例えば、カメラ設定、タイムスタンプなど)が含まれ得る。ユーザは、オリジナル表示ボタン157により画像の元のバージョンと現在の画像の編集済みバージョンとを切り替えることができる。
編集ボタン158により、ユーザは編集モードを開始するか又は編集モードを終了することができる。ユーザがツールバー135内の一連の編集ツールのうちの1つを選択している時には、ユーザは編集ボタン158により、閲覧及び編成モードに戻れる。閲覧モード中にユーザが編集ボタン158を選択すると、アプリケーションは、ツールバー135内に表示されている順序で最後に使用された一連の編集ツールに戻る。つまり、ツールバー135内のアイテムは特定の順序で配列されており、選択された画像に編集が為されたアイテムのうち最も右側のものが、編集ボタン158でアクティブ化される。
ツールバー135は、左から右に特定の順序で配列された5つのUIアイテム132〜140を含む。切り抜きアイテム132は、ユーザが不整列な画像の位置合わせ及び画像の不要部分の除去を行える切り抜き及び回動ツールをアクティブ化する。露光アイテム134は、画像の黒点、影、コントラスト、明度、ハイライト、及び白点をユーザが修正できる一連の露光ツールをアクティブ化する。幾つかの実施形態において、一連の露光ツールは、画像の輝度ヒストグラムを修正するよう連携して動作する一連の連結型スライダである。露光ツールの詳細は、2012年9月27日出願の「Unified Slider Control for Modifying Multiple Image Properties」と題する米国特許出願公開第13/629,514号に記載されている。米国特許出願公開第13/629,514号は、参照することにより本明細書に組み込まれる。色アイテム136は、彩度及び鮮明さ(vibrancy)、並びに色固有の彩度(例えば、青色画素又は緑色画素)及びホワイトバランスをユーザが修正できる一連の色ツールをアクティブ化する。幾つかの実施形態において、これらのツールの幾つかは、一連のスライダとして表される。ブラシアイテム138は、ユーザが画像に対する修正箇所を特定できる一連の補正ツールをアクティブ化する。ユーザはブラシを使用して、画像に対してラビングアクションを実行することによって、レッドアイ及び汚点を除去することも、また画像の特定部分に対して彩度及び他の特徴を適用するか又は除去することもできる。最後に、エフェクトアイテム140は、ユーザが画像に適用できる一連の特殊エフェクトをアクティブ化する。これらのエフェクトとしては、グラデーション、チルトシフト、非写実的な低彩度エフェクト、グレースケールエフェクト、様々なフィルタなどが挙げられる。幾つかの実施形態において、アプリケーションは、これらのエフェクトを、ツールバー195から外向きに扇形編出する一連のアイテムとして提示する。
ツールバー195は設定アイテム170を含む。設定ボタン170は、現在アクティブになっているツールセットに応じて異なるメニューオプションを提供するコンテキスト依存メニューをアクティブ化する。例えば、閲覧モードにおいて、幾つかの実施形態のメニューは、新しいアルバムの作成、アルバム用のキーフォト(key photo)の設定、設定をあるフォトから別のフォトにコピーするためのオプション、及び他のオプションを提供する。別の一連の編集ツールがアクティブになっている時、メニューは特定のアクティブなツールセットに関連するオプションを提供する。
GUI100が、画像編集アプリケーション用として考えられ得るグラフィカルユーザインタフェースに関する多くの例のうちの一例に過ぎないことは、当業者に認識されるであろう。例えば、別々のアイテムが別々のエリア内に又は別々の順序で配置される場合もあり、幾つかの実施形態は追加的な又は別の機能性を有するアイテムを含み得る。幾つかの実施形態のサムネイル表示エリアには、対応するフルサイズ画像の縦横比などに一致するサムネイルが表示され得る。
ここで、図1に図示されている4つのステージ105〜120を参照することにより、エフェクトツール175のアクティブ化操作の例について説明する。GUI100の第1のステージ105は、エフェクトツール175のアクティブ化を示している。図示のように、ユーザは(例えば、UIアイテム140にタッチして)選択可能なエフェクトツールUIアイテム140を選択し、エフェクトツール175をアクティブ化している。
第2のステージ110は、エフェクトツール175がアクティブ化された後のGUI100を図示している。図示のように、GUI100はエフェクトツール175のエフェクトコントロールの扇形編出開アニメーションの開始を表示しており、エフェクトツールUIアイテム140がハイライトされる。図示のように、エフェクトツール175は、一連のエフェクトコントロール180〜188及び選択可能なUIアイテム190を含む。エフェクトコントロール180〜188の各々は、編集中の画像(この例の中の画像142)に一連のエフェクトを適用する目的に対応している。選択可能なUIアイテム190は、エフェクトコントロール180〜188の扇形編出開アニメーションを開始する目的に対応している。
画像編集アプリケーションがエフェクトツールUIアイテム140の選択を受け取ると、アプリケーションはUIアイテム140をハイライトし、一連のエフェクトコントロール180〜188の扇形編出開アニメーションの表示を開始する。この例における扇形編出開アニメーション用のエフェクトコントロール180〜188の開始位置及びロケーションは、ツールバー195上に配置されているエフェクトコントロール188の位置である。つまり、扇形編出開アニメーションの開始時に、エフェクトコントロール180〜188が全てエフェクトコントロール188のロケーション及び位置にて開始する。画像編集アプリケーションは、別々のエフェクトコントロールが開始位置及びロケーションから固定ロケーション(例えば、ピボット点)の周りをそれぞれ異なる量だけ回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。この例において、固定ロケーションはUIアイテム190である。図示のように、エフェクトコントロール180〜186の各々は固定ロケーションの周りを減量的に回動するが、エフェクトコントロール188は全く回動しない。換言すれば、エフェクトコントロール180は固定ロケーションの周りを最多量にて回動し、エフェクトコントロール182は固定ロケーションの周りを2番目に多い量にて回動し、エフェクトコントロール184は固定ロケーションの周りを3番目に多い量にて回動し、エフェクトコントロール186は固定ロケーションの周りを4番目に多い量にて回動するが、エフェクトコントロール188は固定ロケーションの周りを回動しない。
幾つかの実施形態において、画像編集アプリケーションは、別々のエフェクトコントロールが開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。エフェクトコントロール180は固定ロケーションの周りを最速の速度にて回動し、エフェクトコントロール182は固定ロケーションの周りを2番目に速い速度にて回動し、エフェクトコントロール184は固定ロケーションの周りを3番目に速い速度にて回動し、エフェクトコントロール186は固定ロケーションの周りを4番目に速い速度にて回動するが、エフェクトコントロール188は固定ロケーションの周りを回動しない。
幾つかの実施形態の画像編集アプリケーションは、エフェクトコントロールが開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。エフェクトコントロール180〜188を同じ速度で移動させながら扇形編出開アニメーションを表示するため、画像編集アプリケーションは、別々の時点で別々のエフェクトコントロールの移動を開始する(例えば、定義済みの時間量が経過した後で、特定のエフェクトコントロールの移動を開始する)。この手法に基づき、アプリケーションは最初にエフェクトコントロール180、2番目にエフェクトコントロール182、3番目にエフェクトコントロール184、4番目にエフェクトコントロール186、そして最後にエフェクトコントロール188の移動を開始する。
第3のステージ115は、エフェクトツール175のエフェクトコントロール180〜188の扇形編出開アニメーションが終了に近づいているGUI100を図示している。図示のように、エフェクトコントロール180〜188の位置は、第2のステージ110に図示されているエフェクトコントロール180〜188の位置よりも更に開いた状態に扇形編出されている。
第4のステージ120は、エフェクトコントロール180〜188の扇形編出開アニメーション完了後のGUI100を示す。図示のように、エフェクトコントロール180は、その開始ロケーション及び位置(この例では、エフェクトコントロール188のロケーション及び位置)からUIアイテム190の周りを時計回りにおよそ90°回動し、エフェクトコントロール182は、その開始ロケーション及び位置からUIアイテム190の周りを時計回りにおよそ67.5°回動し、エフェクトコントロール184は、その開始ロケーション及び位置からUIアイテム190の周りを時計回りにおよそ45°回動し、エフェクトコントロール186は、その開始ロケーション及び位置からUIアイテム190の周りを時計回りにおよそ22.5°回動した。
図1は、エフェクトツールがアクティブ化されている時の、エフェクトツールのエフェクトコントロールの扇形編出開アニメーションの例を図示している。幾つかの実施形態において、画像編集アプリケーションは、エフェクトツールがアクティブ化されても、エフェクトツールのエフェクトコントロールの扇形編出開アニメーションを表示しない。代わりに、そのような幾つかの実施形態のアプリケーションは、エフェクトツールの最終ステート(例えば、最も最近のステート)を表示する。例えば、エフェクトツールがアクティブ化されており、かつエフェクトツールのエフェクトコントロールがエフェクトツールの最終ステートで選択されている時は、画像編集アプリケーションは、選択されたエフェクトコントロールを、後ほど図2を参照することにより述べる第4のステージ220に類似の様式で表示し得る。
図2は、図1に図示されているエフェクトツール175のエフェクトコントロールの選択を、概念的に示す。特に、図2は、エフェクトコントロールの選択操作の4つの別々のステージ205〜220におけるGUI100を図示している。
GUI100の第1のステージ205は、エフェクトツール175のエフェクトコントロールの選択を示す。図示のように、ユーザは(例えば、エフェクトコントロール184にタッチして)エフェクトコントロール184を選択している。画像編集アプリケーションがエフェクトコントロール184の選択を受け取ると、アプリケーションは選択されたエフェクトコントロール(この例では、エフェクトコントロール184)をハイライトし、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの表示を開始する。
第2のステージ210は、エフェクトコントロール184が選択され、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションが開始された後のGUI100を図示している。画像編集アプリケーションは、エフェクトコントロール184の境界線をボールド表示して、エフェクトコントロール184をハイライトする。この例では、図1の第4のステージ120に示す一連のエフェクトコントロール180〜188の位置及びロケーションは、扇形編出閉アニメーション用の一連のエフェクトコントロール180〜188の開始位置及びロケーションである。
画像編集アプリケーションは、別々のエフェクトコントロールが、エフェクトコントロールの開始位置及びロケーションから固定ロケーション(この例では、UIアイテム190)の周りをそれぞれ異なる量で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。図示のように、エフェクトコントロール180〜186の各々は固定ロケーションの周りを減量的に回動するが、エフェクトコントロール188は全く回動しない。換言すれば、エフェクトコントロール180は固定ロケーションの周りを最多量にて回動し、エフェクトコントロール182は固定ロケーションの周りを2番目に多い量にて回動し、エフェクトコントロール184は固定ロケーションの周りを3番目に多い量にて回動し、エフェクトコントロール186は固定ロケーションの周りを4番目に多い量にて回動するが、エフェクトコントロール188は固定ロケーションの周りを回動しない。図2に図示されているエフェクトコントロール180〜186の回動方向(この例では、反時計回り)は、図1に図示されている扇形編出開アニメーション中のエフェクトコントロール180〜186の回動方向とは反対の方向である。
幾つかの実施形態において、画像編集アプリケーションは、別々のエフェクトコントロールが、エフェクトコントロールの別々の開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。エフェクトコントロール180は固定ロケーションの周りを最速の速度にて回動し、エフェクトコントロール182は固定ロケーションの周りを2番目に速い速度にて回動し、エフェクトコントロール184は固定ロケーションの周りを3番目に速い速度にて回動し、エフェクトコントロール186は固定ロケーションの周りを4番目に速い速度にて回動するが、エフェクトコントロール188は固定ロケーションの周りを回動しない。
幾つかの実施形態の画像編集アプリケーションは、エフェクトコントロールが、エフェクトコントロールの別々の開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。エフェクトコントロール180〜188を同じ速度で移動させながら扇形編出閉アニメーションを表示するため、アプリケーションは、別々の時点で別々のエフェクトコントロールの移動を開始する(例えば、定義済み時間量の経過後に特定のエフェクトコントロールの移動を開始する)。この手法に基づき、画像編集アプリケーションは最初にエフェクトコントロール180、2番目にエフェクトコントロール182、3番目にエフェクトコントロール184、4番目にエフェクトコントロール186、そして最後にエフェクトコントロール188の移動を開始する。幾つかの実施形態において、アプリケーションは、最初のエフェクトコントロール180がエフェクトコントロール182の位置に又はその付近にある時、2番目のエフェクトコントロール182の移動を開始する。このようにして、エフェクトコントロール180及び182は、1つのエフェクトコントロールとして一体的に移動するような外観を呈する。画像編集アプリケーションは、エフェクトコントロール184及び186の移動を類似の様式で開始する。即ち、アプリケーションは、エフェクトコントロール180及び182がエフェクトコントロール184の位置に又はその付近に来た時にエフェクトコントロール184の移動を開始し、アプリケーションは、エフェクトコントロール180〜184がエフェクトコントロール186の位置に又はその付近に来た時にエフェクトコントロール186の移動を開始する。
第3のステージ215は、エフェクトツール175のエフェクトコントロール180〜188の扇形編出閉アニメーションが終了に近づいているGUI100を図示している。図示のように、エフェクトコントロール184及び186は、固定ロケーションの周りでの回動を中断している。選択されたエフェクトコントロール184にアンダーラップするエフェクトコントロール186及び188の位置は、選択されたエフェクトコントロール184の位置と同じ位置である。エフェクトコントロール180及び182は依然として、固定ロケーションの周りを反時計回りに回動している。第3のステージ215に示されているように、エフェクトコントロール180〜188の位置の方が、第2のステージ210に図示されているエフェクトコントロール180〜188の位置よりも更に閉じた状態に扇形編出されている。
第4のステージ220は、エフェクトコントロール180〜188の扇形編出閉アニメーション完了後のGUI100を示す。画像編集アプリケーションが一連のエフェクトコントロール180〜188の扇形編出閉アニメーションを表示する際に、アプリケーションはエフェクトコントロール188のロケーション及び位置を越えて固定ロケーションの周りを回動する選択されたエフェクトコントロールにオーバーラップするエフェクトコントロールを表示する。選択されたエフェクトコントロールにオーバーラップするエフェクトコントロールの扇形編出閉アニメーションが終了する位置及びロケーションは、選択されたエフェクトコントロールにアンダーラップするエフェクトコントロール及び選択されたエフェクトコントロールが終了するロケーション及び位置から固定ロケーションの周りを反時計回りにおよそ90°回動した位置及びロケーションである。一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの終了時に、選択されたエフェクトコントロールにオーバーラップするエフェクトコントロールは、エフェクトコントロール180〜186がその周りを回動した固定ロケーションから懸下するような外観を呈する。
図2の第4のステージ220に図示されている例において、選択されているエフェクトコントロールはエフェクトコントロール184である。そのため、扇形編出閉アニメーションの終了時に、エフェクトコントロール184〜188は、第4のステージ220に図示されているロケーション及び位置で終了する。加えて、選択されたエフェクトコントロール184にオーバーラップするエフェクトコントロール180及び182は、エフェクトコントロール184〜188の終了ロケーション及び位置から固定ロケーションの周りを反時計回りにおよそ90°回動したロケーション及び位置で終了する。
図2は、エフェクトツールの特定のエフェクトコントロールの選択を図示したものであるが、当業者に認識されるように、エフェクトツールのエフェクトコントロールはいずれもエフェクトツールがアクティブ化された後に選択されてよい。例えば、エフェクトコントロール180、182、186、又は188もユーザによって選択されていたかもしれない。
ユーザは、エフェクトツールのエフェクトコントロールを選択した後でエフェクトコントロールの選択を変更したい場合もある。図3は、図1に図示されているエフェクトツール175で選択されたエフェクトコントロールの変更を、概念的に示す。具体的には、図3は、エフェクトコントロールの変更操作の4つの別々のステージ305〜320におけるGUI100を図示している。
GUI100の第1のステージ305は、図2に図示されているGUI100の第4のステージ220に類似している。つまり、第1のステージ305は、エフェクトコントロール184が選択され、エフェクトコントロール184が境界線のボールド表示によりハイライトされ、かつ一連のエフェクトコントロール180〜188の扇形編出閉アニメーションが完了した後のGUI100を示している。加えて、第1のステージ305は、エフェクトツール175のエフェクトコントロールの選択を変更する操作の呼び出しも図示している。図示のように、ユーザは(例えば、UIアイテム190にタッチして)選択可能なUIアイテム190を選択し、エフェクトコントロールの選択を変更する操作を呼び出す。
第2のステージ310は、画像編集アプリケーションが一連のエフェクトコントロール180〜188の扇形編出開アニメーションを終了した後のGUI100を図示している。アプリケーションがUIアイテム190の選択を受け取ると、アプリケーションは、一連のエフェクトコントロール180〜188の扇形編出開アニメーションを表示する。このアニメーションは、上記で図1を参照することにより述べた扇形編出開アニメーションに類似している。図示のように、エフェクトコントロール184がハイライトされたままになっている理由は、エフェクトコントロール184が、エフェクトツール175において現在選択されているエフェクトコントロールであるためである。
第3のステージ315におけるGUI100は、エフェクトツール175の異なるエフェクトコントロールの選択を図示している。図示のように、ユーザは(例えば、エフェクトコントロール180にタッチして)エフェクトコントロール180を選択している。画像編集アプリケーションがエフェクトコントロール180の選択を受け取ると、アプリケーションは、エフェクトコントロール180をハイライトして、上で図2を参照することにより述べた一連のエフェクトコントロール180〜188の扇形編出閉アニメーションに類似する一連のエフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。
第4のステージ320は、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの終了後であり、選択されたエフェクトコントロール180がハイライトされた状態のGUI100を図示している。この例では、一連のエフェクトコントロール180〜186が、UIアイテム190の周りを回動し、選択されたエフェクトコントロール190の位置で終了している。エフェクトツール175の他のエフェクトコントロール(即ち、エフェクトコントロール182〜188)はいずれも、選択されたエフェクトコントロール180にオーバーラップしないため、エフェクトコントロール182〜188の終了位置は、選択されたエフェクトコントロール180の終了位置と同じである。したがって、いずれのエフェクトコントロールも、エフェクトコントロール180〜186がその周りを回動した固定ロケーションから懸下するような外観にはならない。
図3は、エフェクトツールの選択されたエフェクトコントロールの変更の一例を図示している。当業者によって理解されるように、エフェクトツールの選択されたエフェクトコントロールを変更する際には、エフェクトツールの任意のエフェクトコントロールも選択することができる。しかも、エフェクトツールの選択されたエフェクトコントロールは、任意の回数変更することができる。
幾つかの実施形態において、画像編集アプリケーションは、アプリケーションが横置き閲覧モードの時に、上掲の図1〜3に記載されているGUIを提供する。そのような幾つかの実施形態のアプリケーションにおいて、アプリケーションが縦置き閲覧モードの時に提供されるGUIについては、下掲の図に示す。
図4は、幾つかの実施形態のエフェクトツール175を含むGUI400、及びエフェクトツー175のアクティブ化を、概念的に示す。特に、図4は、エフェクトツールのアクティブ化操作の4つの別々のステージ405〜420におけるGUI400を図示している。GUI400においてサムネイル表示エリア125が画像表示エリア145の下かつツールバー195の上に配列されていることを除けば、GUI400は、上で図1を参照することにより述べたGUI100に類似している。また、GUI400はツールバー135を含まない。そのため、代わりにツールバー195内にUIアイテム132〜140が表示される。
GUI400のステージ405〜420は、上で図1を参照することにより述べたステージ105〜120に類似している。つまり、第1のステージ405はエフェクトツール175のアクティブ化を示し、第2のステージ410はエフェクトコントロール180〜188の扇形編出開アニメーションの開始を示し、第3のステージ415は扇形編出閉アニメーションが終了に近づいているエフェクトコントロール180〜188を示し、第4のステージ420は扇形編出開アニメーション終了時のエフェクトコントロール180〜188を示す。
加えて、GUI400におけるエフェクトツール175(エフェクトツール175のエフェクトコントロールである時)の扇形編出閉アニメーションは、上で図2を参照することにより述べたアニメーションと同様である。また、GUI 400におけるエフェクトツール175のエフェクトコントロールの選択を変更するための技術及び付随するアニメーションは、上で図3を参照することにより述べた技術及びアニメーションと同様である。
幾つかの実施形態において、画像編集アプリケーションにより、アプリケーションが横置き閲覧モードの時に、上で図1〜3を参照することにより述べた操作例に応じたGUIが提供され得る。幾つかの実施形態に係る画像編集アプリケーションは、アプリケーションが縦置き閲覧モードの時に、操作例について上で図4を参照することにより述べたGUIを提供する。しかしながら、幾つかの場合では、画像編集アプリケーションは、操作例に応じた更に別のGUIを提供する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイス(例えば、スマートフォン)のディスプレイ画面には、図1〜4に図示されている操作例を表示するための十分な空きスペースがない場合もある。
図5は、幾つかの実施形態のエフェクトツール175を含む画像編集アプリケーションのGUI500、及びエフェクトツール175のアクティブ化を、概念的に示す。具体的には、図5は、エフェクトツールのアクティブ化操作の4つの別々のステージ505〜520におけるGUI500を図示している。
GUI500においてサムネイル表示エリア125が画像表示エリア145の下かつツールバー195の上に配列されていることを除けば、GUI500は、上で図1を参照することにより述べたGUI100に類似している。また、GUI500はツールバー135を含まない。そのため、代わりにツールバー195内に、UIアイテム132〜140が表示される。
GUI500の第1のステージ505は、エフェクトツール175のアクティブ化を示している。このステージにおいて、ユーザは(例えば、UIアイテム140にタッチして)選択可能なエフェクトツールUIアイテム140を選択し、エフェクトツール175をアクティブ化している。
第2のステージ510は、エフェクトツール175がアクティブ化された後のGUI500を図示している。図示のように、GUI500は一連のエフェクトコントロール180〜188の扇形編出開アニメーションの開始を表示し、エフェクトツールUIアイテム140がハイライトされる。画像編集アプリケーションがエフェクトツールUIアイテム140の選択を受け取ると、アプリケーションは、UIアイテム140をハイライトし、(例えば、左へ向かってスライドしてツールバー195から遠ざかるUIアイテム132〜140のアニメーションを表示することによって)ツールバー195からUIアイテム132〜140を除去して、ツールバー195の左側にUIアイテム140を表示する。
画像編集アプリケーションがエフェクトツールUIアイテム140の選択を受け取ると、アプリケーションはまた、一連のエフェクトコントロール180〜188の扇形編出開アニメーションの表示を開始する。この例では、エフェクトコントロール180〜188の扇形編出開アニメーションの開始位置が、ツールバー195内に破線の長方形で示されている。扇形編出開アニメーションが開始すると、画像編集アプリケーションは、エフェクトコントロール188を基準として固定ロケーション(この例では、選択可能なUIアイテム190)の周りを時計回りに回動するエフェクトコントロール180〜186を表示する。アプリケーションはまた、エフェクトコントロール180〜188を開いた状態に扇形編出すると同時に、固定ロケーション、更にはエフェクトコントロール180〜186を画像表示エリア145の右側の中央に向かって移動する。換言すれば、アプリケーションは、開いた状態に扇形編出するエフェクトコントロール180〜188を表示すると同時に、そのエフェクトコントロール180〜188を上方へ、かつ画像表示エリア145の右側の中央に向かってスライドさせながら表示する。
画像編集アプリケーションは、別々のエフェクトコントロールが開始位置及びロケーションから固定ロケーションの周りを異なる量だけ回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。図示のように、エフェクトコントロール180〜186はそれぞれ、エフェクトコントロール188を基準として固定ロケーションの周りを減量的に回動する。
幾つかの実施形態において、画像編集アプリケーションは、別々のエフェクトコントロールが開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。幾つかの実施形態において、時間間隔は、アプリケーションがツールバー195からエフェクトコントロール180〜188を移動させ始めてから、アプリケーションがエフェクトコントロール180〜188を画像表示エリア145の右側の中央から遠ざかるように移動を停止するまでの時間として定義される。そのような実施形態において、エフェクトコントロール180は固定ロケーションの周りを最速の速度にて回動し、エフェクトコントロール182は固定ロケーションの周りを2番目に速い速度にて回動し、エフェクトコントロール184は固定ロケーションの周りを3番目に速い速度にて回動し、エフェクトコントロール186は固定ロケーションの周りを4番目に速い速度にて回動するが、エフェクトコントロール188は固定ロケーションの周りを回動しない。
幾つかの実施形態の画像編集アプリケーションは、エフェクトコントロールが開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出開アニメーションを表示する。エフェクトコントロール180〜188を同じ速度で移動させながら扇形編出開アニメーションを表示するため、アプリケーションは、別々の時点で別々のエフェクトコントロールの移動を開始する(例えば、定義済みの時間量の経過後に特定のエフェクトコントロールの移動を開始する)。この手法に基づき、アプリケーションは最初にエフェクトコントロール180、2番目にエフェクトコントロール182、3番目にエフェクトコントロール184、4番目にエフェクトコントロール186、そして最後にエフェクトコントロール188の移動を開始する。
第3のステージ515は、エフェクトツール175のエフェクトコントロール180〜188の扇形編出開アニメーションが終了に近づいているGUI500を図示している。図示のように、エフェクトコントロール180〜188の位置は、第2のステージ510に図示されているエフェクトコントロール180〜188の位置よりも更に開いた状態に扇形編出されている。また、固定ロケーションのロケーション、更にはエフェクトコントロール180〜188は、第2のステージ510に図示されている固定ロケーションのロケーションよりも画像表示エリア145の右側の中央に更に寄っている。
第4のステージ520は、エフェクトコントロール180〜188の扇形編出開アニメーション完了後のGUI500を示す。図示のように、エフェクトコントロール180は、その開始ロケーション及び位置から固定ロケーションの周りを時計回りにおよそ90°回動し、エフェクトコントロール182は、その開始ロケーション及び位置から固定ロケーションの周りを時計回りにおよそ67.5°回動し、エフェクトコントロール184は、その開始ロケーション及び位置から固定ロケーションの周りを時計回りにおよそ45°回動し、エフェクトコントロール186は、その開始ロケーション及び位置から固定ロケーションの周りを時計回りにおよそ22.5°回動した。
図5は、エフェクトツールがアクティブ化されている時の、エフェクトツールのエフェクトコントロールの扇形編出開アニメーションの例を図示している。幾つかの実施形態において、画像編集アプリケーションは、エフェクトツールがアクティブ化されていても、エフェクトツールのエフェクトコントロールの扇形編出開アニメーションを表示しない。代わりに、そのような幾つかの実施形態のアプリケーションは、エフェクトツールの最終ステート(例えば、最も最近のステート)を表示する。例えば、エフェクトツールがアクティブ化されており、かつエフェクトツールのエフェクトコントロールがエフェクトツールの最終ステートで選択されている時、アプリケーションは、選択されたエフェクトコントロールを、図6に図示されている第4のステージ620に類似の様式で表示し得る。
図6は、図5に図示されているエフェクトツール175のエフェクトコントロールの選択を、概念的に示す。特に、図6は、エフェクトコントロールの選択操作の4つの別々のステージ605〜620におけるGUI500を図示している。
GUI500の第1のステージ605は、エフェクトツール175のエフェクトコントロールの選択を示す。図示のように、ユーザは(例えば、エフェクトコントロール184にタッチして)エフェクトコントロール184を選択している。画像編集アプリケーションがエフェクトコントロール184の選択を受け取ると、アプリケーションは、選択されたエフェクトコントロール(この例では、エフェクトコントロール184)をハイライトし、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの表示を開始する。
第2のステージ610は、エフェクトコントロール184が選択され、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションが開始された後のGUI500を図示している。アプリケーションは、エフェクトコントロール184の境界線をボールド表示して、エフェクトコントロール184をハイライトする。この例では、図5の第4のステージ510に示す一連のエフェクトコントロール180〜188の位置及びロケーションは、扇形編出閉アニメーション用の一連のエフェクトコントロール180〜188の開始位置及びロケーションである。
扇形編出閉アニメーションが開始すると、画像編集アプリケーションは、エフェクトコントロール188を基準として固定ロケーション(例えば、この例ではUIアイテム190)の周りを反時計回りに回動するエフェクトコントロール180〜186を表示する。エフェクトコントロール180〜188を扇形編出すると同時に、アプリケーションはまた、固定ロケーション、更にはエフェクトコントロール180〜188を、画像表示エリア145の右側の中央からツールバー195の右側へ向かって移動させる。換言すれば、アプリケーションは閉じた状態に扇形編出するエフェクトコントロール180〜188を表示すると同時に、アプリケーションは画像表示エリア145の右側の中央からツールバー195の右側へ向かってスライドする固定ロケーションを表示する。
画像編集アプリケーションは、別々のエフェクトコントロールがエフェクトコントロールの開始位置及びロケーションから固定ロケーションの周りを異なる量で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。図示のように、エフェクトコントロール180〜186はそれぞれ、エフェクトコントロール188を基準として固定ロケーションの周りを、上で図5を参照することにより述べたように、減量的に回動する。図6に図示されているエフェクトコントロール180〜186の回動方向(この例では、反時計回り)は、図5に示す扇形編出開アニメーション中のエフェクトコントロール180〜186の回動方向とは反対の方向である。
幾つかの実施形態において、画像編集アプリケーションは、別々のエフェクトコントロールがエフェクトコントロールの別々の開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。幾つかの実施形態において時間間隔は、アプリケーションが、固定ロケーション、更にはエフェクトコントロール180〜188を、画像表示エリア145の右側の中央からツールバー195の右側へ向かって移動させ始めてから、アプリケーションがエフェクトコントロール180〜188をツールバー195上に移動させてしまうまでの時間として定義される。
幾つかの実施形態の画像編集アプリケーションは、エフェクトコントロールがエフェクトコントロールの別々の開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、エフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。エフェクトコントロール180〜188を同じ速度で移動させながら扇形編出閉アニメーションを表示するため、アプリケーションは、別々の時点で別々のエフェクトコントロールの移動を開始する(例えば、定義済み時間量の経過後に特定のエフェクトコントロールの移動を開始する)。この手法に基づき、画像編集アプリケーションは最初にエフェクトコントロール180、2番目にエフェクトコントロール182、3番目にエフェクトコントロール184、4番目にエフェクトコントロール186、そして最後にエフェクトコントロール188の移動を開始する。幾つかの実施形態において、アプリケーションは、最初のエフェクトコントロール180がエフェクトコントロール182の位置に又はその付近にある時、2番目のエフェクトコントロール182の移動を開始する。よって、エフェクトコントロール180及び182は、1つのエフェクトコントロールとして一体的に移動するような外観を呈する。画像編集アプリケーションは、エフェクトコントロール184及び186の移動を類似の様式で開始する。エフェクトコントロール180及び182がエフェクトコントロール184の位置に又はその付近にある時、アプリケーションはエフェクトコントロール184の移動を開始し、エフェクトコントロール180〜184がエフェクトコントロール186の位置に又はその付近にある時、アプリケーションはエフェクトコントロール186の移動を開始する。
第3のステージ615は、エフェクトツール175のエフェクトコントロール180〜188の扇形編出開アニメーションが終了に近づいているGUI500を図示している。図示のように、エフェクトコントロール180〜188の位置の方が、第2のステージ610に図示されているエフェクトコントロール180〜188の位置よりも更に閉じた状態に扇形編出されている。また、固定ロケーションのロケーション、更にはエフェクトコントロール180〜188は、第2のステージ610に図示されている固定ロケーションのロケーションよりもツールバー195の右側に更に寄っている。
第4のステージ620は、エフェクトコントロール180〜188の扇形編出閉アニメーション完了後のGUI500を示す。画像編集アプリケーションは、扇形編出閉アニメーションを終えると、選択されたエフェクトコントロールをツールバー195上に表示する。アプリケーションはまた、図2の第4のステージ220に図示されているのに類似の様式で、選択されたエフェクトコントロールにオーバーラップするエフェクトコントロールを表示する。つまり、画像編集アプリケーションは、アプリケーションが選択されたエフェクトコントロールを表示するロケーション及び位置から、選択可能なUIアイテム190の周りを反時計回りにおよそ90°回動した位置及びロケーションにて、選択されたエフェクトコントロールにオーバーラップした状態でエフェクトコントロールを表示する。第4のステージ620における一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの終了時に、選択されたエフェクトコントロールにオーバーラップするエフェクトコントロールは、選択可能なUIアイテム190から懸下するような外観を呈する。
図6の第4のステージ620に図示されている例において、選択されているエフェクトコントロールはエフェクトコントロール184である。よって、画像編集アプリケーションは、選択されたエフェクトコントロール184から、UIアイテム190の周りを反時計回りにおよそ90°回動したロケーション及び位置にて、選択されたエフェクトコントロール184にオーバーラップした状態のエフェクトコントロール180及び182を表示する。
図6は、エフェクトツールの特定のエフェクトコントロールの選択を図示したものであるが、当業者に認識されるように、エフェクトツールのエフェクトコントロールはいずれもエフェクトツールがアクティブ化された後に選択されてよい。例えば、エフェクトコントロール180、182、186、又は188もユーザによって選択されていたかもしれない。
上述したように、ユーザは、エフェクトツールのエフェクトコントロールを選択した後でエフェクトコントロールの選択を変更したい場合もある。図7は、図5に図示されているエフェクトツール175の選択されたエフェクトコントロールの変更を、概念的に示す。具体的には、図7は、エフェクトコントロールの変更操作の4つの別々のステージ705〜720におけるGUI500を図示している。
GUI 500の第1のステージ705は、図6に図示されているGUI 500の第4のステージ620に類似している。つまり、第1のステージ705は、エフェクトコントロール184が選択され、エフェクトコントロール184が境界線のボールド表示によりハイライトされ、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションが完了し、かつ選択されたエフェクトコントロール184がツールバー195上に表示された後のGUI 500を示す。加えて、第1のステージ705は、エフェクトツール175のエフェクトコントロールの選択を変更する操作の呼び出しも図示している。図示のように、ユーザは(例えば、UIアイテム190にタッチして)選択可能なUIアイテム190を選択し、エフェクトコントロールの選択を変更する操作を呼び出す。
第2のステージ710は、画像編集アプリケーションが一連のエフェクトコントロール180〜188の扇形編出開アニメーションを終了した後のGUI500を図示している。アプリケーションがUIアイテム190の選択を受け取ると、アプリケーションは一連のエフェクトコントロール180〜188の扇形編出開アニメーションを表示する。このアニメーションは、上で図5を参照することにより述べた扇形編出開アニメーションに類似している。図示のように、エフェクトコントロール184がハイライトされたままになっている理由は、エフェクトコントロール184が、エフェクトツール175において現在選択されているエフェクトコントロールであるためである。
第3のステージ715におけるGUI100は、エフェクトツール175の別々のエフェクトコントロールの選択を図示している。図示のように、ユーザは(例えば、エフェクトコントロール180にタッチして)エフェクトコントロール180を選択している。画像編集アプリケーションがエフェクトコントロール180の選択を受け取ると、アプリケーションは前に選択されたエフェクトコントロール186のハイライトを解除し、新たに選択されたエフェクトコントロール180をハイライトして、上で図2を参照することにより述べた一連のエフェクトコントロール180〜188の扇形編出閉アニメーションに類似する一連のエフェクトコントロール180〜188の扇形編出閉アニメーションを表示する。
第4のステージ720は、一連のエフェクトコントロール180〜188の扇形編出閉アニメーションの終了後に、選択されたエフェクトコントロール180がハイライトされツールバー195上に表示された状態のGUI500を図示している。エフェクトツール175の他のエフェクトコントロール(即ち、エフェクトコントロール182〜188)はいずれも、選択されたエフェクトコントロール180にオーバーラップしないため、エフェクトコントロール182〜188の終了位置は、選択されたエフェクトコントロール180の終了位置と同じである。よって、どのエフェクトコントロールも、UIアイテム190から懸下するような外観にはならない。
図7は、エフェクトツールの選択されたエフェクトコントロールの変更の一例を図示している。当業者によって理解されるように、エフェクトツールの選択されたエフェクトコントロールを変更する際には、エフェクトツールの任意のエフェクトコントロールも選択することができる。しかも、エフェクトツールの選択されたエフェクトコントロールは、任意の回数変更することができる。
図5〜7は、エフェクトコントロールが開いた状態及び閉じた状態に扇形編出されている時の、エフェクトコントロール180〜188のレイアウト例及びアニメーションを示す。幾つかの実施形態において、図5〜7に図示されているエフェクトコントロール180〜188のレイアウト及びアニメーションは、画像編集アプリケーションが右手モードになっている時に提供され、この右手モードでは、ユーザが右手を使ってアプリケーションのGUI500と対話操作しやすくなる。そのような幾つかの実施形態において、画像編集アプリケーションが左手モードになっている時、アプリケーションは、エフェクトコントロールが開いた状態及び閉じた状態に扇形編出される際に、エフェクトコントロール180〜188の異なるレイアウト及びアニメーションを提供する。例えば、アプリケーションの左手モードにおいて、幾つかの実施形態の画像編集アプリケーションは、エフェクトコントロールが画像表示エリア145の左側から画像表示エリア145の中心へと移動しながら、そのエフェクトコントロールが画像表示エリア145の左下近くで開始して画像表示エリア145の右上へ向かって開いた状態に扇形編出することを除けば、図5に示されているものに類似の様式で扇形編出開アニメーションを表示する。そのような実施形態のアプリケーションの左手モードは、エフェクトコントロールが画像表示エリア145の中心付近から画像表示エリア145の左側へと移動しながら、エフェクトコントロールが画像表示エリア145の左側へ向かって内向きに扇形編出することを除けば、図6に示したものに類似の様式で扇形編出閉アニメーションを表示する。幾つかの実施形態において、画像編集アプリケーションが左手モードになっている時、図5〜7に図示されているエフェクトコントロール180〜188の配列が提供され、アプリケーションが右手モードの時は、代わりに、上で左手モードに関して述べたエフェクトコントロール180〜188の配列が提供される。当業者によって理解されるように、上記の図1〜7中のいずれのGUIも、上記の図1〜7中に図示されているあらゆるアニメーションを使用できる。
上記の図1〜7は、UIコントロールを開いた状態及び閉じた状態に扇形編出するための幾つかの技術を示している。例えば、図3及び7は、あるUIアイテム(これらの例ではUIアイテム190)を選択してそのUIコントロールを開いた状態に扇形編出すことによって別のUIコントロールの選択、及びあるUIコントロールを選択してそのUIコントロールの閉じた状態に扇形編出を示している。しかしながら、幾つかの実施形態において、UIコントロールを開いた状態及び閉じた状態に扇形編出する際に、他の技術を利用することもできる。例えば、幾つかの実施形態のUIツールにおいて、ユーザは、選択されたUIコントロール上でジェスチャ(例えば、スワイプアップジェスチャ)を実行することによって、そのUIコントロールを開いた状態に扇形編出できる。同様に、幾つかの実施形態において、UIコントロールが開いた状態に扇形編出されており、かつユーザが別のUIコントロールを選択したくない場合(即ち、ユーザが現在選択されているUIコントロールを選択された状態に維持したい場合)、ユーザはUIツールを使って画像表示エリア上でジェスチャ(例えば、スワイプダウンジェスチャ)を実行することによって、そのUIコントロールを閉じた状態に扇形編出することができる。他の技術も考えられる。
上述の通り、幾つかの実施形態のエフェクトツールの各エフェクトコントロールは、一連のエフェクトを編集中の画像に適用する目的に対応している。エフェクトツールの様々な実施形態が、それぞれ異なる種類のエフェクトコントロールを包含する。以下の図8〜11は、異なる種類のエフェクトコントロールを含む様々なエフェクトツールの幾つかの例を図示している。
図8は、一種類のエフェクトコントロールを含む幾つかの実施形態のエフェクトツール175を、概念的に示す。図示のように、エフェクトツール175は、一連のスライダコントロール880〜888を含む。スライダコントロール880〜888の各々は、摺動領域と、スライダコントロールに関連付けられているエフェクトを調整できるように摺動領域の軸に沿って可動であるスライダと、を備えている。幾つかの実施形態において、摺動領域に沿ったスライダの別々の位置は、編集中の画像に適用される、スライダコントロールに関連付けられているエフェクトの別々の範囲を示す。
図9は、別の種類のエフェクトコントロールを含む幾つかの実施形態のエフェクトツール175を、概念的に示す。図9は、エフェクトツール175が一連のサムネイルスライダコントロール980〜988を含んでいることを図示している。サムネイルスライダコントロール980〜988の各々は、サムネイルスライダコントロールに沿った別々の位置に配置された、一連の選択可能なUIアイテムを含む。各一連の選択可能なUIアイテムは、サムネイルスライダコントロールに関連付けられているエフェクトの別々の範囲を編集中の画像(この例では、画像142)に適用する目的に対応している。
図示のように、サムネイルスライダコントロールの各UIアイテムは、編集中の画像のサムネイル画像(例えば、編集中の画像のフルサイズバージョンを縮小サイズで表したもの)、及びサムネイルスライダコントロールに関連付けられているエフェクトの範囲をサムネイル画像に適用したものを表示する。この例では、エフェクトのうちの幾つかは、様々な種類の線(縦線、横線、及び斜線)で表される。画像上に表示される線の数が多いほど、画像に適用されるエフェクトの範囲が広いことを表し、画像上に表示される線の数が少ないほど、画像に適用されるエフェクトの範囲が狭いことを表す。
例えば、サムネイルスライダコントロール988は、画像上に縦線を表示することで表されるエフェクトを適用する目的に対応している。サムネイルスライダコントロール988の各UIアイテムは、画像142のサムネイル画像、及びサムネイル画像に適用されたサムネイルスライダコントロール988に関連付けられているエフェクトの範囲を表示する。サムネイルスライダコントロール988の左端のUIアイテムは、そのサムネイル画像上に縦線が一切表示されていない。このことは、最左端のUIアイテムのサムネイル画像に適用されているエフェクトの範囲が極めて狭いことを示す。サムネイルスライダコントロール988の左端から2番目のUIアイテムは、そのサムネイル画像上に2本の縦線が表示されている。このことは、左端から2番目のUIアイテムのサムネイル画像に適用されているエフェクトの範囲が狭いことを示す。サムネイルスライダコントロール988の中央のUIアイテムは、そのサムネイル画像上に3本の縦線が表示されている。このことは、中央のUIアイテムのサムネイル画像に適用されているエフェクトの範囲が中程度であることを示す。サムネイルスライダコントロール988の右端から2番目のUIアイテムは、そのサムネイル画像上に6本の縦線が表示されている。このことは、右端から2番目のUIアイテムのサムネイル画像に適用されているエフェクトの範囲が広いことを示す。サムネイルスライダコントロール988の右端のUIアイテムは、そのサムネイル画像上に11本の縦線が表示されている。このことは、右端のUIアイテムのサムネイル画像に適用されているエフェクトの範囲が極めて広いことを示す。
図10は、別の種類のエフェクトコントロールを含む幾つかの実施形態のエフェクトツール175を、概念的に示す。図示のように、エフェクトツール175は、一連のマルチスライダコントロール1080〜1088を含む。マルチスライダコントロール1080〜1088の各々は、上で図8を参照することにより述べたスライダコントロールに類似する一連のスライダコントロールを含む。幾つかの実施形態において、マルチスライダコントロールは、編集中の画像に1つのエフェクトを適用する目的に対応しており、マルチスライダコントロールの各スライダコントロールは、マルチスライダコントロールに関連付けられているエフェクトの別の態様を調整する目的に対応している。このようにして、マルチスライダコントロールの別のスライダコントロールを使用して、マルチスライダコントロールに関連付けられているエフェクトの様々な態様を調整できる。幾つかの実施形態において、マルチスライダコントロールは、幾つかの別々のエフェクトを編集中の画像に適用する目的に対応しており、マルチスライダコントロールの各スライダコントロールは、マルチスライダコントロールに関連付けられている別のエフェクトを調整する目的に対応している。
上記の図8〜10は、同じ種類のエフェクトコントロールを含むエフェクトツールを図示している。幾つかの実施形態において、エフェクトツールは、幾つかの異なる種類のエフェクトコントロールを含む。図11は、そのようなエフェクトツールの例を概念的に示す。図示のように、図11は、一連のエフェクトコントロール1180〜1188を含む幾つかの実施形態のエフェクトツール175を、概念的に示す。特に、エフェクトコントロール1180及び1188は、上で図8を参照することにより述べたスライダコントロールに類似しており、エフェクトコントロール1182及び1186は、上で図9を参照することにより述べたサムネイルスライダコントロールに類似しており、エフェクトコントロール1184は、上で図10を参照することにより述べたマルチスライダコントロールに類似している。
図12には、幾つかの実施形態のサムネイルスライダコントロール1280、及びサムネイルスライダコントロール1280を使用して画像にエフェクトの適用を、概念的に示す。具体的には、図12は、エフェクト適用操作の4つの別々のステージ1205〜1220におけるGUI100を図示している。
図12におけるエフェクトツール175が一連のサムネイルスライダコントロールを含むことを除けば、GUI100の第1のステージ1205は、図2に図示されている第4のステージ220に類似している。図示のように、ユーザは(例えば、UIアイテム140を選択して)エフェクトツール175をアクティブ化しており、このことは、エフェクトアイテム140がハイライトされていることに示されている。加えて、ユーザは(例えば、エフェクトツール175の一連のサムネイルスライダコントロールが外向きに扇形編出されている時に、サムネイルスライダコントロール1280にタッチして)エフェクトツール175のサムネイルスライダコントロール1280を選択している。
サムネイルスライダコントロール1280は、上で図9を参照することにより述べたサムネイルスライダコントロールに類似している。即ち、サムネイルスライダコントロール1280は、サムネイルスライダコントロール1280に沿った別々の位置に配置された、一連の選択可能なUIアイテム1281〜1285を含む。一連の選択可能なUIアイテム1281〜1285は、サムネイルスライダコントロール1280に関連付けられているエフェクトの別々の範囲を編集中の画像(この例では、画像142)に適用する目的に対応している。図示のように、各選択可能なUIアイテムは、画像142のサムネイル画像、及びサムネイル画像に適用されたサムネイルスライダコントロール1280に関連付けられているエフェクトの範囲を表示する。各UIアイテムは、UIアイテムのサムネイル画像にエフェクトが適用される範囲まで、エフェクトを画像142に適用する目的に対応している。この例では、サムネイルスライダコントロール1280に関連付けられているエフェクトは、左下から右上に描かれた斜線で表されている。画像上に表示される斜線の数が多いほど、画像に適用されているエフェクトの範囲が広いことを表し、画像上に表示される斜線の数が少ないほど、画像に適用されているエフェクトの範囲が狭いことを表す。
第2のステージ1210は、サムネイルスライダコントロール1280の選択可能なUIアイテムが選択された後のGUI100を図示している。ここで、ユーザは、サムネイルスライダコントロール1280に関連付けられているエフェクトを画像142に適用するため、UIアイテム1282を選択している。UIアイテム1282が選択されたことは、UIアイテム1282がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1282の選択を受け取ると、アプリケーションはUIアイテム1282をハイライトして、UIアイテム1282のサムネイル画像にエフェクトが適用された範囲まで、画像142にエフェクトを適用する。第2のステージ1210に示されているように、画像142上に3本の斜線が表示されており、これはUIアイテム1282のサムネイル画像上に表示される斜線と同数であって、このことは、サムネイルスライダコントロール1280に関連付けられているエフェクトが、画像142に適用されていることを示している。
エフェクトによっては目に留まりづらいものもあれば、又はエフェクトが画像に極めて狭い範囲で適用されることもあり得る。エフェクトが画像に適用されていることを示すために、幾つかの実施形態の画像編集アプリケーションは、アプリケーションが画像にエフェクトを適用した時に、エフェクトツールUIアイテム140の上にインジケータ(例えば、ハイライト)を表示する。第2のステージ1210に図示しているように、そのようなインジケータはエフェクトツールUIアイテム140の上に表示され、黒い境界線で縁取られた白い太線で表される。アプリケーションがUIアイテム1282の選択を受け取った時に、アプリケーションはインジケータを表示する。幾つかの実施形態において、アプリケーションは、(別のツールがアクティブ化されている場合でさえも)1つ以上のエフェクトが編集中の画像に適用される限り、引き続きエフェクトツールUIアイテム140の上にインジケータを表示する。
第3のステージ1215は、ユーザがサムネイルスライダコントロール1280の別の選択可能なUIアイテムを選択した後のGUI100を図示している。このステージにおいて、ユーザは(例えば、UIアイテム1284にタッチして)UIアイテム1284を選択し、サムネイルスライダコントロール1280に関連付けられているエフェクトを画像142に適用することによって、エフェクトが画像142に適用される範囲を増大させている。UIアイテム1284が選択されたことは、UIアイテム1284がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1284の選択を受け取ると、アプリケーションはUIアイテム1284をハイライトし、UIアイテム1282のハイライトを解除して、エフェクトがUIアイテム1284のサムネイル画像に適用されるのと同じ範囲まで、画像142にエフェクトを適用する。第3のステージ1215に示すように、画像142上に表示される斜線数の方が、第2のステージ1210における画像142上に表示される斜線数と比較して増えており、このことは、より大きな範囲のエフェクトが画像142に適用されていることを示す。
第4のステージ1220においてGUI100は、ユーザがサムネイルスライダコントロール1280の別の選択可能なUIアイテムを選択して、エフェクトが画像142に適用される範囲を変更したことを図示している。第4のステージ1220において、ユーザは(例えば、UIアイテム1281にタッチして)UIアイテム1281を選択し、サムネイルスライダコントロール1280に関連付けられているエフェクトを画像142に適用することによって、エフェクトが画像142に適用される範囲を縮小する。UIアイテム1281が選択されたことは、UIアイテム1281がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1281の選択を受け取ると、アプリケーションはUIアイテム1281をハイライトし、UIアイテム1284のハイライトを解除して、エフェクトがUIアイテム1281のサムネイル画像に適用されるのと同じ範囲まで、画像142にエフェクトを適用する。図示のように、画像142上には斜線が全く表示されておらず、このことは、縮小された範囲のエフェクトが画像142に適用されていることを示す。
図12は、選択された時にエフェクトの一連の定義済み範囲を編集中の画像に適用する、一連の選択可能なUIアイテムを含むサムネイルスライダコントロールを図示している。そのようなサムネイルスライダコントロールはまた、離散サムネイルスライダコントロールと呼ばれる場合もある。幾つかの実施形態において、アプリケーションは、編集中の画像にエフェクトをより細かな粒度で適用するための、サムネイルスライダコントロールを提供する。このサムネイルスライダコントロールは、連続サムネイルスライダコントロールと呼ばれる場合もある。
図13は、幾つかの実施形態の連続サムネイルスライダコントロール1380、及びサムネイルスライダコントロール1380を使用して画像にエフェクトの適用を、概念的に示す。特に、図13は、エフェクト適用操作の4つの別々のステージ1305〜1320におけるGUI100を図示している。
図13におけるエフェクトツール175が一連のサムネイルスライダコントロールを含むことを除けば、GUI100の第1のステージ1305は、図2に図示されている第4のステージ220に類似している。図示のように、ユーザは(例えば、UIアイテム140を選択して)エフェクトツール175をアクティブ化しており、これは、エフェクトアイテム140がハイライトされていることにより示されている。加えて、ユーザは(例えば、エフェクトツール175の一連のサムネイルスライダコントロールが外向きに扇形編出されている時に、サムネイルスライダコントロール1380にタッチして)エフェクトツール175のサムネイルスライダコントロール1380を選択している。
図示のように、サムネイルスライダコントロール1380は、選択可能な摺動領域1386と、選択可能な摺動領域1386に沿った別々の位置に配置された一連のサムネイル画像1381〜1385と、を含む。摺動領域1386は、サムネイルスライダコントロール1380に関連付けられているエフェクトの別々の範囲を編集中の画像(この例では、画像142)に適用する目的に対応している。摺動領域1386の水平軸に沿った別々のロケーションは、編集中の画像に別々の範囲のエフェクトを適用する目的に対応している。例えば、幾つかの実施形態において、摺動領域1386の第1の水平端部は、編集中の画像にエフェクトが殆ど又は全く適用されないことに相当しており、摺動領域1386第2の水平端部は、編集中の画像に全範囲のエフェクトが適用されることに相当しており、摺動領域の第1の端部から第2の端部までの増分的な水平ロケーションは、編集中の画像に増分範囲のエフェクトが適用されることに相当している。この例では、選択可能な摺動領域1386の左側は、編集中の画像にエフェクトが全く適用されないことに相当しており、選択可能な摺動領域1386の右側は、編集中の画像に全範囲のエフェクトが適用されることに相当している。
図示のように、サムネイル画像1381〜1385の各々は、画像142のサムネイル画像、及びサムネイル画像に適用されたサムネイルスライダコントロール1380に関連付けられているエフェクトの範囲を表示する。この例では、選択可能な摺動領域1386における各サムネイル画像の中央のロケーションは、サムネイル画像に適用されるエフェクトの範囲に対応している。このようにして、サムネイル画像1381〜1385は、ユーザがサムネイルの中央を選択した時にエフェクトが編集中の画像に適用される範囲を、ユーザに対し視覚的に示す。様々な実施形態は、サムネイル画像1381〜1385を基準とした選択可能な摺動領域1386内の別々のロケーションを使用して、サムネイル画像に適用されるエフェクトの範囲に対応するようにしている。例えば、幾つかの実施形態は、選択可能な摺動領域1386内の各サムネイル画像の左付近のロケーションを使用して、サムネイル画像に適用されているエフェクトの範囲に対応し得る。
第2のステージ1310は、サムネイルスライダコントロール1380の摺動領域1386上のロケーションが選択された後のGUI100を図示している。ここで、ユーザは、サムネイルスライダコントロール1380に関連付けられているエフェクトを画像142に適用するため、サムネイル画像1382付近のロケーションを選択している。摺動領域1386上のロケーションが選択されると、画像編集アプリケーションは、選択されたロケーションを示すインジケータ1387を表示して、ロケーションに最も近いサムネイルをハイライトする。図示のように、ユーザが選択したのは、サムネイル画像1382付近のロケーションである。アプリケーションがこのロケーションの選択を受け取ると、アプリケーションはサムネイル画像1382をハイライトして、選択されたロケーションに一致する範囲まで、画像142にエフェクトを適用する。第2のステージ1310に示すように、画像142に適用されるエフェクトの範囲は、エフェクトがサムネイル画像1382に適用される範囲に類似している。この例では、第2のステージ1310より前には画像142に全くエフェクトが適用されていなかったため、アプリケーションがサムネイル画像1382の選択を受け取った時に、アプリケーションは画像142にエフェクトが適用されたことを示すインジケータをエフェクトツールUIアイテム140の上に表示する。
第3のステージ1315は、ユーザがサムネイルスライダコントロール1380の選択可能な摺動領域1386に沿った別のロケーションを選択した後のGUI100を図示している。このステージでは、ユーザが摺動領域1386上のロケーションを選択して、エフェクトが画像142に適用される範囲が増大している。ユーザは、ロケーションを、第2のステージ1310において引き続き摺動領域1386にタッチして摺動領域1386に沿ってそのロケーションまでスライドすることによって、又は摺動領域1386上でそのロケーションにタッチすることによって、選択できる。
第3のステージ1310に示されているロケーションが選択された状態であることは、そのロケーションに最も近いサムネイル画像であるサムネイル画像1384がハイライトされていることにより示されている。ユーザが指を摺動領域1386に沿って滑らせてロケーションを選択する例では、幾つかの実施形態のアプリケーションは、選択されているロケーションにおいて引き続きインジケータ1387を表示する。つまり、指を摺動領域1386に沿って滑らせると、アプリケーションは、指と一緒にインジケータ1387のロケーションを移動する。
幾つかの実施形態において、ユーザが指を摺動領域1386に沿って滑らしている間、アプリケーションは摺動領域1386内の最も近いサムネイル画像を引き続きハイライトする。よって、そのような実施形態のアプリケーションは、サムネイル画像1383をハイライトし、滑らせている指のロケーションがサムネイル画像1382よりもサムネイル画像1383に近づいた時に、サムネイル画像1382のハイライトを解除する。同様に、アプリケーションは、サムネイル画像1384をハイライトし、滑らせている指のロケーションがサムネイル画像1383よりもサムネイル画像1384に近づいた時に、サムネイル画像1383のハイライトを解除する。
幾つかの実施形態のアプリケーションは、ユーザが指を摺動領域1386に沿って滑らせている間、選択されたロケーションに一致する範囲まで、画像142にエフェクトを適用する。第3のステージ1315に示すように、画像142上に表示される斜線数の方が、第2のステージ1310における画像142上に表示される斜線数と比較して増えており、このことは、より大きな範囲のエフェクトが画像142に適用されていることを示す。
第4のステージ1320におけるGUI100は、ユーザが選択可能な摺動領域1386に沿った別のロケーションを選択して、エフェクトが画像142に適用される範囲が変更されたことを図示している。第4のステージ1320では、ユーザが摺動領域1386上のロケーションを選択して、エフェクトが画像142に適用される範囲が縮小した。ユーザはこのロケーションを、第3のステージ1315において引き続き摺動領域1386にタッチして摺動領域1386に沿ってそのロケーションまでスライドすることにより、又は摺動領域1386上でそのロケーションにタッチすることによって、選択できる。
幾つかの実施形態において、画像編集アプリケーションは、サムネイル画像1381〜1385をハイライトし、インジケータ1387を表示して、上で第3のステージ13815を参照することにより述べたのと類似の様式で画像142にエフェクトを適用する。このステージで示すように、画像142上に斜線が全く表示されておらず、縮小された範囲のエフェクトが画像142に適用さていることを示している。
図12及び13は、編集中の画像に適用される単一エフェクトを制御するサムネイルスライダコントロールの例を図示している。サムネイルスライダコントロールで実施され得る単一エフェクトの詳細は、2012年9月27日出願の「Method and Interface for Converting Images to Grayscale」と題する米国特許出願公開第13/629,549号、及び2012年9月27日出願の「Multi Operation Slider」と題する米国特許出願公開第13/629,523号に記載されている。米国特許出願公開第13/629,549号及び同第13/629,523号は、本明細書において参照により援用されている。
幾つかの実施形態において、アプリケーションは、幾つかの別々のエフェクトを編集中の画像に適用するための、サムネイルスライダコントロールを提供する。図14は、幾つかの実施形態のサムネイルスライダコントロール1480、及びサムネイルスライダコントロール1480を使用して別々のエフェクトを画像にエフェクトの適用を、概念的に示す。具体的には、図14は、幾つかのエフェクト適用操作の4つの別々のステージ1405〜1420におけるGUI100を図示している。
図14におけるエフェクトツール175が一連のサムネイルスライダコントロールを含むことを除けば、GUI100の第1のステージ1405は、図2に図示されている第4のステージ220に類似している。図示のように、ユーザは(例えば、UIアイテム140を選択して)エフェクトツール175をアクティブ化しており、このことは、エフェクトアイテム140がハイライトされていることにより示されている。加えて、ユーザは(例えば、エフェクトツール175の一連のサムネイルスライダコントロールが外向きに扇形編出されている時に、サムネイルスライダコントロール1480にタッチして)エフェクトツール175のサムネイルスライダコントロール1480を選択している。
図14に示すように、サムネイルスライダコントロール1480は、サムネイルスライダコントロール1480に沿った別々の位置に配置された、一連の選択可能なUIアイテム1481〜1485を含む。一連の選択可能なUIアイテム1481〜1485は、サムネイルスライダコントロール1480に関連付けられている別々のエフェクトを編集中の画像(この例では、画像142)に適用する目的に対応している。この例では、別々のエフェクトのうちの幾つかが、異なる種類の線(この例では、縦線、横線、左から右の斜線、及び右から左の斜線)で表されている。図示のように、各選択可能なUIアイテムは、画像142のサムネイル画像、及びサムネイル画像に適用された別々のエフェクトの範囲を表示する。
幾つかの実施形態において、サムネイルスライダコントロール1480は、同じ種類の別々のエフェクトを提供する。例えば、幾つかの実施形態サムネイルスライダコントロール1480は、様々なペイントエフェクト、様々な黒白エフェクト、様々な色エフェクトなどを提供する。幾つかの実施形態において、サムネイルスライダコントロール1480は、様々な種類の別々のエフェクトを提供する。
第2のステージ1410は、サムネイルスライダコントロール1480の選択可能なUIアイテムが選択された後のGUI100を図示している。ここで、ユーザは、UIアイテム1481に関連付けられているエフェクトを画像142に適用するため、UIアイテム1481を選択している。UIアイテム1481が選択されたことは、UIアイテム1481がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1481の選択を受け取ると、アプリケーションはUIアイテム1481をハイライトして、UIアイテム1481に対応するエフェクトを画像142に適用する。この例では、第2のステージ1410より前には画像142に全くエフェクトが適用されていないため、UIアイテム1481の選択を受け取った時に、アプリケーションはエフェクトが画像142に適用されたことを示すインジケータをエフェクトツールUIアイテム140の上に表示する。
第3のステージ1415は、ユーザがサムネイルスライダコントロール1280の別の選択可能なUIアイテムを選択した後のGUI100を図示している。このステージにおいて、ユーザは(例えば、UIアイテム1483にタッチして)UIアイテム1483を選択し、サムネイルスライダコントロール1280に関連付けられている別々のエフェクトを画像142に適用している。UIアイテム1483が選択されたことは、UIアイテム1483がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1483の選択を受け取ると、アプリケーションは、UIアイテム1483をハイライトし、UIアイテム1481のハイライトを解除してから、UIアイテム1483に対応するエフェクトを画像142に適用する。
第4のステージ1420におけるGUI100は、ユーザがサムネイルスライダコントロール1480の別の選択可能なUIアイテムを選択して、画像142に適用されるエフェクトが変更されたことを図示している。第4のステージ1420において、ユーザは(例えば、UIアイテム1485にタッチして)UIアイテム1485を選択し、UIアイテム1485に対応するエフェクトを画像142に適用する。UIアイテム1485が選択されたことは、UIアイテム1485がハイライトされていることにより示される。画像編集アプリケーションがUIアイテム1485の選択を受け取ると、アプリケーションは、UIアイテム1485をハイライトし、UIアイテム1483のハイライトを解除してから、UIアイテム1485に対応するエフェクトを画像142に適用する。
異なる種類のエフェクトを画像に適用するためサムネイルスライダコントロールで実施され得るエフェクトの詳細は、2012年9月27日出願の「Overlaid User Interface Tools for Applying Effects to Image」と題する米国特許出願公開第13/629,383号、2012年9月1日出願の米国特許出願公開第13/602,124号、及び2012年9月1日出願の米国特許出願公開第13/602,135号に記載されている。米国特許出願公開第13/629,383号、同第13/602,124号、及び同第13/602,135号は、本明細書において参照により援用されている。
図15は、幾つかの実施形態の連続サムネイルスライダコントロール1580、及びサムネイルスライダコントロール1580を画像に対する複数のエフェクトへの使用を、概念的に示す。特に、図15は、複数のエフェクトを編集中の画像への適応の3つの別々のステージ1505〜1515におけるGUI100を図示している。
図15におけるエフェクトツール175が一連のサムネイルスライダコントロールを含むことを除けば、GUI100の第1のステージ1505は、図2に図示されている第4のステージ220に類似している。図示のように、ユーザは(例えば、UIアイテム140を選択して)エフェクトツール175をアクティブ化しており、このことは、エフェクトアイテム140がハイライトされていることにより示されている。加えて、ユーザは(例えば、エフェクトツール175の一連のサムネイルスライダコントロールが外向きに扇形編出されている時に、サムネイルスライダコントロール1580にタッチして)エフェクトツール175のサムネイルスライダコントロール1580を選択している。
図示のように、サムネイルスライダコントロール1580は、選択可能な摺動領域1586と、選択可能な摺動領域1586に沿った別々の位置に配置された一連のサムネイル画像1581〜1585と、一連の選択可能なUIアイテム1587〜1589と、を含む。摺動領域1586は、サムネイルスライダコントロール1580に関連付けられているエフェクトの別々の範囲を編集中の画像(この例では、画像142)に適用する目的に対応している。摺動領域1586の水平軸に沿った別々のロケーションは、編集中の画像に別々の範囲のエフェクトを適用する目的に対応している。例えば、幾つかの実施形態において、摺動領域1586の第1の水平端部は、編集中の画像にエフェクトが殆ど又は全く適用されないことに相当しており、摺動領域1586第2の水平端部は、編集中の画像に全範囲のエフェクトが適用されることに相当しており、摺動領域の第1の端部から第2の端部までの増分的な水平ロケーションは、編集中の画像に増分範囲のエフェクトが適用されることに相当している。この例では、選択可能な摺動領域1586の左側は、編集中の画像にエフェクトが全く適用されないことに相当しており、選択可能な摺動領域1586の右側は、編集中の画像に全範囲のエフェクトが適用されることに相当している。
図示のように、サムネイル画像1581〜1585の各々は、画像142のサムネイル画像、及びサムネイル画像に適用されたサムネイルスライダコントロール1580に関連付けられているエフェクトの範囲を表示する。この例では、選択可能な摺動領域1586における各サムネイル画像の中央のロケーションは、サムネイル画像に適用されるエフェクトの範囲に対応している。このようにして、サムネイル画像1581〜1585は、ユーザがサムネイルの中央を選択した時にエフェクトが編集中の画像に適用される範囲を、ユーザに対し視覚的に示す。様々な実施形態は、サムネイル画像1581〜1585を基準とした選択可能な摺動領域1586内の別々のロケーションを使用して、サムネイル画像に適用されているエフェクトの範囲に対応するようにしている。例えば、幾つかの実施形態は、選択可能な摺動領域1586内の各サムネイル画像の左付近のロケーションを使用して、サムネイル画像に適用されているエフェクトの範囲に対応し得る。
一連の選択可能なUIアイテム1587〜1589は、画像にエフェクトが適用された後、摺動領域1586を使用して別々のエフェクトを編集中の画像に適用する目的に対応している。幾つかの実施形態では、一連の選択可能なUIアイテム1587〜1589を使用して、摺動領域1586を用いてエフェクトを画像に適用せずとも別々のエフェクトを画像に適用できる。エフェクトの例としては、ビネットエフェクト、セピアエフェクト、グレインエフェクト、又は画像の外観を修正するための他の任意のエフェクトが挙げられる。第1のステージ1505は、一連のUIアイテム1587〜1589を表示するGUI100を示しているが、幾つかの実施形態のアプリケーションは、摺動領域1586を使用してエフェクトが適用された後にUIアイテム1587〜1589を提供する。
第2のステージ1510は、サムネイルスライダコントロール1580の摺動領域1586上のロケーションが選択された後のGUI100を図示している。ここで、ユーザは、サムネイルスライダコントロール1580に関連付けられているエフェクトを画像142に適用するため、サムネイル画像1582付近のロケーションを選択している。摺動領域1586のロケーションが選択されると、画像編集アプリケーションは、選択されたロケーションを示すインジケータ1590を表示して、ロケーションに最も近いサムネイルをハイライトする。図示のように、ユーザが選択したのは、サムネイル画像1582付近のロケーションである。アプリケーションがこのロケーションの選択を受け取ると、アプリケーションは、サムネイル画像1582をハイライトして、選択されたロケーションに一致する範囲まで、画像142にエフェクトを適用する。第2のステージ1510に示すように、画像142に適用されるエフェクトの範囲は、エフェクトがサムネイル画像1582に適用される範囲に類似している。この例では、第2のステージ1510より前には画像142に全くエフェクトが適用されていなかったため、アプリケーションがサムネイル画像1582の選択を受け取った時に、アプリケーションは画像142にエフェクトが適用されたことを示すインジケータをエフェクトツールUIアイテム140の上に表示する。
GUI100の第3のステージ1515は、ユーザが編集中の画像に追加エフェクトを適用する際、選択可能なUIアイテムのうちの1つを選択したことを図示している。図示のように、ユーザは(例えば、UIアイテム1587にタッチして)UIアイテム1587を選択し、ビネットエフェクトを画像142に適用する。第3のステージ1515はまた、画像142の境界線の周囲のエリアが暗色化されていることに示されているように、ビネットエフェクトが画像に適用されていることも示している。
図12〜15は、編集中の画像のサムネイルがサムネイルスライダコントロールに沿って直線状に配置されているサムネイルスライダコントロールの幾つかの例を図示したものであるが、様々な実施形態では、サムネイルスライダコントロールに沿ってサムネイルがそれぞれ異なる様式で配置される。例えば、幾つかの実施形態のサムネイルスライダコントロールでは、編集中の画像のサムネイルがサムネイルスライダコントロールに沿って曲線状に配置される。別の例として、編集中の画像のサムネイルは、幾つかの実施形態のサムネイルスライダコントロールに沿ってずらした様式で配置される場合がある(例えば、幾つかのサムネイルを上にずらし、幾つかのサムネイルを下にずらす)。サムネイルスライダコントロールに沿ってサムネイルを配置する方法は、他の実施形態において、それ以外にも多数あり得る。
上記の図13及び15は、連続サムネイルスライダコントロールの例を図示している。それらの例は、選択されたロケーションを示すインジケータ、及びそのインジケータで示されるロケーションに最も近いサムネイルがハイライトされていることを示す。選択されたロケーションをハイライトするために利用される技術は、実施形態ごとにそれぞれ異なる。例えば、幾つかの実施形態の画像編集アプリケーションは、最も近くのサムネイルをハイライトする代わりに又はハイライトすると共に、インジケータをハイライトする。選択されたロケーションを示す他の技術も可能である。
図16は、エフェクトツールのサムネイルスライダコントロール用のサムネイルを生成するための幾つかの実施形態のプロセス1600を、概念的に示す。幾つかの実施形態において、(例えば、図1及び5に図示されている第1のステージに示すように)エフェクトツールがアクティブ化された時に、プロセス1600が実行される。幾つかの実施形態のプロセス1600は、エフェクトツールがアクティブになっておりかつ編集用の別の画像(例えば、サムネイル表示エリア125から選択された画像)が選択された時に、実行される。
(1610において)サムネイルの生成元となる画像を識別することによってプロセス1600が開始される。幾つかの実施形態において、プロセス1600が編集中の画像を識別する。例として図9を参照すると、画像142は編集中の画像である(即ち、画像表示エリア145に表示されている画像が、画像142である)ことから、プロセス1600は画像142を識別する。
次いで、プロセス1600は(1620において)エフェクトツールのサムネイルスライダコントロールを識別する。引き続き図9に示す例では、プロセス1600は、エフェクトツール175のサムネイルスライダコントロール980〜988のうちの1つを識別する。
次いで、プロセス1600は(1630において)識別されたサムネイルスライダコントロールに関連付けられているエフェクトを識別する。サムネイルスライダコントロールには、別のエフェクトも関連付けられ得る。別のエフェクトの例としては、黒白エフェクト、セピアエフェクト、デュオトーンエフェクト、グラデーションエフェクト、ビネットエフェクト、チルトシフトエフェクト、又は画像に適用され得る他の任意のエフェクトが挙げられる。
次いで、プロセス1600は(1640において)識別された画像及び識別されたエフェクトに基づいて、一連のサムネイル画像を生成する。上述したように、幾つかの実施形態サムネイルスライダコントロールは、編集中の画像に適用される単一エフェクトの別々の範囲を制御する目的に対応している。そのような実施形態において、プロセス1600は、識別されたエフェクトの別々の範囲を別々のサムネイル画像に適用して、識別された画像の一連のサムネイル画像を生成する。
上述の通り、幾つかの実施形態において、サムネイルスライダコントロールは、幾つかの別々のエフェクトを編集中の画像に適用する目的に対応している。これらの実施形態において、プロセス1600は、別々のエフェクトのうちの1つをサムネイル画像に適用して、識別された画像のサムネイル画像を生成する。
一連のサムネイルが生成された後、プロセス1600は(1650において)処理対象のエフェクトが残っているかどうかを判定する。プロセス1600が処理対象のエフェクトが残っていると判定した場合、プロセス1600は1630に戻り、識別されたサムネイルスライダコントロールの残りの任意のエフェクト用のサムネイルを引き続き生成する。例えば、サムネイルスライダコントロールが幾つかの別々のエフェクトを編集中の画像に適用する目的に対応している場合、プロセス1600は、サムネイルスライダコントロールに関連付けられている別々のエフェクトの各々について1630及び1640を実行する。プロセス1600が処理対象のエフェクトが何も残っていないと判定した場合、プロセス1600は1660に進む。
1660において、プロセス1600は、処理対象のサムネイルスライダコントロールが残っているかどうかを判定する。プロセス1600が処理対象のサムネイルスライダコントロールが残っていると判定した場合、プロセス1600は1620に戻り、エフェクトツールの残りの任意のサムネイルスライダコントロール用のサムネイルを引き続き生成する。例として図9を参照すると、プロセス1600は、サムネイルスライダコントロール980〜988の各々について1620〜1650を実行している。プロセス1600が処理対象のサムネイルスライダコントロールが何も残っていないと判定した場合、プロセス1600は終了する。
図17は、エフェクトツール175を提供する幾つかの実施形態のアプリケーションのステートダイヤグラム1700を、概念的に示す。具体的には、図17は、幾つかの実施形態のアプリケーション幾つかのステート、及びこれらのステート間の遷移を図示している。
ステート1705において、アプリケーションは画像編集中、閲覧中、又は編成中のステートにある。幾つかの実施形態において、アプリケーションが最初に開始した時にまず、アプリケーションはステート1705にある。アプリケーションがステート1705にある時、アプリケーションは画像の編集、閲覧、又は編成用のツールを提供する。例えば、アプリケーションは、画像共有用の共有ツールを提供し、様々な編集ツール(例えば、切り抜き及び回動ツール、露光ツール、色ツールなど)を提供し、画像タグ付けなどの目的に対応したツールを提供し得る、などである。
アプリケーションが横置き閲覧モードの時に、アプリケーションがエフェクトツール175をアクティブ化すると、アプリケーションはステート1705からステート1710に遷移する。アプリケーションが縦置き閲覧モードの時に、アプリケーションがエフェクトツール175をアクティブ化すると、アプリケーションはステート1705からステート1715に遷移する。幾つかの場合では、アプリケーションがエフェクトツール175をアクティブ化すると、アプリケーションは最後に用いられたステートに戻る。そのような幾つかの場合では、アプリケーションは、アプリケーションが横置き閲覧モードであればステート1705からステート1720に遷移し、アプリケーションが縦置き閲覧モードであればステート1705からステート1725に遷移する(図17においては不図示)。図17に示すように、アプリケーションが1710〜1725のいずれかのステートにあり、アプリケーションがエフェクトツール175を無効化すると(例えば、別のツールをアクティブ化して)、アプリケーションはステート1705に戻る。
ステート1710において、アプリケーションは横置き閲覧モードにあり、エフェクトツール175のエフェクトコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート1710にある時に、図1の第4のステージ120に図示されているGUIを提供する。
アプリケーションが(例えば、ステート1715又はステート1720から)ステート1710に変わると、アプリケーションはエフェクトツール175のエフェクトコントロールの扇形編出開アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図1を参照することにより述べたアニメーションに類似する扇形編出開アニメーションを表示する。
アプリケーションがステート1710に遷移する(例えば、アプリケーションがステート1720から遷移した)時にエフェクトツール175のエフェクトコントロールが選択されていた場合、アプリケーションはステート1710にある間、選択されたエフェクトコントロールを引き続きハイライトする。アプリケーションがステート1710にあり、アプリケーションがエフェクトツール175のエフェクトコントロールの選択を受け取ると、アプリケーションはステート1720に遷移する。アプリケーションがステート1710にあり、アプリケーションが横置き閲覧モードから縦置き閲覧モードに変わった場合、アプリケーションはステート1715に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート1715に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の減分、表示エリアの高さの増分などが行われた場合)、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート1715に遷移する。
ステート1720において、アプリケーションは横置き閲覧モードにあり、エフェクトツール175のエフェクトコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート1710にある時に、図2の第4のステージ220に図示されているGUIを提供する。
アプリケーションがステート1710からステート1720に変わる際に、アプリケーションは、エフェクトツール175のエフェクトコントロールの扇形編出閉アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図2を参照することにより述べたアニメーションに類似する扇形編出閉アニメーションを表示する。アプリケーションがステート1720に遷移すると、アプリケーションは、エフェクトツール175の選択されたエフェクトコントロールをハイライトする。
アプリケーションがステート1720にあり、アプリケーションがUIアイテム(例えば、UIアイテム190)の選択を受け取ると、エフェクトツール175のエフェクトコントロールを開いた状態に扇形編出するため、アプリケーションはステート1710に遷移する。アプリケーションがステート1720にあり、アプリケーションが横置き閲覧モードから縦置き閲覧モードに変わると、アプリケーションはステート1725に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート1725に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の減分、表示エリアの高さの増分などが行われた場合)、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート1725に遷移する。
アプリケーションがステート1720にあり、アプリケーションがエフェクトコントロール175の選択されたエフェクトコントロールを介して入力(例えば、タッチ入力)を受け取った場合、アプリケーションはステート1730に遷移する。例として図12を参照すると、アプリケーションがステート1720にある時、アプリケーションはサムネイルスライダコントロール1280の選択可能なUIアイテムの選択を受け取って、サムネイルスライダコントロール1280に関連付けられているエフェクトの範囲を編集中の画像に適用できる。別の例として図13を参照すると、アプリケーションがステート1720にある時、アプリケーションはサムネイルスライダコントロール1380の選択可能な摺動領域1386を介して摺動ジェスチャを受け取ることによって、サムネイルスライダコントロール1380に関連付けられているエフェクトの範囲を編集中の画像に適用できる。
ステート1715において、アプリケーションは縦置き閲覧モードにあり、エフェクトツール175のエフェクトコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート1715にある時に、図5の第4のステージ520に図示されているGUIを提供する。
アプリケーションが(例えば、ステート1710又はステート1725から)ステート1715に変わると、アプリケーションはエフェクトツール175のエフェクトコントロールの扇形編出開アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図5を参照することにより述べたアニメーションに類似する扇形編出開アニメーションを表示する。
アプリケーションがステート1715に遷移する(例えば、アプリケーションがステート1725から遷移した)時にエフェクトツール175のエフェクトコントロールが選択されていた場合、アプリケーションは、ステート1715にある間、選択されたエフェクトコントロールを引き続きハイライトする。アプリケーションがステート1715にあり、アプリケーションがエフェクトツール175のエフェクトコントロールの選択を受け取ると、アプリケーションはステート1725に遷移する。アプリケーションがステート1715にあり、アプリケーションが閲覧モードを縦置き閲覧モードから横置き閲覧モードに変更した場合、アプリケーションはステート1710に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート1710に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の増分、表示エリアの高さの減分などが行われた場合)、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート1710に遷移する。
ステート1725において、アプリケーションは縦置き閲覧モードにあり、エフェクトツール175のエフェクトコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート1725にある時に、図6の第4のステージ620に図示されているGUIを提供する。
アプリケーションがステート1715からステート1725に変わる際に、アプリケーションは、エフェクトツール175のエフェクトコントロールの扇形編出閉アニメーションを表示する。幾つかの実施形態において、アプリケーションは上で図6を参照することにより述べたアニメーションに類似する扇形編出閉アニメーションを表示する。アプリケーションがステート1725に遷移すると、アプリケーションはエフェクトツール175の選択されたエフェクトコントロールをハイライトする。
アプリケーションがステート1725にあり、アプリケーションがUIアイテム(例えば、UIアイテム190)の選択を受け取ると、エフェクトツール175のエフェクトコントロールを開いた状態に扇形編出するため、アプリケーションはステート1715に遷移する。アプリケーションがステート1725にあり、アプリケーションが縦置き閲覧モードから横置き閲覧モードに変わった場合、アプリケーションはステート1720に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート1720に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の増分、表示エリアの高さの減分などが行われた場合)、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート1720に遷移する。
アプリケーションがステート1725にあり、アプリケーションがエフェクトツール175の選択されたエフェクトコントロールを介して、入力(例えば、タッチ入力)を受け取った場合、アプリケーションはステート1730に遷移する。例として図12を参照すると、アプリケーションがステート1725にある時、アプリケーションはサムネイルスライダコントロール1280の選択可能なUIアイテムの選択を受け取って、サムネイルスライダコントロール1280に関連付けられているエフェクトの範囲を編集中の画像に適用できる。別の例として図13を参照すると、アプリケーションがステート1720にある時、アプリケーションはサムネイルスライダコントロール1380の選択可能な摺動領域1386を介して摺動ジェスチャを受け取ることによって、サムネイルスライダコントロール1380に関連付けられているエフェクトの範囲を編集中の画像に適用できる。
ステート1730において、アプリケーションは、エフェクトツール175の選択されたエフェクトコントロールを介して受け取られた入力に基づいて、編集中の画像にエフェクトを適用する。例えば、図12を参照すると、アプリケーションがステート1720又はステート1725においてサムネイルスライダコントロール1280を介してUIアイテムの選択を受け取ると、アプリケーションは、ステート1730おいて、サムネイルスライダコントロール1280に関連付けられているエフェクトを、編集中の画像に選択されたUIアイテムに対応しているエフェクトの範囲まで適用する。別の例として図13を参照すると、アプリケーションがステート1720又はステート1725にあり、アプリケーションがサムネイルスライダコントロール1380の選択可能な摺動領域1386に沿ったロケーションの選択を受け取ると、アプリケーションは、ステート1730において、サムネイルスライダコントロール1380に関連付けられているエフェクトを編集中の画像に、摺動領域1386に沿って選択されたロケーションに対応している範囲まで適用する。エフェクトツール175の選択されたエフェクトコントロールを介して受信された入力に基づいてエフェクトが適用された後、アプリケーションは、アプリケーションがステート1730に遷移する直前のステートまで遷移して戻る。換言すれば、アプリケーションがステート1720からステート1730に遷移した時は、アプリケーションはステート1720に遷移して戻り、アプリケーションがステート1725からステート1730に遷移した時は、アプリケーションはステート1725に遷移して戻る。
図17に図示されているステートダイヤグラムは、幾つかの実施形態の画像編集アプリケーションの幾つかの別々のステートを示す。幾つかの実施形態において、図17におけるステート及び遷移によって表される様々なアクションは、アプリケーション内で実行可能と考えられるアクションのサブセットに過ぎないことは、当業者に認識されるであろう。加えて、示されていない他の機能は、特定のステートにある時に実行され得る。例えば、幾つかの実施形態において、画像編集アプリケーションが扇形編出閉ステート(例えば、ステート1720又はステート1725)にあり、画像にまだ如何なるエフェクトも適用していない場合にアプリケーションが編集中の画像にエフェクトを適用するための入力を受け取ると、アプリケーションは編集中の画像にエフェクトが適用されたことを示すインジケータを、エフェクトツールUIアイテム140の上に表示する。
B.ブラシツール
画像にエフェクトを適用するためのUIツールの実施例及び実施形態は上記のサブセクションAに例示してある。画像にブラシエフェクトを適用するためのUIツールの実施例及び実施形態については、以下のサブセクションBにて例示する。
図18は、幾つかの実施形態のブラシツール1875を含むGUI100、及びブラシツール1875のアクティブ化を、概念的に示す。具体的には、図18は、ブラシツールのアクティブ化操作の4つの別々のステージ1805〜1820におけるGUI100を図示している。
GUI100の第1のステージ1805は、ブラシツール1875のアクティブ化を図示している。図示のように、ユーザは(例えば、UIアイテム138にタッチして)ブラシツールUIアイテム138を選択し、ブラシツール1875をアクティブ化している。
第2のステージ1810は、ブラシツール1875がアクティブ化された後のGUI100を図示している。図示のように、GUI100は、ブラシツール1875のブラシコントロールの扇形編出開アニメーションの開始を表示し、UIアイテム138がハイライトされている。図示のように、ブラシツール1875は、一連のブラシコントロール1880〜1888を含む。ブラシコントロール1880〜1888の各々は、編集中の画像(この例では、画像142)に一連のブラシエフェクトを適用する目的に対応している。
画像編集アプリケーションがブラシツールUIアイテム138の選択を受け取ると、アプリケーションはUIアイテム138をハイライトし、一連のブラシコントロール1880〜1888の扇形編出開アニメーションの表示を開始する。この例では、ブラシコントロール1880〜1888は画像表示エリア145の底部において同じ垂直位置及びロケーションから扇形編出開アニメーションを開始し、開いた状態に扇形編出しながら画像表示エリア145の底部から画像表示エリア145の中心に向かってスライドする。図示のように、ブラシコントロール1880〜1888は、垂直位置及びロケーションから僅かに開いた状態に扇形編出される。
画像編集アプリケーションは、別々のブラシコントロールが固定ロケーションの周りをそれぞれ異なる量だけ回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出開アニメーションを表示する。図示のように、ブラシコントロール1880及び1882は、左に向かって固定ロケーションの周りを反時計回り方向に回動し、ブラシコントロール1880はブラシコントロール1882よりも更に外向きに扇形編出する。ブラシコントロール1886及び1888は、右に向かって固定ロケーションの周りを時計回りの様式に回動し、ブラシコントロール1888はブラシコントロール1886よりも更に外向きに扇形編出する。ブラシコントロール1884は全く回動しない。
幾つかの実施形態において、画像編集アプリケーションは、別々のブラシコントロールが開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出開アニメーションを表示する。ブラシコントロール1880及び1888は固定ロケーションの周りを同じ速度で回動し、ブラシコントロール1882及び1886は固定ロケーションの周りを同じ速度で回動する。ブラシコントロール1880及び1888は、ブラシコントロール1882及び1886よりも高速で回動する。
幾つかの実施形態の画像編集アプリケーションは、ブラシコントロールが開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出開アニメーションを表示する。ブラシコントロール1880〜1888を同じ速度で移動させながら扇形編出開アニメーションを表示するため、画像編集アプリケーションは、別々の時点で別々のブラシコントロールの移動を開始する(例えば、定義済み時間量の経過後に特定のブラシコントロールの移動を開始する)。この手法に基づき、アプリケーションは、ブラシコントロール1880及び1888の移動を開始し、それ以後の時点で、ブラシコントロール1882及び1886の移動を開始する。
第3のステージ1815は、ブラシツール1875のブラシコントロール1880〜1888の扇形編出開アニメーションが終了に近づいているGUI100を図示している。図示のように、ブラシコントロール1880〜1888は、第2のステージ1810に図示されているブラシコントロール1880〜1888の位置よりも更に中心から開いた状態に扇形編出される。加えて、ブラシコントロール1880〜1888は、第2のステージ1810に示すブラシコントロール1880〜1888の位置と比較して、画像表示エリア145の底部から更に上方へ摺動した。つまり、第2のステージ1810と第3のステージ1815との間で、画像編集アプリケーションは、ブラシコントロール1880〜1888を画像表示エリア145の中心に向かって画像表示エリア145の底部から更に上方へ摺動させながら、ブラシコントロール1880〜1888を更に開いた状態に扇形編出する。
第4のステージ1820は、ブラシコントロール1880〜1888の扇形編出開アニメーションが完了した後のGUI100を示す。図示のように、ブラシコントロール1880〜1888は、第3のステージ1815に図示されているブラシコントロール1880〜1888の位置よりも更に中心から開いた状態に扇形編出される。また、ブラシコントロール1880〜1888は、第3のステージ1815に示すブラシコントロール1880〜1888の位置と比較して、画像表示エリア145の底部から更に上方へ摺動した。つまり、第3のステージ1815と第4のステージ1820との間で、画像編集アプリケーションは、ブラシコントロール1880〜1888を画像表示エリア145の中心に向かって画像表示エリア145の底部から更に上方へ摺動させながら、ブラシコントロール1880〜1888を更に開いた状態に扇形編出する。
図18は、ブラシツールがアクティブ化されている時の、ブラシツールのブラシコントロールの扇形編出開アニメーションの例を図示している。幾つかの実施形態において、画像編集アプリケーションは、ブラシツールがアクティブ化されても、ブラシツールのブラシコントロールの扇形編出開アニメーションを表示しない。代わりに、そのような幾つかの実施形態のアプリケーションは、ブラシツールの最終ステート(例えば、最も最近のステート)を表示する。例えば、ブラシツールがアクティブ化されており、かつブラシツールのブラシコントロールがブラシツールの最終ステートで選択されている時は、画像編集アプリケーションは、選択されたブラシコントロールを、以下の図19を参照することにより述べる第4のステージ1920に類似の様式で表示し得る。
図19は、図18に図示されているブラシツール1875のブラシコントロールの選択を、概念的に示す。特に、図19は、ブラシコントロールの選択操作の4つの別々のステージ1905〜1920におけるGUI100を図示している。
GUI100の第1のステージ1905は、ブラシツール175のブラシコントロールの選択を示す。図示のように、ユーザは(例えば、ブラシコントロール1886にタッチして)ブラシコントロール1886を選択している。画像編集アプリケーションがブラシコントロール1886の選択を受け取ると、アプリケーションは、選択されたブラシコントロール(この例では、ブラシコントロール1886)をハイライトし、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションの表示を開始する。
第2のステージ1910は、ブラシコントロール1886が選択され、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが開始された後のGUI100を図示している。画像編集アプリケーションは、ブラシコントロール1886の境界線をボールド表示して、ブラシコントロール1886をハイライトする。この例では、図18の第4のステージ1820に示す一連のブラシコントロール1880〜1888の位置及びロケーションは、扇形編出閉アニメーション用の一連のブラシコントロール1880〜1888の開始位置及びロケーションである。
画像編集アプリケーションは、別々のブラシコントロールが固定ロケーションの周りをそれぞれ異なる量だけ回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出閉アニメーションを表示する。図示のように、ブラシコントロール1880及び1882は、右に向かって固定ロケーションの周りを時計回り方向に回動し、ブラシコントロール1880はブラシコントロール1882よりも更に内向きに扇形編出する。ブラシコントロール1886及び1888は、左に向かって固定ロケーションの周りを反時計回りの様式に回動し、ブラシコントロール1888はブラシコントロール1886よりも更に内向きに扇形編出する。ブラシコントロール1884は全く回動しない。
幾つかの実施形態において、画像編集アプリケーションは、別々のブラシコントロールが開始位置及びロケーションから固定ロケーションの周りを異なる速度で定義済みの時間間隔にわたって回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出閉アニメーションを表示する。ブラシコントロール1880及び1888は固定ロケーションの周りを同じ速度で回動し、ブラシコントロール1882及び1886は固定ロケーションの周りを同じ速度で回動する。ブラシコントロール1880及び1888は、ブラシコントロール1882及び1886よりも高速で回動する。
幾つかの実施形態の画像編集アプリケーションは、ブラシコントロールが開始位置及びロケーションから固定ロケーションの周りを同じ速度で回動することを表示することによって、ブラシコントロール1880〜1888の扇形編出閉アニメーションを表示する。ブラシコントロール1880〜1888を同じ速度で移動させながら扇形編出開アニメーションを表示するため、画像編集アプリケーションは、別々の時点で別々のブラシコントロールの移動を開始する(例えば、定義済み時間量の経過後に特定のブラシコントロールの移動を開始する)。この手法に基づき、アプリケーションは、ブラシコントロール1880及び1888の移動を開始し、それ以後の時点で、ブラシコントロール1882及び1886の移動を開始する。
第2のステージ1910に示すように、ブラシコントロール1880〜1888は、第1のステージ1905に図示されているブラシコントロール1880〜1888の位置よりも更に中心に向かって閉じた状態に扇形編出される。加えて、ブラシコントロール1880〜1888は、第1のステージ1905に示すブラシコントロール1880〜1888の位置と比較して、画像表示エリア145の更に中心から下方へ摺動した。つまり、第1のステージ1905と第2のステージ1910との間で、画像編集アプリケーションは、ブラシコントロール1880〜1888を画像表示エリア145の底部に向かって画像表示エリア145の中心から更に下方へ摺動させながら、ブラシコントロール1880〜1888を更に閉じた状態に扇形編出する。
第3のステージ1915は、ブラシツール1875のブラシコントロール1880〜1888の扇形編出閉アニメーションが終了に近づいているGUI100を図示している。図示のように、ブラシコントロール1880〜1888は、第2のステージ1910に図示されているブラシコントロール1880〜1888の位置よりも更に中心へ向かって閉じた状態に扇形編出される。加えて、ブラシコントロール1880〜1888は、第2のステージ1910に示すブラシコントロール1880〜1888の位置と比較して、画像表示エリア145の中心から画像表示エリア145の底部へ向かって更に下方へ摺動した。つまり、第2のステージ1910と第3のステージ1915との間で、画像編集アプリケーションは、ブラシコントロール1880〜1888を画像表示エリア145の中心から画像表示エリア145の底部に向かって更に下方へ摺動させながら、ブラシコントロール1880〜1888を更に閉じた状態に扇形編出する。
第4のステージ1920は、ブラシコントロール1880〜1888の扇形編出閉アニメーションが完了した後のGUI100を示す。図示のように、アプリケーションは、ツールバー195内にブラシコントロール1880〜1888の上部を表示する。画像編集アプリケーションは、選択されたブラシコントロール1886を、選択されていないブラシコントロール1880〜1884及び1888よりも定義済みオフセット量だけ上位に表示する。
図19は、ブラシツールの特定のブラシコントロールの選択を図示したものであるが、当業者に認識されるように、ブラシツールのブラシコントロールはいずれもブラシツールがアクティブ化された後に選択されてよい。例えば、ブラシコントロール1880、1882、1884、又は1888もユーザによって選択されていたかもしれない。
ユーザは、ブラシツールのブラシコントロールを選択した後でブラシコントロールの選択を変更したい場合もある。図20は、図18に図示されているブラシツール1875の選択されたブラシコントロールの変更を、概念的に示す。具体的には、図20は、ブラシコントロールの変更操作の4つの別々のステージ2005〜2020におけるGUI100を図示している。
GUI100の第1のステージ2005は、図19に図示されているGUI100の第4のステージ1920に類似している。つまり、第1のステージ2005は、ブラシコントロール1886が選択され、ブラシコントロール1886が境界線のボールド表示によりハイライトされ、かつ一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが完了した後のGUI100を示している。
GUI100の第2のステージ2010は、別のブラシコントロールの選択を図示している。図示のように、ユーザは(例えば、ブラシコントロール1882にタッチして)ブラシコントロール1882を選択している。アプリケーションがブラシコントロール1882の選択を受け取ると、アプリケーションは前に選択されたブラシコントロール(この例では、ブラシコントロール1886)のハイライトを解除してから、新たに選択されたブラシコントロール(この例では、ブラシコントロール1882)をハイライトする。ブラシコントロール1882のハイライトは、ブラシコントロール1882の境界線がボールド表示されていることにより示される。
第3のステージ2015におけるGUI100はブラシツール1875における別のブラシコントロールの選択を示す。図示のように、ユーザは(例えば、ブラシコントロール1888にタッチして)ブラシコントロール1888を選択している。アプリケーションがブラシコントロール1888の選択を受け取ると、アプリケーションは前に選択されたブラシコントロール(この例では、ブラシコントロール1882)のハイライトを解除してから、新たに選択されたブラシコントロール(この例では、ブラシコントロール1888)をハイライトする。ブラシコントロール1888のハイライトは、ブラシコントロール1888の境界線がボールド表示されていることにより示される。
GUI100の第4のステージ2020は、別のブラシコントロールの選択を図示している。このステージにおいて、ユーザは(例えば、ブラシコントロール1886にタッチして)ブラシコントロール1886を選択している。アプリケーションがブラシコントロール1886の選択を受け取ると、アプリケーションは前に選択されたブラシコントロール(この例では、ブラシコントロール1888)のハイライトを解除してから、選択されたブラシコントロール(この例では、ブラシコントロール1886)をハイライトする。ブラシコントロール1886のハイライトは、ブラシコントロール1886の境界線がボールド表示されていることにより示される。
図21は、図18に図示されているブラシツール1875の選択されたブラシコントロールを変更するための別の技術を概念的に示す。具体的には、図21は、ブラシコントロールの選択を変更するため、ブラシコントロールを開いた状態に扇形編出することによって、ブラシコントロールの変更操作の4つの別々のステージ2105〜2120におけるGUI100を図示している。
GUI100の第1のステージ2105は、図19に図示されているGUI100の第4のステージ1920に類似している。つまり、第1のステージ2105は、ブラシコントロール1886が選択され、ブラシコントロール1886が境界線のボールド表示によりハイライトされ、かつ一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが完了した後のGUI100を示している。加えて、第1のステージ2105は、ブラシツール1875のブラシコントロールの選択を変更する操作の呼び出しも図示している。図示のように、ユーザは、選択されたブラシコントロール1886を選択して、一連のブラシコントロール1880〜1888を開いた状態に扇形編出している。
第2のステージ2110は、画像編集アプリケーションが一連のブラシコントロール1880〜1888の扇形編出開アニメーションを終了した後のGUI100を図示している。アプリケーションが選択されたブラシコントロール(この例のブラシコントロール1886)の選択を受け取ると、アプリケーションは、一連のブラシコントロール1880〜1888の扇形編出開アニメーションを表示する。このアニメーションは、上で図18を参照することにより述べた扇形編出開アニメーションに類似している。図示のように、ブラシコントロール1886がハイライトされたままになっている理由は、ブラシコントロール1886が、ブラシツール1875において現在選択されているブラシコントロールであるためである。
第3のステージ2115におけるGUI100は、ブラシツール1875の別々のブラシコントロールの選択を示す。図示のように、ユーザは(例えば、ブラシコントロール1880にタッチして)ブラシコントロール1880を選択している。画像編集アプリケーションがブラシコントロール1880の選択を受け取ると、アプリケーションは、ブラシコントロール1880をハイライトして、上で図19を参照することにより述べた一連のブラシコントロール1880〜1888の扇形編出閉アニメーションに類似する一連のブラシコントロール1880〜1888の扇形編出閉アニメーションを表示する。
第4のステージ2120は、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションの終了後に、選択されたブラシコントロール1880がハイライトされた状態のGUI100を図示している。図示のように、アプリケーションは、ツールバー195内にブラシコントロール1880〜1888の上部を表示し、選択されたブラシコントロール1880を、選択されていないブラシコントロール1882〜1888よりも定義済みオフセット量だけ上位に表示する。
図20及び21は、ブラシツールの選択されたブラシコントロールを変更する例を幾つか図示している。当業者によって理解されるように、ブラシツールの選択されたブラシコントロールを変更する際には、ブラシツールの任意のブラシコントロールも選択することができる。しかも、ブラシツールの選択されたブラシコントロールは、任意の回数変更することができる。
このサブセクションBで上述した図において、ブラシコントロール同士の外観は同じであるか又は類似している。幾つかの実施形態において、ブラシツールのブラシコントロール同士は、別々の種類のブラシコントロールを表すため、それぞれ外観が異なっている。図22は、そのようなブラシツールの例を概念的に示す。特に、図22は、ステージ2205においてエフェクトツール1875のブラシコントロールを開いた状態に扇形編出し、ステージ2210においてエフェクトツール1875のブラシコントロールを閉じた状態に扇形編出するGUI100を図示している。しかも、上で図18〜21を参照することにより述べた操作はいずれも、図22に示すブラシツール1875に対して実行され得る。
ステージ2205におけるGUI100は、一連のブラシコントロール2280〜2287が開いた状態に扇形編出されているエフェクトツール1875を示す。具体的には、この例において、ステージ2205は、画像編集アプリケーションが、上で図18を参照することにより述べたアニメーションに類似するブラシコントロール2280〜2287の扇形編出開アニメーションを表示した後のGUI100を示す。
図示のように、一連のブラシコントロール2280〜2287は、編集中の画像から汚点を除去するためのリペアブラシコントロール2280、画像からレッドアイを除去するためのレッドアイブラシコントロール2281、画像の一部の彩度を増分するための高彩度ブラシコントロール2282、画像の一部の彩度を減分するための低彩度ブラシコントロール2283、画像の一部の明度を増分するための明色化ブラシコントロール2284、画像の一部の明度を減分するための暗色ブラシコントロール2285、画像の一部をシャープにするためのシャープ化ブラシコントロール2286、及び画像の一部をソフトにし、かつ/又はぼかすためのソフト化ブラシコントロール2287を含む。ブラシコントロールの詳細は、2012年9月27日出願の「User Interface Tools for Selectively Applying Effects to Image」と題する米国特許出願公開第13/629,374号に記載されている。米国特許出願公開第13/629,374号は、本明細書において参照により援用されている。
ステージ2210におけるGUI100は、一連のブラシコントロール2280〜2287が閉じた状態に扇形編出されているエフェクトツール1875を示す。この例においてステージ2210は、画像編集アプリケーションが、上で図19を参照することにより述べたアニメーションに類似するブラシコントロール2280〜2287の扇形編出閉アニメーションを表示した後のGUI100を示す。ステージ2210に示すように、ブラシコントロール2280〜2287の上部はツールバー195内に表示されており、選択されたブラシコントロール(この例では、レッドアイブラシコントロール2281)がハイライトされており、選択されたブラシコントロールが、選択されていないブラシコントロールよりも定義済みオフセット量だけ上位に表示されている。
図22は、ブラシコントロールの異なる外観の例を示したものであるが、当業者に認識されるように、ブラシコントロールは、ブラシコントロールを表す異なる外観を任意の数だけ有し得る。例えば、ブラシコントロールは、蛍光マーカーペン、鉛筆、万年筆、塗料ローラー、ペイントスクレーパなどとして表され得る。
幾つかの実施形態において、画像編集アプリケーションは、アプリケーションが横置き閲覧モードの時に、上掲の図18〜22に記載されているGUIを提供する。そのような幾つかの実施形態のアプリケーションにおいてアプリケーションが縦置き閲覧モードの時に提供されるGUIについては、下掲の図に示す。
図23は、幾つかの実施形態のブラシツール1875を含むGUI2300、及びブラシツール1875のアクティブ化を、概念的に示す。具体的には、図23は、ブラシツールのアクティブ化操作の4つの別々のステージ2305〜2320におけるGUI2300を図示している。GUI2300においてサムネイル表示エリア125が画像表示エリア145の下かつツールバー195の上に配列されていることを除けば、GUI2300は、上で図1を参照することにより述べたGUI100に類似している。また、GUI2300はツールバー135を含んでおらず、そのため、代わりにツールバー195内に、UIアイテム132〜140が表示される。
GUI2300のステージ2305〜2320は、上で図18を参照することにより述べたステージ1805〜1820に類似している。即ち、第1のステージ2305はブラシツール1875のアクティブ化を示し、第2のステージ2310はブラシコントロール1880〜1888の扇形編出開アニメーションの開始を示し、第3のステージ2315は扇形編出閉アニメーションが終了に近づいているブラシコントロール1880〜1888を示し、第4のステージ2320は扇形編出開アニメーション終了時のブラシコントロール1880〜1888を示す。
図24は、図18に図示されているブラシツール1875のブラシコントロールの選択を、概念的に示す。特に、図24は、ブラシコントロールの選択操作の4つの別々のステージ2405〜2420におけるGUI100を図示している。
GUI2300のステージ2405〜2415は、上で図19を参照することにより述べたステージ1905〜1915に類似している。即ち、第1のステージ2405はブラシコントロール1886の選択を示し、第2のステージ2410はブラシコントロール1880〜1888の扇形編出閉アニメーションの開始を示し、及び第3のステージ2415は扇形編出閉アニメーションが終了に近づいているブラシコントロール1880〜1888を示す。
第4のステージ2420は、ブラシコントロール1880〜1888の扇形編出閉アニメーションが完了した後のGUI100を示す。図示のように、画像編集アプリケーションは、ブラシコントロール1880〜1888の扇形編出閉アニメーションの終了時に、ツールバー195内に選択されたブラシコントロール1886の上部のみを表示する。幾つかの実施形態において、アプリケーションは、上で図21を参照することにより述べた技術に類似の技術を利用して、ブラシツールのブラシコントロールの選択を変更する。即ち、ユーザはツールバーに表示されている選択されたブラシコントロールを選択することによって、ブラシコントロールを開いた状態に扇形編出した後、開いた状態に扇形編出されたブラシコントロールから別のブラシコントロールを選択する。
幾つかの実施形態において、画像編集アプリケーションにより、アプリケーションが横置き閲覧モードの時に、上で図18〜22を参照することにより述べた操作例に応じたGUIが提供され得る。幾つかの実施形態に係る画像編集アプリケーションは、アプリケーションが縦置き閲覧モードの時に、操作例について上で図23及び24を参照することにより述べたGUIを提供する。しかしながら、幾つかの場合では、画像編集アプリケーションは、操作例に応じた更に別のGUIを提供する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイス(例えば、スマートフォン)のディスプレイ画面には、図1〜4に示す操作例を表示するための十分な空きスペースがない場合もある。
図25は、幾つかの実施形態のブラシツール1875を含む画像編集アプリケーションのGUI500、及びブラシツール1875のアクティブ化を、概念的に示す。具体的には、図25は、ブラシツールのアクティブ化操作の4つの別々のステージ2505〜2520におけるGUI500を図示している。
GUI500の第1のステージ2505は、ブラシツール1875のアクティブ化を図示している。このステージにおいて、ユーザは(例えば、UIアイテム138にタッチして)選択可能なブラシツールUIアイテム138を選択し、ブラシツール1875をアクティブ化している。
第2のステージ2510は、ブラシツール1875がアクティブ化された後のGUI500を図示している。図示のように、GUI500は、一連のブラシコントロール1880〜1888の扇形編出開アニメーションの開始を表示しており、ブラシツールUIアイテム138がハイライトされている。画像編集アプリケーションがブラシツールUIアイテム138の選択を受け取ると、アプリケーションはUIアイテム138をハイライトし、(例えば、左へ向かってスライドしてツールバー195から遠ざかるUIアイテム132〜140のアニメーションを表示することによって)ツールバー195からUIアイテム132〜140を除去して、ツールバー195の左側にUIアイテム138を表示する。
この例において、ブラシコントロール1880〜1888は、垂直位置からツールバー195の底部にて扇形編出開アニメーションを開始する。図示のように、ブラシコントロール1880〜1888は、垂直位置及びロケーションから僅かに開いた状態に扇形編出される。画像編集アプリケーションは、上で図18を参照することにより述べた任意の扇形編出技術を利用して、ブラシコントロール1880〜1888を開いた状態に扇形編出する。アプリケーションは、ブラシコントロール1880〜1888が開いた状態に扇形編出されている間、ブラシコントロール1880〜1888がその周りを回動する固定ロケーション(例えば、ピボット点)を、ブラシコントロール1880〜1888を基準として、移動する。アプリケーションは、固定ロケーションを、画像表示エリア145の右側の中央に向かって移動する。アプリケーションはまた、扇形編出開アニメーション中に、ブラシコントロール1880〜1888を扇形編出して固定ロケーションを移動させながら、ブラシツール1875を反時計回りに回動させる。
第3のステージ2515は、ブラシツール1875のブラシコントロール1880〜1888の扇形編出開アニメーションが終了に近づいているGUI500を図示している。図示のように、ブラシコントロール1880〜1888は、第2のステージ2510に図示されているブラシコントロール1880〜1888の位置よりも更に中心から開いた状態に扇形編出される。加えて、ブラシコントロール1880〜1888がその周りを回動する固定ロケーションは、第2のステージ2510における固定ロケーションの位置と比較して、画像表示エリア145の右側の中央に向かって更に移動した。また、ブラシツール1875は反時計回りに更に回動した。つまり、第2のステージ2510と第3のステージ2515との間で、画像編集アプリケーションは、ブラシツール195を反時計回りに回動させながら、固定ロケーションを画像表示エリア145の右側の中央に向かって更に移動させて、ブラシコントロール1880〜1888を更に開いた状態に扇形編出する。
第4のステージ2520は、ブラシコントロール1880〜1888の扇形編出開アニメーション完了後のGUI500を示す。図示のように、ブラシコントロール1880〜1888は、第3のステージ2515に図示されているブラシコントロール1880〜1888の位置よりも更に中心から開いた状態に扇形編出される。また、ブラシコントロール1880〜1888がその周りを回動する固定ロケーションは、第3のステージ2515における固定ロケーションの位置と比較して更に移動した。加えて、ブラシツール1875を反時計回りに更に回動させた。つまり、第3のステージ2515と第4のステージ2520との間で、画像編集アプリケーションは、ブラシツール195を反時計回りに回動させながら、固定ロケーションを画像表示エリア145の右側の中央に向かって更に移動させて、ブラシコントロール1880〜1888を更に開いた状態に扇形編出する。
図25は、ブラシツールがアクティブ化されている時の、ブラシツールのブラシコントロールの扇形編出開アニメーションの例を図示している。幾つかの実施形態において、ブラシツールがアクティブ化されても、画像編集アプリケーションは、ブラシツールのブラシコントロールの扇形編出開アニメーションを表示しない。代わりに、そのような幾つかの実施形態のアプリケーションは、ブラシツールの最終ステート(例えば、最も最近のステート)を表示する。例えば、ブラシツールがアクティブ化されており、かつブラシツールのブラシコントロールがブラシツールの最終ステートで選択されている時は、画像編集アプリケーションは、選択されたブラシコントロールを、以下に図26を参照することにより述べる第4のステージ2620に類似の様式で表示し得る。
図26は、図25に図示されているブラシツール1875のブラシコントロールの選択を、概念的に示す。特に、図26は、ブラシコントロールの選択操作の4つの別々のステージ2605〜2620におけるGUI500を図示している。
GUI500の第1のステージ2605は、ブラシツール1875のブラシコントロールの選択を示す。図示のように、ユーザは(例えば、ブラシコントロール1886にタッチして)ブラシコントロール1886を選択している。画像編集アプリケーションがブラシコントロール1886の選択を受け取ると、アプリケーションは選択されたブラシコントロール(この例では、ブラシコントロール1886)をハイライトし、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションの表示を開始する。
第2のステージ2610は、ブラシコントロール1886が選択され、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが開始された後のGUI500を図示している。画像編集アプリケーションは、ブラシコントロール1886の境界線をボールド表示して、ブラシコントロール1886をハイライトする。この例では、図25の第4のステージ2520に示す一連のブラシコントロール1880〜1888の位置及びロケーションは、扇形編出閉アニメーション用の一連のブラシコントロール1880〜1888の開始位置及びロケーションである。図示のように、ブラシコントロール1880〜1888は、扇形編出閉アニメーション用のブラシコントロール1880〜1888の開始位置及びロケーションから僅かに閉じた状態に扇形編出される。画像編集アプリケーションは、上で図19を参照することにより述べた任意の扇形編出技術を利用して、ブラシコントロール1880〜1888を開いた状態に扇形編出する。
第3のステージ2615は、ブラシツール1875のブラシコントロール1880〜1888の扇形編出閉アニメーションが終了に近づいているGUI500を図示している。図示のように、ブラシコントロール1880〜1888は、第2のステージ2610に図示されているブラシコントロール1880〜1888の位置よりも更に中心へ向かって閉じた状態に扇形編出される。加えて、ブラシコントロール1880〜1888がその周りを回動する固定ロケーションは、第2のステージ2610に示すブラシコントロール1880〜1888の位置と比較して、画像表示エリア145の右側の中央からツールバー195の中央に向かって更に移動した。また、ブラシツール1875は時計回りに更に回動した。つまり、第2のステージ2610と第3のステージ2615との間で、画像編集アプリケーションは、ブラシツール175を時計回りに回動させながら、固定ロケーションをツールバー195の中央に向かって移動させながら、ブラシコントロール1880〜1888を更に閉じた状態に扇形編出する。
第4のステージ2620は、ブラシコントロール1880〜1888の扇形編出閉アニメーションが完了した後のGUI500を示す。図示のように、アプリケーションは、ブラシコントロール1880〜1888の扇形編出閉アニメーションの終了時に、ツールバー195内に選択されたブラシコントロール1886の上部のみを表示する。第3のステージ2615と第4のステージ2620との間で、画像編集アプリケーションは、ブラシツール175を時計回りに回動させながら、固定ロケーションをツールバー195の中央に向かって移動させながら、ブラシコントロール1880〜1888を更に閉じた状態に扇形編出する。
図26は、ブラシツールの特定のブラシコントロールの選択を図示したものであるが、当業者に認識されるように、ブラシツールのブラシコントロールはいずれもブラシツールがアクティブ化された後に選択されてよい。例えば、ブラシコントロール1880、1882、1884、又は1888もユーザによって選択されていたかもしれない。
図27は、図25に図示されているブラシツール1875で選択されたブラシコントロールを変更するための別の技術を概念的に示す。具体的には、図27は、ブラシコントロールの選択を変更するため、ブラシコントロールを開いた状態に扇形編出することによって、ブラシコントロールの変更操作の4つの別々のステージ2705〜2720におけるGUI500を図示している。
GUI500の第1のステージ2705は、図26に図示されているGUI500の第4のステージ2620に類似している。つまり、第1のステージ2705は、ブラシコントロール1886が選択され、ブラシコントロール1886が境界線のボールド表示によりハイライトされ、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが完了し、かつ選択されたブラシコントロール1886がツールバー195上に表示された後のGUI500を示す。加えて、第1のステージ2705は、ブラシツール1875のブラシコントロールの選択を変更する操作の呼び出しも図示している。図示のように、ユーザは、選択されたブラシコントロール1886を選択して、一連のブラシコントロール1880〜1880を開いた状態に扇形編出している。
第2のステージ2710は、画像編集アプリケーションが一連のブラシコントロール1880〜1888の扇形編出開アニメーションを終了した後のGUI500を図示している。アプリケーションが選択されたブラシコントロール(この例のブラシコントロール1886)の選択を受け取ると、アプリケーションは、一連のブラシコントロール1880〜1888の扇形編出開アニメーションを表示する。このアニメーションは、上で図25を参照することにより述べた扇形編出開アニメーションに類似している。図示のように、ブラシコントロール1886がハイライトされたままになっている理由は、ブラシコントロール1886が、ブラシツール1875において選択されたブラシコントロールであるためである。
第3のステージ2715におけるGUI500は、ブラシツール1875の別のブラシコントロールの選択を示す。図示のように、ユーザは(例えば、ブラシコントロール1880にタッチして)ブラシコントロール1880を選択している。画像編集アプリケーションがブラシコントロール1880の選択を受け取ると、アプリケーションは、前に選択されたブラシコントロール1886のハイライトを解除し、新たに選択されたブラシコントロール1880をハイライトして、上で図26を参照することにより述べた一連のブラシコントロール1880〜1888の扇形編出閉アニメーションに類似する一連のブラシコントロール1880〜1888の扇形編出閉アニメーションを表示する。
第4のステージ2720に図示されているGUI500は、一連のブラシコントロール1880〜1888の扇形編出閉アニメーションが終了した後のものである。図示のように、アプリケーションは、ブラシコントロール1880〜1888の扇形編出閉アニメーションの終了時に、ツールバー195内に選択されたブラシコントロール1886のうちハイライトされた上部のみを表示する。
図25〜27は、ブラシコントロールが開いた状態及び閉じた状態に扇形編出されている時の、ブラシコントロール1880〜1888のレイアウト例及びアニメーションを示す。幾つかの実施形態において、図25〜27に図示されているブラシコントロール1880〜1888のレイアウト及びアニメーションは、画像編集アプリケーションが右手モードになっている時に提供され、この右手モードでは、ユーザが右手を使って円滑にアプリケーションのGUI500と対話操作しやすくなる。そのような幾つかの実施形態において、画像編集アプリケーションが左手モードになっている時、アプリケーションは、ブラシコントロールが開いた状態及び閉じた状態に扇形編出される際に、ブラシコントロール1880〜1888の異なるレイアウト、及びアニメーションを提供する。例えば、アプリケーションの左手モードにおいて、幾つかの実施形態の画像編集アプリケーションは、ブラシコントロールが画像表示エリア145の左側から画像表示エリア145の中心へと移動しながら、そのブラシコントロールが画像表示エリア145の左下近くで開始して画像表示エリア145の右上へ向かって開いた状態に扇形編出することを除けば、図25に示したものに類似の様式で扇形編出開アニメーションを表示する。そのような実施形態のアプリケーションの左手モードは、ブラシコントロールが画像表示エリア145の中心付近から画像表示エリア145の左側へと移動しながら、ブラシコントロールが画像表示エリア145の左下へ向かって内向きに扇形編出することを除けば、図6に示したものと類似の様式で扇形編出閉アニメーションを表示する。幾つかの実施形態において、画像編集アプリケーションが左手モードになっている時、図25〜27に図示されているブラシコントロール1880〜1888の配列が提供され、アプリケーションが右手モードの時は、代わりに、上で左手モードに関して述べたブラシコントロール1880〜1888の配列が提供される。
上記の図25〜27は、幾つかの実施形態のアプリケーションが縦置き閲覧モードの時に提供されるGUIを図示している。当業者によって理解されるように、様々な実施形態のアプリケーションは、異なる閲覧モードでは異なるGUI及びアニメーションを提供する。例えば、幾つかの実施形態において、アプリケーションが横置き閲覧モードの時に、アプリケーションは、ツールバー内のUIアイテムのレイアウトが図25〜27に示すツールバー(例えば、ブラシコントロールが閉じた状態に扇形編出されている時は選択されたブラシコントロールのみが表示される)に類似していることを除いて、図18〜21に図示されているGUIに類似するGUIを提供する。幾つかの実施形態において、アプリケーションは、図18〜21に示したものと類似な様式でアニメーションを表示する。当業者によって理解されるように、上記の図18〜27中のいずれのGUIも、上記の図18〜27中に示すあらゆるアニメーションを使用できる。
上記の図18〜27は、UIコントロールを開いた状態及び閉じた状態に扇形編出するための幾つかの技術を示す。例えば、図21及び27は、現在選択されているUIコントロールを選択し、そのUIコントロールを開いた状態に扇形編出することによって、別のUIコントロールの選択、及びあるUIコントロールを選択し、そのUIコントロールの閉じた状態に扇形編出を示している。しかしながら、幾つかの実施形態において、UIコントロールを開いた状態及び閉じた状態に扇形編出する際に、他の技術を利用することもできる。例えば、幾つかの実施形態のUIツールにおいて、ユーザは、選択されたUIコントロール上でジェスチャ(例えば、スワイプアップジェスチャ)を実行することによって、そのUIコントロールを開いた状態に扇形編出する。同様に、幾つかの実施形態において、UIコントロールが開いた状態に扇形編出されており、かつユーザが別のUIコントロールを選択したくない場合(即ち、ユーザが現在選択されているUIコントロールを選択された状態に維持したい場合)、ユーザはUIツールを使って画像表示エリア上でジェスチャ(例えば、スワイプダウンジェスチャ)を実行することによって、そのUIコントロールを閉じた状態に扇形編出することができる。他の技術も考えられる。
上述の通り、幾つかの実施形態において、ブラシツールのブラシコントロール同士は、別々の種類のブラシコントロールを表すため、それぞれ外観が異なっている。図28は、それぞれ異なる外観のブラシコントロールを、概念的に示す。具体的には、図28は、ステージ2805においてエフェクトツール1875のブラシコントロールを開いた状態に扇形編出し、ステージ2810においてエフェクトツール1875のブラシコントロールを閉じた状態に扇形編出するGUI500を図示している。しかも、上で図25〜27を参照することにより述べた操作はいずれも、図28に示すブラシツール1875に対して実行され得る。
GUI500のステージ2805は、一連のブラシコントロール2280〜2287が開いた状態に扇形編出されているエフェクトツール1875を示す。具体的には、この例において、ステージ2805は、画像編集アプリケーションが、上で図25を参照することにより述べたアニメーションに類似するブラシコントロール2280〜2287の扇形編出開アニメーションを表示した後のGUI500を示す。
ステージ2810におけるGUI100は、一連のブラシコントロール2280〜2287が閉じた状態に扇形編出されているエフェクトツール1875を示す。この例では、ステージ2810は、画像編集アプリケーションが、上で図26を参照することにより述べたアニメーションに類似するブラシコントロール2280〜2287の扇形編出閉アニメーションを表示した後のGUI500を示す。ステージ2810に示すように、選択されたブラシコントロール(この例では、レッドアイブラシコントロール2881)の上部のみが、ツールバー195内に表示され、選択されたブラシコントロールがハイライトされる。
図29は、幾つかの実施形態のブラシツール1875のブラシコントロールを使用してブラシエフェクトを画像への適応を、概念的に示す。具体的には、図29は、ブラシエフェクト適用操作の4つの別々のステージ2905〜2920におけるGUI100を図示している。
GUI100の第1のステージ2905は、図19に図示されている第4のステージ1920に類似している。図示のように、ユーザは(例えば、UIアイテム138を選択して)ブラシツール1875をアクティブ化している。このことは、ブラシアイテム138がハイライトされていることにより示されている。加えて、ユーザは(例えば、ブラシツール1875の一連のブラシコントロールが外向きに扇形編出されている時に、ブラシコントロール1886にタッチして)ブラシツール1875のブラシコントロール1886を選択している。
GUI100の第2のステージ2910は、編集中の画像に適用されているブラシエフェクトを図示している。図示のように、ユーザは(例えば、画像142の領域にタッチし、ラビングジェスチャを実行して)画像142の領域を選択して、画像142の領域にブラシエフェクトを適用している。画像編集アプリケーションが画像142の領域の選択を受け取ると、アプリケーションは、ブラシコントロール1886に関連付けられているブラシエフェクトを画像142の領域に適用する。加えて、画像142の領域の選択を受け取ると即座に、アプリケーションは、ブラシコントロール1886を用いて画像142にブラシエフェクトが適用されたことを示すインジケータをブラシコントロール1886の上に表示し、ブラシツール1875を用いて画像142に編集内容が適用されたことを示すインジケータをブラシツールUIアイテム138の上に表示する。
第3のステージ2915は、ユーザが画像142にブラシエフェクトを適用し終えた後のGUI100を図示している。図示のように、画像142においてブラシエフェクトが適用された領域は、斜線で示されている。
第3のステージ2915はまた、別のブラシエフェクトが編集中の画像に適用されていることも示す。図示のように、ユーザは(例えば、画像142の領域にタッチし、ラビングジェスチャを実行して)画像142の第2の領域を選択して、ブラシコントロール1886に関連付けられているブラシエフェクトを画像142の第2の領域に適用している。画像編集アプリケーションが画像142の第2の領域の選択を受け取ると、アプリケーションは、ブラシコントロール1886に関連付けられているブラシエフェクトを画像142の第2の領域に適用する。
第4のステージ2920は、ユーザが画像142にブラシエフェクトを適用し終えた後のGUI100を図示している。図示のように、画像142においてブラシエフェクトが適用された第2の領域は、斜線で示されている。
図30は、幾つかの実施形態のブラシツール1875のブラシコントロールを使用してブラシエフェクトを画像への適応、及び図29で適用されたブラシエフェクトの無効化を、概念的に示す。特に、図30は、ブラシエフェクトの適用操作及びブラシエフェクトの無効化操作の4つの別々のステージ3005〜3020におけるGUI100を図示している。
GUI100の第1のステージ3005は、図29に図示されている第4のステージ2920に類似している。図示のように、ユーザは、ブラシコントロール1886に関連付けられているブラシエフェクトを画像142の2つの領域に適用している。これらの適用対象領域は、画像142において斜線で示されている。第1のステージ3005はまた、ユーザによる別のブラシコントロールの選択を示している。このステージに図示されるように、ユーザは(例えば、ブラシコントロール1882にタッチして)ブラシコントロール1882を選択している。
第2のステージ3010は、編集中の画像にブラシエフェクトが適用されているGUI100を図示している。図示のように、ユーザは(例えば、画像142の領域にタッチし、ラビングジェスチャを実行して)画像142の第3の領域を選択して、画像142の第3の領域にブラシエフェクトを適用している。画像編集アプリケーションが画像142の領域の選択を受け取ると、アプリケーションは、ブラシコントロール1882に関連付けられているブラシエフェクトを画像142の第3の領域に適用する。加えて、画像142の領域の選択を受け取ると即座に、アプリケーションは、ブラシコントロール1882を用いて画像142にブラシエフェクトが適用されたことを示すインジケータをブラシコントロール1882の上に表示する。
第3のステージ3015は、ユーザがブラシエフェクトを第2のステージ3010に示す画像142に適用した後のGUI100を図示している。図示のように、ブラシコントロール1882を用いてブラシエフェクトが適用された画像142の領域は、別の斜線で示してある。
第3のステージ3015にはまた、ユーザがブラシコントロール1886を用いて画像142に適用したブラシエフェクトの無効化も示してある。このステージにおいて、ユーザは(例えば、ブラシコントロール1886に連続2回素早くタッチして)ブラシコントロール1886を選択し、ブラシコントロール1886を用いて画像142に適用したブラシエフェクトを無効化している。
ユーザはブラシツール1875のブラシエフェクト無効化機能を用いることによって、特定のブラシコントロールを用いて編集中の画像に適用されていたブラシエフェクトを無効化及び有効化することができる。このようにして、ユーザは別々のブラシコントロールを個別に使用して、編集中の画像に適用されたブラシエフェクトを閲覧できる。例えば、ユーザは第1のブラシコントロールを使用して第1の一連のブラシエフェクトを編集中の画像の領域に適用することもできるし、第2のブラシコントロールを使用して第2の一連のブラシエフェクトを同じ画像領域に適用することもできる。ユーザは、ブラシツール1875のブラシエフェクト無効化機能を用いることによって、画像に適用された第1の一連のブラシエフェクトのみを閲覧することも、画像に適用された第2の一連のブラシエフェクトのみを閲覧することも、又は画像に適用された第1及び第2の一連のブラシエフェクト両方を閲覧することもできる。
第4のステージ3020は、ユーザがブラシコントロール1886を用いて画像142に適用されたブラシエフェクトを無効化した後のGUI100を図示している。図示のように、画像142においてブラシコントロール1886を用いブラシエフェクトが適用された領域を表す車の上に描かれた斜線が、この画像142には表示されておらず、これによりこれらのブラシエフェクトが無効化されたことが示されている。
画像編集アプリケーションが、ブラシコントロール1886を用いて画像142に適用したブラシエフェクトを無効化するブラシコントロール1886の選択を受け取ると、アプリケーションは、画像142においてブラシエフェクトが適用された領域からブラシエフェクトを解除する。加えて、ブラシコントロール1886のブラシエフェクトを無効化するブラシコントロール1886の選択を受け取ると即座に、アプリケーションはブラシコントロール1886の上に別のインジケータを表示する。図示のように、ブラシコントロール1886の上に表示された薄い線は、ブラシコントロール1886で画像142に一旦適用されたブラシエフェクトが解除されたことを示すために用いられる。
上述したように、図29及び30は、(例えば、ブラシエフェクトを画像の領域に増量的に適用するため)ラビングジェスチャを使用してブラシエフェクトを画像に適用する例を図示している。幾つかの実施形態において、ラビングジェスチャを使用してブラシエフェクトを適用するブラシコントロールは、漸進的ブラシコントロール、増分ブラシコントロール、及び/又は加法混色ブラシコントロールと呼ばれる。ラビングジェスチャを使用してブラシエフェクトを適用するブラシコントロールの詳細は、米国特許出願公開第13/629,374号に記載されている。幾つかの実施形態において、ブラシツールは、ラビングジェスチャを使用せずにブラシコントロールのブラシエフェクトを適用する他の種類のブラシコントロールを含む。例えば、上記のリペアブラシコントロールでは、ユーザは(例えば、画像の領域にタッチして)汚点を含む画像の領域を選択することにより、画像から汚点を除去する。幾つかの実施形態において、画像からレッドアイを除去する場合と類似の様式で上記のレッドアイブラシコントロールが使用される。幾つかの実施形態において、これらの種類のブラシコントロールは、離散ブラシコントロールと呼ばれる。
図31は、ブラシツール1875を提供する幾つかの実施形態のアプリケーションのステートダイヤグラム3100を、概念的に示す。具体的には、図31は、幾つかの実施形態のアプリケーション幾つかのステート、及びこれらのステート間の遷移を図示している。
ステート3105において、アプリケーションは画像編集中、閲覧中、又は編成中のステートにある。幾つかの実施形態において、アプリケーションが最初に開始した時にまず、アプリケーションはステート3105にある。アプリケーションがステート3105にある時、アプリケーションは画像の編集、閲覧、又は編成用のツールを提供する。例えば、アプリケーションは、画像共有用の共有ツールを提供し、様々な編集ツール(例えば、切り抜き及び回動ツール、露光ツール、色ツールなど)を提供し、画像タグ付けなどの目的に対応したツールを提供し得る、などである。
アプリケーションが横置き閲覧モードの時に、アプリケーションがブラシツール1875をアクティブ化すると、アプリケーションはステート3105からステート3110に遷移する。アプリケーションが縦置き閲覧モードの時に、アプリケーションがブラシツール1875をアクティブ化すると、アプリケーションはステート3105からステート3115に遷移する。幾つかの場合では、アプリケーションがブラシツール1875をアクティブ化すると、アプリケーションは最後に用いられたステートに戻る。そのような幾つかの場合では、アプリケーションは、アプリケーションが横置き閲覧モードであればステート3105からステート3120に遷移し、アプリケーションが縦置き閲覧モードであればステート3105からステート3125に遷移する(図31においては不図示)。図31に示すように、アプリケーションが3110〜3125のいずれかのステートにあり、アプリケーションがブラシツール1875を無効化すると(例えば、別のツールをアクティブ化して)、アプリケーションはステート3105に戻る。
ステート3110において、アプリケーションは横置き閲覧モードにあり、横置き閲覧モードにてブラシツール1875のブラシコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート3110にある時に、図18の第4のステージ1820に図示されているGUIを提供する。
アプリケーションが(例えば、ステート3115又はステート3120から)ステート3110に変わると、アプリケーションはブラシツール1875のブラシコントロールの扇形編出開アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図18を参照することにより述べたアニメーションに類似する扇形編出開アニメーションを表示する。
アプリケーションがステート3110に遷移する(例えば、アプリケーションがステート3120から遷移した)時にブラシツール1875のブラシコントロールが選択されていた場合、アプリケーションはステート3110にある間、選択されたブラシコントロールを引き続きハイライトする。アプリケーションがステート3110にあり、アプリケーションがブラシツール1875のブラシコントロールの選択を受け取ると、アプリケーションはステート3120に遷移する。アプリケーションがステート3110にあり、アプリケーションが横置き閲覧モードから縦置き閲覧モードに変わった場合、アプリケーションはステート3115に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート3115に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の減分、表示エリアの高さの増分などが行われた場合)、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート3115に遷移する。
ステート3120において、アプリケーションは横置き閲覧モードにあり、横置き閲覧モードにてブラシツール1875のブラシコントロールを扇形編出閉レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート3110にある時に、図19の第4のステージ1920に図示されているGUIを提供する。
アプリケーションがステート3110からステート3120に変わる際に、アプリケーションは、ブラシツール1875のブラシコントロールの扇形編出閉アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図19を参照することにより述べたアニメーションに類似する扇形編出閉アニメーションを表示する。アプリケーションがステート3120に遷移すると、アプリケーションは、ブラシツール1875の選択されたブラシコントロールをハイライトする。
アプリケーションがステート3120にあり、アプリケーションが選択されたブラシコントロールの選択を受け取ることによって、ブラシツール1875のブラシコントロールの選択を変更し、アプリケーションはステート3110に遷移する。アプリケーションは、ステート3120にあり、アプリケーションが横置き閲覧モードから縦置き閲覧モードに変わると、アプリケーションはステート3125に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート3125に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の減分、表示エリアの高さの増分などが行われた場合)、幾つかの実施形態のアプリケーションは横置き閲覧モードから縦置き閲覧モードに変わり、その後、ステート3125に遷移する。
幾つかの実施形態において、アプリケーションはステート3120にある間に別のブラシコントロールの選択を受け取る。例えば、図19の第4のステージ1920に図示されているGUIを提供する幾つかの実施形態のアプリケーションは、別のブラシの選択を受け取って、ブラシツール1875のブラシコントロールの選択を変更し得る。アプリケーションがステート3120にある時に別のブラシの選択を受け取ると、前に選択されたブラシコントロールのハイライトを解除して、図20に図示しているように、新たに選択されたブラシコントロールをハイライトする。
アプリケーションがステート3120にあり、アプリケーションがブラシツール1875の選択されたブラシコントロールで編集される画像の領域の選択を受け取ると、アプリケーションはステート3130に遷移する。例として図29を参照すると、アプリケーションがステート3120にある時、アプリケーションは、画像142の領域の選択を受け取ると、ブラシコントロール1886に関連付けられているブラシエフェクトを画像142に適用する。
ステート3115において、アプリケーションは縦置き閲覧モードにあり、縦置き閲覧モードにてブラシツール1875のブラシコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート3115にある時に、図25の第4のステージ2520又は図23の第4のステージ2320に図示されているGUIを提供する。
アプリケーションが(例えば、ステート3110又はステート3125から)ステート3115に変わると、アプリケーションは、ブラシツール1875のブラシコントロールの扇形編出開アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図25又は23を参照することにより述べたアニメーションに類似する扇形編出開アニメーションを表示する。
アプリケーションがステート3115に遷移する(例えば、アプリケーションがステート3125から遷移した)時にブラシツール1875のブラシコントロールが選択されていた場合、アプリケーションはステート3115にある間、選択されたブラシコントロールを引き続きハイライトする。アプリケーションがステート3115にあり、アプリケーションがブラシツール1875のブラシコントロールの選択を受け取ると、アプリケーションはステート3125に遷移する。アプリケーションがステート3115にあり、アプリケーションが閲覧モードを縦置き閲覧モードから横置き閲覧モードに変更すると、アプリケーションはステート3110に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート3110に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の増分、表示エリアの高さの減分などが行われた場合)、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート3110に遷移する。
ステート3155においてアプリケーションは縦置き閲覧モードにあり、縦置き閲覧モードにてブラシツール1875のブラシコントロールを扇形編出開レイアウトで表示するためのGUIを提供する。例えば、幾つかの実施形態のアプリケーションは、ステート3155にある時に、図26の第4のステージ2620又は図24の第4のステージ2420に図示されているGUIを提供する。
アプリケーションがステート3115からステート3125に変わる際に、アプリケーションは、ブラシツール1875のブラシコントロールの扇形編出閉アニメーションを表示する。幾つかの実施形態において、アプリケーションは、上で図26又は24を参照することにより述べたアニメーションに類似する扇形編出閉アニメーションを表示する。アプリケーションがステート3125に遷移すると、アプリケーションは、ブラシツール1875の選択されたブラシコントロールをハイライトする。
アプリケーションがステート3125にあり、アプリケーションは、選択されたブラシコントロールの選択を受け取ることによって、ブラシツール1875のブラシコントロールの選択を変更し、アプリケーションはステート3115に遷移する。アプリケーションがステート3125にあり、アプリケーションが縦置き閲覧モードから横置き閲覧モードに変わった場合、アプリケーションはステート3120に遷移する。例えば、アプリケーションを走らせているモバイルコンピューティングデバイスのディスプレイ画面の方向が変わると、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート3120に遷移する。別の例として、アプリケーションのGUIを表示するための表示エリアが調整されると(例えば、表示エリアのサイズ調整、表示エリアの幅の増分、表示エリアの高さの減分などが行われた場合)、幾つかの実施形態のアプリケーションは縦置き閲覧モードから横置き閲覧モードに変わり、その後、ステート3120に遷移する。
アプリケーションがステート3125にあり、アプリケーションがブラシツール1875の選択されたブラシコントロールで編集される画像の領域の選択を受け取ると、アプリケーションはステート3130に遷移する。例として図29を参照すると、アプリケーションはステート3120にあり、アプリケーションは、画像142の領域の選択を受け取ってブラシコントロール1886に関連付けられているブラシエフェクトを画像142に適用する。
ステート3130において、アプリケーションは、ブラシツール1875の選択されたブラシコントロールを介して受け取られた画像の選択に基づいて、編集中の画像にブラシエフェクトを適用する。例えば、図29を参照すると、アプリケーションが(ステート3120又はステート3125にある時に)選択されたブラシコントロール1886を使用して、第2のステージ2910に示す画像142の領域の選択を受け取ると、アプリケーションは、ステート3130において、ブラシコントロール1886に関連付けられているブラシエフェクトを編集中の画像に適用する。編集中の画像の領域の選択に基づいてブラシエフェクトが適用された後、アプリケーションは、アプリケーションがステート3130に遷移する直前のステートまで遷移して戻る。換言すれば、アプリケーションがステート3120からステート3130に遷移した時は、アプリケーションはステート3120に遷移して戻り、アプリケーションがステート3125からステート3130に遷移した時は、アプリケーションはステート3125に遷移して戻る。
図31に図示されているステートダイヤグラムは、幾つかの実施形態の画像編集アプリケーションの幾つかの別々のステートを示す。幾つかの実施形態において、図31におけるステート及び遷移によって表される様々なアクションがアプリケーション内で実行可能と考えられるアクションのサブセットに過ぎないことは、当業者に認識されるであろう。加えて、示されていない他の機能は、特定のステートにある時に実行され得る。例えば、幾つかの実施形態において、画像編集アプリケーションが扇形編出閉ステート(例えば、ステート3120又はステート3125)にあり、画像にまだ如何なるブラシも適用していない場合にアプリケーションが編集中の画像にブラシを適用するための入力を受け取ると、アプリケーションは編集中の画像にブラシが適用されたことを示すインジケータを、ブラシツールUIアイテム138の上に表示する。別の例として、画像編集アプリケーションが閉じた状態に扇形編出されているステート(例えば、ステート3120)にある時、ブラシコントロールの選択を受け取ると、図30に図示しているように、ブラシコントロールに関連付けられているブラシエフェクトを無効化又は有効化する。
図32は、扇形編出UIコントロールを含むUIツールを提供する幾つかの実施形態の画像編集アプリケーション3200のソフトウェアアーキテクチャを、概念的に示す。幾つかの実施形態において、画像編集アプリケーション3200は、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、複合アプリケーション)に統合されており、一方、他の実施形態において、画像編集アプリケーション3200はオペレーティングシステム内に実施され得る。更にまた、幾つかの実施形態において、画像編集アプリケーション3200は、サーバベースのソリューションの一部として提供される。そのような幾つかの実施形態において、画像編集アプリケーション3200はシンクライアントを介して提供される。つまり、サーバ上で画像編集アプリケーション3200が走っている間、ユーザはサーバから遠隔にある別個のマシンを介して画像編集アプリケーション3200と対話操作を行う。他のそのような実施形態において、画像編集アプリケーション3200は、シッククライアントを介して提供される。即ち、画像編集アプリケーション3200は、サーバからクライアントマシンに配布され、クライアントマシン上で走る。
図32に示すように、画像編集アプリケーション3200は、ユーザインタフェース(UI)対話生成モジュール3205、閲覧モードモジュール3265、UIコントロールアニメータ3215、UIコントロールマネージャ3220、及びレンダリングエンジン3225を含む。画像編集アプリケーション3200はまた、エフェクトコントロール記憶装置3230、ブラシコントロール記憶装置3235、他のコントロール記憶装置3240、及び画像データ3245を含む。
エフェクトコントロール記憶装置3230は、エフェクトコントロールに関する情報(例えば、様々なエフェクト、エフェクトを制御するUIコントロールの種類など)を記憶する。同様に、ブラシコントロール記憶装置3235は、ブラシコントロールに関する情報(例えば、様々なブラシエフェクト、ブラシエフェクトを制御するUIコントロールの種類など)を記憶する。他のコントロール記憶装置3230は、追加の及び/又は他のコントロールに関する情報(例えば、画像の色を調整するための色コントロール、画像の露光を調整するための露光コントロールなど、並びに他のコントロールを制御するUIコントロールの種類など)を記憶する。画像データ記憶装置3245には、ユーザが画像編集アプリケーション3200で閲覧、編集、及び編成する画像データ(例えば、RAW画像ファイル、JPEG画像ファイル、画像のサムネイルバージョン、画像の編集済みバージョン、画像の表示解像度バージョン、他の画像の生成済みバージョンなど)を記憶する。幾つかの実施形態において、記憶装置3230〜3245が1つの物理的記憶装置内に格納されるのに対し、幾つかの実施形態において、記憶装置が別個の物理的記憶装置内に格納される。幾つかの実施形態において、依然として、記憶装置3230〜3245の幾つかが1つの物理的記憶装置内に格納されるのに対し、他の記憶装置3230〜3245は別個の物理的記憶装置内に格納される。
図32はまた、ジャイロスコープデバイスドライバ3255、入力デバイスドライバ3260、及び表示モジュール3265を含むオペレーティングシステム3250を図示している。幾つかの実施形態において、図示されているように、ジャイロスコープデバイスドライバ3255、デバイスドライバ3260、及び表示モジュール3265は、画像編集アプリケーション3200がオペレーティングシステム3250とは別個のアプリケーションの時でも、オペレーティングシステム3250の一部である。
ジャイロスコープデバイスドライバ3255は、アプリケーションが3200の走るコンピューティングデバイスの一部であるジャイロスコープからの信号を変換するための一連のドライバを含む。幾つかの実施形態において、ジャイロスコープは、デバイスの向きを識別するために用いられる。例えば、ジャイロスコープは、デバイスが横長又は縦長位置のどちらに保持されているかを判定する場合に用いられる。ジャイロスコープが信号をジャイロスコープデバイスドライバ3255に送ると、その信号が閲覧モードモジュール3210に供給される。入力デバイスドライバ3260は、キーボード、マウス、タッチパッド、タブレット、タッチスクリーンなどからの信号を変換するためのドライバを含むことがある。ユーザは、これらの入力デバイスのうちの1つ以上と対話し、これらの入力デバイスは、信号をその対応するデバイスドライバに送る。次に、デバイスドライバは、信号を、UI対話モジュール3205に供給されるユーザ入力データに変換する。
本出願は、様々な一連の操作及び機能を実行する多数の方法をユーザに提供する幾つかのグラフィカルユーザインタフェースについて述べる。幾つかの実施形態において、これらの操作及び機能は、様々な入力デバイスを介してユーザから受け取った様々なコマンドに基づいて実行される。例えば、本出願は、タッチコントロールを使用してグラフィカルユーザインタフェース内のオブジェクトの制御(例えば、選択、移動)を行うことを例示する。幾つかの実施形態において、タッチ制御は、装置のディスプレイ上のタッチの存在及び位置を検出することができる入力デバイスによって実施される。そのような装置の一例は、タッチスクリーン装置である。幾つかの実施形態において、タッチ制御によって、ユーザは、タッチスクリーン装置のディスプレイ上に表示されたグラフィカルユーザインタフェースとの対話によって、オブジェクトを直接操作することができる。例えば、ユーザは、タッチスクリーン装置のディスプレイ上の特定のオブジェクトに単にタッチするだけで、グラフィカルユーザインタフェース内の特定のオブジェクトを選択することができる。したがって、タッチ制御が利用される時、幾つかの実施形態において、グラフィカルユーザインタフェースのオブジェクトの選択を可能にするためにカーソルが提供されなくてもよい。しかしながら、グラフィカルユーザインタフェース内にカーソルが提供される時、幾つかの実施形態において、タッチ制御を使用してカーソルを制御することができる。加えて、幾つかの実施形態において、グラフィカルユーザインタフェース内のオブジェクトはまた、グラフィカルユーザインタフェース内のカーソルなどの他のコントロールを介して(例えば、トラックパッド、タッチパッド、マウスなどを使用して)制御又は操作され得る。
表示モジュール3265は、ディスプレイ装置用のユーザインタフェースの出力を変換する。即ち、表示モジュール3265は、何を表示すべきかを記述する信号(例えば、UI対話生成モジュール3205から)を受信し、それらの信号をディスプレイ装置に送られる画素情報に変換する。ディスプレイ装置は、LCD、プラズマスクリーン、CRTモニタ、タッチスクリーンなどでよい。
画像編集アプリケーション3200のUI対話生成モジュール3205は、入力デバイスドライバ3260から受信されたユーザ入力データを解釈して、閲覧モードモジュール3210、UIコントロールマネージャ3220、及びレンダリングエンジン3225を含む様々なモジュールに渡す。UI対話モジュール3205はまた、UI(例えば、UIコントロールの扇形編出アニメーション、UIエレメントのハイライト、インジケータなど)の表示を管理して、この表示情報を表示モジュール3265に出力する。このUI表示情報は、UIコントロールマネージャ3220及びレンディングモジュール3225などからの情報に基づくものであり得る。加えて、例えば、UI内でユーザがアイテムを移動させた時(例えば、ウィンドウをUIの一側面から他の側面へと移動させた時)、他の如何なるモジュールにも影響を及ぼすことなしにディスプレイのみに影響が及ぶため、UI対話モジュール3205はユーザ入力のみに基づいてUIの一部を生成し得る。
閲覧モードモジュール3210は、閲覧モードモジュール3210がジャイロスコープデバイスドライバ3255から受信する情報に基づいてアプリケーションの閲覧モードを判定し、判定された内容をUI対話生成モジュール3205に送信することによって、適切なUI表示情報がUI対話生成モジュール3205から表示モジュール3265に供給されるようにする。
幾つかの実施形態の閲覧モードモジュール3210は、UI対話生成モジュール3205からの情報をジャイロスコープデバイスドライバ3255からの情報の代わりに又は組み合わせて使用して、閲覧モードを判定する。例えば、GUIが表示される表示エリアの修正(例えば、表示エリアのサイズ調整、表示エリアの幅調整、表示エリアの高さ調整、表示エリアの移動など)がユーザによって為されると、アプリケーションは、新しい閲覧モードを判定し得る。上述したように、幾つかの実施形態のアプリケーションでは、異なる閲覧モード(例えば、横長閲覧モード、縦長閲覧モード)における異なる操作に対して別々のGUIが提供される。
UIコントロールアニメータ3215は、閲覧モードモジュール3210及びUIコントロールマネージャ3220からの情報に基づいて、UIコントロールマネージャ3220用のアニメーションを生成する。UIコントロールマネージャ3220がUIコントロールのアニメーション(例えば、エフェクトコントロールの内向き/外向き扇形編出アニメーション、ブラシコントロールの内向き/外向き扇形編出アニメーション、ピーリング(オン/オフ)アニメーションなど)を要求すると、UIコントロールアニメータ3215は、UIコントロールマネージャ3220用の適切なアニメーションを生成するため、閲覧モードから閲覧モード情報を取得する。
UIコントロールマネージャ3220がUI対話生成モジュール3205に供給するUIコントロールは、表示用に表示モジュール3265に送信される。例えば、ユーザがブラシツール又はエフェクトツールなどのUIツールをアクティブ化すると、UIコントロールマネージャ3220は、適切なUIコントロールに関する要求をUI対話生成モジュール3205から受け取る。次いで、UIコントロールマネージャ3220は、UIコントロールのアニメーションに関する要求をUIコントロールアニメータ3215に送信する。
レンダリングエンジン3225は、元の画像に基づいて、画像の別々のバージョンのレンディングに対して責任を担う。例えば、レンダリングモジュール3225は、画像データ記憶装置3245内の画像データを使用して、画像のサムネイル及び画像の表示解像度バージョンをレンダリングする。これらのレンダリングの結果は、UI対話生成モジュール3205が表示モジュール3265に送信してから、GUI内に表示される。画像に対して編集が為されると、レンダリングエンジン3225は、画像データ記憶装置3245内の画像データに基づいて、編集済みサムネイル、及び画像の表示解像度バージョンを生成する。幾つかの実施形態において、レンダリングエンジンは、UIコントロールマネージャ3220からの要求を受け取り、UIコントロール用の画像(例えば、サムネイルスライダコントロール)を生成する。レンダリングエンジン3225はまた、幾つかの実施形態のアプリケーションが画像を外部ソースにエクスポートした時に、画像のレンダリングを行う。幾つかの場合では、レンダリングエンジン3225は、元の画像のフルサイズバージョンをレンダリングする。
多くの機能を1つのモジュール(例えば、UI対話モジュール3205、UIコントロールアニメータ3215など)で実行されるものとして述べてきたが、本明細書で述べた機能が複数のモジュールに分割され得ることは当業者に認識されるであろう。同様に、複数の別々のモジュールにより実行されるものとして記述された機能は、幾つかの実施形態において単一モジュール(例えば、UIコントロールアニメータ3215及びUIコントロールマネージャ3220)により実行され得る。
II.非破壊的な画像に対する順序付けられた編集処理
幾つかの実施形態の画像編集アプリケーションは、画像編集用の様々なツールを提供する。上述したように、そのような幾つかの実施形態のアプリケーションは、画像編集用の切り抜きツール、露光ツール、色ツール、ブラシツール、及びエフェクトツールを提供する。幾つかの実施形態において、様々なツールを使用して画像に対し様々な編集を行うと、アプリケーションは、様々な編集を特定の順序で適用する。下掲のセクションでは、画像に対して様々なツールを使用して特定の順序で為された様々な編集を円滑に適用するための幾つかの操作例について述べる。
図33は、幾つかの実施形態による順序付けられた編集操作の例を、概念的に示す。具体的には、図33は、順序付けられた編集操作の別々の10のステージ3305〜3350におけるGUI100を図示している。図示のように、図33のステージ3305〜3350は、図33a〜33cと標示された3つの図にわたって展開されている。
GUI100の第1のステージ3305は、切り抜きツールUIアイテム132の上に表示されたインジケータで示されているように、画像142の左下部分が切り抜きツールを使用して切り抜いてあることを除いて、図12に図示されたGUI100の第1のステージ1205に類似している。切り抜きツールの詳細は、「User Interface Tools for Cropping and Straightening Image」と題する2012年9月27日出願の米国特許出願公開第13/629,370号に記載されている。米国特許出願公開第13/629,370号は、本明細書において参照により援用されている。
また、第1のステージ3305は、エフェクトコントロール1280の選択可能なUIアイテムの選択も図示している。図示のように、ユーザは(例えば、UIアイテム1282にタッチすることによって)UIアイテム1282を選択し、サムネイルスライダコントロール1280に関連付けられているエフェクトを、切り抜きの画像142に適用している。
第2のステージ3310は、第1のステージ3305で選択されたエフェクトが切り抜きの画像142に適用された後のGUI100を示す。アプリケーションは、エフェクトツールUIアイテム140の上に、編集中の画像にエフェクトが適用されたことを示すインジケータを表示する。図示のように、切り抜きの画像142上に、エフェクトが斜線で示される。第2のステージ3310はまた、色ツールのアクティブ化も図示している。図示のように、色ツールをアクティブ化するため、ユーザは(例えば、UIアイテム136にタッチして)色ツールUIアイテム136を選択している。
第3のステージ3315は、色ツールがアクティブ化された後のGUI100を図示している。図示のように、色ツールは、編集中の画像に対して様々な色調整を行うための一連の色調整スライダコントロール3351〜3354、及び様々なホワイトバランスツール(この図33中では不図示)を提供するUIアイテム3355を含む。色調整コントロールを含む色ツールの詳細は、「Context Aware User Interface for Image Editing」と題する2012年9月27日出願の米国特許出願公開第13/629,428号に記載されている。米国特許出願公開第13/629,428号は、本明細書において参照により援用されている。
GUI100の第3のステージ3315はまた、エフェクトツールUIアイテム140がハイライトされなくなった一方で、色ツールUIアイテム136がハイライトされるようになったことも示しており、これは、色ツールがアクティブ化されたことを示している。画像編集アプリケーションが色ツールUIアイテム136の選択を受け取ると、アプリケーションはエフェクトツールUIアイテム140のハイライトを解除し、色ツールUIアイテム136をハイライトする。
この例では、エフェクト編集を画像に適用する前に、アプリケーションは画像に色調整の編集を適用している。このようにして、この例では、色ツールがアクティブ化された時に、アプリケーションは切り抜きの画像142に適用されたエフェクト編集を一時的に解除している。図示のように、アプリケーションは、ピーリングオフアニメーションと呼ばれるアニメーションを表示することによって、切り抜きの画像142からエフェクト編集が解除されたことを示す。ピーリングオフアニメーションは切り抜きの画像142のレイヤを示し、このレイヤにエフェクト編集を適用して切り抜きの画像142からの解除を示す。ピーリングオフアニメーションが表示されている間、アプリケーションは画像142のバージョンを表示するが、解除対象となるレイヤの下層にある画像142にはエフェクト編集が適用されない。換言すれば、アプリケーションは、切り抜きの画像142の右下隅から開始し、切り抜きの画像142の左上隅に向かって、エフェクト編集が含まれるレイヤを切り抜きの画像142から剥がすように見せるアニメーションを表示する。
第4のステージ3320は、ピーリングオフアニメーションが終了に近づいているGUI100を示す。ここで、GUI100は、画像の右下隅の端から更に画像の左上隅の端に更に向かって、切り抜きの画像142から剥がされるレイヤを表示している。
第5のステージ3325は、エフェクト編集のピーリングオフアニメーションが完了した後のGUI100を図示している。図示のように、GUI100は、エフェクト編集が画像から解除された切り抜きの画像142を表示しており、斜線で図示されていたエフェクト編集はもはや表示されていない。第5のステージ3325はまた、エフェクトツールUIアイテム140の別のハイライトを示しているほか、UIアイテム140の上のインジケータも示している。この別のハイライトは、編集中の画像にエフェクト編集が適用されたが、現在はエフェクトが解除されていることを示している。画像編集アプリケーションがピーリングオフアニメーションを表示し終えると、アプリケーションはエフェクトツールUIアイテム140の別のハイライトを表示し、UIアイテム140の上にインジケータを表示する。
GUI100の第6のステージ3330は、画像に適用される色調整の編集を示す。図示のように、切り抜きの画像142の色を調整するため、ユーザは(例えば、スライダにタッチし、色調整スライダコントロール3351に沿ってドラッグして)色調整スライダコントロール3351を調整している。この例における色調整は、切り抜きの画像142上に表示された別の一連の対角線で表されている。加えて、別のハイライトが色ツールUIアイテム136の上に表示されており、切り抜きの画像142に色調整が適用されたことを示している。
第7のステージ3335におけるGUI100はユーザが色ツールを使用した編集中の画像の色の調整を終えたことを示している。このステージでは、切り抜きの画像142上に表示された別の斜線が増えたことに示されているように、ユーザは切り抜きの画像142に対して第6のステージ3330に示す色調整に加えて更に色調整を施している。
第7のステージ3335はまた、エフェクトツール175のアクティブ化を図示している。図示のように、ユーザは(例えば、UIアイテム140にタッチして)エフェクトツールUIアイテム140を選択し、エフェクトツール175をアクティブ化している。
第8のステージ3340は、エフェクトツール175がアクティブ化された後のGUI100を図示している。GUI100の第8のステージ3340はまた、色ツールUIアイテム136がハイライトされなくなった一方で、エフェクトツールUIアイテム140がハイライトされるようになったことを示しており、これは、エフェクトツールがアクティブ化されたことを示している。画像編集アプリケーションがエフェクトツールUIアイテム140の選択を受け取ると、アプリケーションは色ツールUIアイテム136のハイライトを解除し、エフェクトツールUIアイテム140をハイライトする。アプリケーションは引き続き、エフェクトツールUIアイテム140の上に別のハイライトを表示し、これによりエフェクト編集が現在依然として解除されていることを示す。
上述のように、この例のアプリケーションは、エフェクト編集を画像に適用する前に色調整の編集を画像に適用する。ユーザが画像に対する色編集を終えているため、この例のアプリケーションは、第2のステージ3310で色ツールがアクティブ化された時に、切り抜きの画像142から一時的に解除されていたエフェクト編集を切り抜きの画像142に適用する。図示のように、アプリケーションは、ピーリングオンアニメーションと呼ばれるアニメーションを表示することにより、エフェクト編集が切り抜きの画像142に適用されたことを示す。ピーリングオンアニメーションは切り抜きの画像142のレイヤを示し、このレイヤに色編集及びエフェクト編集を適用したものを、色調整された切り抜きの画像142の上に重ねることを示す。このようにして、アプリケーションは、色編集及びエフェクト編集を含むレイヤが、切り抜きの画像142の左上隅から開始して切り抜きの画像142の右下隅に向かって切り抜きの画像142の上にペーストされるように見せるアニメーションを表示する。
第9のステージ3345は、ピーリングオンアニメーションが終了に近づいているGUI100を示す。第9のステージ3345におけるGUI100は、切り抜きの画像142上で、画像の左上隅の端から更に画像の右下隅の端に更に向かって配置されるレイヤを表示する。また、アプリケーションは引き続き、エフェクトツールUIアイテム140の上に別のハイライトを表示し、これによりエフェクト編集が現在依然として解除されていることが示される。
第10のステージ3350は、ピーリングオンアニメーションが完了した後のGUI100を図示している。図示のように、一時的に解除されていたエフェクト編集が、切り抜きの画像142に適用されている。このことは、切り抜きの画像142の上に、異なる種類の斜線が表示されることにより示される。ここで、アプリケーションは、エフェクトツールUIアイテム140の上に元のハイライトを表示し、これにより編集中の画像にエフェクト編集が適用されたことを示す。
上記の図は、様々なツール用いて行われた様々な編集を画像に特定の順序で適用する操作例を図示している。幾つかの実施形態において、同じツールを用いて行われた様々な編集を画像に特定の順序で適用する。
図34は、幾つかの実施形態による順序付けられた編集操作の例を、概念的に示す。特に、図34は、順序付けられた編集操作の別々の10のステージ3405〜3450におけるGUI100を図示している。図示のように、図34のステージ3405〜3450は、図34a〜34cと標示された3つの図にわたって展開されている。
GUI100の第1のステージ3405は、エフェクトツール175の代わりにブラシツール1875がアクティブ化されたことを除けば、図33に図示されているGUI100の第1のステージ3305に類似している。図示のように、ブラシコントロール1888が選択されており、ユーザは(例えば、画像142の領域にタッチし、ラビングジェスチャを実行して)切り抜きの画像142の領域を選択し、ブラシコントロール1888に関連付けられているブラシエフェクトを切り抜きの画像142の領域に適用している。切り抜きの画像142の領域の選択を受け取ると、アプリケーションは、インジケータをブラシコントロール1888の上に表示してブラシコントロール1888を用いたブラシエフェクトが切り抜きの画像142に適用されたことを示し、インジケータをブラシツールUIアイテム138の上に表示してブラシコントロール1875を用いた編集が切り抜きの画像142に適用されたことを示す。
第2のステージ3410は、ユーザが切り抜きの画像142にブラシエフェクトを適用し終えた後のGUI100を示す。画像142においてブラシエフェクトが適用された領域は、縦線で示されている。GUI100の第2のステージ3410はまた、ユーザが別のブラシコントロールの選択も示されている。図示のように、ユーザは(例えば、ブラシコントロール1880にタッチして)ブラシコントロール1880を選択している。
第3のステージ3415は、ブラシコントロール1880が選択された後のGUI100を図示している。アプリケーションがブラシコントロール1880の選択を受け取ると、アプリケーションはブラシコントロール1888のハイライトを解除し、選択されたブラシコントロール1880をハイライトする。
この例において、アプリケーションは、ブラシコントロール1888のブラシエフェクト編集を画像に適用する前に、ブラシコントロール1880のブラシエフェクト編集を画像に適用する。故に、この例において、アプリケーションは、ブラシコントロール1880が選択された時、切り抜きの画像142に適用されていたブラシコントロール1888のブラシエフェクト編集を一時的に解除する。図示のように、アプリケーションはピーリングオフアニメーションを表示することによって、ブラシコントロール1888のブラシエフェクト編集を切り抜きの画像142からの解除を示している。ピーリングオフアニメーションは切り抜きの画像142のレイヤを示し、このレイヤにブラシコントロール1888のブラシエフェクト編集を適用して切り抜きの画像142からの解除を示す。ピーリングオフアニメーションが表示されている間、アプリケーションは画像142のバージョンを表示するが、解除対象となるレイヤの下層にある画像142にはブラシコントロール1888のブラシエフェクト編集が適用されない。換言すれば、アプリケーションは、切り抜きの画像142の右下隅から開始し、切り抜きの画像142の左上隅に向かって、ブラシコントロール1888のブラシエフェクト編集が含まれるレイヤを切り抜きの画像142から剥がすように見せるアニメーションを表示する。
第4のステージ3420は、ピーリングオフアニメーションが終了に近づいているGUI100を示す。このステージにおけるGUI100は、画像の右下隅の端から更に画像の左上隅の端に更に向かって、切り抜きの画像142から剥がされるレイヤを表示する。
第5のステージ3425は、ブラシコントロール1888のブラシエフェクト編集のピーリングオフアニメーションが完了した後のGUI100を図示している。図示のように、GUI100は、ブラシコントロール1888のブラシエフェクト編集が画像から解除された切り抜きの画像142を表示しており、縦線で図示されていたブラシエフェクト編集はもはや表示されていない。第5のステージ3325はまた、ブラシツールUIアイテム138の上にインジケータの別のハイライトも示している。この別のハイライトは、編集中の画像にブラシコントロール1888のブラシエフェクト編集が適用されていたが、現在はブラシエフェクト編集が解除されていることを示している。画像編集アプリケーションがピーリングオフアニメーションを表示し終えると、アプリケーションはブラシツールUIアイテム138の上にインジケータの別のハイライトを表示する。
GUI100の第6のステージ3430は、ブラシコントロール1880を用いて画像に適用されたブラシエフェクト編集を示す。図示のように、ユーザは(例えば、画像142の領域にタッチし、ラビングジェスチャを実行して)切り抜きの画像142の第2の領域を選択して、ブラシコントロール1880に関連付けられているブラシエフェクトを切り抜きの画像142の第2の領域に適用している。切り抜きの画像142の第2の領域の選択を受け取ると、アプリケーションはブラシコントロール1880の上にインジケータを表示して、ブラシコントロール1880を用いて切り抜きの画像142にブラシエフェクトが適用されたことを示す。
第7のステージ3435は、ユーザがブラシコントロール1880を用いて切り抜きの画像142にブラシエフェクトを適用し終えた後のGUI100を示す。図示のように、画像142においてブラシエフェクトが適用された第2の領域は、横線で示されている。GUI100の第7のステージ3435はまた、ユーザが別のブラシコントロールの選択も示す。図示のように、ユーザは(例えば、ブラシコントロール1888にタッチして)ブラシコントロール1888を選択している。
第8のステージ3440は、ブラシコントロール1888が選択された後のGUI100を図示している。画像編集アプリケーションがブラシコントロール1888の選択を受け取ると、アプリケーションはブラシコントロール1880のハイライトを解除し、ブラシコントロール1888をハイライトする。アプリケーションは引き続き、ブラシツールUIアイテム138の上に別のハイライトを表示し、これによりブラシコントロール1888のブラシエフェクト編集が現在依然として解除されていることを示す。
上述のように、この例におけるアプリケーションは、ブラシコントロール1888のブラシエフェクト編集を画像に適用する前に、ブラシコントロール1880のブラシエフェクト編集を画像に適用する。ユーザがブラシコントロール1880を用いて画像に対するブラシエフェクト編集を終えているため、この例におけるアプリケーションは、第2のステージ3410においてブラシコントロール1880が選択された時に、切り抜き画像142から一時的に解除されていたブラシコントロール1888のブラシエフェクト編集を切り抜きの画像142に適用する。図示のように、アプリケーションはピーリングオンアニメーションを表示することにより、ブラシコントロール1888のブラシエフェクト編集が切り抜きの画像142に適用されたことを示す。ピーリングオンアニメーションは切り抜きの画像142のレイヤを示し、このレイヤにブラシコントロール1888のブラシエフェクト編集及びブラシコントロール1880のブラシエフェクト編集を適用したものを、ブラシコントロール1880のブラシエフェクト編集のみを含む切り抜きの画像142の上に重ねることを示す。このようにして、アプリケーションは、ブラシコントロール1888のブラシエフェクト編集及びブラシコントロール1880のブラシエフェクト編集を含むレイヤが、切り抜きの画像142の左上隅から開始して、切り抜きの画像142の右下隅に向かって、ブラシコントロール1880のブラシエフェクト編集のみを含む切り抜きの画像142の上にペーストされるように見せるアニメーションを表示する。
第9のステージ3445は、ピーリングオンアニメーションが終了に近づいているGUI100を示す。第9のステージ3445におけるGUI100は、切り抜きの画像142の上で、画像の左上隅の端から更に画像の右下隅の端に更に向かって配置されるレイヤを表示する。また、アプリケーションは引き続きブラシコントロール1888の上に別のハイライトを表示し、これによりエフェクト編集が現在依然として解除されていることを示す。
第10のステージ3450は、ピーリングオンアニメーションが完了した後のGUI100を図示している。図示のように、一時的に解除されていたブラシコントロール1888のブラシエフェクト編集が、切り抜きの画像142に適用されている。このことは、切り抜きの画像142の上に縦線及び横線が表示されていることにより示される。ここで、アプリケーションは、ブラシコントロール1888の上に元のハイライトを表示し、これによりブラシコントロール1888のブラシエフェクト編集が編集中の画像に適用されたことを示す。
上述したように、図33及び34は、画像から一時的に編集が解除される際のピーリングオフアニメーションを表示する例、及び画像に編集を適用し直す際のピーリングオンアニメーションを表示する例を図示しており、これらのアニメーションによって、編集の画像からの解除、及び編集の画像への適用が視覚的に示されている。幾つかの実施形態の画像編集アプリケーションでは、アニメーションの表示の代わりに又はアニメーションの表示と組み合わせて、画像からの解除、及び編集が画像への適用が聴覚的に示される。例えば、幾つかの実施形態において、画像編集アプリケーションは、ピーリングオフアニメーションを表示しながら、サウンドエフェクト(例えば、1枚の紙を持ち上げるサウンド)を再生する。同様に、幾つかの実施形態の画像編集アプリケーションは、ピーリングオンアニメーションを表示しながら、サウンドエフェクト(例えば、1枚の紙を置くサウンド)を再生する。他の実施形態は、画像から解除される編集、及び画像に適用される編集に関して、追加の及び/又は異なる種類のインジケーションを提供し得る。
図35は、幾つかの実施形態による編集内容の適用順序を示した表を図示している。表に示されるように、この表は切り抜きツール、露光ツール、色ツール、ブラシツール、及びエフェクトツールを使用して編集を適用する順序を定義する。また、この表は、ブラシツール内で、リペアブラシ(例えば、図22及び28に図示されているリペアブラシコントロール)、レッドアイブラシ(例えば、図22及び28に図示されているレッドアイブラシコントロール)、及びペイントブラシ(例えば、図22及び28に図示されている高彩度ブラシコントロール、低彩度ブラシコントロール、明色化ブラシコントロール、暗色化ブラシコントロール、シャープ化ブラシコントロール、及びソフト化ブラシコントロール)を使用して編集を適用する順序も定義する。
左端の列に一覧表示されているツールごとに、表内の対応する行に、左列内のツールが使用されている(即ち、アクティブ化されている)間に引き続き画像に適用され得る編集タイプがチェックマークで明示してある。例えば、切り抜きツールが使用されている間は、対応する行内にチェックマークで示してあるように、切り抜き編集、露光編集、及び色編集が引き続き画像に適用され得る。それ故、切り抜きツールがアクティブ化されると、幾つかの実施形態のアプリケーションは、リペアツール、レッドアイツール、ペイントツール、又はエフェクトツールを用いて画像に適用されたあらゆる編集を解除する。
上述したように、図34は、同じツールを用いて画像に対して特定の順序で為された様々な編集を適用する操作例を図示している。リペアツール及びレッドアイツールに対応する行は、様々な編集を同じツールを用いて特定の順序で画像に適用する例である。例えば、レッドアイツールが使用中の時は、切り抜き編集のみが引き続き画像に適用され得る。そのため、幾つかの実施形態のアプリケーションでは(例えば、レッドアイブラシコントロール2281を選択して)レッドアイツールがアクティブ化されると、他のブラシツール(この例ではリペアツール及びペイントツール)を用いて画像に適用されたあらゆる編集が、並びに他のツール(この例では露光ツール、色ツール、及びエフェクトツール)を用いて画像に適用されたあらゆる編集が解除される。
図35に例示されている表は、編集を画像に適用する順序の一例である。当業者によって理解されるように、任意の数の様々なツールに対して任意の数の別々の順序を定義できる。
図36は、順序付けられた編集機能を提供する幾つかの実施形態の画像編集アプリケーションのソフトウェアアーキテクチャを、概念的に示す。幾つかの実施形態において、画像編集アプリケーション3600はスタンドアロンアプリケーションであるか又は他のアプリケーション(例えば、複合アプリケーション)に統合されており、一方、他の実施形態において、画像編集アプリケーション3600は、オペレーティングシステム内に実施され得る。更にまた、幾つかの実施形態において、画像編集アプリケーション3600は、サーバベースのソリューションの一部として提供される。そのような幾つかの実施形態において、画像編集アプリケーション3600はシンクライアントを介して提供される。つまり、サーバ上で画像編集アプリケーション3600が走る間、ユーザはサーバから遠隔にある別個のマシンを介して画像編集アプリケーション3600と対話操作を行う。他のそのような実施形態において、画像編集アプリケーション3600は、シッククライアントを介して提供される。即ち、画像編集アプリケーション3600は、サーバからクライアントマシンに配布され、クライアントマシン上で走る。
図36に示すように、画像編集アプリケーション3600は、ユーザインタフェース(UI)対話生成モジュール3605、編集マネージャ3610、ピールアニメータ3615、編集モジュール3620、及びレンダリングエンジン3625を含む。画像編集アプリケーション3600はまた、画像データ記憶装置3630を含む。エフェクトコントロール記憶装置3630
画像データ記憶装置3630は、ユーザが画像編集アプリケーション3600で閲覧、編集、及び編成する画像データ(例えば、RAW画像ファイル、JPEG画像ファイル、画像のサムネイルバージョン、画像の編集済みバージョン、画像の表示解像度バージョン、画像の他の生成済みバージョンなど)を記憶する。幾つかの実施形態において、画像データ記憶装置3630が1つの物理的記憶装置に格納され、一方、幾つかの実施形態において、画像データ記憶装置3630が別個の物理的記憶装置に格納される。
図36はまた、出力デバイスドライバ3655、入力デバイスドライバ3660、及び表示モジュール3665を含むオペレーティングシステム3650も図示している。幾つかの実施形態において、図示されているように、出力デバイスドライバ3655、入力デバイスドライバ3660、及び表示モジュール3665は、画像編集アプリケーション3600がオペレーティングシステム3650と別個のアプリケーションの時でもオペレーティングシステム3650の一部である。
入力デバイスドライバ3660は、キーボード、マウス、タッチパッド、タブレット、タッチスクリーンなどからの信号を変換するためのドライバを含むことがある。ユーザは、これらの入力デバイスのうちの1つ以上と対話し、これらの入力デバイスは、信号をその対応するデバイスドライバに送る。次に、デバイスドライバは、信号を、UI対話モジュール3605に供給されるユーザ入力データに変換する。
出力デバイスドライバ3655は、信号をスピーカ、ヘッドフォン、プリンタなどに変換するためのドライバを含み得る。幾つかの実施形態において、幾つかの実施形態の出力デバイスドライバ3655は、UI対話モジュール3605からの信号を変換する。例えば、出力デバイスドライバ3655は、UI対話モジュール3605からオーディオ信号(例えば、サウンドエフェクト)を受信して、ピールアニメーションが表示されている時に、スピーカ及び/又はヘッドフォンに出力し得る。
本出願は、様々な一連の操作及び機能を実行する多数の方法をユーザに提供する幾つかのグラフィカルユーザインタフェースに関して記載する。幾つかの実施形態において、これらの操作及び機能は、様々な入力デバイスを介してユーザから受け取った様々なコマンドに基づいて実行される。例えば、本出願は、タッチコントロールを使用してグラフィカルユーザインタフェース内のオブジェクトの制御(例えば、選択、移動)を行うことを例示している。幾つかの実施形態において、タッチ制御は、装置のディスプレイ上のタッチの存在及び位置を検出することができる入力デバイスによって実施される。そのような装置の一例は、タッチスクリーン装置である。幾つかの実施形態において、タッチ制御によって、ユーザは、タッチスクリーン装置のディスプレイ上に表示されたグラフィカルユーザインタフェースとの対話によって、オブジェクトを直接操作することができる。例えば、ユーザは、タッチスクリーン装置のディスプレイ上の特定のオブジェクトに単にタッチするだけで、グラフィカルユーザインタフェース内の特定のオブジェクトを選択することができる。したがって、タッチ制御が利用される時、幾つかの実施形態において、グラフィカルユーザインタフェースのオブジェクトの選択を可能にするためにカーソルが提供されなくてもよい。しかしながら、グラフィカルユーザインタフェース内にカーソルが提供される時、幾つかの実施形態において、タッチ制御を使用してカーソルを制御することができる。加えて、幾つかの実施形態において、グラフィカルユーザインタフェース内のオブジェクトはまた、グラフィカルユーザインタフェース内のカーソルなどの他のコントロールを介して(例えば、トラックパッド、タッチパッド、マウスなどを使用して)制御又は操作され得る。
表示モジュール3665は、ディスプレイ装置用のユーザインタフェースの出力を変換する。即ち、表示モジュール3665は、何を表示すべきかを記述する信号(例えば、UI対話生成モジュール3605から)を受信し、それらの信号をディスプレイ装置に送られる画素情報に変換する。ディスプレイ装置は、LCD、プラズマスクリーン、CRTモニタ、タッチスクリーンなどでよい。
画像編集アプリケーション3600のUI対話生成モジュール3605は、入力デバイスドライバ3660から受信されたユーザ入力データを解釈して、編集マネージャ3610、ピールアニメータ3615、及びレンダリングエンジン3625を含む様々なモジュールに渡す。UI対話モジュール3605はまた、UI(例えば、UIコントロールの扇形編出アニメーション、UIエレメントのハイライト、インジケータなど)の表示を管理して、この表示情報を表示モジュール3665に出力する。このUI表示情報は、編集マネージャ3610、ピールアニメータ3615、及びレンディングモジュール3625などからの情報に基づくものであり得る。加えて、例えば、UI内でユーザがアイテムを移動させた時(例えば、ウィンドウをUIの一側面から他の側面へと移動させた時)、他の如何なるモジュールにも影響を及ぼすことなしにディスプレイのみに影響が及ぶため、UI対話モジュール3605はユーザ入力のみに基づいてUIの一部を生成し得る。幾つかの実施形態において、UI対話モジュール3605は、ユーザ入力及び/又はUIを用いた対話操作に基づいて、オーディオの出力(例えば、サウンドエフェクトなど)を管理する。
編集マネージャ3610は、編集処理の順序を管理する。例えば、編集マネージャ3610は、ユーザが編集中の画像に対して行った編集内容を識別し、画像に対する識別された編集の処理順序を判別する。幾つかの実施形態において、編集マネージャ3610は、一連のルールに基づいて編集を処理する順序を判別する。編集マネージャ3610がその順序を判別すると、編集マネージャ3610は一連の編集内容をUI内に表示することを決定し、アニメーション(例えば、ピーリングオフアニメーション、ピーリングオンアニメーションなど)を生成する要求をピールアニメータ3615に送信し、一連の編集を画像に適用することを編集モジュール3620に要求して、レンダリングエンジン3625にレンダリングさせる。
ピールアニメータ3615は、編集マネージャ3610及び編集モジュール3620からの情報に基づいてレンダリングエンジン3625のアニメーションを生成する。編集マネージャ3610がピーリングアニメーション(例えば、ピーリングオフアニメーション、ピーリングオンアニメーションなど)を要求すると、ピールアニメータ3615は(1)UI内に現在表示されている編集中の画像のバージョンをUI対話生成モジュール3605から取得して、(2)UI内に表示される編集中の画像のバージョンをピーリングアニメーションの後に、編集モジュール3620から取得する。ピールアニメータ3615は、UI対話モジュール3605及び編集モジュール3620から取得した情報を用い、要求されたアニメーションを生成し、そのアニメーションをレンダリングエンジン3625に送信する。
編集モジュール3620は、画像(例えば、編集中の画像)に編集内容を適用する目的に対応している。編集モジュール3620が画像に適用される一連の編集を編集マネージャ3610から受け取ると、編集モジュール3620は、画像データ記憶装置3630内で画像に対応した画像データを識別して、一連の編集を画像に適用する。編集モジュール3620は、編集済み画像のバージョンをレンダリングエンジン3625に送信して、編集済み画像のバージョンを表示目的に合うようにレンダリングする。幾つかの実施形態において、編集モジュール3620は、ピールアニメータ3615がピールアニメーションを生成できるように、編集済み画像のバージョンをピールアニメータ3615に送信する。
レンダリングエンジン3625は、元の画像に基づいて、画像の別々のバージョンのレンディングに対して責任を担う。例えば、レンダリングモジュール3625は、画像データ記憶装置3630内の画像データを使用して、画像のサムネイル及び画像の表示解像度バージョンをレンダリングする。これらのレンダリングの結果は、UI対話生成モジュール3605が表示モジュール3665に送信してから、GUI内に表示される。画像に対して編集が為されると、レンダリングエンジン3625は、画像データ記憶装置3630内の画像データに基づいて、編集済みサムネイル、及び画像の表示解像度バージョンを生成する。レンダリングエンジン3625はまた、幾つかの実施形態のアプリケーションが画像を外部ソースにエクスポートした時に、画像のレンダリングを行う。幾つかの場合では、レンダリングエンジン3625は、元の画像のフルサイズバージョンをレンダリングする。
多くの機能を1つのモジュール(例えば、UI対話モジュール3605、ピールアニメータ3615など)で実行されるものとして述べてきたが、本明細書で述べた機能が複数のモジュールに分割され得ることは当業者に認識されるであろう。同様に、複数の別々のモジュールにより実行されるものとして記載された機能は、幾つかの実施形態において単一モジュール(例えば、ピールアニメータ3615及び編集マネージャ3610)により実行され得る。
III.非破壊的な画像のデータ構造
上記セクションの記載内容は、幾つかの実施形態のGUIにおいて画像を編集するための様々な操作に関するものである。幾つかの実施形態のアプリケーションでは、画像を表すデータ構造が生成されて記憶される。図37は、幾つかの実施形態のアプリケーションによって記憶される画像のデータ構造3700を、概念的に示す。図示のように、データ構造3700は、画像ID 3705、画像データへの参照3710、編集指示3715、エクスチェンジャブル・イメージ・ファイル・フォーマット(Exif)データ3725、キャプション3730、共有画像データ3735、画像のキャッシュ済みバージョン3740、画像上の任意のタグ3750、及び画像に関する任意の追加データを含む。画像ID 3705は、画像に対する一意の識別子である。
画像データへの参照3710は、画像を表示するための実際のフルサイズ画素データ(例えば、画像内の画素ごとの一連の色空間チャネル値、又はそのエンコード済みバージョン)へのポインタである。別々の実施形態の画像データは、別々のロケーションに記憶される。例えば、画像データがローカルのロケーションに記憶される(例えば、アプリケーションが走るコンピューティングデバイスのファイルシステム内にファイルとして記憶される)場合もある。そのような場合では、参照3710は、ローカルのロケーションを指す。幾つかの実施形態において、画像データは別のアプリケーションに記憶される(例えば、画像編成アプリケーションのデータベースに記憶される)。幾つかの実施形態において、他のアプリケーションはアプリケーションが走るのと同じコンピューティングデバイス上で走る。これに対して、他の実施形態において、他のアプリケーションが別のコンピューティングデバイス上で走る。そのような幾つかの実施形態において参照3710は、他のアプリケーションに記憶されている画像データへのポインタを記憶する。幾つかの実施形態において、他のアプリケーションに記憶されている画像データへのポインタを記憶する代わりに、参照3710は(例えば、アプリケーションプログラミングインタフェース(API)コールを介して)他のアプリケーションから画像データを取得するための一意の識別子を記憶する。幾つかの実施形態において、アプリケーションを介して画像が編集されると、アプリケーションは、他のアプリケーションに記憶されている画像を取得し、その後、データ構造3700に画像を記憶する。
編集指示3715には、ユーザが画像に適用した任意の編集に関する情報が含まれる。このようにして、アプリケーションが随時に画像の編集済みバージョンから元の画像を容易に戻せるように、アプリケーションは非破壊的な形式で画像を記憶する。例えば、ユーザが彩度エフェクトを画像に適用し、アプリケーションを一旦終了してから元に戻って、エフェクトを解除することに決めた場合、その操作を容易に実行することができる。
図示のように、編集指示3715は、ユーザが画像に適用した各編集内容に対する一連の指示、及びユーザが編集を適用する際に用いるツールを識別するツール識別子を記憶する。編集の例としては、切り抜き編集、回動編集、露光編集、色編集、ブラシエフェクト編集、エフェクト編集、又は画像の画素を修正する他の任意の種類の編集が挙げられる。このようにして、アプリケーションはユーザが特定のツールを使用して画像に適用した全ての編集を識別し得る。これにより、アプリケーションは特定のツールを用いて適用された編集を識別でき、アプリケーションが編集を一旦解除してから画像に再適用することが可能になり、その結果として、上で図33〜35を参照することにより述べたような機能が実施されるようになる。幾つかの実施形態では、ある一連の編集のみが適用された画像の様々なバージョンをユーザが閲覧できるように、又はある種類の編集の解除及び再適用をアプリケーションが容易に実行できるように、これらの編集指示が特定の順序で記憶される。幾つかの実施形態において、編集指示はユーザが編集を画像に適用した順序で記憶される。
Exifデータ3725は、画像をキャプチャしたカメラによって記憶された様々な情報(利用可能な場合)を含む。Exifは、デジタルカメラに一般的に用いられる特定のファイル形式の1つであるが、当業者に認識されるように、同等の情報が他の形式で入手可能なことも、又はユーザが直接に入力可能なことさえある。Exifデータ3725は、カメラ設定データ、GPSデータ、及びタイムスタンプを含む。カメラ設定データは、画像用のカメラ設定に関する情報(この情報が画像をキャプチャしたカメラから利用可能な場合)を含む。この情報には、例えば、絞り、焦点距離、シャッター速度、露光補正、及びISOが含まれ得る。GPSデータ3725は画像がキャプチャされたロケーションを示すのに対し、タイムスタンプは画像がキャプチャされた時の(カメラのクロックに準ずる)時刻を示す。
キャプション3730は、画像に関してユーザが入力した説明である。幾つかの実施形態において、この情報は画像閲覧エリア内にフォトと共に表示されるが、加えて、作成されたジャーナルのフォト上に表示する際に使用される場合もあれば、ソーシャルメディア又はフォト共有ウェブサイトに画像を掲示する際に使用される場合もある。ユーザがそのようなウェブサイトに画像を掲示すると、アプリケーションは、画像用の共有画像データ3735を生成する。この情報には、ロケーション(例えば、Facebook(登録商標)、Flickr(登録商標)など)、並びにウェブサイトのデータベース内の画像にアクセスするためのオブジェクトIDが記憶される。最終アクセス日は、ソーシャルメディア又はフォト共有ウェブサイトからフォトに記載された任意のユーザコメントにアクセスするためアプリケーションがオブジェクトIDを最後に使用した日時である。
キャッシュ済み画像バージョン3740は、これらの画像をアプリケーションがフルサイズ画像データ3710から繰り返し生成する必要がないように、アクセス及び表示がよく行われる画像のバージョンを記憶する。図示のように、キャッシュ済み画像バージョン3740は、現在の画像のサムネイル画像、現在の画像の表示解像度バージョン(例えば、画像表示エリアに合わせてカスタマイズされたバージョン)、及び元の画像の表示解像度バージョンを含む。幾つかの実施形態において、アプリケーションは、画像に対して編集が行われた時に、現在のサムネイル画像用の新しいサムネイル画像、及び現在の表示解像度画像の新しい表示解像度バージョンを生成する。例えば、順序付けられた編集操作中に編集が解除されると、アプリケーションは新規にサムネイルを生成すると共に、GUI内に表示されるようにする目的で解除されなかった編集のみを含む画像のバージョンを表示する。
幾つかの実施形態のアプリケーションは、画像のキャッシュ済みバージョンを記憶することによって、画像のフルサイズバージョンをレンダリングする必要をなくしている。幾つかの実施形態において、アプリケーションは、アプリケーションが画像をエクスポートすると、画像のフルサイズバージョンを生成する。例えば、ユーザは幾つかの実施形態のアプリケーションの機能を利用することができ、それによって、ユーザは別のアプリケーション(例えば、画像編成アプリケーション)に画像を保存することもできる。そのような実例において、アプリケーションは、画像のフルサイズバージョンを生成して、他のアプリケーションにエクスポートする。
上述したように、幾つかの実施形態において、画像データは別のアプリケーションに記憶される。幾つかの実施形態において、他のアプリケーションはまた、画像のサムネイルバージョンを記憶する。そのような幾つかの実施形態において、アプリケーションは、画像が編集されていない間、他のアプリケーションに記憶されているサムネイルバージョンへのポインタを記憶する。幾つかの実施形態において、アプリケーションを介して画像が編集されると、そのアプリケーションは他のアプリケーション内に記憶されている画像のバージョンを生成した後、それらの画像のバージョンをデータ構造3700のキャッシュ済み画像バージョンフィールド内に記憶する。
タグ3745は、ユーザがアプリケーションを用いてユーザが画像に関連付けることのできる情報である。例えば、幾つかの実施形態において、ユーザは画像をお気に入りとしてマークし、画像に(例えば、更にレビューするため)フラグを設定して、ユーザが当該画像を含むコレクションを循環させた時に当該画像が表示されることのないように画像を非表示にすることができる。他の実施形態は、追加のタグを含みうる。例えば、幾つかの実施形態は、画像データが生画像であることを示すためのタグ、画像に編集が適用されたかどうかを示すタグなどを記憶する。最後に、画像データ構造3700は、アプリケーションが画像と一緒に記憶し得る追加データ3750(例えば、顔のロケーション及びサイズなど)を含む。
画像の必須情報を記憶する目的でアプリケーションが使用し得るデータ構造としては画像データ構造3700が唯一可能であることが、当業者に認識されるであろう。例えば、異なる実施形態によって、より多い又はより少ない情報を記憶していたり、情報を異なる順序で記憶していたりなどする。
幾つかの実施形態において、アプリケーションは、ユーザが現在の画像の編集済みバージョンと元の画像とを切り替えることができる機能を提供する。画像の様々なバージョン間の迅速な切り替えを円滑にするため、幾つかの実施形態のアプリケーションでは、上述の非破壊的な画像記憶方法が利用されている。
図38は、ユーザが元の画像と現在編集されている画像との間の切り替えを行うことができる幾つかの実施形態のトグル操作を、概念的に示す。上述のように、アプリケーションは元の画像を非破壊的な様式で維持するため、アプリケーションはこのトグル操作を容易に実行できる。図38は、トグルボタンで制御されるトグル操作の4つの別々のステージ3805〜3820におけるGUI100を図示している。
GUI100の第1のステージ3805は、エフェクトツールを介して編集された後の画像を示す。図示のように、ユーザは(例えば、UIアイテム140を選択して)エフェクトツール175をアクティブ化している。これは、エフェクトアイテム140がハイライトされていることにより示されている。加えて、ユーザは(例えば、エフェクトツール175の一連のサムネイルスライダコントロールが外向きに扇形編出されている時に、サムネイルスライダコントロール3880にタッチして)エフェクトツール175のサムネイルスライダコントロール3880を選択している。この画像において編集内容は、画像上に表示された斜線で表されている。第1のステージはまた、ユーザがトグルボタン157を選択したことも図示している。
第2のステージ3810は、ユーザがトグルボタン157を選択した後のGUI100を図示している。画像表示エリア145内にあった編集済み画像は、元の画像で置き換えられている。この図38では、第1のステージ3805で編集済み画像の上に表示されていた斜線が消えたことから、画像が編集後のものでなくなり元の画像に変わったことが見分けられる。
その次の第3のステージ3815は、ユーザがトグルボタン157を再び選択した後のGUI100であり、トグルボタンが選択されたため、元の画像が編集済み画像に戻る。この結果は、第4のステージ3820の図の通りであり、再び画像の上に表示されるようになった斜線と共に編集済み画像が図示されている。
図39は、幾つかの実施形態のもう1つのトグル操作を概念的に示したものであり、ユーザがトグルボタン157を押し、押さえ続けることによって、編集済み画像と元の画像との切り替えを可能にしている。図39は、3つのステージ3905〜3920におけるGUI100のトグル操作を図示している。
GUI100の第1のステージ3905は、エフェクトツール175からあるエフェクトを適用して編集を終えた後の画像を示す。図示のように、ユーザは画像に対してある編集を行った。この画像において編集内容は、画像上に表示された斜線で表されている。第1のステージはまた、ユーザがトグルボタン157を選択し、(例えば、トグルボタンにタッチしてその指を画面から離さずに)引き続く選択も図示しており、その結果は第2のステージに図示されている。
第2のステージ3910は、GUI100と、ユーザがトグルボタン157を選択して押し続けた後にある閾値時限範囲内で表示される元の画像とを図示している。画像表示エリア145内にあった編集済み画像は、元の画像で置き換えられている。第1のステージ3905で編集済み画像の上に表示されていた斜線が消えたことから、画像が編集後のものでなくなり元の画像に変わったことが見分けられる。
その次の第3のステージ3915は、ユーザがトグルボタン157を離した後のGUI100を図示しており、トグルボタンが離されたため、表示対象の画像が、元の画像から編集済み画像に再び戻っている。
図40は、幾つかの実施形態のもう1つのトグル操作を概念的に示したものであり、ユーザがトグルボタン157を押し、押さえ続けることによって、元の画像と編集済み画像との切り替えを可能にしている。図40は、3つのステージ4005〜4015fにおけるGUI100のトグル操作を図示している。
GUI100の第1のステージ4005は、画像に一切編集が為されていない元の画像を示している。第1のステージはまた、ユーザがトグルボタン157を選択し、(例えば、トグルボタンにタッチしてその指を画面から離さずに)引き続く選択も図示しており、その結果は第2のステージ4010に図示されている。
第2のステージ4010は、GUI100と、ユーザがトグルボタン157を選択して押し続けた後にある閾値時限範囲内で表示される編集済み画像とを図示している。プレビュー表示エリア内の元の画像は、編集済み画像で置き換えられている。第1のステージ4005では編集済み画像の上に斜線が表示されるようになったことから、元の画像が編集後のものに変わったことが見分けられる。
その次の第3のステージ4015は、ユーザがトグルボタン157を離した後のGUI100であり、トグルボタンが離されたため、表示対象の画像が、編集済み画像から元の画像に再び戻っている。
図41は、切り抜きツール132がアクティブになっている時にユーザが切り抜きの画像と元の画像との間の切り替えを行うことができる幾つかの実施形態のトグル操作を、概念的に示す。図41は、4つのステージ4105〜4120におけるGUI100のトグル操作を図示している。
GUI100の第1のステージ4105は、切り抜きツール132を用いて切り抜かれた後の画像を示す。図示のように、ユーザは(例えば、UIアイテム132を選択して)切り抜きツール132をアクティブ化している。このことは、切り抜きツール132がハイライトされていることにより示されている。切り抜きの画像には、元の画像のうちの切り抜かれた部分(この画像において車のフロント部分)のみが表示されている。第1のステージはまた、ユーザがトグルボタン157を選択したことも図示している。
第2のステージ4110は、切り抜きツール132がアクティブ化されている時にユーザがトグルボタン157を選択した後のGUI100を図示している。画像表示エリア145内の切り抜きの画像は、まだ切り抜かれていなかった元の画像で置き換えられている。元の画像は、画像全体(この画像おいて切り抜き編集を一切含まない車全体)を表示する。
その次の第3のステージ4115は、ユーザがトグルボタン157を再び選択した後のGUI100を図示しており、トグルボタンが選択されたため、元の画像が切り抜き画像に戻る。この結果は、第4のステージ4120の図の通りであり、切り抜きの画像には再び車のフロント部分のみが表示されるようになったことを図示している。
上記の図38〜41は、2つの画像間を切り替えるための機能の例を示している。幾つかの実施形態において、この機能は、ある画像から他の画像に切り替わる時を視覚的に示す。例えば、幾つかの実施形態は、ある画像の表示から他の画像の表示に遷移するアニメーション(例えば、上で図33及び34を参照することにより述べたピーリングアニメーション)を表示する。
IV.画像のビーミング
幾つかの実施形態のアプリケーションは、アプリケーションのユーザが、アプリケーションを走る他のデバイスのユーザに対して画像を送信できる機能を提供する。本機能の幾つかの実施例及び実施形態について、下掲のセクションで説明する。
図42は、幾つかの実施形態の画像編集アプリケーションのビーミングサービスを使用した2つのデバイスの例を、概念的に示す。具体的には、図42は、無線ネットワーク送受信機4202によりサービスされているローカリティ4201が、ハンドヘルドデバイス4204を持つ4人の参加者4203に対しネットワーク通信サービス(例えば、Wi−Fiサービス)を提供する様子を図示している。この図はまた、無線ネットワーク送受信機4202の範囲から外れた所にいるため通信を受信することができない第5の参加者4206も図示している。ここで注目すべき点は、参加者がこのローカリティ内にいる場合でも、特定のデバイスがそのネットワークの一部に含まれていない場合は、参加者は他のデバイスに対する通信確立用ネットワーク送受信機4202を使用できない可能性があることである。したがって、この状況において、デバイスがネットワークから外れているため、又は、デバイスが無線ネットワーク送受信機の範囲から外れているため、他のデバイスとの通信を受信することになる可能性もある。
図42に示すように、ネットワーク内の各デバイス4204は、ビーミングサービス利用可能メッセージ4207をブロードキャストすることによって、デバイス4204が他のデバイス4204の画像編集アプリケーションからのデータをこれらのアプリケーションのビーミングサービスを介する受信に利用できることを示している。このメッセージ4207の構造は、デバイスのホスト名、デバイスのサービス名、及びサービスタイプを含む。ホスト名は、ネットワーク内で識別子の付いた各デバイスを識別する目的に使用される。この図には4つのデバイス4204が図示されており、それぞれのデバイスにはデバイス「1」、「2」、「3」及び「4」を含む別々のホスト名が示されている。デバイスのサービス名は、ビーミングサービスを用いるアプリケーションが画像編集アプリケーションであることを示す。サービスタイプは、各メッセージがビーミングサービスに対するブロードキャストされることを示す。
図42に図示されている例において、相互に通信を確立しようとしている2つのデバイスは「デバイス1」4211及び「デバイス2」4212であり、これについては図43を参照することにより更に後述する。図42は、画像編集アプリケーションが、デバイス1(4211)及びデバイス2(4212)の両方のデバイス上で同時的に走っており、結果として、これらの2つのデバイスは画像データのやり取りが可能になっていることを図示している。換言すれば、第2のデバイスから画像データを受信できるようになる任意の第1のデバイスについて、第1のデバイスは、幾つかの実施形態において、その画像編集アプリケーションをアクティブにする必要があり、このアクティブ化によって、第1のデバイスは、自身がメッセージを受信できる状態であることを第2のデバイスを含む他の近隣デバイスに対して通知するビーミングサービス利用可能メッセージをブロードキャストする。しかしながら、当業者に認識されるように、他の実施形態において、画像編集アプリケーションがデバイスによって実行されていない場合でも、デバイスはこのビーミングサービスメッセージをブロードキャストする。これらの実施形態において、第2のデバイス4212が画像編集アプリケーションを開いていない第1のデバイス4211に画像をビームする場合、ユーザは画像編集アプリケーションを開いて画像データを受信するように促される。
図42に図示されている例及び後述の例において、デバイスは無線ネットワーク4202(例えば、いずれかのデバイスの一部分でない無線送受信機により確立されるWi−Fiネットワーク)を介して通信する。一方、他の実施形態は、そのような無線送受信機4202を必要とすることなしに、デバイス4204間の通信を確立する。例えば、幾つかの実施形態は、デバイスのBluetooth送受信機を使用してデバイス間の無線リンクを確立した後、このリンクを使用してデバイス間で画像をビームする。Bluetoothアプローチ及びローカル無線ネットワークアプローチの両方は、デバイス間で赤外線通信を確立するためにデバイス同士を相互に見通し線内に入れる必要がないという点で、従前のIRベースアプローチよりも優れている。但し、上述及び後述の幾つかの機能は、より従来型のIRベースアプローチにおいて実施されることもあり得る。
図43は、編集済み画像を第2のデバイス4212にビームする第1のデバイス4211の例を、概念的に示す。この例については、5つのステージ4305〜4325という観点で説明する。最初の3つのステージ4305〜4315は、第1のユーザが第1のデバイス4311との対話操作を示し、一方、4番目及び5番目のステージ4320〜4325は、第1のデバイス4211及び第2のデバイス4212の両方におけるGUI100の表示及び対話操作を図示している。
第1のステージは、編集済み画像4301を示す。また、第1のユーザがディスプレイ上でこのアイコンの表示ロケーションにタッチして共有ボタン155を選択している様子も示している。ユーザは共有ボタン155を使用して、画像を様々な様式で共有できる。幾つかの実施形態において、ユーザは選択した画像を同じネットワーク(例えば、Wi−Fi又はBluetooth)上の別の互換デバイスに送信できる。第2のステージ4310は、この選択に応じて、ユーザが編集済み画像4301を転送するための複数の選択を行えるウィンドウ4302が開いたことを示している。このステージ4310はまた、ユーザがビーム4303を画像4301転送用の転送オプションとして選択したことも示している。
第3のステージ4315は、第2のステージ4310におけるウィンドウ4302内でビームオプション4303が選択されたことに応じて、別のウィンドウが開いたことを示す。この第3のステージ4315はまた、ユーザがデバイス2(4304)を選択したことも示している。
第4のステージ4320は、第1のデバイス4211上でデバイス2(4304)が選択された後で、第2のデバイス4212上の画像編集アプリケーションが、デバイスワンがフォトをユーザにビームさせてもよいかどうかの第2のユーザへの通知を図示している。第4のステージ4320はまた、第2のデバイス4212の第2のユーザが[アクセプト]オプション4306にタッチしてアクセプトを行い、そのアクセプトが別のメッセージ転送によって第1のデバイス4211への送り返しも示している。
最後に、第5のステージ4325は、第1のデバイス4211が、第2のデバイス4212のユーザが画像をアクセプトしたことを第1のユーザに通知する表示プロンプト4307の提供を示す。また、このアクセプトに応じて、第1のデバイス4211が、画像データをこの画像を編集するための指示と一緒に第2のデバイス4212に転送したことも示されている。
図44は、デバイス4212上でビームされた画像のライブラリを閲覧するユーザの例を、概念的に示す。この図はまた、ユーザがビームされた画像の編集済みバージョンと元の画像との切り替えも図示している。この例は、6つのステージ4405〜4430という観点で説明されている。
GUI100の第1のステージ4405は、デバイス4212にビームされなかった画像のライブラリ内に記憶されている、デバイス4212上に表示された画像4406を図示している。第1のステージ4405はまた、ユーザが戻るアイコン151を選択し、これによりユーザはデバイス上に記憶された他の画像ライブラリ(第2のステージ4410に図示される)にアクセスするためにコレクション編成GUIにナビゲートして戻ることができることを図示している。幾つかの実施形態において、デバイスがビームされた画像を受信すると、デバイスは、デバイスに対してビームされた他の画像のみからなる特定のライブラリ内にその画像を記憶する。
第2のステージ4410は、デバイス上に現在記憶されている画像アルバムを表示するGUI100を図示している。この例では、ユーザはアルバムアイコン4407を選択して、デバイス4112上に現在記憶されている画像アルバムを閲覧している。デバイスは、ビームされた4407と標示される単一の画像アルバムのみを有する。幾つかの実施形態において、このビームされた画像アルバム4407は、デバイスに対してビームされた画像のみを記憶する。第2のステージはまた、ユーザがビームされた画像アルバム4407を選択したことを図示している。
第3のステージ4415は、GUI100と、ビームされた画像ライブラリ4407に記憶されたフォトのサムネイル画像4408とを図示している。ライブラリには現在、ユーザが表示用に選択した1つの画像4409のみが含まれている。
GUI100の第4のステージ4420は、ユーザが画像のサムネイル4409を選択した後の、ビームされた画像4411の表示を示す。図示のように、画像4411はその画像に対して為された特定の編集内容を含む。この画像における編集内容は、画像4411の上に表示された斜線で表されている。第4のステージ4420はまた、ユーザがトグルボタン157を選択し、(例えば、トグルボタンにタッチしてその指を画面から離さずに)引き続き選択を図示しており、その結果は第5のステージ4425に図示されている。
第5のステージ4425は、GUI100と、ユーザがトグルボタン157を選択して押し続けた後にある閾値時限範囲内で表示される元の画像4413とを図示している。画像表示エリア145内の編集されビームされた画像4411が、元のビームされた画像4413で置き換えられている。上述したように、アプリケーションは元の画像4413を非破壊的な様式で維持するため、アプリケーションはこのトグル操作を容易に実行できる。第1のステージ4405で編集されビームされた画像4411の上に表示されていた斜線が消えたことから、画像が編集後の画像4411でなくなり元の画像4413に変わったことが見分けられる。
その次の第6のステージ4430は、ユーザがトグルボタン157を離した後のGUI100を図示している。これにおいて、トグルボタンが離されたため、表示対象の画像が、元のビームされた画像4413から編集されビームされた画像4411に再び戻されている。
図45は、ビームされた画像を受信するためのビーミングサービスをブロードキャストする幾つかの実施形態のプロセス4500を、概念的に示す。幾つかの実施形態において、画像編集アプリケーション(例えば、図1〜44を参照することにより述べた画像編集アプリケーション)が走っている間に、この画像編集アプリケーションによりプロセス4500が実行される。そのような幾つかの実施形態において、画像編集アプリケーションは、画像編集アプリケーションの開始時にプロセス4500を実行する。幾つかの実施形態において、画像編集アプリケーションが走っていない時に、オペレーティングシステムによりプロセス4500が(例えば、サービスとして)実行される。このようにして、画像編集アプリケーションが走っていない間、プロセス4500は、別のデバイスがプロセス4500の走っているデバイスに画像の転送要求を送信する時を検出し得る。
説明のため、第1のデバイス及び第2のデバイスという観点で以下の説明を記載している。プロセス4500は第1のデバイス上で実行されており、第2のデバイスは幾つかの実施形態において画像編集アプリケーションを走らせている別のデバイスである。当業者によって理解されるように、任意の数の別々のデバイスにサービスをブロードキャストすることが可能であり、それにより、サービス及び画像データを第1のデバイスに送信する要求が検出されるあらゆるデバイスから、画像データが受信されるようになっている。
(4510において)ホスト名パラメータ、サービス名パラメータ、及びサービスタイプパラメータを指定するサービスのブロードキャストによって、プロセス4500が開始する。ホスト名パラメータは、プロセス4500がブロードキャストされているデバイス(例えば、画像編集アプリケーションを走らせているデバイス)のホスト名である。サービス名パラメータは、ブロードキャスト対象のサービスを識別するために用いられる名前である。幾つかの実施形態において、サービス名パラメータは画像編集アプリケーションの名前である。サービスタイプパラメータは、ブロードキャスト対象サービスの種類を指定する。幾つかの実例において、デバイス上のアプリケーションは、そのアプリケーション用の幾つかの別々のサービスを提供し得る。したがって、アプリケーションに対してブロードキャストされる幾つかのサービス間の区別を行うには、ホスト名及びサービス名を使用するだけでは不十分である。そのため、サービスタイプパラメータを使用して、デバイス上で走っている単一のアプリケーションにより提供され得る別々のサービスの間で区別が為される。
次いで、プロセス4500は(4520において)第2のデバイス(the second)から接続要求を受信するかどうかを判定する。幾つかの実施形態において、プロセス4500は、第2のデバイスとの一連の接続を確立する要求を受信し、この接続を介して第1及び第2のデバイスは通信を行う。プロセス4500が第2のデバイスからの接続要求が受信されたことを判定した場合、プロセス4500は4530に進む。それ以外の場合、プロセス4500は4510に戻り、引き続きサービスをブロードキャストする。
4530において、プロセス4500は(例えば、一連のネットワークソケットを確立することによって)第2のデバイスとの一連の接続を確立し、この接続を介して第1及び第2のデバイスは通信を行う。一連の接続が確立された後、プロセス4500は(4540において)第2のデバイスから画像を受信する。幾つかの実施形態において、プロセス4500は、上で図37を参照することにより述べたデータ構造に類似する画像のデータ構造の形式にて画像を受信する。
図46は、ビーミングサービスを検出してビームされた画像を受信するための候補デバイスを識別する幾つかの実施形態のプロセス4600を、概念的に示す。幾つかの実施形態のプロセス4600は、画像編集アプリケーション(例えば、上で図1〜44を参照することにより述べた画像編集アプリケーション)により、このアプリケーションが走っている間に実行される。幾つかの実施形態において、そのような幾つかの実施形態において、画像編集アプリケーションは、画像編集アプリケーションの開始時にプロセス4500を実行する。
プロセス4600は(4610において)サービスタイプのサービスについてネットワークを検索することから開始する。上述の通り、幾つかの実施形態の画像編集アプリケーションは、アプリケーションを走らせているデバイスのサービス名及びホスト名と共にサービスタイプを指定するサービスをブロードキャストする。幾つかの実施形態において、プロセス4600はそのような実施形態の画像編集アプリケーションによりブロードキャストされるサービスを検索する。幾つかの実施形態において、プロセス4600は、サービスディスカバリープロトコルを使用してネットワークを検索し、サービスタイプのサービスを探す。サービスディスカバリープロトコルの例としては、Apple Bonjour(登録商標)、ゼロ構成ネットワーキング(zeroconf)、サービスロケーションプロトコル(SLP)、シンプルサービスディスカバリープロトコル(SSDP)、Bluetooth(登録商標)サービスディスカバリープロトコル(SDP)などが挙げられる。幾つかの実施形態において、プロセス4600が検索するネットワークは単一ブロードキャストドメインネットワークである。
次いで、プロセス4600は(4620において)サービスタイプを提供するデバイスが識別されるかどうかを判定する。幾つかの実施形態において、プロセス4600は上述のサービスディスカバリープロトコルを用いて判定を行う。プロセス4600がサービスタイプを提供するデバイスが識別されていないと判定した場合、プロセス4600は4610に戻ってネットワーク検索を続行する。
プロセス4600がサービスタイプを提供するデバイスが識別されていると判定した場合、プロセス4600は(4630において)ホストのホスト名を表示する。上述したように、幾つかの実施形態は、ホストのホスト名を指定するサービスをブロードキャストする。幾つかの実施形態において、プロセス4600は、サービスで指定されたホスト名及び/又はサービス名をGUI(例えば、上で図43を参照することにより述べたGUI100)内に表示する。
次いで、プロセス4600は(4640において)サービスの選択が受信されたかどうかを判定する。プロセス4600がサービスの選択が受信されたことを判定した場合、プロセス4600は4650に進む。それ以外の場合、プロセス4600は4610に戻って、サービスタイプのサービスの検索を続行し、サービスタイプのサービスを提供するデバイスのホスト名を表示する。
4650において、プロセス4600は、選択されたサービスをインターネットプロトコル(IP)アドレスに提供するデバイスのホスト名を解決する。幾つかの実施形態において、プロセス4600は、上で説明したサービスディスカバリープロトコルを使用して、デバイスのホスト名を解決する。
次いで、プロセス4600は(4660において)IPアドレスを使用してデバイスに対する一連の接続を確立する。幾つかの実施形態のプロセス4600は、IPアドレスを使用してデバイスとの一連のネットワークソケットを確立する。
最後に、プロセス4600は(4670において)画像をデバイスに転送する。幾つかの実施形態において、プロセス4500は、上で図37を参照することにより述べたデータ構造に類似する画像のデータ構造の形式で画像を転送する。
画像(又は画像データ構造)を転送するため、プロセス4600は画像データを定義済みサイズ部分(例えば、65536バイト)に分割して、画像データをパケット単位で転送する。幾つかの実施形態において、各パケットは、ヘッダーと画像データの一部(例えば、ペイロード)とを含む。幾つかの実施形態のパケットヘッダーは様々なフィールドを含み、これらのフィールドとしては、バージョニングを目的とするシグニチャーフィールド、パケットタイプを指定するためのタイプフィールド(例えば、ペイロードパケット、キャンセルパケット、肯定応答パケットなど)、パケットを他のパケットと突き合わせて一意に識別するためのUUID、パケットインデックスフィールド、パケットカウントフィールド、アイテムインデックスフィールド、アイテムカウントフィールド、ファイル名の長さフィールドなどが挙げられる。
上記の図45及び46は、画像を単一のデバイスから受信して単一のデバイスに画像を転送するための技術の例を図示している。当業者に認識されるように、類似する技術を利用して、複数の別々のデバイスから複数の画像を受信し得る。同様に、類似する技術を利用して、複数の画像を複数の別々のデバイスに転送し得る。
V.画像閲覧、編集及び編成アプリケーション
上述の図は、一部の実施形態に係る画像閲覧、編集及び編成アプリケーションのGUIの様々な例を図示している。図47は、画像の閲覧、編集及び編成のための幾つかの実施形態のGUI4700の詳細図を図示している。GUI4700については、幾つかの実施形態のアプリケーションで記憶される画像のデータ構造4800を概念的に示した図48を参照することにより、部分的に説明する。
データ構造4800は、画像ID 4805、画像データ4810、編集指示4815、エクスチェンジャブル・イメージ・ファイル・フォーマット(Exif)データ4825、キャプション4830、共有画像データ4835、画像のキャッシュ済みバージョン4840、画像上の任意のタグ4845、及び画像に関する任意の追加データ4850を含む。画像ID 4805は、画像用の一意の識別子であり、画像ID 4805は、幾つかの実施形態において、コレクション内に記憶された画像を参照する目的にコレクションデータ構造によって使用される。
画像データ4810は、画像を表示するための実際のフルサイズ画素データ(例えば、画像内の画素ごとの一連の色空間チャネル値、又はそのエンコード済みバージョン)である。幾つかの実施形態において、このデータは、画像閲覧、編集及び編成アプリケーションのデータベースに記憶することもできるし、又は同じデバイス上の別のアプリケーションデータと共に記憶することもできる。幾つかの実施形態において、この更なるアプリケーションは、画像閲覧、編集及び編成の操作が行われるデバイス上で動作する別の画像編成アプリケーションである。
そのため、データ構造は、アプリケーションに関連付けられているローカルファイルへのポインタ、又は他のアプリケーションのデータベースに対してクエリを実行するのに使用できるIDを記憶し得る。幾つかの実施形態において、一旦アプリケーションがジャーナル内の画像を使用したか又は画像に対して編集を行うと、アプリケーションは自動的に画像データを含む画像ファイルのローカルコピーを作成する。
編集指示4815は、ユーザが画像に適用した任意の編集に関する情報を含む。このようにして、アプリケーションは、随時に画像の編集済みバージョンから元の画像を容易に戻せるように、非破壊的な形式で画像を記憶する。例えば、ユーザは、彩度エフェクトを画像に適用し、アプリケーションを一旦終了してから再び開いて、別の時点でエフェクトを解除することができる。これらの指示に記憶されている編集内容は、切り抜き及び回動、フル画像露光及び色調整、特定箇所の調整及び特殊エフェクト、並びに画像の画素に影響する他の編集内容であり得る。幾つかの実施形態では、ある一連の編集のみが適用された画像の様々なバージョンをユーザが閲覧できるように、これらの編集指示が特定の順序で記憶される。
Exifデータ4825は、画像をキャプチャしたカメラによって記憶された様々な情報(利用可能な場合)を含む。Exifは、デジタルカメラに一般的に用いられる特定のファイル形式の1つであるが、当業者に認識されるように、同等の情報が他の形式で入手可能なことも、又はユーザが直接に入力可能なことさえある。Exifデータ4825は、カメラ設定データ、GPSデータ、及びタイムスタンプを含む。カメラ設定データは、画像用のカメラ設定に関する情報(この情報が画像をキャプチャしたカメラから利用可能な場合)を含む。この情報には、例えば、絞り、焦点距離、シャッター速度、露光補正、及びISOが含まれ得る。GPSデータ4825は画像がキャプチャされたロケーションを示すのに対し、タイムスタンプは画像がキャプチャされた時の(カメラのクロックに準ずる)時刻を示す。
キャプション4830は、画像に関してユーザが入力した説明である。幾つかの実施形態において、この情報は画像閲覧エリア内にフォトと共に表示されるが、加えて、作成されたジャーナルのフォト上に表示する際に使用される場合もあれば、ソーシャルメディア又はフォト共有ウェブサイトに画像を掲示する際に使用される場合もある。ユーザがそのようなウェブサイトに画像を掲示すると、アプリケーションは、画像用の共有画像データ4835を生成する。この情報には、ロケーション(例えば、Facebook(登録商標)、Flickr(登録商標)など)、並びにウェブサイトのデータベース内の画像にアクセスするためのオブジェクトIDが記憶される。最終アクセス日は、ソーシャルメディア又はフォト共有ウェブサイトからフォトに記載された任意のユーザコメントにアクセスするためアプリケーションがオブジェクトIDを最後に使用した日時である。
キャッシュ済み画像バージョン4840は、これらの画像をアプリケーションがフルサイズ画像データ4810から繰り返し生成する必要がないように、アクセス及び表示がよく行われる画像のバージョンを記憶する。例えば、アプリケーションは頻繁に、画像のサムネイル並びに表示解像度バージョン(例えば、画像表示エリアに合わせてカスタマイズされたバージョン)を記憶する。幾つかの実施形態のアプリケーションは、前のサムネイルが置き換えられて編集が適用されるたびに、新規に画像のサムネイルを生成する。幾つかの実施形態では、元の画像及び1つ以上の画像の編集済みバージョンを含む、複数の表示解像度バージョンが記憶される。
タグ4845は、ユーザがアプリケーションを用いて画像に関連付けることのできる情報である。例えば、幾つかの実施形態において、ユーザは画像をお気に入りとしてマークし、画像に(例えば、更にレビューするため)フラグを設定して、ユーザが画像を含むコレクションを循環させた時に、画像がコレクション用の標準サムネイルグリッド内に表示されないように、又は、画像表示エリア内に表示されないように、画像を非表示にすることができる。他の実施形態は、追加のタグを含み得る。最後に、画像データ構造4800は、アプリケーションが画像(例えば、顔のロケーション及びサイズなど)と共に記憶し得る追加データ4850を含む。
画像の必須情報を記憶する目的でアプリケーションが使用し得るデータ構造としては画像データ構造4800が1つの可能なものに過ぎないことが、当業者に認識されるであろう。例えば、異なる実施形態によって、より多い又はより少ない情報を記憶していたり、情報を異なる順序で記憶していたりなどする。
図47に戻ると、GUI4700はサムネイル表示エリア4705、画像表示エリア4710、第1のツールバー4715、第2のツールバー4720、及び第3のツールバー4725を含む。サムネイル表示エリア4705は、選択されたコレクション内の画像のサムネイルを表示する。サムネイルは、フルサイズ画像を縮小サイズで表したものであり、幾つかの実施形態において、画像の一部のみを表す。例えば、サムネイル表示エリア4705内のサムネイルは、フルサイズ画像の横縦比には関係なく、全部正方形である。矩形画像においてサムネイルに用いられる部分を判別するため、アプリケーションはより小さな寸法を識別し、画像の中心部を長手方向に使用する。例えば、画像が1600×1200画素の場合、アプリケーションは1200×1200の正方形を使用する。サムネイルの選択された部分を更に緻密化するため、幾つかの実施形態は、画像における全ての顔の中心を(顔検出アルゴリズムを使用して)識別し、その後、このロケーションを使用してサムネイル部分をクリップされた方向に中心寄せする。そのため、理論的な1600×1200の画像において顔が全て画像の左側に位置している場合、アプリケーションは両側の200列を切除するよりもむしろ左端の1200列の画素を使用する。
サムネイルに用いられる画像部分が判別された後、画像閲覧アプリケーションは、(例えば、画素のブレンド及び他の技術を使用して)画像の低解像度バージョンを生成する。幾つかの実施形態のアプリケーションは、画像のサムネイルを画像のキャッシュ済みバージョン4840として記憶する。そのため、ユーザがコレクションを選択すると、アプリケーションはコレクション内の全ての画像を(コレクションデータ構造を介して)識別し、サムネイル表示エリア内に表示するために各画像データ構造内の画像のキャッシュ済みサムネイルにアクセスする。
ユーザは、サムネイル表示エリア内の1つ以上の画像を(例えば、上述の様々なタッチ式の対話操作を介して、又は他のユーザ入力を介して)選択し得る。選択されたサムネイルは、ハイライト又は他の選択インジケータと共に表示される。サムネイル表示エリア4705内には、サムネイル4730が選択されている。加えて、図示のように、幾つかの実施形態のサムネイル表示エリア4705には、コレクション内の幾つかの画像のうちのフラグ設定済みの(即ち、フラグを「はい(yes)」に設定するためのタグ4845を有する)画像が示される。幾つかの実施形態において、このテキストはフラグ設定済み画像のサムネイルのみを表示するため選択可能である。
アプリケーションは、画像表示エリア4710内に、選択された画像を対応するサムネイルよりも高い解像度で表示する。画像は通常、画像のフルサイズでは表示されないため、多くの場合は、ディスプレイデバイスよりも画像の方の解像度が高くなる。そのため、幾つかの実施形態のアプリケーションは、画像表示エリアに収まるように設計された画像のキャッシュ済みバージョン4840を記憶する。画像表示エリア4710内の画像は、フルサイズ画像の縦横比で表示される。1つの画像が選択されると、アプリケーションは画像の如何なる部分も切除することなしに、画像表示エリア内に画像をできるだけ大きく表示する。複数の画像が選択されると、アプリケーションは、画像の縦横比がそれぞれ異なる場合でも、各画像におよそ同じ画素数を使用して、それらの画像を視覚的なウェイトが維持されるような様式で表示する。
第1のツールバー4715は、タイトル情報(例えば、GUI内に表示されたコレクションの名前、現在選択されている画像にユーザが追加したキャプションなど)を表示する。加えて、ツールバー4715は、第1の一連のGUIアイテム4735〜4738と、第2の一連のGUIアイテム4740〜4743とを含む。
第1の一連のGUIアイテムは、戻るボタン4735、グリッドボタン4736、ヘルプボタン4737、及び元に戻すボタン4738を含む。ユーザは戻るボタン4735でコレクション編成GUIにナビゲートして戻ることができ、このGUIで、ユーザは様々な画像のコレクション(例えば、アルバム、イベント、ジャーナルなど)から選択を行うことができる。グリッドボタン4736を選択すると、アプリケーションに(例えば、スライドアニメーションを介して)サムネイル表示エリアをGUI上に、又はGUIから遠ざかるように移動させる。幾つかの実施形態において、ユーザはまた、スワイプジェスチャを介してサムネイル表示エリアをGUI上に、又はGUIから遠ざかるようにスライドさせることもできる。ヘルプボタン4737は、現在アクティブになっている一連のツールを識別するコンテキスト依存ヘルプ機能をユーザのためにアクティブ化し、これらのツールについて簡潔に説明したヘルプインジケータをユーザに提供する。幾つかの実施形態において、ヘルプインジケータは、ツールに関する追加情報にアクセスできるように選択可能になっている。元に戻すボタン4738を選択すると、アプリケーションに画像に対して為された最新の編集内容を(切り抜き、色調整、それとも他のものであっても)解除させる。この「元に戻す」を実行するように、幾つかの実施形態は、画像と共に記憶されている一連の編集指示4815から最新の指示を解除する。
第2の一連のGUIアイテムは、共有ボタン4740、情報ボタン4741、オリジナル表示ボタン4742、及び編集ボタン4743を含む。ユーザは、共有ボタン4740を使用して多様な異なる方法で画像を共有することができる。幾つかの実施形態において、ユーザは、選択した画像を同じネットワーク(例えば、Wi−Fi又はBluetoothネットワーク)上の別の互換デバイスに送信し、画像ホスティング又はソーシャルメディアウェブサイトに画像をアップロードして、他の画像の中から選択された一連の画像を基にジャーナル(即ち、付加的なコンテンツを追加できるように配列された画像のプレゼンテーション)を作成できる。
1つ以上の選択された画像に関する追加情報を表示する表示エリアは、情報ボタン4741でアクティブ化される。アクティブ化された表示エリア内に表示される情報は、画像用に記憶されるExifデータ4825(例えば、カメラ設定、タイムスタンプなど)の一部又は全部を含み得る。複数の画像が選択されると、幾つかの実施形態は、選択された全ての画像に共通のExifデータのみを表示する。幾つかの実施形態は、(i)GPSデータに従ってキャプチャされた画像(1つ又は複数)を示したマップを表示すること(この情報が利用可能な場合)と、(ii)任意のフォト共有ウェブサイト上で画像のコメントストリームを表示することと、に対応した更なるタブを情報表示エリア内に含む。この情報をウェブサイトからダウンロードするため、アプリケーションは、共有画像データ4835と共に画像用に記憶されたオブジェクトIDを使用して、この情報をウェブサイトに送信する。コメントストリーム及び、幾つかの場合では、追加情報は、ウェブサイトから受信され、ユーザに表示される。
オリジナル表示ボタン4742により、ユーザは、画像の元のバージョンと現在の画像の編集済みバージョンとを切り替えることができる。ユーザがボタンを選択すると、アプリケーションは、如何なる編集指示4815も適用されていない画像の元のバージョンを表示する。幾つかの実施形態において、適切なサイズの画像を画像のキャッシュ済みバージョン4840の1つとして記憶することによって、迅速なアクセスが実現されるようにしている。ユーザが再びボタンを選択すると(4742)、アプリケーションは再び、編集指示4815が適用された、画像の編集済みバージョンを表示する。
ユーザは編集ボタン4743で編集モードを開始又は終了することができる。図47に示すように、ユーザがツールバー4720内の一連の編集ツールのうちの1つを選択すると、ユーザは編集ボタン4743によって、閲覧及び編成モードに戻る。閲覧モード中にユーザが編集ボタン4743を選択すると、アプリケーションは、ツールバー4720に表示された順序で最後に使用された一連の編集ツールに戻る。即ち、ツールバー4720内のアイテムは特定の順序で配列されており、編集ボタン4743は、選択された画像に編集が加えられたアイテムのうち一番右のものをアクティブ化する。
ツールバー4720は、言及した通り、左から右に特定の順序で配列された5つのアイテム4745〜4749を含む。切り抜きアイテム4745は、ユーザが不整列な画像の位置合わせ及び画像の不要部分の除去を行える切り抜き及び回動ツールをアクティブ化する。露光アイテム4746は、画像の黒点、影、コントラスト、明度、ハイライト、及び白点をユーザが修正できる一連の露光ツールをアクティブ化する。幾つかの実施形態において、一連の露光ツールは、様々な組み合わせで連携して画像の色調属性を修正することができる一連のスライダである。色アイテム4747は、この彩度及び鮮明さ、並びに色固有の彩度(例えば、青色画素又は緑色画素)及びホワイトバランスをユーザが修正できる一連の色ツールをアクティブ化する。幾つかの実施形態において、これらのツールの幾つかは、一連のスライダとして表される。ブラシアイテム4748は、ユーザが画像に対する修正箇所を特定できる一連の補正ツールをアクティブ化する。ユーザはブラシを使用して、画像に対してラビングアクションを行うことによって、レッドアイ及び汚点を除去することも、また画像の特定部分に対して彩度及び他の特徴を適用したり除去したりすることもできる。最後に、エフェクトアイテム4749は、ユーザが画像に適用できる一連の特殊エフェクトをアクティブ化する。これらのエフェクトとしては、グラデーション、チルトシフト、非写実的な低彩度エフェクト、グレースケールエフェクト、様々なフィルタなどが挙げられる。幾つかの実施形態において、アプリケーションは、これらのエフェクトを、ツールバー4725から外向きに扇形編出する一連のアイテムとして提示する。
記述の通り、UIアイテム4745〜4749は特定の順序で配列される。この順序は、ユーザが5つの異なる種類の編集内容を最も頻繁に適用する順序に準ずる。したがって、幾つかの実施形態において、編集指示4815はこの同じ順序で記憶される。ユーザがアイテム4745〜4749のうちの1つを選択すると、幾つかの実施形態は、選択されたツールの左側にあるツールからの編集のみを、表示された画像に適用する(但し、他の編集は指示セット4815内に記憶されたままになる)。
ツールバー4725は、一連のGUIアイテム4750〜4754、並びに設定アイテム4755を含む。自動補正アイテム4750は、画像に対する補正編集(例えば、明らかなレッドアイの除去、カラーバランシングなど)を自動的に実行する。回動ボタン4751は、選択された任意の画像を回動させる。幾つかの実施形態において、回動ボタンが押されるたびに、画像が特定の方向に90°回動する。幾つかの実施形態において、自動補正は、指示セット4815内に収容される所定の一連の編集指示を含む。幾つかの実施形態は、画像の解析を実行した後、その解析に基づいて一連の指示を定義する。例えば、自動補正ツールは画像内のレッドアイの検出を試みるが、レッドアイが全く検出されない場合、レッドアイ修正の指示は生成されない。同様に、自動カラーバランシングは、画像の解析に基づく。回動ボタンによって生じる回動はまた、編集指示として記憶される。
フラグ設定ボタン4752は、選択された任意の画像をフラグ設定済みとしてタグ付けする。幾つかの実施形態において、コレクションのフラグ設定済み画像は、フラグ未設定の画像を全く含めずに表示できる。ユーザはお気に入りボタン4753を使用することにより、選択された任意の画像をお気に入りとしてマークすることができる。幾つかの実施形態において、このお気に入りボタンを使用することにより、画像がお気に入りとしてタグ付けされると共に、画像がお気に入り画像のコレクションに追加される。ユーザは非表示ボタン4754を使用して、画像を非表示としてタグ付けすることができる。幾つかの実施形態において、非表示にした画像は、サムネイル表示エリア内に表示されず、かつ/又はユーザが画像表示エリア内でコレクションの画像を循環させた場合も表示されない。図48に示すように、これらの機能の多くは、画像データ構造内にタグとして記憶される。
最後に、設定ボタン4755は、現在アクティブになっているツールセットに応じて異なるメニューオプションを提供するコンテキスト依存メニューをアクティブ化する。例えば、閲覧モードにおいて、幾つかの実施形態のメニューは、新しいアルバムの作成オプション、アルバム用のキーフォト(key photo)の設定オプション、設定をあるフォトから別のフォトにコピーするオプション、及び他のオプションを提供する。別の一連の編集ツールがアクティブになっている時は、メニューは特定のアクティブなツールセットに関連するオプションを提供する。
当業者に認識されるように、画像の閲覧及び編集用のGUI4700は、画像の閲覧、編集、及び編成アプリケーション用として考えられ得るグラフィカルユーザインタフェースに関する多くの例のうちの一例に過ぎない。例えば、別々のアイテムが別々のエリア内に又は別々の順序で配置される場合もあり、幾つかの実施形態は追加の、又は別の機能性を有するアイテムを含み得る。幾つかの実施形態のサムネイル表示エリアには、対応するフルサイズ画像の縦横比に一致するサムネイルが表示され得る、などである。
VI.電子システム
前述の機能及びアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録される一連の命令として指定されるソフトウェアプロセスとして実施される。これらの命令が、1つ以上の計算又は処理ユニット(例えば、1つ以上のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行される時、それらの命令は、処理ユニットに、命令に示されたアクションを実行させる。コンピュータ可読媒体の例には、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードドライブ、消去可能プログラム可能な読み出し専用メモリ(EPROM)、電気的消去可能プログラム可能な読み出し専用メモリ(EEPROM)などが挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線によって又は有線接続により進行する搬送波及び電子信号を含まない。
この明細書では、用語「ソフトウェア」は、プロセッサによって処理するためにメモリに読み込むことができる、読み出し専用メモリ内に存在するファームウェア又は磁気記憶装置に記憶されたアプリケーションを含むことを意図する。また、幾つかの実施形態において、複数のソフトウェア発明は、別個のソフトウェア発明をそのままにしながら、より大きいプログラムの下位区分として実施されてもよい。幾つかの実施形態において、複数のソフトウェア発明はまた、別個のプログラムとして実行され得る。最後に、本明細書で述べたソフトウェア発明を一緒に実行する別個のプログラムのあらゆる組み合わせが本発明の範囲内にある。幾つかの実施形態において、ソフトウェアプログラムは、1つ以上の電子システム上で動作するようにインストールされた時、ソフトウェアプログラムの動作を実行し行う1つ以上の特定のマシン実行を定義する。
A.モバイルデバイス
幾つかの実施形態の画像の編集及び閲覧アプリケーションは、モバイルデバイス上で作動する。図49は、そのようなモバイルコンピューティングデバイスのアーキテクチャ4900の例である。モバイルコンピューティングデバイスの例としては、スマートフォン、タブレット、ラップトップなどが挙げられる。図示のように、モバイルコンピューティングデバイス4900は、1つ以上の処理ユニット4905と、メモリインタフェース4910と、周辺インタフェース4915と、を含む。
周辺インタフェース4915は、様々なセンサ及びサブシステム(カメラサブシステム4920、無線通信サブシステム4925、オーディオサブシステム4930、I/Oサブシステム4935などを含む)に連結されている。周辺インタフェース4915は、処理ユニット4905と様々な周辺機器との間の通信を可能にしている。例えば、方向センサ4945(例えば、ジャイロスコープ)及び加速度センサ4950(例えば、加速度計)は、周辺インタフェース4915に連結されており、方向づけ及び加速機能を円滑にする。
カメラサブシステム4920は、1つ以上の光学式センサ4940(例えば、電荷結合素子(CCD)光学式センサ、相補型金属酸化物半導体(CMOS)光学式センサなど)に連結されている。光学式センサ4940に連結されたカメラサブシステム4920は、カメラ機能(例えば、画像及び/又はビデオデータキャプチャリング)を円滑にする。無線通信サブシステム4925は、通信機能の円滑化に役立つ。幾つかの実施形態において、無線通信サブシステム4925は、無線周波数受信機及び送信機、並びに光学式受信機及び送信機を含む(図49においては不図示)。幾つかの実施形態に係るこれらの受信機及び送信機は、GSMネットワーク、Wi−Fiネットワーク、Bluetoothネットワークなどの1つ以上の通信ネットワークを介して作動するように実装される。オーディオサブシステム4930は、オーディオを出力するためのスピーカに連結されている(例えば、別々の画像操作に関連付けられている別々のサウンドエフェクトを出力する)。加えて、オーディオサブシステム4930は、ボイス対応機能(例えば、音声認識、デジタル録音など)を円滑にするためのマイクロフォンに連結されている。
I/Oサブシステム4935は、周辺インタフェース4915を介して、入力/出力周辺デバイス(例えば、ディスプレイ、タッチスクリーンなど)と処理ユニット4905のデータバスとの間の転送に関わる。I/Oサブシステム4935は、入力/出力周辺デバイスと処理ユニット4905のデータバスとの間の転送を円滑にするためのタッチスクリーンコントローラ4955と、他の入力コントローラ4960と、を含む。図示のように、タッチスクリーンコントローラ4955は、タッチスクリーン4965に連結されている。タッチスクリーンコントローラ4955は、複数あるタッチ感度技術のいずれかを利用して、タッチスクリーン4965上の接触及び動きを検出する。他の入力コントローラ4960は、他の入力/コントロールデバイス(例えば、1つ以上のボタン)に連結されている。幾つかの実施形態は、ニアタッチセンシティブ画面とそれに対応するコントローラとを含み、タッチ式対話操作の代わりに又はタッチ式対話操作と共にニアタッチ式対話操作を検出できるようになっている。
メモリインタフェース4910は、メモリ4970に連結されている。幾つかの実施形態において、メモリ4970は、揮発性メモリ(例えば、高速ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、揮発性及び不揮発性メモリの組み合わせ、及び/又は他の任意の種類のメモリを含む。図49に図示されるように、メモリ4970はオペレーティングシステム(OS)4972を記憶する。OS 4972は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。
メモリ4970はまた、1つ以上の追加デバイスとの通信を円滑にする通信命令4974と、グラフィックユーザインタフェース処理を円滑にするグラフィカルユーザインタフェース命令4976と、画像関連処理及び機能を円滑にする画像処理命令4978と、入力関連(例えば、タッチ入力)プロセス及び機能を円滑にするための入力処理命令4980と、オーディオ関連プロセス及び機能を円滑にするオーディオ処理命令4982と、カメラ関連プロセス及び機能を円滑にするカメラ命令4984と、を含む。上述の命令は例示的なものに過ぎず、幾つかの実施形態においてメモリ4970は追加の及び/又は他の命令を含む。例えば、スマートフォン用のメモリは、フォン関連プロセス及び機能を円滑にするフォン命令を含み得る。上記の特定の命令は、別個のソフトウェアプログラム又はモジュールとして実施する必要がない。モバイルコンピューティングデバイスの様々な機能は、1つ以上の信号処理及び/又はアプリケーション固有の集積回路を含むハードウェア内及び/又はソフトウェア内に実施できる。
図49に図示されているコンポーネントは、別個のコンポーネントとして示されているが、当業者に認識されるように、2つ以上のコンポーネントを1つ以上の集積回路に統合することも可能であるし、加えて、1つ以上の通信バス又は信号ラインによって2つ以上のコンポーネントを一体に連結することも可能である。また、機能の多くに関しては1つのコンポーネントにより実行されるとして説明してきたが、当業者によって理解されるように、図49に関して述べた機能は、2つ以上の集積回路に分割され得る。
B.コンピュータシステム
図50は、本発明の幾つかの実施形態が実施される電子システム5000の別の例を、概念的に示す。電子システム5000は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータなど)、電話、PDA、又は他の任意の種類の電子若しくはコンピューティングデバイスであってもよい。そのような電子システムは、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体のためのインタフェースを含む。電子システム5000は、バス5005、処理ユニット5010、グラフィック処理ユニット(GPU)5015、システムメモリ5020、ネットワーク5025、読み出し専用メモリ5030、記憶装置5035、入力デバイス5040及び出力デバイス5045を含む。
バス5005は、電子システム5000の多数の内部デバイスを通信で接続する全てのシステムバス、周辺機器バス及びチップセットバスを集合的に表す。例えば、バス5005は、処理ユニット5010を、読み出し専用メモリ5030、GPU 5015、システムメモリ5020、及び記憶装置5035と通信で接続する。
これらの様々なメモリユニットから、処理ユニット5010は、本発明のプロセスを実行するため、実行対象の命令及び処理対象のデータを取得する。処理ユニットは、異なる実施形態において、シングルプロセッサ又はマルチコアプロセッサであってもよい。幾つかの命令は、GPU 5015に渡され、GPU 5015によって実行される。GPU 5015は、処理ユニット5010によって提供された様々な計算をオフロードしたり、画像処理を補完したりすることができる。幾つかの実施形態において、そのような機能は、CoreImageのカーネルシェーディング言語を使用して提供されてもよい。
読み出し専用メモリ(ROM)5030は、処理ユニット5010及び電子システムの他のモジュールに必要とされる静的データ及び命令を記憶する。他方、記憶装置5035は、読み書きメモリ装置である。この装置は、電子システム5000がオフの時でも、命令及びデータを記憶する不揮発性メモリユニットである。本発明の幾つかの実施形態は、記憶装置5035として大容量記憶装置(磁気又は光ディスク、及びその対応ディスクドライブなど)を使用する。
他の実施形態は、記憶装置としてリムーバブル記憶装置(フロッピディスク、フラッシュメモリデバイスなど、及びその対応ドライブ)を使用する。記憶装置5035と同様に、システムメモリ5020は、読み書きメモリ装置である。しかしながら、記憶装置5035と異なり、システムメモリ5020は、ランダムアクセスメモリなどの揮発性読み書きメモリである。システムメモリ5020は、実行時にプロセッサが必要とする命令及びデータのうちの幾つかを記憶する。幾つかの実施形態において、本発明のプロセスは、システムメモリ5020、記憶装置5035、及び/又は読み出し専用メモリ5030に記憶される。例えば、様々なメモリユニットは、幾つかの実施形態によれば、マルチメディアクリップを処理するための命令を含む。処理ユニット5010は、幾つかの実施形態のプロセスを実行するため、これらの様々なメモリユニットから実行対象命令及び処理対象データを取得する。
バス5005はまた、入力デバイス5040及び出力デバイス5045に接続する。ユーザは、入力デバイス5040によって、電子システムに情報及び選択コマンドを送ることができる。入力デバイス5040には、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)、カメラ(例えば、ウェブカメラ)、音声コマンドを受けるマイクロフォン又は類似の装置などが挙げられる。出力デバイス5045は、電子システムによって生成された画像を表示するか、又は他の方法でデータを出力する。出力デバイス5045には、プリンタ、陰極線管(CRT)又は液晶ディスプレイ(LCD)などのディスプレイ装置、並びにスピーカ又は類似のオーディオ出力デバイスが挙げられる。幾つかの実施形態は、入力デバイスと出力デバイスとの両方として機能するタッチスクリーンなどのデバイスを含む。
最後に、図50に示されるように、バス5005はまた、ネットワークアダプタ(図示せず)を介して電子システム5000をネットワーク5025に結合する。このように、コンピュータは、コンピュータのネットワークの一部(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、又はイントラネットなど)、又はインターネットなどのネットワークのネットワークでよい。電子システム5000のいずれか又は全てのコンポーネントが、本発明で使用されてもよい。
幾つかの実施形態は、マイクロプロセッサ、マシン可読又はコンピュータ可読媒体(あるいは、コンピュータ可読記憶媒体、マシン可読媒体又はマシン可読記憶媒体と呼ばれる)にコンピュータプログラム命令を記憶する記憶装置及びメモリなどの電子構成要素を含む。そのようなコンピュータ可読媒体の幾つかの例には、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つの処理ユニットによって実行可能で、様々な動作を実行するための一連の命令を含むコンピュータプログラムを記憶してもよい。コンピュータプログラム又はコンピュータコードの例には、コンパイラによって作成されるようなマシンコード、及びインタープリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
上記の考察は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを参照しているが、幾つかの実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの1つ以上の集積回路によって実行される。幾つかの実施形態において、そのような集積回路は、回路自体に記憶された命令を実行する。更に、幾つかの実施形態は、プログラマブルロジックデバイス(PLD)、ROM、又はRAMデバイスに記憶されたソフトウェアを実行する。
本出願のこの明細書及び任意の請求項で使用される時、用語「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」は全て、電子又は他の技術装置を指す。これらの用語は、人又は人のグループを含まない。本明細書の目的において、用語「ディスプレイ又は表示」は、電子システム上の表示を意味する。本出願のこの明細書及び任意の請求項で使用される時、用語「コンピュータ可読媒体(単数)」、「コンピュータ可読媒体(複数)」、及び「マシン可読媒体」は、コンピュータによって読み出し可能な形式で情報を記憶する有形の物理的物体に完全に制限される。これらの用語は、無線信号、有線でダウンロードされた信号、及びあらゆる他の暫時信号を除外する。
本発明を多数の具体的な詳細に関して述べたが、当業者は、本発明を、本発明の趣旨から逸脱することなく他の具体的な形式で実施できることを理解するであろう。例えば、図の多くには、様々なタッチジェスチャ(例えば、タップ、ダブルタップ、スワイプジェスチャ、プレスアンドホールドジェスチャなど)が図示されている。しかしながら、図示されている操作の多くは、別々のタッチジェスチャを介して(例えば、タップの代わりにスワイプ、など)又は非タッチ入力を介して(例えば、カーソルコントローラ、キーボード、タッチパッド/トラックパッド、ニアタッチセンシティブ画面などを使用して)実行され得る。加えて、幾つかの図(図16、45及び46を含む)は、プロセスを概念的に示す。これらのプロセスの具体的な操作は、図示され記述された厳密な順序で実行されなくてもよい。具体的な操作は、1つの連続したシリーズ操作で実行されなくてもよく、様々な具体的な操作が、異なる実施形態で実行されてもよい。更に、プロセスは、幾つかのサブプロセスを使用して、又はより大きいマクロプロセスの一部として実施されてもよい。したがって、当業者は、本発明が、上述の例示的な詳細によって制限されず、添付の特許請求の範囲によって定義されることを理解するであろう。
本発明を多数の具体的な詳細に関して述べたが、当業者は、本発明を、本発明の趣旨から逸脱しない他の具体的な形式で実施できることを認識するであろう。例えば、図1〜15、18〜30、33、34、38〜41、及び44に図示されている様々なUIコントロールは、タッチセンシティブ画面上での指ジェスチャ(例えば、1本以上の指を置く、ポイント、タップ操作)で設定されるものとして描画されるか、又は所定位置まで動いた様子を一切示すことなしに単にある位置に示されている。当業者に理解されるように、図1〜15、18〜30、33、34、38〜41、及び44のコントロールはまた、カーソル制御デバイス(例えば、マウス又はトラックボール)、スタイラス、キーボード、ニアタッチセンシティブ画面付近での指ジェスチャ(例えば、1本以上の指を置く、ポイント、タップ操作)、又は幾つかの実施形態において、他の任意のコントロールシステムにより、アクティブ化かつ/又は設定できる。したがって、当業者は、本発明が、上述の例示的な詳細によって制限されず、添付の特許請求の範囲によって定義されることを理解するであろう。