【文献】
写真を介したコミュニケーションツールに進化 iPhoto ’11,Mac Fan,日本,株式会社毎日コミュニケーションズ,2010年12月 1日,第18巻,第12号,p.22−24
(58)【調査した分野】(Int.Cl.,DB名)
前記通知は、前記アプリケーションが前記画像のためのコメントに最後にアクセスした時刻からの新しいコメントの数を示す数字として表示されることを特徴とする請求項3に記載の方法。
前記画像をアップロードする工程は、各リモート画像ホスティングウェブサイトに前記画像のためのキャプションをアップロードする工程を含み、前記方法は、ユーザ入力として前記キャプションを受信する工程をさらに含むことを特徴とする請求項1に記載の方法。
前記画像閲覧アプリケーションはタッチスクリーンデバイス上で動作し、前記ユーザ入力は、タッチスクリーンキーボードを介するタッチスクリーン入力を含むことを特徴とする請求項5に記載の方法。
前記画像識別子は、前記画像閲覧アプリケーションが前記画像ホスティングウェブサイトに前記画像をアップロードしたことに応じて受信されることを特徴とする請求項12に記載の方法。
少なくとも1つの処理ユニットにより実行されるプログラムを記憶する機械可読媒体であって、前記プログラムは請求項1乃至18の何れか1項に記載の方法を実行するための命令セットを含むことを特徴とする機械可読媒体。
【発明を実施するための形態】
【0020】
以下の説明では、多くの詳細、例、および実施形態が説明のために記載されている。しかしながら、当業者は、本発明は記載された実施形態に限定されないこと、および説明した特定の詳細および例のいくつかがなくても実施できることを理解するであろう。他の例では、周知の構造および装置は、不必要な詳細で本発明の説明を不明瞭にしないために、ブロック図形式で示される。
【0021】
本発明のいくつかの実施形態は、画像の閲覧や操作をするための新規なアプリケーションを提供する。いくつかの実施形態において、アプリケーションは、異なるモードに対して異なるグラフィカルユーザインタフェース(GUI)を用いて複数の異なるモードで動作する。例えば、いくつかの実施形態において、アプリケーションは、左利き用モード及び右利き用モードの両方においてタッチスクリーンデバイス上で動作する。異なるモードに対する異なるGUIに加えて、いくつかの実施形態は、異なるモードで異なる方法(例えば、異なる向き)に特定のユーザインタフェースツールを提供する。アプリケーションは、1つ以上の画像を操作するためのさまざまな機能を提供する。例えば、いくつかの実施形態では、(i)複数の項目を選択するための新規なタッチインタラクションや、(ii)画像のグループから類似画像を識別するための新規な方法を含む、複数の異なる画像を閲覧するための様々な方法を可能にする。さらに、アプリケーションは画像を巡回するため、及び画像にタグを付けるため等の、複数の選択画像を操作するための種々の新規なインタラクションを提供する。
【0022】
前述のように、いくつかの実施形態の画像編集、閲覧、および整理アプリケーション(以下、画像閲覧アプリケーション、及び画像編集アプリケーションなどと呼ばれる)は、複数の異なるモード(例えば、左利き用モードと右利き用モード)を提供する。いくつかの実施形態は、特定のGUI項目のGUIにおける位置に応じてモードを切り替える。いくつかの実施形態では、モードを切り替えるときに、GUI項目の第2のセットにおける関係を変更しながらGUI項目の第1のセットのGUIにおける関係(例えば、順序)を維持する。さらに、いくつかの実施形態のアプリケーションは、ツールが異なるモードで起動されるときに、異なる方法(例えば、向き)で何らかのツールを提示する。
【0023】
図1は、いくつかの実施形態の画像閲覧アプリケーションのためのこのようなGUI100の2つの異なるモードを示す。具体的には、この図は右利き用モードにおけるGUI100を2つの段階110及び120で示しつつ、左利き用モードにおけるGUI100を2つの段階で示す。
【0024】
GUI100は、サムネイル表示領域105と、画像表示領域115と、GUI項目の第1のセット125と、GUI項目の第2のセット135とを含む。サムネイル表示領域105は、画像のセット(例えば、ユーザが作成したアルバムまたは関連する画像の他のコレクション)のサムネイルを表示する。サムネイルは、コレクション内の画像の縮尺したバージョンである。いくつかの実施形態では、サムネイルは必ずしも画像全体を表示するのではなく、各サムネイルが同じアスペクト比(例えば、正方形)を有するように、各画像の一部だけを表示する。ユーザは、画像表示領域115に対応する画像を表示させるために、サムネイルを選択する(例えば、タッチインタラクションやマウスクリックなどを介してする)ことができる。
【0025】
画像表示領域115は1つ以上の選択画像の拡大版を表示する。この場合、サムネイル表示領域105でサムネイル107が選択され、よって対応する画像が画像表示領域115に表示される。図示のように、いくつかの実施形態では、サムネイル表示領域内の任意の選択サムネイル各々に対して、目印を表示する。この場合、サムネイル107は太い破線で表示されているが、当業者は、多くの異なる選択目印が可能であることを認識するであろう。
【0026】
画像表示領域における閲覧機能の提供に加え、いくつかの実施形態は、表示される画像に適用するさまざまな編集、タグ付け、およびその他の操作をユーザに提供する。GUI項目の第1のセット125は、画像を編集するための編集ツールの異なるセットを起動する3つの項目126−128を含む。項目126−128は、ユーザがよく画像を編集したい順序に沿う、左から右への特定の順に配置されている。GUI項目の第2のセット135は、GUI内の他の項目(例えば、サムネイル表示領域105および画像表示領域115)に対する相対位置に基づいて機能を提供するように設計された順序で配置された3つの項目136−138を含む。
【0027】
上述したように、段階110は右利き用モードのGUI100を示す。このモードでは、サムネイル表示領域105は、GUIの左側にある。また、GUI項目126‐128は、GUIの左側に配置され、項目126は左、項目127は中央、及び項目128は右の位置にある。GUI項目136−138はGUIの右側に配置され、項目136左、項目137は中央、及び項目138は右の位置にある。
【0028】
段階130は、左利き用モードのGUIを示す。この場合には、サムネイル表示領域105は、GUIの右側に位置している。これにより、ユーザがGUI上で左手を動かしたとき、彼女の腕がサムネイル表示領域の閲覧を妨げないことが保証される。同様に、右利き用モードにおいてサムネイル表示領域105をGUIの左側に位置すると、ユーザの右腕は、サムネイル表示領域105の閲覧を妨げない。
【0029】
段階130において、GUI項目の第1のセット125は、GUI100の右側且つサムネイル表示領域105の下に配置され、GUI項目の第2のセット125は、GUI100の左側に配置されている。しかし、項目の第1のセット125は関連する編集ツールをユーザが一般に使う順序と一致する左から右への同じ順を維持するが、項目の第2のセット135の順序は、右利き用モードの同項目に比べ、逆の順序である。
【0030】
いくつかの実施形態において、アプリケーションは、これら2つのモードを切り替えるためのユーザインタフェース機構を提供する。例えば、いくつかの実施形態では、サムネイル表示領域は移動可能であり、アプリケーションはサムネイル表示領域が移動されたGUIにおける位置に基づいて、左利き用モードと右利き用モードとの間で切り替わる。段階110から段階130に移動するために、ユーザはサムネイル表示領域105をピックアップし、タッチスクリーンディスプレイの左側からタッチスクリーンディスプレイの右側にドラッグすることができる。そうする際に、アプリケーションはツールの第1のセット125及び第2のセット135を自動的に移動し、ツールの第2のセット135の順序を逆にする。
【0031】
また、画像閲覧アプリケーションは、異なるモードで異なる方法で何らかのGUIツールを提供する。例えば、いくつかの実施形態では、アプリケーションが左利き用モードであるか右利き用モードであるかに応じて異なる向きにおいて特定のツールを表示する。
図1は、このような、2つの異なるモードで異なる向きで起動されるGUIツール145の例を示す。この場合、GUIツール145は、画像表示領域の特定の領域を拡大するズームツールである。
【0032】
図示のように、段階110において、ユーザは、ズームツール145を起動するために、右手で画像表示領域とインタラクションする。この図は1本の指のインタラクションを示しているが、異なる実施形態は、このようなツールを起動するために、異なるタイプの入力に反応する。例えば、いくつかの実施形態では、ズームツールを起動するために、時間的に少なくとも部分的に同時に生じる2つの別のタッチインタラクションを必要とする。
【0033】
段階120は、右利き表示モードにある場合の、このインタラクションの結果を示す。アプリケーションは、ユーザのタッチインタラクションの位置の上にズームツール145を表示する。示されているように、アプリケーションは、ツール145を、+記号(拡大率を上げることを示す)を右側に、そして−記号(拡大率を下げることを示す)を左側にする第1の向きで表示する。
【0034】
従って、段階130において、ユーザは、ズームツール145を起動するために、左手で画像表示領域とインタラクションする。段階140は、左利き用表示モードにある場合、このインタラクションの結果を示す。段階120のように、アプリケーションは、ユーザのタッチインタラクションの位置の上にズームツール145を表示する。しかし、この場合、アプリケーションはズームツール145を、+記号を左側に、そして−記号を右側にする、第2の向きで表示する。
【0035】
いくつかの実施形態では、ズームツールは、拡大率の程度を変化させることができる。拡大率を変更するには、ユーザは2つの別々のタッチ入力(例えば、親指と人差し指で)の回転ジェスチャを実行する。いくつかの実施形態において、アプリケーションが右利き用モードで動作している場合に、時計回りの回転は拡大率を増加させ、反時計回りの回転は、拡大率を減少させる。左利き用モードの場合、その逆であり、反時計回りの回転は拡大率を増加させ、時計回りの回転は拡大率を減少させる。
【0036】
さらに、いくつかの実施形態では、拡大率情報(例えば、起動したツール内の拡大率のレベル)を、ツールの一部として表示する。右利き用モードでは、この拡大率情報は拡大鏡の左側に表示され、左利き用モードでは、情報は拡大鏡の右側に表示される。これは、ズームインまたはズームアウトをするときに、拡大率情報の閲覧がユーザの手により妨げられることを防ぐ。
【0037】
上述したように、いくつかの実施形態では、サムネイル表示領域は、アプリケーションのGUIの2つの異なる側の間で移動可能である。さらに、画像編集アプリケーションは、ユーザがスワイプジェスチャ(例えば、タッチスクリーン上の左及び右のスワイプジェスチャ)でサムネイル表示領域をアプリケーションGUI上、又はその外に移動させることを可能にする。さらに、ユーザはサムネイル表示領域と画像表示領域との境界をタッチスクリーン上のドラッグジェスチャで移動させることにより、サムネイル表示領域の大きさ(およびサムネイルの列数)を変更することができる。
【0038】
異なるモードで動作することに加え、画像閲覧アプリケーションは、画像を閲覧または操作するための新規な動作又はインタラクションを数多く提供する。例えば、いくつかの実施形態では、画像表示領域に表示する複数の画像を選択するためのいくつかの異なる操作を可能にする。
図2は、4つの段階210〜240において、GUI200の画像表示領域内に同時に表示する複数の画像の選択を示す。
【0039】
GUI200は、GUI100について上述した対応する表示領域に類似しているサムネイル表示領域205と画像表示領域215とを含む。同図(および本出願の多くの他の図)において、GUIは、サムネイル表示領域が左側にある右利き用モードで示される。当業者は、図示のインタラクションの多くは左利き用GUIモードにも等しく適用可能であることを認識するであろう。
【0040】
第1の段階210は、サムネイル225が選択されていることを示し、対応する選択画像227が(画像のアスペクト比を維持したまま)可能な最大のサイズで画像表示領域に表示されていることを示す。第2の段階220において、ユーザは、タッチインタラクションを介して第2の画像237に対応する第2のサムネイル235を選択する。当業者は、タッチスクリーンデバイスは、さまざまなタイプのインタラクション(例えば、タップ、ダブルタップ、長押し、別個の同時インタラクション、マルチフィンガーインタラクションなど)を区別する能力を提供することを認識するであろう。
【0041】
第3の段階230は、画像表示領域215が、選択画像227と237の両方を表示していることを示す。さらに、アプリケーションは、サムネイル225と235を前の段階よりも薄い破線の境界で表示する。いくつかの実施形態は、単一の選択画像と複数の選択画像とを区別するためにサムネイル表示領域内の異なる選択の目印(例えば、太い又は細いボーダーやハイライト、異なる色など)を使用する。
【0042】
画像表示領域215に示される2つの画像227及び237は、同じアスペクト比を有しないが、ほぼ同じサイズで表示される。いくつかの実施形態は、画像表示領域内に複数の画像を表示する際に、異なる画像間の一定の視覚的重みを維持する。すなわち、異なるサイズとして画像を表示することにより、画像表示領域内のすべてのスペースを埋めようとするよりも、アプリケーションは、画像の大きさに関わらず同じ大きさで各画像を表示する。異なる画像間の視覚的重みを一定に保つために、いくつかの実施形態は、画像表示領域に表示する画像の全ての平均アスペクト比を算出し、の平均アスペクト比を有する正しい個数の領域への、画像表示領域の最適な分割を識別する。その後、これらの領域内で、アプリケーションは、各画像が同じ画素数を使用して表示されるように画像を表示する。
【0043】
第3の段階230はさらに、別のタッチインタラクションを介して画像247に対応する第3のサムネイル245を選択したユーザを示す。結果として、第4の段階240において、画像表示領域215には、3つの選択画像227、237、及び247が表示される。第3の画像を表示するためにアプリケーションは、縮小することなく3つの画像の同じ視覚的重みを維持できるため、他の2つの画像のサイズを縮小する必要がない。
【0044】
上述したように、いくつかの実施形態は、画像表示領域に複数の画像を表示するために、種々の異なるタッチインタラクションに応答する。そのようなタッチ操作の一例は、第1のサムネイルおよび第2のサムネイルと、その間のすべてのサムネイルを選択するために、サムネイル表示領域における第1のサムネイルおよび第2のサムネイルの同時選択(例えば、2つの異なるタッチ入力を介して)を含む。このようなブロック選択に対して、アプリケーションは選択サムネイル画像に対応するすべての画像を画像表示領域内に表示する。
【0045】
いくつかの実施形態はさらに、異なるタイプのサムネイル選択入力を区別する。例えば、ユーザが第1の方法(例えば、タッチスクリーン上のタップまたはシングルクリック)で特定のサムネイルを選択すると、アプリケーションは、特定のサムネイルのみを選択し、対応する画像のみを表示領域に表示する。しかし、第1のサムネイルが既に選択されているときに、ユーザが第2の方法(例えば、タッチスクリーンを押してホールドすることまたはクリックしてホールドすること)で、第2のサムネイルを選択すると、アプリケーションは第1のサムネイルの選択を維持しながら第2のサムネイルを選択する。アプリケーションは、画像表示領域に第1の画像および第2の画像(および任意の他の選択画像)の両方を表示する。このように、いくつかの実施形態では、ユーザは画像表示領域に任意の数の画像を追加することができる。
【0046】
さらに、いくつかの実施形態の画像閲覧アプリケーションは、特定の基準のセットに従って選択画像に類似しているすべての画像を表示することができる。
図3は、GUI300の三段階310〜330にわたって、このようなプロセスを示す。GUI300は、前の図面の対応する領域と同様のサムネイル表示領域305と、画像表示領域315とを含む。
【0047】
図3の第1の段階310は、サムネイル335が選択され、それに対応する画像340が画像表示領域315に表示されていることを示す。第2の段階320において、ユーザは、選択サムネイル335に対するタッチ操作を行った。当業者は、これは汎用のユーザ入力であること、そして、他の実施形態は、同様の画像特徴の起動を異なる方法で提供してもよいことを認識するであろう(例えば、サムネイルのダブルタップやダブルクリック(既に選択されているか否かに関わらず)、ホットキーやホットキーのシーケンス、タッチジェスチャやジェスチャのシーケンス、またはメニュー項目やUIボタンなど)。第3の段階330は、アプリケーションが、選択画像340に類似した画像を識別し、識別された別画像345及び350を画像表示領域315に表示したことを示している。なお、破線で示されるように、対応するサムネイル画像335、355、および360は全て、サムネイル表示領域305で選択されている。
【0048】
これらの類似画像を識別するために、いくつかの実施形態では、関連付けられている画像(例えば、サムネイルがサムネイル表示領域内の表示の対象となる画像)のコレクション内のすべての画像を選択画像と比較し、画像のうち特定の基準のセットに従って選択画像に対して閾値内の類似性を有するものを識別する。いくつかの実施形態は、画像の画素のヒストグラムを生成し(例えば、画素の色、テクスチャ、および勾配値に基づいて)、類似画像を識別するためにヒストグラムを比較する。いくつかの実施形態において、アプリケーションは、画像の異なる領域について異なるヒストグラムを生成し、画像間の対応する領域のヒストグラムを比較する。画像は、いくつかの画素が複数の領域の一部になり、他の画素が1つの領域だけに含まれるように領域に分割される。これによりアプリケーションは、2つの画像間の比較を行う際に画像の内容をより表している画素(例えば、画像の中心のもの)に、より配慮することを可能にする。
【0049】
複数のサムネイルを選択し、画像表示領域に複数の画像が表示されると、いくつかの実施形態は、画像の閲覧および画像とのインタラクションのための種々の新規なインタラクションを提供する。例えば、ユーザは、(対応するサムネイルではなく)表示された画像のいずれかに選択操作(例えば、タッチスクリーン上のタップ、またはマウスクリック)を行うことができる。いくつかの実施形態では、画像表示領域に選択画像(すなわち、一次選択画像)のみが表示されるが、他の画像の二次選択を維持する。これらの選択を示すために、アプリケーションは、第2の選択インジケータで(例えば、太い及び細いハイライト境界線を使用して)一次選択画像(表示された画像)のサムネイルをハイライトしながら、第1の選択インジケータで二次選択画像のサムネイルをハイライトする。
【0050】
複数の画像のためのこの閲覧モードにある場合、いくつかの実施形態は、水平方向のスワイプジェスチャでユーザが異なる選択画像を巡回することを可能にする。また、ユーザは、垂直方向のスワイプジェスチャで選択画像のセットから画像を除去することができる。画像がセットから削除されるとき、アプリケーションは、対応するサムネイルから選択インジケータを除去する。複数の画像が画像表示領域に表示されている場合、ユーザは、画像のすべてにタグ(例えば、お気に入りタグ)を適用することができ、または一次表示のために画像のいずれかを選択して、一次選択画像のみにタグを適用することができる。
【0051】
図4は、3つの段階410〜430に渡ってGUI300内の画像340〜350へのそのようなタグの適用を示す。第1の段階410は、
図3の第3の段階330と同じ状態でGUI300を示し、画像表示領域315に画像340〜350が表示されている。第2の段階420で、ユーザは選択した画像にタグを付けるためにGUI項目405を選択する。GUI項目405は概念的項目であり、画像編集アプリケーションのいくつかの実施形態は、異なるUI項目、特定のタイプの選択ジェスチャ、ホットキー等を用いてこのような機能を実装してもよい。なお、項目405は、汎用のタグを表すが、いくつかの実施形態では、お気に入りタグ、フラグ、カスタム情報タグなど様々な異なるタグを含んでもよい。
【0052】
第3の段階は、GUI項目405の選択結果を示す図である。3つのサムネイル335、355、および360は、タグ付けされたことを示すマーカーを表示する。いくつかの実施形態では、アプリケーションは、サムネイル内にいくつかのタグのアイコンを表示し、単にタグ付けされた画像の属性として他のタグを記憶する。また、GUI項目405は、選択画像のすべてがタグ付けされていることを示すように現在ハイライトされている。いくつかの実施形態では、GUIのタグボタンをハイライトすることにより表示領域に表示される画像のすべてに特定のタグが付いていることが示される。その後のタグボタンの選択は、選択画像からタグを削除する。
【0053】
いくつかの実施形態のアプリケーションでは、画像を閲覧しながら、ユーザが画像ホスティングやソーシャルメディアのウェブサイトと双方向にインタラクションすることができる。例えば、ユーザは、画像閲覧アプリケーション内の画像に添付されるだけでなく、画像が外部のアプリケーションやサイトにエクスポートされるときに画像に添付されるキャプションを画像に追加することができる。さらに、いくつかの実施形態は、ホストされた画像に外部ウェブサイトのユーザがコメントをしたときに、この情報を自動的に取得し、画像閲覧アプリケーション内で外部のコメントを表示する。
【0054】
上述した特徴に加えて、いくつかの実施形態のアプリケーションはコンテキスト依存ヘルプ機能を提供する。具体的には、ユーザが、ヘルプツールを呼び出したときに、アプリケーションは、ユーザが現在操作している項目に合わせたヘルプインジケータを表示する。
図5は、4つの段階510〜540に渡ってGUI100におけるこのようなコンテキスト依存ヘルプ機能の使用を示す。GUIはコンテキスト依存ヘルプ機能を呼び出すためのヘルプ起動項目137を含む。第1の段階では、画像表示領域115に1つの選択画像が表示されているGUI100が示される。
【0055】
第2の段階520において、ユーザは、タッチインタラクションを介してヘルプ起動項目137を選択する。上記の他のGUIの項目と同様に、ヘルプ起動項目137は、実際には様々なタッチインタラクション及びカーソルインタラクションなどの様々な方法で呼び出すことができる概念的な項目である。
【0056】
第3の段階530は、ヘルプ起動項目137が現在アクティブであることを示し、GUI項目126〜128のためのヘルプインジケータ505が表れている。これらのヘルプインジケータ505は、異なるGUIの項目の目的を表示し、いくつかの実施形態では、選択した項目に関する追加情報を含むヘルプマニュアルにアクセスするために選択可能である。第3の段階は、さらに、ユーザが露光項目127を選択することを示す。
【0057】
ユーザが使用中のツールのアクティブセットを変更すると、アプリケーションはツールのアクティブセットのためのヘルプインジケータを表示する。その結果、第4の段階540は、ヘルプインジケータ515の異なるセットを示す。これらのヘルプインジケータ515は、GUI100に登場する異なる露光調整項目の目的を表示する。ユーザが編集ツールのこれらのセットの特定の1つに移動したため、トリミング、露光、及び色項目のためのヘルプインジケータの表示はもはや表示されていない。さらに、移動可能ツール(例えば、露光調整スライダ)に関して、いくつかの実施形態では、ユーザがツールを移動すると、ツールと一緒にヘルプインジケータが移動される。
【0058】
図1〜
図5は、画像の閲覧または操作のためのいくつかの実施形態によって提供される新規な特徴の様々な例を示す。いくつかのより詳細な実施形態を以下に説明する。セクションIは画像コレクション及びアプリケーション内でコレクションの異なるグループ間を移動することについて説明する。セクションIIIで異なるGUIモードと異なるモードでのGUIとの様々なインタラクションを説明する前に、セクションIIは、いくつかの実施形態のGUIや画像データ構造について説明する。その後、セクションIVは、複数の画像を選択するためのさまざまな技術およびいくつかの実施形態のアプリケーションが一度に複数の画像を表示する方法を説明する。セクションVは、選択および選択解除操作とタグ付け操作とを含む、いくつかの実施形態の1つ以上の操作に適用することができる様々な操作を説明する。次に、セクションVIは、画像共有機能について説明し、セクションVIIは、いくつかの実施形態のコンテキスト依存ヘルプ機能について説明する。その後、セクションVIIIはいくつかの実施形態のメディア編集アプリケーションのソフトウェアアーキテクチャについて説明する。最後に、セクションIXは、本発明のいくつかの実施形態が実装される、電子システムについて説明する。
【0059】
I.画像コレクション
画像のコレクションの操作に関係するさまざまな機能を説明する前に、本出願は、本発明のいくつかの実施形態によるそのようなコレクションの作成および整理を説明する。いくつかの実施形態の画像編集、閲覧、および整理アプリケーションは、ユーザが画像(例えば、写真)をインポートすること、コレクション(例えば、アルバムなど)になるように画像を関連付けること、画像から共有可能なメディア(例えば、ジャーナル)を作成すること、および画像編集などを可能にする。いくつかの実施形態は、イベントとして別のデバイス(つまり、アプリケーションを実行するデバイス以外のデバイス)から一緒にインポートされた画像を自動的に関連付ける。一方では、アルバムは、ユーザが作成した画像のコレクションである。ここでは、アプリケーションによって整理されるメディアとして主に画像が説明されるが、本発明のいくつかの実施形態はさらに、ビデオなどの他のタイプのメディアを整理、閲覧、および編集する。
【0060】
図6は、いくつかの実施形態による4つの段階610〜640に渡る新しい画像のコレクションの作成を示す。具体的には、段階は、ユーザが特定のイベントコレクションを選択し、イベント内で複数の画像を選択し、その後選択した画像からアルバムを作成することを示す。この図において、および本明細書の他の多くの図において、説明のために、ユーザインタラクションが第1の段階に示され、結果的にGUIで生じる変化が次の段階に示される。しかし、当業者は、大抵の場合、ユーザインタラクションの受信と表示の変更との間の遅延はほぼ瞬間的であることを認識するであろう。
【0061】
第1の段階610は、デバイス上で使用可能な画像のコレクションを表示するためのコレクション整理GUI600を示す。GUI600は、ユーザが様々なタイプのコレクションを切り替えることを可能にするタブ605のセットを含む。タブ605はユーザがアルバム(ユーザが作成した画像のコレクション)、写真(他の様々なコレクションからの画像のすべてを合併する1つのコレクション)、イベント(画像閲覧アプリケーションが動作するデバイスに一緒にインポートされた画像のコレクション)、及びジャーナル(画像のコレクションを提示し、共有する具体的な方法)を選択可能にする。いくつかの実施形態では、ユーザは、さまざまなタイプのコレクションを切り替えるために異なるタブ605を選択することができる。当業者は、いくつかの実施形態では、別のタブ(例えば、特定のビデオタブ、共有可能コレクションの他のタイプのタブなど)が含まれることを認識するであろう。
【0062】
GUI600はさらに、ユーザが利用できる様々なコレクションを表すアイコンを表示する棚615を含む。いくつかの実施形態では、棚615は、反射や影を有する、ガラス棚の三次元的外観を与えるように表示される。アルバム、写真、イベント、ジャーナルを表すアイコンは、ガラス棚の上に置かれた外見を有し、GUIに見られる影を落とすような外見をもつ。段階610において、GUIは、(ここでは、タッチ操作を介して)ユーザが選択した「イベント2」と呼ばれる画像のコレクションを表すアイコン625を含む。
【0063】
第2の段階620は、ユーザがアイコン625を選択した結果のGUI650、ならびに結果的に得られたGUI650内の追加の選択の結果を示す。特定のコレクションを選択すると、アプリケーションは特定のコレクションのためのGUIを表示する。GUI650は、サムネイル表示領域655、画像表示領域660、および
図14を参照して以下にさらに詳細に説明される様々な他のGUI項目を含む。GUI650はさらに、表示中のコレクションの名前(この場合、「イベント2」)を最上部に表示する。
【0064】
この段階では、ユーザは、サムネイル表示領域655における3つのサムネイルを選択しており、アプリケーションは画像表示領域660に3つの対応する画像を表示する。複数の画像を選択する異なる方法に関する詳細は、セクションIVにおいて以下に詳細に説明する。
【0065】
第3の段階630において、ユーザは、(例えば、タッチインタラクション、またはカーソルコントローラなどを介して)設定GUI項目665を選択する。いくつかの実施形態では、設定項目は、アプリケーション内のユーザの以前の行動のコンテキストに基づくメニューを起動する。例えば、ユーザが編集ツールの特定のセットを起動していたときに、設定メニューは起動された編集ツールに関するオプションを含むことができる。
【0066】
しかし、この場合、ユーザは閲覧モードにあり、設定メニューは、「新しいアルバムの作成」のオプションを含む。第4の段階640は、新しいアルバムを作成するためにユーザがこのメニューオプションを選択することを示す。いくつかの実施形態では、このオプションを選択すると、結果としてアプリケーションは選択した画像から新しいアルバムを作成する。いくつかの実施形態は、設定メニューに、以前に作成したアルバムに選択した画像を追加するなどのアルバムに関連するその他のオプションを含む。さらに、いくつかの実施形態は、新しいアルバムを作成するための異なるメカニズムを提供する。例えば、いくつかの実施形態では、ユーザはコレクション整理GUI600を通して新しいアルバムを作成することができ、その後、別のコレクションにアクセスすることによって、アルバムに新しい画像を追加できる。
【0067】
さらに、新しいアルバムを作成する際に、いくつかの実施形態では、ユーザが新しいアルバムのパラメータを設定することができる新しいウィンドウまたはダイアログボックスを表示する。例えば、ユーザは、アルバム名を入力することと、いくつかの場合には、すべての選択画像を含めるか、現在のコレクション内のすべての画像を含めるか、別のコレクションから画像を選択するか、又は他のオプションかを判断する。
【0068】
しかし、いくつかの実施形態は、新しいアルバムを作成するためのオプションを提供しない。アルバムは、同じデバイス(例えば、別の画像整理アプリケーション)上で実行されている追加のアプリケーションから画像閲覧アプリケーションにインポートすることができる。代わりに、ユーザがいくつかの画像の選択から作成することができるコレクションの唯一の形式はジャーナルである。また、画像にフラグを付けることまたは画像をお気に入りとして設定することにより、ユーザは、それらのタグに特有のアルバムに画像を追加する。
【0069】
図7は、画像の新しいコレクション(例えば、アルバム)を作成するためのいくつかの実施形態のプロセス700を概念的に示す。図示のように、プロセス700は、(705で)画像の新たなコレクションを作成するためのコマンドを受信することによって開始する。いくつかの実施形態では、このコマンドは、例えば
図6に示す「新規アルバム作成」メニューオプションなどのようなユーザコマンドであるが、当業者は、様々な異なるユーザ入力装置及び様々な異なるGUI構造を介してコマンドを受信することができることを認識するであろう。また、上記のように、いくつかの実施形態では、ユーザが要求して作成できるコレクションの唯一のタイプはジャーナルである。
【0070】
プロセス700は次に(710で)、現在の選択画像を識別する。いくつかの実施形態において、ユーザは特定のコレクション内の画像のサブセットを選択でき、その後、選択した画像から新しいコレクションを作成するようにアプリケーションを指示することができる。
【0071】
その後プロセスは、(715で)識別された画像を新しいコレクションとして関連付ける。
図6では、3つの画像が現在選択されているとして示されているので、これら3つの画像は新たなコレクションとして関連付けられる。いくつかの実施形態において、アプリケーションは、新たに生成されたコレクションのための新しいコレクションデータ構造を作成し、コレクション内の各画像への参照(例えば、ポインタ、データベースの参照IDなど)を記憶する。
【0072】
図8は、いくつかの実施形態のコレクションデータ構造800を概念的に示す。ユーザが新しいアルバムを生成すると、または新しいイベントについて新しい画像をインポートすると、アプリケーションはアルバムやイベントのための新しいコレクションデータ構造を自動的に作成する。コレクションデータ構造800は、コレクションID、コレクションタイプ、コレクション名、キー画像、及び画像のセットへの参照を含む。コレクションIDは、コレクションを参照するときにアプリケーションが使用する、コレクションのための一意な識別子である。コレクションタイプは、コレクションのタイプ(例えば、アルバム、イベント、ジャーナルなど)である。いくつかの実施形態では、アプリケーションは、画像を含む他のコレクションに関係なく、アプリケーションにインポートされた各画像を参照する「写真」コレクションを含む。コレクション名は、コレクションが選択されている場合に画像閲覧および編集GUIの上部に表示されるユーザがコレクションに割り当てた名前、およびコレクション整理GUI内のコレクションのアイコンに使われる名前である。
【0073】
キー画像は、コレクションを代表する、ユーザによって設定された画像である。いくつかの実施形態では、アプリケーションがコレクション整理GUIのガラス棚上のコレクションのための選択可能なアイコンとしてキー画像を表示する。また、コレクションデータ構造800は、コレクション内の各画像への参照の順序付けられた系列を含む。いくつかの実施形態では、画像の順序は、サムネイルがサムネイル表示領域内に表示される順序を決定する。後述するように、いくつかの実施形態は、アプリケーションにインポートされる各画像に対してデータ構造を記憶し、コレクションはこれらのデータ構造を参照する。これらの参照は、データベースエントリへのポインタ、参照などであってもよい。
【0074】
図9は、4つの段階910〜940に渡って、画像閲覧、整理、及び編集GUI650(以下、一部の場合には画像表示GUI、画像編集GUIなどと呼ばれる)と、コレクション整理GUI600との間の移動を示す。図示のように、第1の段階910において、ユーザは、戻るボタン905を選択する。いくつかの実施形態では、このボタンはアプリケーションをコレクション整理GUI600へ再び移行させる。いくつかの実施形態では、アプリケーションは、表示されたコレクションのコレクションアイコンに最小化するように画像閲覧GUI650を最小化することによって、この移行をアニメーション化する。段階920〜940は、このアニメーションを示す。
【0075】
第2の段階920で、画像閲覧GUI650は、コレクション整理GUI600の端が視認可能なように縮小し始めている。図示のように、アプリケーションは、必ずしも中心に向かって最小化するのではなく、GUIに表示されるコレクションを表すアイコンの位置に向かって画像閲覧GUI650を最小化する。第3の段階930は、画像閲覧GUIがコレクションアイコン625よりも僅かに大きくなった時点のアプリケーションの表示を示す。最後に、第4の段階940において、画像閲覧GUIは、完全に最小化され、コレクション表示領域のみが示されている。この図はGUI650の全体(すなわち、サムネイル表示領域、ツールバー、および画像表示領域)が最小化されることを示すが、いくつかの実施形態は、ユーザが戻るボタンに触るとすぐに、ディスプレイからサムネイル表示領域とツールバーとを除去して、画像表示領域のみが最小化されるよう表示する。
【0076】
図10は、4つの段階1010〜1040にわたって、新しく作成されたアルバムを表示するために、ユーザがコレクション整理GUI600内を移動することを示す。コレクション整理GUI600内では、ユーザは、アルバム、写真、イベント、及びジャーナルのいずれかを選択するためにタブ605を使用できる。後述するように、ユーザは、別のタブ間を移動するためにスワイプジェスチャも使用することができる。第1の段階1010はイベントタブ1015がアクティブである間のアルバムタブ1005の選択を示す。図示のように、いくつかの実施形態は、選択中に(例えば、タブの上を指で押している間、タブの上にカーソルがあるときにマウスボタンが押されている間などに)選択したタブをハイライトする。
【0077】
第2の段階1020はアルバムタブ1005が現在アクティブであることを示す。いくつかの実施形態では、アプリケーションは、異なるタブ間の移行をアニメーション化する(すなわち、イベントがGUIの外にスライドしながら、アルバムを含む新しい棚がディスプレイにスライドするように表示する)。アルバム用の棚は「アルバム1」を表すアイコン1025のみを含む。この段階で、ユーザは、このアルバムにアクセスするためにアイコン1025を選択する。いくつかの実施形態において、これは、画像閲覧GUI650に移行させる。
【0078】
段階1030に示されるように、いくつかの実施形態のアプリケーションは、
図9に示される最小化アニメーションの反対としてこの移行をアニメーション化する。このように、段階1030で、画像閲覧GUI650は、選択したアイコン1025の外に拡大し始めている。第4の段階1040は、画像閲覧GUI650を表示するアプリケーションで、この選択の結果を示す。GUIは、現在アクティブなコレクションが「アルバム1」であることを一番上に示している。サムネイル表示領域には、
図6に「アルバム1」のために選択されたものとして示された3つの画像のサムネイルのみがある。いくつかの実施形態では、最初は画像表示領域内に画像を表示しないで、代わりにユーザが1つ以上の画像を選択するのを待つ。しかし、他の実施形態は、コレクションの順序付けられた系列の最初の画像を、またはコレクションのためのキー画像を最初に選択する。さらに他の実施形態では、前回コレクションがデバイス上で開かれたときに選択された1つ以上の画像を示す、各コレクションについての永続的データを記憶し、選択された際にこの永続的データを用いてコレクションを表示する。
【0079】
図11は、いくつかの実施形態に係る4つの段階1110〜1140にわたってコレクション整理GUI600を移動するユーザを示す。第1の段階1110に示すように、アプリケーションはお気に入りアルバム、カメラロールアルバム、フラグ付き写真アルバムだけでなく、他のアルバムを含む少なくとも9つのアルバムに関する情報を記憶する。いくつかの実施形態では、ユーザは、画像をお気に入り又はフラグ付きとしてタグ付けすることができ、これにより対応するアルバムに画像が自動的に置かれる。さらに、いくつかの実施形態は、アプリケーションが動作する装置で撮った任意の画像をカメラロールアルバムに自動的に追加する。
【0080】
いくつかの実施形態では、スワイプジェスチャは、アプリケーションにタブ間を移動させる。
図11はそのようなジェスチャを示す。図示のように、第1の段階1110でユーザは2本の指でタッチスクリーンに触れる。次の段階1120において、ユーザは、タッチスクリーンとの接触を維持したまま2本の指を左方向に移動する。図示のように、棚1105が左へ移動し始めると同時に、GUIの右側から棚の第2のセット1115が近づく。第3の段階1130では、ユーザは少なくともスワイプジェスチャとして見なされるに必要な閾値距離だけ指をスライドした後、タッチスクリーンとの接触点をリリースする。加えて、矢印で示すように新しい棚のセット1115は左に移動し続け、棚1105を置き換えている。
【0081】
第4の段階1140は、棚1115が完全にGUI600に移動したことを示す。さらに、ディスプレイにおいて写真タブ1125が現在ハイライトされている。これらのスワイプジェスチャを使用して、ユーザは簡単に、特にタブを選択する必要なく異なるタブ間を移動することができる。ユーザが写真タブに移動すると、いくつかの実施形態は、他のタブのためのものと同様の棚のセットを表示するが、コレクションの代わりに個々の画像のサムネイルを表示する。これらの棚は、ユーザが(例えば、画像を編集するために、画像を共有するために、など)特定の画像に直接移動できるように、画像閲覧アプリケーションにインポートされた各画像のサムネイルを含む。
【0082】
棚1105は
図11の第1の段階1110で完全に一杯になるが、アプリケーションの特定の例によっては、一度にデバイスに表示することができる最大数を超える数のコレクションを記憶することがあり得る。このように、いくつかの実施形態のアプリケーションは、ユーザが垂直方向に棚をスクロールすることを可能にする。
図12は、GUI600の2つの段階1210および1220にわたって、いくつかの実施形態による、スクロール技術を示す。
【0083】
段階1210で、ユーザは2本の指でタッチスクリーンに触れる。次の段階1220において、ユーザはタッチスクリーンとの接触を維持したまま2本の指を上方向に移動する。これは、GUI600を通して棚を上向きにスライドさせる。その結果、追加の棚がGUI600の一番下に登場し、一番上の棚は消えてしまう。これはスムーズスクロール技術であるため、いくつかの実施形態においては、棚は離散的に移動しない代わりに、ユーザのスワイプジェスチャの距離に応じて、画面の上部と下部から部分的にスクロールしてもよい。
【0084】
いくつかの実施形態の画像閲覧アプリケーションにより、ユーザはデバイス上で記憶容量が利用可能であるかぎり、アルバムを基本的に数に制限なく作成することができる。同様に、ユーザはイベント、写真、ジャーナルを数に制限なく持てる。当業者は、棚のセット間で移動するために他のジェスチャと入力が使用され得ることを認識するであろう。例えば、いくつかの実施形態では、上方向にスワイプすると棚を連続的にスクロールするように、垂直に積み重ねられた棚を数に制限なく含む。さらに、いくつかの実施形態は、スワイプ入力の代替として、またはそれと連動して、画面の左側や右側でのタップまたはクリック入力に応答する。
【0085】
いくつかの実施形態の画像閲覧、編集、および整理アプリケーションは、モバイルデバイス上で動作する。いくつかの実施形態は、タブレットデバイス(例えば、iPad(登録商標))で動作するが、いくつかの実施形態は、携帯電話(例えば、iPhone(登録商標))、またはメディアプレーヤ(例えば、のiPod(登録商標))で動作する。いくつかの実施形態のタブレット実装のGUIは、いくつかの実施形態の携帯電話/メディアプレーヤ実装のGUIと異なるが、タブレット実装の他の実施形態は、携帯電話/メディアプレーヤのGUIを使用することができ、その逆もあり得る。
【0086】
図13は、縦向きモードにおける間の、いくつかの実施形態の携帯電話やメディアプレーヤの実装について、4つの段階1310〜1340にわたって、画像閲覧及び編集GUI1350とコレクション整理GUI1300との間の移動を示す。第1の段階1310は画像閲覧および編集GUI650と同じ機能を多く含む画像閲覧および編集GUI1350を示す。このGUIは、以下でより詳細に説明する。この段階では、ユーザは、コレクション整理GUIに戻って移動するために、戻るボタン1305を選択する。
【0087】
第2の段階1320は、いくつかの実施形態のコレクション整理GUI1300を示す。GUI600と同様に、このGUIは、異なるコレクションを表すアイコンを有する棚(例えば、ガラス棚)のセットを表示する。しかし、GUI600はコレクションのタイプごとにタブのセット含んでいたのに対し、GUI700は、ディスプレイの下部にある選択可能なアイコンのセット1315を含む。これらのアイコンは、(現在選択されている)アルバム、写真、イベント、およびジャーナルの選択を含む。また、表示は設定メニューを含む。
【0088】
この段階1320で、ユーザはイベントアイコン1325を選択する。第3の段階1325は、イベントアイコン1325が現在選択されていることを表し、異なるコレクション(2つのイベント)のアイコンが棚に表示されている。ユーザは、これらのイベントの1つを選択し、第4の段階1340は、結果として、選択したコレクションのための画像閲覧GUI1350を示す。
【0089】
II.画像閲覧
上述の図面は、いくつかの実施形態の画像閲覧GUIの様々な例を示した。
図14は、画像の閲覧、編集、及び整理をするためのいくつかの実施形態のGUI1400の詳細図を示す。GUI1400は、いくつかの実施形態のアプリケーションによって記憶された画像のデータ構造1500を概念的に示している
図15を参照することにより部分的に説明される。
【0090】
データ構造1500は、画像ID1505、画像データ1510、編集指示1515、エクスチェンジャブル・イメージ・ファイル・フォーマット(Exif)データ1525、キャプション1530、共有画像データ1535、画像のキャッシュされたバージョン1540、画像上の任意のタグ1545、および画像のための任意の追加データ1550を含む。画像ID1505は、いくつかの実施形態では、コレクションに格納された画像を参照するために、コレクションデータ構造で使用される画像の一意の識別子である。
【0091】
画像データ1510は、画像を表示するための実際のフルサイズの画素データ(例えば、画像またはそのエンコードされたバージョンの各画素の色空間チャネルの一連の値)である。いくつかの実施形態において、このデータは、画像閲覧、編集、および整理アプリケーションのデータベースに記憶されてもよく、又は同じデバイス上の別のアプリケーションのデータとともに格納することができる。したがって、データ構造は、アプリケーションに関連付けられているローカルファイルへのポインタまたは別のアプリケーションのデータベースを照会するために使用することができるIDへのポインタを格納することができる。いくつかの実施形態では、アプリケーションがジャーナル内の画像を使用したり、画像を編集したりすると、アプリケーションは画像データが含まれている画像ファイルのローカルコピーを自動的に作成する。
【0092】
編集指示1515は、ユーザが画像に適用した任意の編集に関する情報を含む。このように、アプリケーションは、アプリケーションが画像の編集されたバージョンから元の画像に容易にいつでも戻すことができるように非破壊形式で画像を記憶する。例えば、ユーザは、画像に彩度効果を適用してからアプリケーションを終了し、その後、別の時にアプリケーションを再度開いて効果を削除することができる。これらの指示に記憶された編集内容は、トリミングや回転、画像全体の露光および色調整、局所的な調整、特殊効果、ならびに画像の画素に影響を及ぼす他の編集内容でもよい。いくつかの実施形態は、ユーザが編集の何らかのセットのみが適用された画像の異なるバージョンを閲覧することができるように、特定の順序でこれらの編集指示を格納する。
【0093】
Exif情報1525は、その情報が利用可能である場合に、画像を撮像したカメラによって記憶された各種情報を含む。Exifデータは、一般的にデジタルカメラで使用されている1つの特定のファイル形式であるが、当業者は、比較可能な情報が他の形式で利用可能であってもよいし、あるいはユーザによって直接入力されてもよいことを認識するであろう。Exif情報1525は、カメラの設定データ、GPSデータ、およびタイムスタンプを含む。カメラの設定データには、画像を撮像したカメラから情報が取得可能であれば、画像のカメラの設定に関する情報が含まれる。この情報は、例えば、絞り値、焦点距離、シャッター速度、露光補正、およびISOを含み得る。GPSデータ1525は、画像が撮像された場所を示し、タイムスタンプは、画像が撮像された(カメラのクロックによる)時刻示す。
【0094】
キャプション1530は、ユーザが入力した画像の説明である。いくつかの実施形態では、この情報は、画像閲覧領域内の画像と共に表示されるが、作成したジャーナルで画像の上に表示するために使用されてもよく、画像をソーシャルメディアや写真共有ウェブサイトに投稿する場合に使用することもできる。ユーザがこのようなウェブサイトへ画像を投稿するとき、アプリケーションは、画像の共有画像データ1535を生成する。この情報は、位置(例えば、フェイスブック、Flickr等)、ならびにウェブサイトのデータベース内の画像にアクセスするためのオブジェクトIDを格納する。最終アクセス日は、アプリケーションがソーシャルメディアや写真共有サイトから画像上の任意のユーザコメントにアクセスするためにオブジェクトIDを最後に使用した日付と時刻である。
【0095】
キャッシュされた画像のバージョン1540は、一般的に、アプリケーションがフルサイズの画像データ1510からこれらの画像を繰り返し生成する必要がないように、アクセスされ、表示される画像のバージョンを格納する。例えば、アプリケーションは、多くの場合、画像のサムネイルだけでなく、ディスプレイ解像度バージョン(例えば、画像表示領域に合わせたバージョン)を格納する。いくつかの実施形態のアプリケーションは、編集が適用されるごとに新しいサムネイル画像を生成し、以前のサムネイルを置き換える。いくつかの実施形態は、元の画像と画像の1つ以上の編集されたバージョンとを含む複数のディスプレイ解像度バージョンを格納する。
【0096】
タグ1545は、アプリケーションが、画像に関連付けることをユーザに可能にする情報である。例えば、いくつかの実施形態では、ユーザは、画像をお気に入りとしてマークを付け、(例えば、さらなる検討のために)画像にフラグを付けることができ、標準のサムネイルグリッド内に画像表示されず、ユーザが画像を含むコレクションを巡回する場合に画像表示領域に画像が表示されないように画像を非表示にすることができる。他の実施形態は、追加のタグを含むことができる。最後に、画像データ構造1500は、アプリケーションが画像とともに格納する可能性がある追加データ1550(例えば、場所や顔の大きさなど)を含む。
【0097】
当業者は、画像データ構造1500が、アプリケーションが画像に必要な情報を格納するために使用する取りうるデータ構造の1つであることを認識するであろう。例えば、異なる実施形態は、追加のまたはより少ない情報を格納してもよいし、異なる順序で情報を格納してもよい。
【0098】
図14に戻って、GUI1400は、サムネイル表示領域1405、画像表示領域1410、第1のツールバー1415、第2のツールバー1420、および第3のツールバー1425を含む。サムネイル表示領域1405は、選択したコレクション内の画像のサムネイルを表示する。サムネイルは、フルサイズ画像の小さな表現であり、いくつかの実施形態では、画像の一部のみを表す。例えば、サムネイル表示領域1405内のサムネイルは、フルサイズの画像のアスペクト比に関係なく、すべて正方形である。サムネイルに使用する矩形画像の部分を決定するために、アプリケーションは、画像のより小さい寸法を識別し、長手方向における画像の中央部を使用する。例えば、1600×1200画素の画像では、アプリケーションは1200×1200の正方形を使用する。サムネイル用の選択された部分をさらに絞り込むために、いくつかの実施形態において、(顔検出アルゴリズムを使用して)画像内の全ての顔の中心を識別し、その後、切り取り方向にサムネイル部分を中央にするために、この位置を使用する。よって、仮想の1600×1200画像中の顔がすべて画像の左側に位置していた場合に、アプリケーションは、両側から200列を切り落とすのではなく、左端の1200列の画素を使用する。
【0099】
サムネイルに使用する画像の部分を決定した後に、画像閲覧アプリケーションは、(例えば、画素ブレンディングおよびその他の技術を使用して)画像の低解像度バージョンを生成する。いくつかの実施形態のアプリケーションでは、画像のキャッシュされたバージョン1540として画像のサムネイルを格納する。これにより、ユーザがコレクションを選択すると、アプリケーションは、(コレクションデータ構造を介して)コレクション内のすべての画像を識別し、サムネイル表示領域に表示するための各画像データ構造内のキャッシュされたサムネイルにアクセスする。
【0100】
ユーザは、(例えば、以下のセクションIVに記載された各種タッチインタラクションを介して)サムネイル表示領域内の1つ以上の画像を選択することができる。選択サムネイルはハイライトまた他の選択のインジケータで表示される。サムネイル表示領域1405において、サムネイル1430が選択される。さらに、図のように、いくつかの実施形態のサムネイル表示領域1405は、フラグが付けられた(すなわち、yesに設定されたフラグのタグ1545を有する)コレクション内の画像の数を示す。いくつかの実施形態では、このテキストは、フラグが付けられた画像のサムネイルのみを表示するために選択可能である。
【0101】
アプリケーションは、対応するサムネイルよりも高い解像度で画像表示領域1410に選択画像を表示する。画像はしばしば表示装置よりも高い解像度を有すため、画像は典型的には、画像のフルサイズで表示されない。よって、いくつかの実施形態のアプリケーションは、画像表示領域に収まるように設計された画像のキャッシュされたバージョン1540を格納する。画像表示領域1410内の画像はフルサイズ画像のアスペクト比で表示される。1つの画像が選択されると、アプリケーションは、画像の一部を切断することなく、画像表示領域内でできるだけ大きく画像を表示する。複数の画像を選択すると、アプリケーションは、画像のアスペクト比が異なる場合であっても、各画像のほど同数の画素を使用して視覚的重み付けを維持するような方法で画像を表示する。
【0102】
第1のツールバー1415は、タイトル情報(例えば、GUIに示されるコレクションの名前、現在選択されている画像などにユーザが追加したキャプションなど)を表示する。また、ツールバー1415は、GUI項目1435〜1438の第1のセットとGUI項目1440〜1443の第2のセットとを含む。
【0103】
GUI項目の第1のセットは、戻るボタン1435、グリッドボタン1436、ヘルプボタン1437、およびアンドゥボタン1438を含む。戻るボタン1435は、上の
図9のように、ユーザがコレクション整理GUIに戻るように移動することを可能にする。グリッドボタン1436の選択は、GUI内に、または外に(例えば、スライドアニメーションを経由して)サムネイル表示領域をアプリケーションに移動させる。いくつかの実施形態では、ユーザは、スワイプジェスチャを介してサムネイル表示領域をGUI上にまたはその外にスライドすることができる。ヘルプボタン1437は、ユーザのアクティブなツールの現在のセットを識別し、簡潔にユーザにツールを説明し、これらのツールのヘルプインジケータを提供するコンテキスト依存ヘルプ機能を起動する。いくつかの実施形態では、ヘルプインジケータはツールに関する追加情報にアクセスするために選択可能である。アンドゥボタン1438の選択は、画像に対する直近の編集を、その編集がトリミング、色調整などであるにも関わらず、アプリケーションに除去させる。このアンドゥを実行するために、いくつかの実施形態では、画像とともに記憶された編集指示1515のセットから直近の指示を削除する。
【0104】
GUI項目の第2のセットは共有ボタン1440、情報ボタン1441、オリジナル表示ボタン1442、および編集ボタン1443を含む。共有ボタン1440は、ユーザがさまざまな方法で画像を共有することを可能にする。いくつかの実施形態では、ユーザはとりわけ、同じネットワーク上(例えば、WiFi(登録商標)ネットワークやBluetooth(登録商標)ネットワーク)の別の互換性のあるデバイスに選択画像を送信すること、画像ホスティングやソーシャルメディアのウェブサイトに画像をアップロードすること、選択画像のセットからジャーナル(すなわち、追加コンテンツが追加できるような配置された画像の提示)を作成することができる。
【0105】
情報ボタン1441は、1つ以上の選択画像についての追加情報を表示する表示領域を起動する。起動された表示領域に表示される情報は、画像のために格納されているExifデータ1525(例えば、カメラの設定、タイムスタンプなど)の一部または全部を含んでもよい。複数の画像を選択すると、いくつかの実施形態では、選択画像の全てに共通するExifデータのみを表示する。いくつかの実施形態は、(i)この情報が利用可能である場合に、GPSデータに従って画像または複数の画像が撮像された場所を示す地図を表示する、および(ii)任意の写真共有ウェブサイトの、画像に関するコメントストリームを表示するために、情報表示領域内に追加のタブを含む。ウェブサイトからこの情報をダウンロードするために、アプリケーションは、共有された画像データ1535とともに画像について格納されたオブジェクトIDを使用して、ウェブサイトにこの情報を送信する。コメントストリームと、場合によっては追加情報とは、ウェブサイトから受信され、ユーザに表示される。
【0106】
オリジナル表示ボタン1442で、ユーザは画像のオリジナルのバージョンと画像の現在の編集されたバージョンとの間を切り替えることができる。ユーザがボタンを選択すると、アプリケーションは編集指示1515のいずれも適用せずに画像のオリジナルのバージョンを表示する。いくつかの実施形態では、迅速にアクセスできるように、画像のキャッシュされたバージョン1540の1つとして適切なサイズの画像が記憶される。ユーザがまた1442ボタンを選択すると、アプリケーションは編集指示1515が適用された、編集された画像のバージョンを表示する。
【0107】
編集ボタン1443は、ユーザが編集モードを開始または終了することを可能にする。
図14に示すように、ユーザがツールバー1420で編集ツールのセットのいずれかを選択した場合、編集ボタン1443は、ユーザを閲覧および整理モードに戻す。閲覧モードのときに、ユーザが編集ボタン1443を選択すると、アプリケーションはツールバー1420に示す順序で最後に使用した編集ツールのセットに戻る。つまり、ツールバー1420内の項目は、特定の順序で配置され、編集ボタン1443は、選択した画像に対して編集が行われた項目の右端のものを起動する。
【0108】
ツールバー1420は、前述のように、左から右に特定の順序で配置された5つの項目1445〜1449を含む。トリミング項目1445は、ユーザが曲がった画像を治す、および画像の不要な部分を削除することを可能にするトリミングや回転ツールを起動する。露光項目1446は、ユーザが画像のブラックポイント、影、コントラスト、明るさ、ハイライト、およびホワイトポイントを変更できるようにする露光ツールのセットを起動する。いくつかの実施形態では、露光ツールのセットは、画像の階調属性を変更するさまざまな組み合わせで一緒に働くスライダのセットである。色項目1447はユーザが彩度と鮮やかさと、ならびに色固有の彩度(例えば、青色の画素または緑色の画素)やホワイトバランスを変更することを可能にするカラーツールのセットを起動する。いくつかの実施形態では、これらのツールの一部は、スライダのセットとして提示される。ブラシ項目1448は、ユーザが画像への変更をローカライズできるようにするエンハンスツールのセットを起動する。ブラシを使用すると、ユーザは、赤目や汚れを取り除くことができ、画像の上をこする動作を行うことによって、画像の局所的な部分に彩度やその他の機能を適用や削除できる。最後に、効果項目1449は、ユーザが画像に適用できる特殊効果のセットを起動する。これらの効果は、グラデーション、チルトシフト、非写実的な不彩度化の効果、グレースケール効果、各種フィルタなどを含む。いくつかの実施形態では、アプリケーションはツールバー1425から扇形に広がる項目のセットとして、これらの効果を提示する。
【0109】
上述のように、UI項目1445〜1449は、特定の順序で配置されている。この順序は、5つの異なるタイプの編集をユーザが最も一般的に適用する順序に従う。したがって、編集指示1515は、いくつかの実施形態において、この同じ順序で格納される。ユーザが項目1445〜1449のいずれかを選択すると、いくつかの実施形態は、選択したツールの左側にあるツールからの編集のみを、表示された画像に適用する(他の編集は指示セット1515内に格納されたままである)。
【0110】
ツールバー1425は、GUI項目1450〜1454のセットと、設定項目1455を含む。自動補正項目1450は自動的に画像に補正編集(例えば、見かけの赤目の除去、色のバランスなど)を行う。回転ボタン1451は、任意の選択した画像を回転させる。いくつかの実施形態では、回転ボタンが押されるたびに、画像が特定の方向に90度回転する。自動補正は、いくつかの実施形態では、指示セット1515内におかれた編集指示の所定のセットを含む。いくつかの実施形態は、画像の解析を実行し、解析に基づいて指示のセットを定義する。例えば、自動補正ツールは画像内の赤目を検出しようとするが、赤目が検出されない場合は、それを修正するための指示は生成されない。同様に、自動色バランスは、画像の解析に基づく。回転ボタンによって生成された回転はまた、編集指示として記憶される。
【0111】
フラグボタン1452は任意の選択した画像をフラグ付きとしてタグを付ける。いくつかの実施形態では、コレクションのフラグが付けられた画像はフラグの付いていない画像を除いて表示することができる。お気に入りボタン1453では、ユーザは、任意の選択した画像をお気に入りとしてマークすることができる。一部の実施形態では、画像をお気に入りとしてタグ付けするとともに、お気に入りの画像のコレクションに画像を追加する。非表示ボタン1454では、ユーザは、画像を非表示としてタグを付けることができる。いくつかの実施形態では、非表示の画像はサムネイル表示領域に表示されず、及び/又はユーザが画像表示領域内でコレクションの画像を巡回するときに表示されない。
図15に示すように、これらの機能の多くは、画像データ構造内にタグとして記憶されている。
【0112】
最後に、設定ボタン1455は、現在起動されているツールセットに応じて、異なるメニューオプションを提供するコンテキスト依存メニューを起動する。例えば、閲覧モードでは、いくつかの実施形態のメニューは新しいアルバムを作成するオプション、アルバムのキー画像を設定するオプション、1つの画像から別の画像へ設定をコピーするオプション、及びその他のオプションを提供する。編集ツールの異なるセットが起動されていると、メニューには、特定の起動されているツールセットに関連するオプションが提供される。
【0113】
当業者は、画像閲覧および編集GUI1400は、画像閲覧、編集、および整理アプリケーションの多くの可能なグラフィカルユーザインタフェースの一例に過ぎないことを認識するであろう。例えば、様々な項目は異なる領域に、または異なる順序で配置することができ、いくつかの実施形態では、追加のまたは異なる機能を有する項目が含まれる場合もあり得る。いくつかの実施形態のサムネイル表示領域は、サムネイルに対応するフルサイズの画像のアスペクト比と一致するサムネイルを表示することなどもあり得る。
【0114】
III.異なるGUIモードにおけるインタラクション
上記の
図14は、画像閲覧、編集、および整理アプリケーションの特定のグラフィカルユーザインタフェース1400を示す。いくつかの実施形態において、アプリケーションは、複数のGUIのモードを提供し、GUI1400はそのうちのただ1つである。これらのモードは、縦向きと横向き、または左利きと右利きのユーザ、またはその他の要因を区別することができ得る。いくつかの実施形態では、3つの異なるモード、すなわち縦向き、左利き用の横向き、および右利き用の横向きである。これらのモードは、ユーザに同じGUI項目および表示領域を提示するが、それらは異なるように配置されている。
【0115】
A.左利き用GUIおよび右利き用GUI
いくつかの実施形態は、ユーザが切り替えることができる、左利き用GUIと右利き用GUIとの両方を提供する。異なるオプションは、縦向きモードと横向きモードとの両方、また横向きモードのみで提示することができる。いくつかの実施形態では、左利き用GUIと右利き用GUIとを切り替えるために、ユーザは、GUI内の特定のGUI項目(例えば、サムネイル表示領域)を移動させる。第1の位置から第2の位置に特定のGUI項目を移動した結果として、アプリケーションは、右利き用GUIの提供から左利き用GUIの提供に切り替える、またはその逆もあり得る。2つのGUIの違いは、いくつかの実施形態では、特定のGUI項目の位置だけでなく、GUI項目の追加のセットの位置と順序(例えば、左から右の順)である。
【0116】
図16は、ユーザが右利き用モードから左利き用モードに切り替えるためにGUIの左側から右側にサムネイル表示領域1605を移動する4つの段階1610〜1640にわたるGUI1600を示す。GUI1600は、サムネイル表示領域1605、画像表示領域1615、GUI項目の第1のセット1625(グリッドオン/オフ、ヘルプ、アンドゥボタン)、戻るボタン1635、GUI項目の第2のセット1645(共有、情報、およびトグルオリジナルボタン)、編集ボタン1650、GUI項目の第3のセット1655(編集ツールの起動ボタン)、および設定メニューボタン1660を含む。
【0117】
第1の段階1610は右利き用モードのGUI1600を示す。右利き用モードでは、サムネイル表示領域1605は、GUIの左側に位置している。戻るボタン1635とGUI項目の第1のセット1625とは上部ツールバーの左側に位置し、編集ボタン1650とGUI項目の第2のセット1655とは、上部ツールバーの右側に位置し、GUI項目の第3のセット1655は、左下(サムネイル表示領域の下)に位置し、設定メニューボタンは右下に位置する。この段階はさらに、ユーザが表示領域にタッチジェスチャを実行するために、サムネイル表示領域の上に指を置いていることを示している。いくつかの実施形態では、サムネイル表示領域は、表示領域を移動させるために選択することができるヘッダ領域を含む。
【0118】
第2の段階1620は、ユーザが指1本でドラッグ(またはスワイプ)ジェスチャを実行している最中であることを示している。このようなジェスチャを実行するために、ユーザはサムネイル表示領域上に指を押し付け、接触を離すことなく、右方向にタッチスクリーンに沿って指をスライドする。ユーザがタッチスクリーン上で指を移動すると、アプリケーションは、指とともにサムネイル表示領域1605を移動させる。
【0119】
第3の段階1630は、ユーザがタッチスクリーンに沿ってさらに右へタッチスクリーンを移動したことを示している。また、この図は、ユーザが画面との接触を離すと、サムネイル表示領域1605はGUI1600の右端にスナップすることを示している。いくつかの実施形態では、ユーザがGUIの左側で表示領域との接触を離すと、サムネイル表示領域は、自動的に左側に戻るようにスナップし、右側に関しても同様である。
【0120】
第4の段階1640は、ユーザがサムネイル表示領域を解放した後の左利き用モードのGUI1600を示している。左利き用モードでは、GUIツールのほとんどはどちら側にあるかを切り替えている。ここでは、設定メニューボタン1660は左下に位置し、GUI項目の第3のセット1655は右下に位置している。GUI項目の第3のセット1655は、トリミング起動ボタンから効果起動ボタンの左から右への順を維持する。これらの項目は、ユーザが画像に編集をする典型的な順序(最初に画像をトリミングや回転させ、次に露光や色の調製をし、その後修正用ブラシを使用して、最終的に画像に特殊効果を適用する)で配置されている。このように、これらのツールは、両方のGUIモードで同じ順序で配置されている。
【0121】
しかし、上部ツールバーのツールのセットは、場所を交換し、順序を逆にする。戻るボタン1635と編集ボタン1650とは、(ツールバー全体が、サムネイル表示領域1605に合わせて左にスライドすることを除いて)それぞれ左端と右端のボタンとして固定されている。しかし、GUI項目の第1のセット1625およびGUI項目の第2のセット1645は、場所を交換し、順序を逆にする。GUI項目の第1のセット1625は、現在、反対の左から右への順序であるが、編集ボタン1650の隣に位置する。同様に、GUI項目の第2のセット1645は、今は反対の左から右の順で、戻るボタン1635の隣に位置する。特定の順序で配置されていないこれらの項目は、よってサムネイル表示領域1605への相対的な位置を維持する。
【0122】
いくつかの実施形態において、GUIはまた、自動補正ボタン、回転ボタン、フラグボタン、お気に入りボタン、および非表示ボタンを、
図14に示すように含む。いくつかのこのような実施形態では、左利き用モードの場合、これらのGUIの項目はGUIの下部中央に残り、同じ順序を維持する。しかしながら、他の実施形態では、左利き用モードの場合、自動補正ボタンは項目のセットの右側にあり、非表示ボタンは左側にある。
【0123】
この図は左利き用GUIへ切り替えるために、ユーザが左手でドラッグジェスチャを行うことを示しているが、いくつかの実施形態では、いずれかの手の指で(または2本指のドラッグ、スワイプ等の別のジェスチャで)いずれかの方向にサムネイル表示領域をユーザがドラッグすることを可能にする。この意味で、GUIは、ユーザが実際に使用する手ではなく、サムネイル表示領域の位置に対応する。一方、いくつかの実施形態のアプリケーションは、ユーザが使用している手を(例えば、タッチスクリーン上の異なる接触点の相対位置に基づいて)認識し、それに応じて表示を切り替えることができる。他の実施形態は、何らかのジェスチャ(例えば、画面の中央に5つの指すべての同時タッチ)に関して手を区別し、あるモードから別のモードに切り替えるためのコマンドとして、これらのジェスチャを使用することができる。
【0124】
左利き用GUIモードと右利き用GUIモードとを有することに加えて、いくつかの実施形態は、縦向きモードと横向きモードとで画像閲覧および編集GUIを異なるように表示する。いくつかの実施形態では、左利き用横向きモードまたは右利き用横向きモードと比較して、縦向きモードでのサムネイル表示領域は、ディスプレイの異なる領域に位置している。例えば、いくつかの実施形態では、アプリケーションは、縦向きGUIの下部にサムネイル表示領域を表示する。
【0125】
いくつかの実施形態は、アプリケーションのために直近に使用された横向きモードに基づいて、縦向きモードでの様々なGUIの項目の位置を決定する。例えば、いくつかの実施形態は、デバイスが直立であるかまたは横配向であるかを識別し、この情報をオペレーティングシステムを介してアプリケーションに提供する内蔵の加速度計またはジャイロスコープを有するデバイス上で動作する。ユーザが縦向きモードにデバイスを再配向すると、いくつかの実施形態では、GUIが再配向する前に設定されていた横向きモードに基づいて画像閲覧アプリケーションのGUI要素を配向する。
【0126】
図17〜
図19は、縦向きモードと横向きモードとの両方でいくつかの実施形態による左利き用GUIモードと右利き用GUIモードとを示す。
図14および上記他の図に示したいくつかの実施形態のGUI実装を示すのではなく、これらの図面は、いくつかの実施形態の携帯電話およびメディアプレーヤの実装に使用される画像閲覧および編集GUI1700を示す。
【0127】
図17は、画像閲覧アプリケーションが動作するデバイスが縦向きモードから横向きモードへ回転される際のGUI1700を3つの段階1710〜1730にわたって示している。
図17に示すように、GUI1700は、サムネイル表示領域1705、画像表示領域1715、(GUIの下部に位置する)第1のツールバー1725、および(GUIの上部に位置する)第2のツールバー1727を含む。
【0128】
第1のツールバー1725は、自動補正ボタン1730、回転ボタン1735、フラグボタン1740、お気に入りボタン1745、非表示ボタン1750、設定ボタン1755、およびツールボックスボタン1760を含む。
図14を参照して上述したように、様々なGUI項目1730〜1755は、同様に動作する。いくつかの実施形態のツールボックス1760は、ユーザが編集ツールの様々な異なるセットにアクセスできるようにする。いくつかの実施形態では、ユーザがツールボックス1760を選択した場合、項目1730〜1750が消え、項目1445〜1449(トリミング項目、露光項目、色項目、ブラシ項目、および効果項目)と同様のGUI項目に置き換えられる。
【0129】
第2のツールバー1727は戻るボタン1765、グリッドボタン1770、オリジナル表示ボタン1780、共有ボタン1785、および編集ボタン1790を含む。
図14を参照して上述したように、これらのGUI項目も同様に動作する。いくつかの実施形態では、ヘルプ機能とアンドゥ機能は、別々の項目ではなく設定項目1755を介してアクセスできる。
【0130】
図17の第1の段階1710は、アプリケーションが動作するデバイスが直立位置に保持される縦向きモードのGUI1700を示す。第2の段階1720において、ユーザはデバイスを横向きにし始めている。デバイスが完全に90度回転される第3の段階1730に至るまでは、アプリケーションは横向きモードのGUIの表示から縦向きモードのGUIの表示に切り替えない。いくつかの実施形態では、デバイスは、デバイスが縦向きモードであるべきかまたは横向きモードであるべきかをデバイスのオペレーティングシステムが決定する加速度計又はジャイロスコープを含む。この判定結果は、アプリケーションに渡され、アプリケーションは適切なGUIを出力する。
【0131】
第3の段階1730は、いくつかの実施形態の横向きモードGUI1700を示す。項目はもっと広がっているが、GUIは、上部と下部のツールバーでUI項目の同じセットを含む。また、サムネイル表示領域1705は、ディスプレイの底部ではなく左にある。この場合では、縦向きモードGUIは右利き用モードで(すなわち、段階1710および1720で)あったため、アプリケーションが横向きに切り替わるときに、GUI1700のための右利き用横向きモードを使用する。
【0132】
図18は、ユーザが右利き用モードから左利き用モードに切り替えるためにGUIの左側からGUIの右側にサムネイル表示領域1705を移動する4つの段階1810〜1840にわたってGUI1700を示している。第1の段階1810〜第3の段階1830でサムネイル表示領域1705をドラッグするために使用されるタッチジェスチャは、上記
図16で示したものと同様のジェスチャである。第4の段階1840は、GUIの右側にサムネイル表示領域1705がある左利き用モードのGUI1700を示す。この実装では、アプリケーションはツールバー1725におけるGUI項目1730〜1760の順序を逆にし、ツールボックスアイコン1760は右にあり、設定アイコン1755は左にあり、自動補正項目、回転項目、フラグ項目、お気に入り項目、および非表示項目も逆になっている。
【0133】
図19は、アプリケーションが動作するデバイスを縦向きモードに戻すようにユーザが回転するときのGUI1700を3つの段階1910〜1930にわたって示す。しかし、この場合、アプリケーションは、縦向きモードでありつつ、左利き用モードで動作している。その結果、段階1930では、ツールバー1725におけるGUIの項目は、
図17に示した右利き用縦向きモードに比べて逆になっている。
【0134】
B.サムネイル表示領域とのインタラクション
左利き用モードまたは右利き用モードのいずれかで、画像閲覧アプリケーションは、(以下でサムネイルグリッドとも参照される)サムネイル表示領域との様々なインタラクションを可能にする。ユーザは、サムネイル表示領域のサイズを変更すること、サムネイルの列数を変更すること、およびサムネイルをスクロールすることができる。
図20にいくつかの実施形態の画像閲覧GUIのサムネイル表示領域の状態および状態の変化を示す状態
図2000を概念的に示す。当業者は、この状態図はサムネイル表示領域とのすべての可能なインタラクションを含んでいるわけではないことを認識するであろう。例えば、状態図は、サムネイルのスクロールやサムネイルの選択を含んでいない。なお、状態図は、左利き用GUIモードおよび右利き用GUIモードの異なる状態を示しているが、片方のモードで示されている状態に対応するもう片方のモードの状態は、簡略化のために省略されている。状態
図2000を、左利き用モードと右利き用モードの両方のGUI1600との様々なインタラクションを示す
図21〜28を参照して説明する。
【0135】
ユーザがGUIとインタラクションしていない場合は、GUIは状態2005(GUIの左側にサムネイルグリッドがある右利き用モード)または状態2050(GUIの右側にサムネイルグリッドがある左利き用モード)のどちらかである。上に
図16に示すように、ユーザは、GUIの左側からGUIの右側にサムネイルグリッドをドラッグすることにより、状態2005から状態2050への移行させることができる。逆に、ユーザがGUIの右側からGUIの左側にサムネイルグリッドをドラッグしたときに、GUIは状態2050から状態2005に移行する。
【0136】
いくつかの実施形態では、ユーザは、サムネイルグリッドと画像表示領域との境界(または継ぎ目)をドラッグすることにより、サムネイルグリッドの列の幅および/または数を増減することができる。状態
図2000は、GUIが右利き用モード(状態2005)にあるときのこのような入力イベントを表す状態を示しているが、当業者であれば、反対方向の動作は、左利き用モード(状態2050)における、それ以外は相当する状態に適用されることを認識するであろう。いくつかの実施形態では、サムネイルグリッドは、アプリケーションが初期化されたときに2列のデフォルトの幅を有する。
【0137】
状態2005にある間に、ユーザがサムネイルグリッドと画像表示領域との間の境界を選択し、右に移動したときに、GUIは次第に広くなるサムネイルグリッドを表示するために、状態2010に移行する。いくつかの実施形態では、ユーザはタッチスクリーンで境界上に(すなわち、接触領域がサムネイルグリッドの一部と画像表示領域の一部との両方を含むように)指1本を置くことによって境界を選択する。ユーザが右に指を動かし続ける限り、サムネイルグリッドは広くなり続ける。ユーザが(例えば、タッチスクリーンから指を外すことによって)境界線を解放した場合、状態2005にGUIは戻る。
【0138】
ユーザが境界線を閾値を超える距離動かすと、アプリケーションはサムネイルの列を追加するために状態2015に移行する。これは、サムネイルグリッドのサムネイルの再配置を引き起こす。いくつかの実施形態のアプリケーションでは、(グリッドが2つの列を有する場合)最初の2つを一番上の行に、次の2つを2番目の行に、などのようにサムネイルを順序づける。列の数が3に増えるとき、2行目の最初のサムネイルは一番上の行に移動し、3行目のサムネイルの両方は2行目に移動し、あとは同様である。
【0139】
図21は、GUI1600の4つの段階2110〜2140にわたってサムネイル表示領域のサイズを大きくするユーザを示している。図示のように、第1の段階2110において、ユーザはサムネイル表示領域1605と画像表示領域1615と間の境界上に指を置く。いくつかの実施形態において、アプリケーションは、実際に境界線または継ぎ目を引くのではなく、その代わりに境界は単にサムネイル表示領域と画像表示領域との間の色の変化の結果として見える。しかし、明瞭にするために、これらの図はそのような境界を示す。
【0140】
第2の段階2120及び第3の段階2130において、ユーザは、右方向に境界をドラッグする。第4の段階2140において、境界はサムネイルを3列に再配置するために十分に移動されている。図示のように、雲のサムネイル2105は一番上の行まで移動し、他のサムネイルも同様に再配置される。この図は(状態
図2000のように)、3列目が作成される前にサムネイル表示領域1605が拡大すること(およびそれに応じて画像表示領域が縮小すること)を示している。しかしながら、いくつかの実施形態では、離散的な量で境界が移動する。即ち、ユーザの指が画面上で閾値距離を移動すると、アプリケーションはサムネイル表示領域の幅を2列の幅から3列の幅に自動的に変更する。すなわち、ユーザが境界から指を遠ざけて移動するにつれて、閾値移動が達成されるまでGUIは静止のままであり、達成された時点で、境界が右に一定の量移動するにつれてサムネイル表示領域は別の列を追加するために動的に再配置し、これによって画像表示領域の大きさを低減する。
【0141】
状態
図2000に戻り、サムネイルの列を追加した後に、タッチ移動が継続し、サムネイルグリッドが最大サイズに達していない場合にGUIは状態2010に戻り、列の最大数が達成された場合にGUIは状態2020に移行する。列の最大数に達した場合、アプリケーションは、(状態2020で)グリッド領域の拡大を可能にすることを停止する。いくつかの実施形態ではアプリケーションはサムネイル表示領域に1つ、2つまたは3つのサムネイルの列のみを可能にする;他の実施形態(例えば、より小さなデバイス上)において、1つまたは2つの列のみを可能にする。これらの3つの状態のいずれにおいても、ユーザが境界を離すと(すなわち、タッチ入力を除去することによって)、アプリケーションは状態2005に戻る。
【0142】
ユーザがサムネイル表示領域と、画像表示領域との境界を画面の端に向かってドラッグするとき、同様の状態変化が発生する。やはり、これらの状態変化は、GUIが右利き用モードにある場合について
図20に示されているが、左利き用モードのGUIにも(反対方向への移動で)等しく適用可能である。
【0143】
状態2005にある間、ユーザがサムネイルグリッドと画像表示領域との間の境界を選択して、左に移動すると、GUIは徐々に狭くなるサムネイルグリッドを表示するために状態2010へ移行する。いくつかの実施形態では、ユーザはタッチスクリーンで境界上に(すなわち、接触領域がサムネイルグリッドの一部と画像表示領域の一部との両方を含むように)指1本を置くことによって境界を選択する。ユーザが左に指を移動し続けている限り、サムネイルグリッドは狭くなり続ける。ユーザが(例えば、タッチスクリーンから指を除去することによって)境界を解放した場合、GUIは状態2005に戻る。
【0144】
ユーザが境界を閾値距離移動させると、アプリケーションはサムネイルの列を削除するために、状態2030に移行する。これは、サムネイルグリッドのサムネイルの再配置を引き起こす。いくつかの実施形態のアプリケーションは、(グリッドが2つの列を有する場合)最初の2つを一番上の行に、次の2つを2行目に、などのようにサムネイルを順序付ける。列の数が1に低減された場合、一番上の行の二番目のサムネイルは2行目に移動し、2行目の最初のサムネイルは3行目に移動し、以下同様である。
【0145】
図22は、GUI1600の4つの段階2210〜2240にわたってサムネイル表示領域のサイズを小さくするユーザを示している。図示のように、第1の段階2210において、ユーザがサムネイル表示領域1605および画像表示領域1615との間の境界上に指を置く。いくつかの実施形態において、アプリケーションは、実際には境界線又は継ぎ目を引くのではなく、代わりに境界は単にサムネイル表示領域と、画像表示領域との間の色の変化の結果として見られる。しかし、これらの図は、明瞭化のため、そのような境界を示す。
【0146】
第2の段階2220において、ユーザは左に境界をドラッグし始めている。この図では、境界が二番目の列に入り始めたら、アプリケーションは単一の列にサムネイルを再配置する。図示のように、カヤックのサムネイル2205は2行目まで移動し、他のサムネイルも再配置される。第3の段階2230において、ユーザは左側に境界をドラッグし続ける。最後に、第4の段階2240で、サムネイル表示領域1605は、その最小幅に達し、収縮し続けることができない。この図(および状態
図2000)は継続的にサムネイル表示領域1605が収縮(及び画像表示領域も応じて減少)することを示している。しかしながら、上述したサムネイル表示領域の増加と同様に、いくつかの実施形態では、離散的な量のみで境界を移動する。すなわち、ユーザの指が画面上で閾値距離を移動すると、アプリケーションがサムネイル表示領域の幅を2列の幅から1列の幅に自動的に変更する。
【0147】
状態
図2000に戻り、サムネイルの列を除去した後に、タッチ移動が続き、サムネイルグリッドが最大サイズに達しない場合に、GUIは状態2025に戻るように移行し、列の最大数に達した場合に、GUIは状態2035に移行する。列の最大数に達した場合、アプリケーションは、(状態2020で)グリッド領域の拡大を可能にすることを停止する。いくつかの実施形態において、アプリケーションは、サムネイル表示領域に1つ、2つまたは3つのサムネイルの列のみを持たせることを可能にし、他の(例えば、より小さなデバイス上の)実施形態は1つまたは2つの列のみを可能にする。これらの3つの状態のいずれかにおいても、ユーザが境界を離すと(すなわち、タッチ入力を除去することによって)アプリケーションは状態2005に戻るように移行する。加えて、ユーザが、境界上のタッチ入力の移動方向を逆にする場合、拡大状態2010から、GUIは、状態2025に移行することができる。(又はその逆もできる。)
【0148】
サムネイル表示領域の列のサイズと数を変更することに加えて、いくつかの実施形態では、ユーザがGUIの外へ、及びGUI上へ戻すようにサムネイル表示領域をスライドできるようにする。これは、いくつかの実施形態では、スワイプジェスチャまたはGUI項目の選択、ならびに他のGUIインタラクション(例えば、ホットキーまたはホットキーのセット、メニューオプションの選択等)を介して、達成することができる。状態
図2000は、(サムネイル表示領域が右側にある)左利き用GUIのコンテキストにおいて、これらのインタラクションを概念的に示しているが、これらのインタラクションは、(方向を逆にして)右利き用GUIにも等しく適用可能である。
【0149】
示されているように、GUIが状態2050(サムネイルグリッドが表示された左利き用モード)にあり、ユーザがグリッド上で右方向のスワイプジェスチャを実行するか、またはグリッドボタンUI項目を選択したときに、グリッドをディスプレイの右側から外へスライドさせるために、GUIは状態2055に移行する。グリッドがディスプレイの外にスライドすると、GUIは、サムネイルグリッドなしで左利き用モードのGUIを表示するために、状態2060に移行する。
【0150】
図23は、右利き用GUIモードにある間に4つの段階2310〜2340にわたってGUI1600からサムネイル表示領域1605を除去する、そのようなスワイプジェスチャを示している。図示のように、第1の段階2310において、ユーザは、(異なる数の接触点を用いる他のスワイプジェスチャまたは全体的に異なる他のジェスチャを用いてもよいが)1つの指でサムネイル表示領域1605上でタッチスクリーンに接触することを始める。第2の段階2320は、ユーザが左に指を移動し、サムネイル表示領域をその方向にスライドさせることを示す。第3の段階2330において、サムネイル表示領域1605が左にGUIの外にスライドし続けながらユーザがスワイプジェスチャを解除することを示す。第4の段階2340は、サムネイル表示領域がもはやGUIに示されず、画像表示領域1615が拡大していることを示している。様々なユーザインタフェースツールの位置に基づいて、ユーザは容易にGUIがまだ右利き用モード中であることを見いだせる。
【0151】
いくつかの実施形態において、アプリケーションは、スワイプジェスチャとして見なされるために、ユーザの指は、特定の閾値距離をタッチスクリーンに接触したままにするか、および/または閾値速度で移動する必要がある。しかし、いくつかの実施形態では、入力がスワイプジェスチャとして適格か否かのこの判定は、アプリケーション自体ではなく、画像閲覧アプリケーションが動作するデバイスのオペレーティングシステムによって行われる。スワイプジェスチャと位置とは、オペレーティングシステムからアプリケーションに渡され、アプリケーションはその後、GUIの外へサムネイルグリッドをスライドさせる指示にそのスワイプジェスチャを翻訳する。
【0152】
図24は、4つの段階2410〜2440にわたって左利き用モードのGUI1600からサムネイル表示領域1605を除去するための、同じようなスワイプジェスチャを示している。これらの段階は、
図23の段階に対応する。図示のように、第1の段階2410において、ユーザは、(異なる数の接触点を用いる他のスワイプジェスチャまたは全体的に異なる他のジェスチャを用いてもよいが)1つの指でサムネイル表示領域1605上でタッチスクリーンとの接触を始める。第2の段階2420は、ユーザが右方向に指を動かし、サムネイル表示領域をその方向にスライドさせ始めることを示す。第3の段階2430では、サムネイル表示領域1605が右にGUIの外にスライドし続けながら、ユーザがスワイプジェスチャを解除する。第4の段階2440は、サムネイル表示領域がもはやGUIに示されず、画像表示領域1615が拡大していることを示している。様々なユーザインタフェースツールの位置に基づいて、ユーザはGUIがなおも左利き用モード中であることを容易に見いだすことができる。
【0153】
図20に示すように、いくつかの実施形態ではまた、ユーザがサムネイル表示領域を、GUIの中または外にスライドさせるグリッドボタンを選択すると、状態2050から状態2055へ移行し、その後状態2060へ移行する。
図25は、4つの段階2510〜2540にわたってGUI1600でこのようなGUI項目2505の選択を示している。図示のように、第1の段階2510において、ユーザは、グリッドボタン2505をタップする。スワイプジェスチャと同じように、いくつかの実施形態では、デバイスのオペレーティングシステムは、画面の接触情報をタップジェスチャおよび位置に変換し、画像閲覧アプリケーションにこの情報を渡す。第2の段階2520と第3の段階2530は、GUIの外へサムネイル表示領域1605がスライドすることを示す。段階2540に示す、得られたGUIは、拡大画像表示領域1615を有する
図23の最後に得られたGUIと同じである。
【0154】
GUIが状態2060(サムネイルグリッドなしの左利き用モード)にあり、ユーザがGUIの右端から左方向にスワイプジェスチャを実行するか、グリッドボタンUI項目を選択すると、GUIは右側からグリッドをディスプレイ上に戻すために状態2065に移行する。グリッドがディスプレイにスライドして戻ったら、サムネイルグリッドが存在する左利き用モードにおいてGUIを表示するために、GUIは状態2050へ戻るように移行する。
【0155】
図26は、4つの段階に2610〜2640にわたって右利き用GUIモードでGUI1600にサムネイル表示領域1605を返すようなスワイプジェスチャを示している。図示のように、第1の段階2610において、ユーザは、(異なる数の接触点を用いる他のスワイプジェスチャまたは全体的に異なる他のジェスチャを用いてもよいが)1つの指でGUIの左端付近のタッチスクリーンに接触し始める。異なる実施形態では、サムネイル表示領域をGUIにスライドして戻すために、タッチ接触が端に近いとみなされるためにどの程度の近さが必要であるかを決定するために、異なる閾値を使用する。第2の段階2620は、ユーザが右に指を動かし、GUI上に戻すようにサムネイル表示領域1605をその方向にスライドさせ始めることを示す。第3の段階2630において、サムネイル表示領域1605が右にGUI上にスライドし続けながら、ユーザがスワイプジェスチャを解除する。第4の段階2640は、サムネイル表示領域1605が、右利き用モードでは、完全にGUI中に存在することを示している。
【0156】
図27は、4つの段階2710〜2740にわたって左利き用GUIモードでGUI1600にサムネイル表示領域1605を戻すための同じようなスワイプジェスチャを示している。図示のように、第1の段階2710において、ユーザは、(異なる数の接触点を用いる他のスワイプジェスチャまたは全体的に異なる他のジェスチャを用いてもよいが)1つの指でGUIの右端付近のタッチスクリーンに接触し始める。異なる実施形態では、サムネイル表示領域をGUIにスライドして戻すために、タッチ接触が端に近いとみなされるためにどの程度の近さが必要であるかを決定するために、異なる閾値を使用する。第2の段階2720は、ユーザが左に指を動かし、サムネイル表示領域1605がGUI上に戻るようにその方向にスライドさせ始めることを示す。第3の段階2730において、サムネイル表示領域1605が左にGUI上をスライドし続けながら、ユーザがスワイプジェスチャを解除する。第4の段階2340は、サムネイル表示領域1605が、左利き用モードで、完全にGUI中に存在することを示している。
【0157】
図20に示すように、いくつかの実施形態ではまた、サムネイル表示領域をGUIの中または外にスライドさせるグリッドボタンをユーザが選択すると、状態2060から状態2065へ移行し、その後状態2050へ移行する。
図28は、4つの段階2810〜2840にわたってGUIが右利き用モードにある間のGUI1600でのこのようなGUI項目2505の選択を示している。図示のように、第1の段階2810において、ユーザは、グリッドボタン2505をタップする。スワイプジェスチャと同じように、いくつかの実施形態では、デバイスのオペレーティングシステムは、画面の接触情報をタップジェスチャおよび位置に変換し、画像閲覧アプリケーションにこの情報を渡す。第2の段階2820と第3の段階2830は、サムネイル表示領域1605がGUI上に戻るようにスライドすることを示す。段階2840に示した得られたGUIは、サムネイル表示領域1605がディスプレイの左側に現れる
図26の最後に得られたGUIと同じである。
【0158】
上記の説明および図は、左利き用モードと右利き用モードのGUIとのインタラクションの様々な側面をハイライトした。さらに、横向きモード(右利き用や左利き用を問わず)と縦向きモードとの間に特定の違いが存在する。その違いの1つは、サムネイル表示領域の位置やスクロールを含む。
【0159】
図29は、GUI1600の4つの段階2910〜2940にわたってサムネイル表示領域1605をスクロールするユーザを示す。第1の段階2910において、ユーザは、サムネイル表示領域1605上に指1本でタッチスクリーンに接触し始めている。第2の段階2920に示すように、タッチスクリーンとの接触を維持しつつ、ユーザが指を上方向に移動する。これにより、サムネイル表示領域内のサムネイルは上方向にスライドし、最上部のサムネイルは画面から消え、追加のサムネイルが下部に現れる。段階2930で、ユーザは、サムネイルのスクロールを続けるために、この動作を継続する。第4の段階2940で、ユーザは、ドラッグ操作を解放し、サムネイルのスクロールは停止する。いくつかの実施形態では、ドラッグ/スウィープジェスチャの速度に応じて、ユーザがジェスチャを解放した後に、サムネイルのスクロールが継続してもよい(すなわち、慣性スクロール)。すべてのコレクションは有限個の画像を含むので、最終的にはサムネイルが最後に到達し、スクロールが停止する。さらに、この図は(上向きタッチジェスチャを介して)下へのスクロールのみを示すが、ユーザは、サムネイル表示を下にドラッグして上へスクロールすることもできる。
【0160】
上の図は、左利き用と右利き用の両方における横向きモードでのGUIを示している。一方、
図30〜32は、いくつかの実施形態の縦向きモードにあるGUI3000を示している。
図30に示すようにGUI3000は、サムネイル表示領域3005、画像表示領域3015、GUI項目の第1のセット3025、GUI項目の第2のセット3035、GUI項目の第3のセット3045、戻るボタン3050、編集ボタン3055、および設定メニュー起動項目3060を含む。これらは、
図16のGUI1600を参照して上記の項目と同じである。
【0161】
これらの図に示すように、アプリケーションは、横向きGUI1600の右利き用モードと同じ位置に(即ち、左下に編集起動GUI項目3025、左上に戻るボタン3050および左上にGUI項目の第2のセット3035など)GUI項目3025、3035、及び3045〜3060を表示する。縦向きモードでは、一部のアプリケーションは、サムネイル表示領域3005がいずれにせよGUIの下部に位置しているため、左利き用モードから右利き用モードに切り替えるためのメカニズムを提供しない。前述のように、他の実施形態は、一度に(相対位置が右手に比べて左手は異なる)5本の指のタップなどのような、ユーザの利き手を示すアクションに応答することができる。上述したように、いくつかの実施形態は、アプリケーションについて最近使用された横向きモードに基づいて、縦向きモードにおける種々のGUI項目の位置を決定する。
【0162】
図30は、4つの段階3010〜3040にわたって、ユーザがサムネイル表示領域内のコレクションのサムネイルをスクロールする際のGUI3000を示している。示されたように、縦向きモードでは、アプリケーションはGUIの下部にサムネイル表示領域3005を配置するが、他の実施形態では、サムネイル表示はGUIの上部にあり得る。サムネイル表示領域3005はGUIの幅に広がり、サムネイルの固定された列の数(この場合は5)を有する。この図では、サムネイル表示領域は、サムネイル2つ分の高さを有する。
【0163】
第1の段階3010で、ユーザは1本の指でサムネイル表示領域に接触する。第2の段階3020に示されるように、ユーザは、サムネイル表示領域上で指を上にスライドさせ始める。これは、サムネイル表示領域3005を通してサムネイルを上方向にスライドさせ、新しいサムネイルが表示領域の下部に現れ始める。第3の段階3030は、ユーザが指を上にスライドし続け、サムネイルも移動することを示す。第4の段階3035において、ユーザがタッチスクリーンとの接触を解除したため、サムネイルももはや移動してない(しかし、いくつかの実施形態では、ユーザは、スワイプジェスチャした後に、ジェスチャの速度に基づいて、スクロールを継続するようにアプリケーションまたはデバイスを設定することができる)。
【0164】
図31は、縦向きGUI3000の4つの段階3110〜3140にわたって、サムネイル表示領域3005の大きさの変更を示す。横向きモードと同様に、ユーザは、サムネイル表示領域のサイズを変更するために、サムネイル表示領域3005と画像表示領域3015と間の境界をドラッグすることができる。しかし、横向きモードではこの境界はスクロールの方向に対して垂直に移動する(そして、したがって閾値を超えた場合にサムネイルが再配置され、列が追加または減算される)のに対して、縦向きモードでは、境界はスクロールの方向と平行に移動する。このように、大半については、列を追加または削除するときに離散ジャンプをするのではなく、サムネイル表示領域はサムネイルを再配置せずに連続的に変更することができる。
【0165】
第1の段階3110は、約サムネイル2つ分の高さを有するサムネイル表示領域を有するGUI3000を示している。第2の段階3120において、ユーザは、サムネイル表示領域3005と画像表示領域3015との間の境界上に指を置き、境界を下方向にドラッグし始める。この場合では、サムネイルは境界と一緒に移動する(すなわち、サムネイルと境界の関係が変化しない)。他の実施形態では、サムネイルは、境界へのそのような変更中に静止したままであり、境界はサムネイル上に移動する。ユーザが境界を上方向に移動させ、サムネイルの一番上の行に至ると、いくつかのそのような実施形態は、その後、サムネイル表示領域の最上部に隙間が現れることを防止するために、境界とともにサムネイルを上に移動し始める。
【0166】
第3の段階3130は、ユーザが境界を下方向にドラッグし続け、同様にサムネイルをスライドすることを示している。最後の段階3140で、サムネイル表示領域3005は、1行分の高さのみを有する。いくつかの実施形態では、縦向きモードでのサムネイル表示領域がサムネイル1行分のみに低減されるとき、アプリケーションがサムネイル表示領域のサイズが縮小されることを自動的に防ぎ(しかし、ユーザはサムネイル表示領域を完全に取り除くために、グリッドボタンをタップまたはスワイプジェスチャを使用することがなおもできる)、スクロールの方向を垂直から水平に変更する。アプリケーションは、現在選択されているコレクションに格納されている順序で単一の行にサムネイルを再配置するが、ユーザがスクロールし始めるまで、ユーザには表示されるサムネイルが同じように見えてもよい。
【0167】
図32は、GUI3000の4つの段階3210〜3240にわたって、1行の大きさに縮小された場合のサムネイル表示領域の横方向のスクロールを示す。第1の段階3210は、サムネイル表示領域3005が1行の高さを有する
図31の段階3140と同じ状態であるGUI3000を示している。図示のように、ユーザは指一本でサムネイル表示領域に接触し始めている。ユーザは、第2の段階3220で左に指を動かし始め、第3の段階3230でこの動作を続けている。この動作の結果、サムネイル表示領域3005を通して左にサムネイルがスクロールし、いくつかのサムネイルが左にGUIの外へスクロールし、右から新しいサムネイルが入る。いくつかの実施形態では、ユーザが、コレクションの終わりに到達したときにスクロールが停止し、他の実施形態では、連続的なスクロール方法のように、サムネイルを包み込む。第4の段階3240は、ユーザがタッチスクリーンとの接触を解除したことを示し、サムネイルは現在静止している。
【0168】
図33は、いくつかの実施形態の携帯電話およびメディアプレーヤGUI1700のサムネイル表示領域の画像をスクロールするユーザを示す図である。第1の段階3310において、第1のサムネイル3305が選択され、対応する画像3315が画像表示領域1715に表示されている。しかし、ユーザは、現在、画像表示領域上で左方向にスワイプジェスチャを行い、コレクション内の次の画像を示し始めている。第2の段階3320は、このスワイプジェスチャの結果を示し、画像3325が現在表示され、対応するサムネイル3335が選択されていることを示している。上記の図には示していないが、いくつかの実施形態では、より大きい(例えば、タブレット)デバイス上のアプリケーションのユーザも、コレクション内の画像を速やかにスキャンするために同様のスワイプジェスチャ(左右両方)を使用することができる。スワイプジェスチャで選択画像のセットをスキャンすることは、以下でセクションVにも説明する。
【0169】
第2の段階3320〜第4の段階3340は、スワイプジェスチャでサムネイル表示領域1705を横にスクロールするユーザを示している。図示のように、ユーザは、上記の
図32に示すように、サムネイル表示領域上を横に指をスワイプし、サムネイルが通るようにスライドする。
【0170】
上記図面は、(マルチタッチジェスチャを含む)タッチスクリーンジェスチャを用いて、(縦向きモードであれ横向きモードであれ)サムネイル表示領域をスクロールすることを示しているが、当業者は、
図29〜33に記載された特徴(および本明細書で示される他の特徴)を他の方法で、例えば、(ボタンのクリック、カーソルコントローラの移動、およびカーソルコントローラを介するタッチ入力の組み合わせを含み得る)カーソルコントローラデバイス、キーボードなどを用いて行うことも可能であることを認識するであろう。
【0171】
C.ズームツール
このセクションのサブセクションAは、左利き用モードと右利き用モードのために異なるGUIを備えるアプリケーションを記述し、それらにおいて、アプリケーションはモードを切り替えるときに、何らかのGUI要素の位置と順序を変更し、他の要素を同じ場所に残す。さらに、いくつかの実施形態では、GUIが左利き用モードであるか右利き用モードであるかに応じて何らかのGUIツールを異なるように(例えば、異なる方向で)起動する。そのようなツールの1つは、いくつかの実施形態のズームツールであって、GUIのどのモードが起動されているかに応じて、ズームツールは異なる方向に表示され、何らかのジェスチャに異なるように反応する。
【0172】
図34は、かかるズームツールを呼び出すためのいくつかの実施形態のプロセス3400を概念的に示す。プロセス3400は、いくつかの実施形態の右利き用と左利き用のメディア編集および閲覧GUI内のズームツールの呼び出しを示す
図35および
図36を参照して説明する。いくつかの実施形態の画像閲覧、編集、および整理のアプリケーションは、アプリケーションのユーザインタフェースを介して受信された特定のユーザ入力(例えば、タッチ)ジェスチャに応じて、プロセス3400を行う。しかし、いくつかの実施形態(例えば、アプリケーションのいくつかの携帯電話やメディアプレーヤの実装)は、このようなズームツールを含まない。
【0173】
図示のように、プロセスは、閲覧モードにあるときに、(3405において)画像表示領域内の画像の上に2つの別々のタッチ入力を受信することによって開始する。いくつかの実施形態では、画像表示領域が1つ以上の画像を表示し、編集ツールのセットのうちの1つ(例えば、トリミング、露光、色、ブラシ、または特殊効果ツール)が起動されたときにアプリケーションは閲覧モードにある。いくつかの実施形態は、2つの別々のタッチ入力が少なくとも部分的に同時に起きるときに、ズームツールを呼び出すものとして2つの別々のタッチ入力を認識する。つまり、2つの別々の入力は同時にタッチスクリーンに接触する必要はない(すなわち、ユーザは、ズームツールを呼び出すために、画面上に親指を置き、親指が画面上に残っている限り1秒後に人差し指で画面に接触してもよい)。他の実施形態は、第1のタッチ入力及び第2のタッチ入力を受信してもよい期間(例えば、0.5秒、1秒など)を制限する。さらに、いくつかの実施形態は閾値距離(例えば、3インチ(7.62cm)または画像のサイズに対して相対的な距離のような絶対距離)内のタッチ入力のみに応じてズームツールを起動する。
【0174】
さらに、いくつかの実施形態は、2本指ジェスチャと2つの別々のジェスチャとを区別する。マルチタッチデバイスは、ユーザがタッチスクリーン上に指一本を置いているかまたは(例えば、何らかのスウィープジェスチャのために)複数の指を一緒に置いているかを識別できる。これらの様々なタッチジェスチャは、いくつかの実施形態では、デバイスのオペレーティングシステムによって検出され、アプリケーションに送信される。アプリケーションが表示された画像上の異なる位置での2つの別々のジェスチャをオペレーティングシステムから受信すると、アプリケーションは、ズームツールを呼び出す。
【0175】
2つの別個したタッチ入力の受信に応じて、プロセス3400は(3410で)ズームツール表示に関連付けられた効果音を出力する。いくつかの実施形態では、効果音は、カメラのシャッターの開く音を模倣する。他の目的の中でも、効果音は、ズームツールが起動されたことをユーザに示す。さらに、いくつかの実施形態では、ズームツールが占める領域内に、カメラのシャッター開口部の外観を与えるアニメーションを表示する。プロセス3400は、ズームツールを表示する前に効果音を出力するアプリケーションを示しているが、当業者は、これは概念的なプロセスであることを認識し、効果音は、ズームツールの表示と並行して出力されてもよいことを認識するであろう。
【0176】
プロセスはまた、(3415で)2つの別個のタッチ入力の間の中点を識別する。示されるように、いくつかの実施形態では、アプリケーションは、ユーザから受けたタッチ入力に応じて、オペレーティングシステムからジェスチャ情報を受信する。ジェスチャ情報は、各ジェスチャの中心となる場所(例えば、スクリーン画素座標)を含む。いくつかの実施形態のアプリケーションでは、各ジェスチャの中心座標を結ぶ線の中点(例えば、平均x座標および平均y座標)を識別する。
【0177】
その後、プロセスは(3420において)GUIが右利き用モードであるかを判定する。
図16を参照して上述したように、画像編集アプリケーションは、ユーザがその間を切り替えることができる右利き用GUIと左利き用GUIを提供する。これらの実施形態のいくつかにおいて、画像編集アプリケーションは、GUIが右利き用モードであるか左利き用モードであるかを示すパラメータを記憶する。ユーザが(例えば、サムネイル表示領域を移動させることにより)2つのモードを切り替える場合に、アプリケーションは、パラメータを切り替える。これらの実施形態において、プロセスは、この記憶されたパラメータをチェックすることにより、GUIが右利き用モードであるかを判定する。他の実施形態において、アプリケーションは、アプリケーションが現在、左利き用モードであるか右利き用モードであるかを判定するためにサムネイル表示領域(または他のGUI項目)の位置を使用する。
【0178】
GUIが右利き用モードにある場合、プロセスは(3425で)識別された中点を中心としたズームツールを表示し、ズームリングの左側に拡大率情報が示される。その後、プロセスは終了する。いくつかの実施形態では、ズームツールは、2つのタッチ入力間の識別された中点を中心とする楕円(例えば、円形)として表示されるズームリングである。しかし、他の実施形態は、異なる形状(例えば、正方形、六角形など)を使用する。拡大率情報は、いくつかの実施形態において、ユーザにGUIコントロール内の画像のズームレベルを示す。
【0179】
図35は、GUIが右利き用モードになっているときに4つの段階3505〜3520にわたってGUI3500を通して円形のズームツールの呼び出し及びその終了を行う例を示す。
図35の第1の段階3505と第2の段階3510は、ズームツールの呼び出しを示し、第3の段階3515と第4の段階3520は、ズームツールの呼び出し終了を示している。
【0180】
図示のように、GUI3500は、GUI3500の左側に配置されているサムネイル表示領域3530、画像表示領域3545、およびツールバー3540を含む。アプリケーションは、画像表示領域3545内に画像3555を表示する。第1の段階3505に示されるように、GUI3500の左側にサムネイル表示領域3530が配置され、それはGUI3500が右利き用モードであることを示している。ツールバー3540の編集ツール起動項目のいずれも現在選択されていないので、アプリケーションは閲覧モードである。
【0181】
第2の段階3510は、ユーザが画像3555上でズームツールを呼び出した後のGUI3500を示している。上述したように、ズームツールは、画像上に2つの別々のタッチ入力を提供することによって呼び出すことができる。図示のように、ユーザは、ゴルフボールを表示する位置の近くに、画像3555上の別の位置で2本の指をタップしてズームツールを呼び出す。
【0182】
2つのタッチ入力の結果として、ズームリング3525は、2つの別々のタッチ入力の間の中点を中心として(すなわち、ゴルフボールを含む画像3555内の、現在拡大されたように示されている位置の周りに)画像3555上に重畳されている。さらに、サムネイル表示領域3530の位置によって示されるようにGUIが右利き用モードであるので、拡大率情報3535は、ズームリング3525の左側に表示されている。この拡大率情報は、ズームリング3525内部の現在のズームレベルが2倍であることを示す。ユーザの右手がズームツール上にあるときに、ズームリング3525の左側に拡大率情報を表示すると、ユーザがこの情報を簡単に見えるようになる。以下に説明するように、ユーザは、拡大レベルを変更するために、回転ジェスチャを使用できる。
【0183】
図34を再び参照すると、プロセス3400が、動作3420で、GUIは右利き用モードでないこと(したがって、GUIは左利き用モードであること)を判定した場合、プロセスは、識別された中点を中心としたズームツールを(3430で)表示し、ズームリングの右側に拡大率情報が表示される。その後、プロセスは終了する。いくつかの実施形態では、左利き用モードまたは右利き用モードのいずれにも、ズームツールは同じ形状を有するズームリング(例えば、円形)である。
【0184】
図36は、2つの段階3605と3610において、GUIが左利き用モードになっている場合に、GUI3500を介して円形のズームツールを呼び出す例を示す。図示のように、第1の段階3605は、
図36のGUI3500が左利き用モードであり、GUI3500の右側にサムネイル表示領域3530が位置していることを除いて、
図35の第1の段階3505と同一である。
【0185】
第2の段階3605は、ユーザが画像3555上でズームツールを呼び出した後のGUI3500を示している。上述したように、ズームツールは、画像上に2つの別々のタッチ入力を提供することによって呼び出すことができる。図示のように、ユーザは、ゴルフボールを表示する位置の近くに、画像3555上の別の位置で2本の指をタップしてズームツールを呼び出す。
【0186】
画像3555上の2つのタッチ入力の結果として、ズームリング3525は、2つの別々のタッチ入力の間の中点を中心として(すなわち、現在拡大して表示されているゴルフボールを含む画像3555内の位置の周りに)画像3555上に重畳されている。さらに、サムネイル表示領域3530の位置によって示されるように、GUIは左利き用モードであるため、拡大率情報3535は、ズームリング3525の右側に表示されている。この拡大率情報は、ズームリング3525内部の現在のズームレベルが2倍であることを示す。ズームリング3525の右側に拡大率情報を表示すると、ユーザの左手がズームツール上にあるときに、ユーザがこの情報を簡単に見えるようになる。以下に説明するように、ユーザは、拡大レベルを変更するために、回転ジェスチャを使用できる。
【0187】
ズームツールが呼び出され、画像上に表示されると(すなわち、画像上に重畳されると)、画像編集アプリケーションはまた、ユーザにズームツールの選択解除または呼び出し終了を可能にする。アプリケーションの異なる実施形態は、ユーザがズームツールを選択解除できる異なる方法を提供する。例えば、いくつかの実施形態のアプリケーションは、タッチ入力が画像上のズームツールの外側で受信された場合に、ズームツールを除去する。
【0188】
図35を再び参照すると、第3の段階3515および第4の段階3520は、GUI3500を介するズームツールの選択解除の例を示す。第3の段階3515のGUIは、第2の段階3510と同じであり、ズームリング3525はまだ画像3555に重畳され、ゴルフボールとその周囲の草が拡大されている。第4の段階3520は、ユーザがズームツールを選択解除した後のGUI3500を示している。上述したように、ユーザは、ズームツールの外側の画像にタッチ入力を提供することによって、ズームツールの選択を解除することができる。図示のように、ユーザはズームツール3525の外側の画像3555の位置で指をタップしてズームツール3525の選択を解除した。ズームリングの外の1つのタッチ入力の結果として、アプリケーションはGUI3500からズームリング3525を削除する。いくつかの実施形態では、アプリケーションはまた、ズームツールが呼び出し終了されると効果音(例えば、カメラのシャッターを閉じる音)を表示する。いくつかの実施形態はさらに、ツールが除去されるときに、ズームツール内にカメラのシャッターが閉まるような、対応するアニメーションを表示する。
【0189】
いくつかの実施形態のズームツールを単に呼び出して除去することに加えて、ユーザは、別のセクションにズームインするために画像の別の場所にズームツールを移動することができ、ズームツール内で示された領域の拡大レベルを変更し、他の操作を実行することができる。これらの操作は、次に
図37を参照して説明する。
【0190】
図37はいくつかの実施形態のGUI内のズームツールの各種動作を示した状態
図3700を概念的に示している。当業者は、状態
図3700が、画像閲覧GUIのすべての状態や、ズームツールのすべての状態さえも包含しているわけではなく、画像閲覧GUIのズームツール操作のサブセットだけを包含することを認識する。
【0191】
状態
図3700は、
図38、39、41、42、および40に示されたUI例を参照して説明される。具体的には、
図38および41は、ズームツールの拡大(すなわち、ズームイン)の動作に関連する複数の段階でいくつかの実施形態の画像閲覧および編集アプリケーションのGUIを示す。
図39および42は、ズームツールの縮小(すなわち、ズームアウト)の動作に関連する複数の段階でいくつかの実施形態の画像閲覧および編集アプリケーションのGUIを示す。
図40は、ズームツールの再配置(すなわち、移動)に関連する複数の段階でいくつかの実施形態の画像閲覧および編集アプリケーションのGUIを示す。
【0192】
図37に示すように、GUIは、2つの初期状態3705及び3710を有している。初期状態3705において、GUIは、右利き用モードにおいて、サムネイルグリッド(すなわち、サムネイル表示領域)および画像表示領域に表示された画像を表示する。状態3710は、状態3705と同一であるが、GUIは右利き用モードの代わりに左利き用モードであり、サムネイルグリッドはGUIの右側にある。右利き用モードのズームツールの各種動作を、
図38,39、および40を参照して最初に説明する。
【0193】
ズームツールが画像上で2つの別々のタッチ入力を受信すると、ズームツールは初期状態3705から状態3715に移行し、GUIは右利き用モードでズームリングを画像上に表示する。上述したように、GUIは、いくつかの実施形態において、右利き用モード用に1つ、および左利き用モード用に1つの、ズームリングの2つの異なるバージョンを提供する。いくつかの実施形態では、右利き用モードでズームツールは、ズームリングの左側に表示された拡大率情報を有する。これは、ユーザの右手がズームリングの上にあるときに、ユーザが拡大率情報を見えるようにする。右利き用モードでズームリングを呼び出し表示する動作については、
図35を参照して上記で詳細に記載されている。
【0194】
ズームリングに影響を与える入力が提供されない限り、ズームツールは状態3715にとどまる。しかし、時計回りの回転入力が受信されると、GUIは、ズームツール内の画像の領域の拡大率を上げるために状態3725に移行する。いくつかの実施形態では、ユーザは、ズームリングに2本の指を置き、時計回り方向に2本の指を回転させることにより時計回りの回転入力を提供することができる。いくつかの実施形態では、入力の位置を追跡し、2箇所を結ぶ線の角度(例えば、水平方向とのなす角度)を測定することによりそのような入力を識別する。この角度が時計回りに変化すると、アプリケーションは、右利き用ズームツールの拡大率を上げる。いくつかの実施形態では、2つのタッチ入力は、ズームツールの直接上に位置する必要はないが、多くの場合、そうすると、ユーザに対してズームインおよびズームアウトを視覚化するのに役立つ。ズームリングの内側にある画像の領域の拡大率を上げた後、GUIは、ユーザが時計回りに指を回転させ続けていないかぎり、状態3715に戻る。
【0195】
図38は、4つの異なる段階3805〜3820にわたって、GUI3500を介するズームツールの拡大操作を示す。第1の段階3805は、
図35の第1の段階3505と同一であり、GUI3500の左側にサムネイル表示領域3530が位置し、画像3555は閲覧モードで画像表示領域3545に表示される。
【0196】
第2の段階3810は、ユーザが画像3555上に2つの別々のタッチ入力を提供することで、ズームツールを呼び出した後のGUI3500を示している。図示のように、ユーザは、ゴルフボールの位置の周囲に画像3555上で2本の指をタップしている。2つの別々のタッチ入力の結果として、アプリケーションは、2つの別々のタッチ入力の中点を中心として画像3555にズームリング3525を重畳する。さらに、GUIが右利き用モードになっているため、アプリケーションはズームリング3525の左側に拡大率情報3535を表示する。いくつかの実施形態では、デフォルトの拡大率は2倍ズームであり、拡大率は1倍から3倍の間で調整可能である。
【0197】
第3の段階3815は、ユーザがズームツールを使用して画像の拡大率を上げ始めた後のGUI3500を示している。上述したように、ユーザは、時計回りの回転入力を提供することにより、ズームツール内の画像の領域の拡大率を上げることができる。図示のように、ユーザは、矢印3825で示すように、時計回り方向に2本の指を回転し始めている。時計回りの回転入力の結果として、ズームリング3525の内側にある画像の領域をさらに拡大して表示する。
【0198】
第4の段階3820は、ユーザがズームツールを使用して画像の拡大率をさらに上げた後のGUI3500を示している。図示のように、矢印3830で示すように、ユーザは、時計回り方向に2本の指を回転し続けている。回転操作の結果として、第4の段階3820のズームリング3525内の画像の領域は、第3の段階3815の画像よりも拡大されている。この段階では、ズームツールは、最大である3倍の拡大レベルである。
【0199】
いくつかの実施形態では、ズームツールは、フルサイズ表示を超えて画像の一部分を拡大しない。小さいスクリーンデバイス上の画像は多くの場合、デバイスのディスプレイ内に収まるように、サイズが縮小されている。例えば、1920×1080の画像は640×480の表示画面上にフルサイズで表示されないかもしれない。ズームツールを使用すると、ユーザは、そのフルサイズに近く、画像の一部を閲覧することができる。しかし、画像が既にそのフルサイズにある場合(例えば、1920×1080の表示画面上に640×480の画像)には、いくつかの実施形態では、ズームされた領域内にピクセレーションを作成させることを理由に、ユーザは、ズームツールを呼び出すことが許可されない。
【0200】
図37に戻って参照すると、状態3715になっている間にアプリケーションが反時計回りの回転の入力を受けると、GUIは、ズームツール内の画像の領域の拡大率を下げるために状態3735に移行する。いくつかの実施形態では、ユーザは、ズームリングに2本の指を置き、反時計回り方向に2本の指を回転させることによって反時計回りの回転入力を提供することができる。時計回りの回転と同様に、いくつかの実施形態は、2つの入力の位置を追跡し、その位置を結ぶ線の角度を測定することによって入力を識別する。ズームリング内の画像の領域の拡大率を下げた後、GUIは、ユーザが指を回転し続けていない限り、状態3715に戻る。
【0201】
図39は、4つの異なる段階3905〜3920にわたって、GUI3500を介するズームツールの縮小操作を示す。第1の段階3905でのGUI3500は、
図38の第4の段階3820でのGUIと同一である。図示のように、GUI3500は、3倍の拡大率でズームリング3525を含み、ズームリングの内側の画像の領域が拡大されている。
【0202】
第2の段階3910は、ユーザがズームツールを使用して画像の拡大率を下げ始めた後のGUI3500を示している。上述したように、ユーザは反時計回りの回転入力を提供することにより、ズームリング内の画像の領域の拡大率を下げることができる。図示のように、ユーザは、矢印3925で示すように、反時計回り方向に2本の指を回転し始めている。反時計回りの回転入力の結果として、アプリケーションは、ズームリング3525内にある画像の領域の拡大率を下げている。
【0203】
第3の段階3915は、ユーザがズームツールを使用して画像の拡大率をさらに下げた後のGUI3500を示している。図示のように、ユーザは、矢印3930で示すように、反時計回り方向に2本の指を回転し続けている。回転操作の結果として、第3の段階3915でズームリング3525内の画像の領域は、第2の段階3910に比べて拡大率が低い。第4の段階3920は、ユーザがズームリング3525から2本の指を持ち上げた後のGUI3500を示している。図示のように、ユーザが指を持ち上げた後、ズームリング3525内の画像の領域は第3の段階3915での画像の領域と同じままである。
【0204】
ズームツールの拡大レベルの変更に加えて、いくつかの実施形態では、ユーザは画像のあちこちにツールを移動でき、それによって画像内の異なる領域に注目する。
図37に戻って参照すると、ズームツールがリング移動起動イベントを受信すると、ズームツールはリング移動状態3745に移行する。いくつかの実施形態では、リング移動起動イベントは、ユーザがズームリングに指を押して、維持すること(すなわち、シングルタッチ)を含む。リング移動状態3745中に、ズームリングは、ユーザの入力の動きを追う。つまり、ズームリングは、ユーザが指を動かすところに移動する。ズームツールはズームリングの移動終了イベントを受信するまでこの状態にとどまる。いくつかの実施形態では、ユーザは、ズームリングから指を持ち上げることによってズームリング移動操作を終了することができる。ズームリング移動終了イベントを受信すると、ズームツールは、状態3715に戻る。
【0205】
図40は、4つの異なる段階4005、4010、4015、および4020にわたって、GUI3500を介するズームツールの移動操作を示す。第1の段階4005は、
図35の第1の段階3505と同一である。図示のように、GUI3500は、GUI3500の左側に配置されているサムネイル表示領域3530と、画像表示領域3545と、メニューバー3540とを含む。画像3555は、閲覧モードでの画像表示領域3545に表示される。また、
図40は、GUI3500の左側に位置するサムネイル表示領域3530によって示されるように、GUI3500が右利き用モードになっていることを示している。
【0206】
第2の段階4010は、ユーザがズームツールを呼び出した後のGUI3500を示している。図示のように、ユーザは、画像3555上に2つの別々のタッチ入力を提供することにより、ズームツールを呼び出す。2つの別々のタッチ入力の結果として、アプリケーションは、2つの別々のタッチの中点を中心として画像3555にズームリング3525を重畳する。さらに、GUI3500は(サムネイル表示領域3530の位置によって示される)右利き用モードになっているため、GUIはズームリング3525の左側に拡大率情報3535を表示する。
【0207】
第3の段階4015は、ユーザがタッチジェスチャでズームリング3525を移動し始めた後のGUI3500を示している。いくつかの実施形態では、ユーザは、ズームリング3525上に1つの指を配置し、画像上の別の位置に指をドラッグすることにより、ズームリングを移動することができる。図示のように、矢印4025で示すように、ユーザが画像3555の右上の隅に向かって指をドラッグし始めている。ドラッグ移動の結果として、ズームリング3525は画像3555の右上の隅に向かって移動する。第4の段階3915は、ユーザが画像上の別の場所にズームリング3525を移動した後のGUI3500を示している。図示のように、矢印4030で示すように、ユーザが画像3555の上部に向かって指をドラッグする。ドラッグ移動の結果として、ズームリング3525は、画像3555の上部に向かって移動する。
【0208】
いくつかの実施形態では、ズームツールは、ズームツール終了イベントによって終了することができる。例えば、単一の入力がズームリングの外側で受信された場合、ズームツールを終了することができる。
図37に戻って参照すると、状態3715で、ズームツールがズームリングの外側で入力(例えば、ズームリングの外側でのシングルタッチ)を受け取ると、ズームツールは初期状態3705に戻る。いくつかの実施形態のズームリングの終了操作は
図35の段階3515及び3520を参照して、上記に詳細に記載されている。
【0209】
上に詳細に記載したように、ユーザはGUIの右側にサムネイル表示領域(すなわち、サムネイルグリッド)を移動させることにより画像閲覧および編集GUIを右利き用モードから左利き用モードに切り替えることができる。したがって、初期状態3705にある間、ディスプレイの右側にサムネイルグリッドを移動したときにズームツールは他の初期状態3710に移行する(ユーザが左側に戻すようにサムネイルグリッドを移動した場合にはその逆になる)。初期状態3710から始まるズームツールの様々な操作を、
図41および42を参照して説明する。これらの操作は、拡大操作および縮小操作が逆方向への回転によって引き起こされることを除いて、右利き用操作と同様である。
【0210】
ズームツールが画像の上に2つの別々のタッチ入力を受信すると、ズームツールは初期状態3710からGUIが左利き用モードでズームリングを画像に表示する状態3720に移行する。上述したように、GUIは、いくつかの実施形態において、右利き用モード用に1つと左利き用モード用に1つの、ズームリングの2つの異なるバージョンを提供する。いくつかの実施形態では、左利き用モードのズームツールは、ズームリングの右側に表示された拡大率情報を有する。これはユーザの左手がズームリングの上にあるときに、ユーザが拡大率情報を見えるようにする。左利き用モードでズームリングを呼び出し、表示する動作は、
図36を参照して、上記に詳細に記載されている。
【0211】
ズームリングに影響を与える入力がない限り、ズームツールは状態3720にとどまる。しかし、反時計回りの回転入力が受信されると、GUIはズームツール内の画像の領域の拡大率を上げるために状態3730に移行する。いくつかの実施形態では、ユーザは、ズームリングに2本の指を置き、反時計回り方向に2本の指を回転することによって反時計回りの回転入力を提供することができる。いくつかの実施形態では、入力の位置を追跡し、2箇所を結ぶ線の角度(例えば、水平方向となす角度)を測定することによりそのような入力を識別する。この角度が反時計回りに変化するとき、アプリケーションは、左利き用ズームツールの拡大率を上げる。いくつかの実施形態では、2つのタッチ入力はズームツールの直接上に配置される必要はないが、多くの場合、そうすると、ユーザがズームインとズームアウトの動きを視覚化するために役立つ。ズームリングの内側にある画像の領域の拡大率を上げた後、ユーザが反時計回りに指を回転し続けていないかぎり、GUIは状態3720に戻る。
【0212】
図41は、4つの異なる段階4105〜4120におけるGUI3500を介するズームツールの拡大動作を示す。第1の段階4105は、
図36の第1の段階3605と同一であり、サムネイル表示領域3530はGUI3500の右側に位置し、画像3555は閲覧モードにおける画像表示領域3545に表示される。
【0213】
第2の段階4110は、ユーザが画像3555上の2つの別々のタッチ入力を提供することで、ズームツールを呼び出した後のGUI3500を示している。図示のように、ユーザは、ゴルフボールの位置の周囲の画像3555上で2本の指をタップしている。2つの別々のタッチ入力の結果として、アプリケーションは、2つの別々のタッチ入力の中点を中心として画像3555にズームリング3525を重畳する。さらに、GUIは左利き用モードになっているため、アプリケーションはズームリング3525の左側に拡大率情報3535を表示する。いくつかの実施形態では、デフォルトの拡大率は2倍ズームであり、拡大率は1倍から3倍の間で変更可能である。
【0214】
第3の段階4115は、ユーザがズームツールを使用して画像の拡大率を上げ始めた後のGUI3500を示している。上述したように、ユーザは反時計回りの回転入力を提供することにより、ズームツール内の画像の領域の拡大率を上げることができる。図示のように、ユーザは、矢印4125で示すように、反時計回り方向に2本の指を回転し始めている。反時計回りの回転入力の結果として、ズームリング3525内にある画像の領域はさらに拡大して表示される。
【0215】
第4の段階4120は、ユーザがズームツールを使用して画像の拡大率をさらに上げた後のGUI3500を示している。図示のように、ユーザは、矢印4130で示すように、反時計回り方向に2本の指を回転し続けている。回転移動の結果として、第4の段階4120でズームリング3525内の画像の領域は、第3の段階3815の画像よりも拡大される。この段階では、ズームツールは、最大である3倍の拡大レベルである。
【0216】
図37に戻って参照すると、状態3720にある間に、アプリケーションが時計回りの回転入力を受けると、GUIは、ズームツール内の画像の領域の拡大率を下げるために、状態3740に移行する。いくつかの実施形態では、ユーザは、ズームリング上に2本の指を置き、時計回り方向に2本の指を回転することにより、時計回りの回転入力を提供することができる。反時計回りの回転と同様に、いくつかの実施形態は、2つの入力の位置を追跡し、当該位置を結ぶ線の角度を測定することによって、入力を識別する。ズームリング内の画像の領域の拡大率を下げた後、GUIは、ユーザが指を回転し続けていない限り、状態3720に戻る。
【0217】
図42は、4つの異なる段階4205〜4220におけるGUI3500を介するズームツールの縮小動作を示す。第1の段階4205でGUI3500は、
図41の第4の段階4120のGUIと同一である。図示のように、GUI3500は3倍の拡大率であるズームリング3525を含み、ズームリングの内側にある画像の領域を拡大している。
【0218】
第2の段階4210は、ユーザがズームツールを使用して画像の拡大率を下げ始めた後のGUI3500を示している。上述したように、ユーザは、時計回りの回転入力を提供することにより、ズームリング内の画像の領域の拡大率を下げることができる。図示のように、ユーザは、矢印4225で示すように、時計回り方向に2本の指を回転し始めている。時計回りの回転入力の結果として、アプリケーションは、ズームリング3525内にある画像の領域の拡大率を下げている。
【0219】
第3の段階4215は、ユーザがズームツールを使用して画像の拡大率をさらに下げた後のGUI3500を示している。図示のように、ユーザは、矢印4230で示すように、時計回り方向に2本の指を回転し続けている。この回転移動の結果として、第3の段階4215でズームリング3525内の画像の領域は、第2の段階4210に比べて少なく拡大されている。第4の段階4220は、ユーザがズームリング3525から2本の指を持ち上げた後のGUI3500を示している。図示のように、ユーザが指を持ち上げた後、ズームリング3525内の画像の領域は第3の段階4215での画像の領域と同じままである。
【0220】
右利き用ズームツールと同様に、ユーザは左利き用モードにおいてもツールを画像の異なる領域に移動させることができる。拡大ジェスチャおよび収縮ジェスチャは左利き用モードと右利き用モードとで反対方向にあるが、いくつかの実施形態では、どちらのモードでもズームリングの移動は同一のジェスチャを含む。
図37に戻って参照すると、ズームツールがリング移動起動イベントを受信した場合、ズームツールはリング移動状態3750に移行する。いくつかの実施形態では、リング移動起動イベントは、ユーザがズームリングを指で押し、保持すること(すなわち、シングルタッチ入力)を含む。リング移動状態3750の間に、ズームリングは、ユーザ入力の移動に追従する。つまり、ズームリングは、ユーザが指を動かす位置に移動する。ズームツールはズームリング移動終了イベントを受信するまでこの状態にとどまる。いくつかの実施形態では、ユーザは、ズームリングから指を持ち上げることによってズームリング移動操作を終了することができる。ズームリング移動終了イベント(例えば、ズームリングの外側でのシングルタッチ)を受信すると、ズームツールは状態3720に戻る。ズームツールは、状態3720でズームリングの外側で入力を受信した場合は、GUIが左利き用モードである初期状態3710に戻る。
【0221】
IV.複数の画像の表示
上記の例の多くは、画像表示領域内に1つの画像のみを有するGUIを示しているが、いくつかの実施形態では、ユーザが一度に表示するための複数の画像を選択することを可能にする。様々な実施形態では、複数の画像を表示するために異なるプロセスがユーザに利用可能である。ユーザは、(特定のタイプの選択入力で対応するサムネイルを選択することによって)コレクション内の特定の画像を選択でき、アプリケーションは選択画像のある閾値内の類似性を有するコレクション内の他の画像を自動的に識別する。また、ユーザは、閾値期間にわたって各サムネイルを長押しすることにより、(例えば、マルチタッチデバイス上の別々の入力を介して)サムネイル表示領域内の画像のブロック、または複数の個別の画像を選択することができる。さらに、いくつかの実施形態は、一度に複数の画像を選択するための設定メニューオプションを含む。
【0222】
複数の画像が画像表示領域に表示するために選択されている場合、いくつかの実施形態では、全ての画像にわたって視覚的重み付けが等しいことを保証しながら、ディスプレイの使用を最大化する表示アルゴリズムを使用する。いくつかの実施形態において、アプリケーションは、表示する画像の平均アスペクト比を識別し、その後、グリッドの各矩形領域が平均アスペクト比を有するように、画像の数に対して理想的なグリッドに画像表示領域を分割する。その後、アプリケーションは、グリッドの四角形のいずれかに各画像を収める。
【0223】
A.類似画像の識別と表示
上述したように、画像表示領域に表示するための複数の画像を選択するための方法の1つは、画像を選択し、選択した画像に対して閾値類似度内である同じコレクション内の画像をアプリケーションに識別させることである。いくつかの実施形態では、ユーザがサムネイル上をダブルタップ(またはダブルクリック)すると、アプリケーションは選択した画像に対して、コレクション内の他の画像を自動的に比較する。2つの画像間の比較を行うために、いくつかの実施形態では、画像のそれぞれについてヒストグラムのセットを使用し、画像のヒストグラムが閾値類似度内であるかを判断する。いくつかの実施形態は、色、テクスチャ、および勾配ヒストグラムを使用するが、他の実施形態では、画像を比較するために他の画素の特性を使用することができる。画像のより重要な部分(例えば、中央)の比較に集中するために、いくつかの実施形態は、いくつかの領域に画像を分割し、対応する領域についてヒストグラムを比較する。領域は、いくつかの画素(例えば、画像の中心にあるもの)が他の画素よりも多くの領域で使用されるように、重なっていてもよい。
【0224】
図43は、コレクション内の類似画像を識別および表示するためのいくつかの実施形態のプロセス4300を概念的に示す。いくつかの実施形態の画像閲覧、編集、および整理アプリケーションは、アプリケーションが閲覧モードである間に類似画像を表示するためのユーザコマンドに応じて、このプロセスを実行する。プロセス4300は、
図44〜46を部分的に参照して説明する。
図44は、ユーザが特定の画像を選択し、アプリケーションが選択画像に類似しているコレクション内の画像のセットを識別する3つの段階4410〜4430にわたって画像閲覧アプリケーション用のGUI4400を示している。
【0225】
GUI4400は、サムネイル表示領域4405と画像表示領域4415とを含む。これらの表示領域は、
図14について上述したものと同様である。画像表示領域4415の上のバーに示されるように、サムネイル表示領域4405は、コレクション「アルバム1」内の画像のサムネイルのセットを表示する。
【0226】
図示のように、プロセス4300は、(4305において)アルバム内の特定の画像の選択と、類似画像を識別するためのコマンドとを受信することによって開始する。上述のように、いくつかの実施形態は、ユーザが画像のサムネイルをダブルタップ(すなわち、同じサムネイル上の閾値期間内の2つの急速な連続タップ)やダブルクリックすると自動的にこのプロセスを実行する。しかし、この機能は、画像が選択されるメニューオプションまたは別のGUI項目を選択することやキーストロークのセットを入力することなどの他のGUIインタラクションを介してアクセスすることもできる。
【0227】
図44の第1の段階4410は、サムネイル表示領域4405内のサムネイルのいずれもが現在選択されていないことを示している。第2の段階4420において、ユーザは1つの指でサムネイル4425をダブルタップする。この画像は、ゴルフボールをちょうど打ったゴルファーを示している。サムネイル表示領域4405に見られるように、コレクションは、このゴルフシーンの4つの他の画像だけでなく、様々な無関係な画像を含む。
【0228】
次に、プロセス4300は(4310で)画像比較動作に関連する効果音を出力する。当業者は、様々な異なる実施形態は、異なる効果音を使用でき、そしていくつかは、効果音を全く出力しなくてもよいことを認識するであろう。いくつかの実施形態では、使用される効果音は、物理的な写真の大きなセットを人がめくることをシミュレーションするように設計されてもよく、計算を実行するプロセッサを想起させるように設計されてもよい。効果音の出力は比較動作の前に行うようにプロセス4300に概念的に示されているが、多くの場合、アプリケーションを実行するデバイス上のプロセッサは、デバイスが効果音を出力する間に、比較のために必要な計算を実行する。
【0229】
プロセスはその後、(4315で)選択した画像用の統計情報を取得する。いくつかの実施形態では、統計は、画像に関する情報を提供するヒストグラムのセットを含む。ヒストグラムは、いくつかの実施形態では、画像中の色の分布、画像内の色の多様性、および画像中に存在する形状に関する情報を提供する。
図47を参照して以下にさらに詳細に記載されるように、いくつかの実施形態のアプリケーションは、色の範囲、テクスチャの範囲、および勾配の範囲内に各画素を配置する。色は特定の色空間における画素の位置を識別し、テクスチャは画素の色データがその近傍のものとどの程度類似又は異なっているかを識別し、勾配は近傍のものに対して画素の強度の変化の方向および量を識別する。これら(およびその他)のヒストグラムに加えて、いくつかの実施形態はまた、ファイル名、ユーザが入力した説明、Exifデータ等の、他の情報を、画像を比較するために使う。
【0230】
いくつかの実施形態において、アプリケーションは、いくつかの領域に画像を分割し、2つの画像の対応する領域に対してヒストグラムを比較する。異なる実施形態は、異なるように画像を分割する。
図45は、それぞれ画像の4分の1のサイズである9つの異なるタイルに画像4500を分割するそのような分割を概念的に示す。
図45は、9つのタイル4525〜4565を説明するために4つのパネル4505〜4520を使用する。最初の4つのタイル4525〜4540は画像4500の4つの隅領域である。パネル4510における次の2つのタイル4545と4550は、画像の垂直方向の中心を占め、パネル4515における次の2つのタイル4555と4560は、画像の水平方向の中心を占めている。最後に、最後のパネル4520は、画像の実際の中心点を中心にする1つのタイル4565のみを有する。
【0231】
この特定の領域のセットを使用すると、一部の画素が他の画素よりも、2つの画像の比較において重要であるように、その一部の画素に多くの重みを与える。
図46は、この特定の画像4500の分割の結果として得られた画素の16個の象限と、タイル4525〜4565のうち、どのタイルが各象限からの画素を含んでいるかとを示す。図示のように、4つの隅の象限は、タイルの1つのみに含まれているため、これらの画素は、画像のヒストグラム9セットの1つのみに寄与している。画像の1つの縁だけに接するエッジを有する8つの象限は、それぞれ2つのタイルに含まれ、中央の4つの象限はそれぞれ4つのタイルに含まれている。このように、中央の画素は別の画像との比較において、隅の画素の4倍の重みが与えられる。
【0232】
いくつかの実施形態では、アプリケーションは、類似画像を識別するよう求められたときにすべての計算を行うのではなく、予めヒストグラム(および他の統計情報)を計算する。いくつかの実施形態では、アプリケーションがまず画像をインポートするときに画像のヒストグラムを生成し、画像と一緒に画像のヒストグラムを(例えば、上述した
図15の画像データ構造1500内に追加データの一部として)記憶する。9つのタイルについてそれぞれ3つのヒストグラムを有すると、いくつかの実施形態は、各画像に対して27個の異なるヒストグラムを格納する。
【0233】
図43に戻ると、プロセス4300はその後(4320で)、(最初に選択した画像がその一部である)現在表示されているコレクションから新しい比較画像を選択する。いくつかの実施形態は、コレクションデータ構造に格納されている順番に並べられた列の先頭から画像を横断し、他の実施形態は、順番に並べられた列における選択画像の次の画像から始まるか、コレクション内の画像をランダムに選択するか、または他のアルゴリズムを使用する。
【0234】
このプロセスは、その後(4325で)現在の比較画像のための統計情報を取得する。これらの統計情報は、ユーザが選択した画像のために取得されたものと同じ統計情報(すなわち、画像の様々な領域の色、テクスチャ、および勾配のヒストグラム)である。上述のように、いくつかの実施形態では、これらのヒストグラムを予め計算し、画像のデータ構造とともにヒストグラムを記憶する。
【0235】
次に、プロセス4300は、(4330で)現在の比較画像の統計情報に対して特定のユーザが選択した画像の統計情報を比較する。異なる実施形態は異なるようにこの比較を行う。いくつかの実施形態では、選択した画像の各ヒストグラムを現在の比較画像の対応するヒストグラムに対して比較する。例えば、第1の画像のタイル1の色ヒストグラムを第2の画像のタイル1の色ヒストグラムと比較し、第1の画像のタイル5のテクスチャヒストグラムを第2の画像のタイル5のテクスチャヒストグラムと比較する等である。このように、いくつかの実施形態は、2つの画像が類似したものとして適格かどうかを判定する際に27個の異なる比較を行う。
【0236】
異なる画像からのヒストグラムを比較するために、異なる実施形態は、異なる技術を使用する。各ヒストグラムは、値の範囲によって定義されるビンのセットである。ビンは、一次元であってもよいし、多次元であってもよい。例えば、テクスチャは単一の値によって定義され、従って、各ビンはこのテクスチャ値の範囲である。画素に対する勾配は、角度および長さ(又は、代替的に、x方向の値及びy方向の値)の両方を有するベクトルとして定義される。したがって、各ビンは角度の特定の範囲および長さの特定の範囲内に入る画素を含む。画素の色値は、多くの場合、色空間(例えば、RGB空間、HSL空間、YCbCr空間、または別の色空間)における三次元の値である。したがって、各ビンは、
図48〜50を参照して以下にさらに詳細に説明するように、三次元の各々に定義された範囲を有する。
【0237】
アプリケーションは、第1の画像のヒストグラムの各ビンの画素数を第2の画像の対応するヒストグラムの対応する各ビン内の画素数と比較する。いくつかの実施形態では、2つのヒストグラムの間の差を計算するために、ヒストグラムの各ビンの差の平均値の平方根をとる、二乗平均平方根関数を使用する。単純化した例として、第1のヒストグラムが[4、2、1、5]の値を有し、第2のヒストグラムが[3、2、4、3]の値を有する場合の二乗平均平方根関数を以下に示す。
Sqrt[{(4−3)2+(2−2)2+(1−4)2+(5−3)2}/4]=Sqrt(3.5)=1.87
【0238】
アプリケーションは、その後、比較スコアを決定するために、ヒストグラム内の画素の総数(即ち、画像の画素数の4分の一)に対して二乗平均平方根の出力を比較する。この比較スコアは、ヒストグラムの各々(すなわち、図示の例の27個の異なるヒストグラム)に対して計算される。二乗平均平方根分析ではなく、いくつかの実施形態は、2つのヒストグラム間の偏差の単純平均値、又は2つのヒストグラム間の差を定量化する他のアルゴリズムを使用する。
【0239】
画素数が異なる画像のヒストグラムを比較するために、いくつかの実施形態では、画素数の比を決定し、小さい画像のヒストグラム値にこの値を掛ける。他の実施形態は、同じ画素数やアスペクト比を有する画像のみを比較する。
【0240】
他のいくつかの実施形態は、画像(又はタイル)内の画素の総数で各ヒストグラムの値を割り、よってそのヒストグラム全体にわたって合計が1になる分数のヒストグラムを有する。いくつかのそのような実施形態では、アプリケーションは、ヒストグラムを比較するために、乗算関数の平方根を使用する。この関数は、第1のヒストグラム中の各ビンの値に第2のヒストグラム中の対応するビンの値を掛けた値の平方根をとり、その後ヒストグラムにおけるビンのセット全体にわたってこれら平方根の合計をとる。したがって、[0.1、0.4、0.3、0.2]の値を有する第1のシンプルなヒストグラムと、[0.35、0.25、0.3、0.1]の値を有する第2のヒストグラムとの場合、スコアはSqrt(0.1×0.35)+Sqrt(0.4×0.25)+Sqrt(0.3×0.3)+Sqrt(0.2×0.1)=0.9447である。この比較方法は、ヒストグラムが同一である場合は1のスコアを与え、ヒストグラムがより異なるにつれて減少する。
【0241】
いくつかの実施形態で採用する別の方法は、重なり合う有意ビンの合計を使用する。このプロセスは、両方のヒストグラムの値が特定の閾値よりも大きいビンのみをカウントする。閾値は、ヒストグラムを生成するために使用される全画素の特定の割合、またはビンの数の関数(例えば、Nがビンの数である場合、5/N)である。第1のヒストグラムおよび第2のヒストグラムの両方のビンの値が閾値よりも大きい場合、これらの値は、ヒストグラム比較の合計スコアに加算される。この比較では、スコアは0(重なり合う有意ビンが無い場合)から2(全画素が重なり合う有意ビンにおける場合)の範囲をとりうる。この比較手法は、小さい(そしてしたがって、有意性の低い)ヒストグラムのビンにおける違いにより比較プロセスが不明瞭になることを防ぐ。
【0242】
2つの画像の統計情報が比較されると、プロセス4300は(4335で)画像が閾値類似度内かを判定する。いくつかの実施形態では、アプリケーションはそれぞれのヒストグラムの比較スコアの平均をとり、平均スコアが閾値内に収まるかどうかを判定する。これは、小さい差(例えば、画像の隅にある項目が存在する/しない)が、他の点では類似する画像が類似する画像として識別される妨げにならないことを保証する。
【0243】
他の実施形態は、色ヒストグラムの差に関しては第1の平均、テクスチャのヒストグラムの差に関しては第2の平均、および勾配ヒストグラムの差に関しては第3の平均を行う。いくつかのこのような実施形態では、3つの平均比較スコアのすべてが閾値内に入ることが必要であるが、他では3つの平均スコアのうち2つが閾値を満たす必要がある。さらに他の実施形態では、アプリケーションはヒストグラム比較スコアの各々を閾値と比較し、2つの画像を類似画像として見なすために、特定の数のスコア(例えば、全て、27個のうち18個、など)が閾値を満たす必要がある。
【0244】
いくつかの実施形態において、アプリケーションは、色ヒストグラム、勾配ヒストグラム、およびテクスチャヒストグラムに対して異なる閾値類似度を用いる。例えば、アプリケーションは、異なる露光画像または曇り対晴れた画像が同じ形状を有する場合にも類似すると見なされることを可能にするために、勾配ヒストグラムよりも色ヒストグラムにおいて、大きな変動を認めてもよい。
【0245】
いくつかの実施形態では、類似度閾値は、機械学習決定木法に基づいている。この技術は、以前に類似または類似していないと分類されたサンプル画像のペアを使用し、(例えば、上述した比較手法の1つ以上を使用して)画像のための異なる比較スコアを算出する。これらのスコアはその後、有用な比較スコアの閾値または閾値の組み合わせを識別するために、類似の及び非類似のペアについて分析される。
【0246】
画像の閾値類似度内にある場合、プロセスは特定の画像に類似すると分類された画像群に(4340で)現在の比較画像を追加する。すなわち、現在の比較画像は、ユーザが選択した画像および他の類似画像と共に画像表示領域に表示される選択画像の1つになる。
【0247】
プロセス4300は次に(4345で)、プロセスがまだユーザが選択した特定の画像に対して比較していない追加の画像を現在のコレクションが含んでいるかを判定する。前述のように、コレクションがアプリケーションによってインポートされた画像をすべて含む場合でも、アプリケーションはコレクション全体を横断する。追加の画像が残っていると、プロセスは現在の比較画像として次の画像を設定するために4320に戻る。
【0248】
一旦、現在のコレクション内のすべての画像をユーザが選択した画像に対して比べると、(4350において)プロセスは、画像表示領域内にユーザが選択した特定の画像およびそれに類似する画像を表示する。
図44に戻り、第3の段階4430はダブルタップ入力でサムネイル4425をユーザが選択した結果を示す。この段階では、アプリケーションは、画像表示領域内に4つの画像4435〜4450を表示する。これらは、ゴルファーを示す5つの画像のうちの4つである。第5の画像であるサムネイル4455は、(例えば、ゴルフクラブの異なる位置により十分な勾配の差が生じるか、または画像の暗さにより十分な色差が生じるため)類似するとして見なされないために十分に異なる。画像4435〜4450のサムネイルは、この段階で、これらの画像が閲覧のために選択されていることを示すためにハイライト枠を有する。いくつかの実施形態は、すべての画像にわたって等しい視覚的重み付けを維持するアルゴリズムに従って画像表示領域4415に画像を表示する(しかし、アスペクト比が全ての画像に対して等しいので、この場合には問題ではない)。
【0249】
図43のプロセス4300は、アプリケーションが画像の様々なヒストグラムを比較することによって、複数の画像間の比較を実行する方法を表す。
図47は、本発明のいくつかの実施形態に係るヒストグラムのセットを生成するためのプロセス4700を概念的に示す。述べたように、いくつかの実施形態は、ヒストグラムを事前に計算し(例えば、画像のインポート時にヒストグラムを生成し、画像とともにこれを保存する)、したがって、各画像についてプロセス4700または同様のプロセスを画像がアプリケーションにインポートされるときに行う。プロセス4700を、画像の色ヒストグラムのセットを生成するためにアプリケーションによって一般的に使用される色空間を概念的に表す
図48〜50を参照することにより部分的に説明する。
【0250】
図示のように、プロセス4700は、(4705において)画像を受信することにより開始する。典型的な画像は矩形に配置された画素のセットを含む。各画素は、一般的には、(i)特定の色空間における色値セットと、(ii)矩形での位置とにより定義される。画像は、符号化された形態であってもよく、その場合にアプリケーションは画像の画素の色値を識別するために画像を復号する。
【0251】
プロセスは、(4710で)、ヒストグラムを生成する対象の異なるタイルの画像内の寸法を計算する。
図45および
図46を参照して上述したように、いくつかの実施形態は、9つの異なるタイルの各々のために3つのヒストグラムを生成する。プロセスでは、タイルのそれぞれの画素寸法を決定する。例えば、画像が640×480の画素の寸法(すなわち、水平方向に640画素、垂直方向に480画素)を有する場合、タイル1 4525は、(1,1)(画像の左隅)および(320,240)(画像の中心)を隅に有する画素の矩形を使用し、タイル9 4565は、画素位置(16,121)から(480,360)の矩形を使用する。
【0252】
プロセスはその後(4715で)、画像の次の画素を選択する。いくつかの実施形態は、左上隅の(1,1)画素から始まり、一番上の行に沿って横断し、損五次の行に下りるなどのようにして、画素の各行を横断する。他の実施形態は、(例えば、ランダム、列優先など)異なる方法で画素を選択する。
【0253】
次に、プロセス4700は、選択画素が属する画像のすべてのタイルを識別する(4720)。
図45と
図46に示すタイル配置を使用すると、隅の方に位置する画素は画像の1つの領域のみに属し、中心部に位置する画素は4つの領域に属する。この配置を使用すると、1つの端のみに近い象限内の画素は、2つの領域に属する。
【0254】
次にプロセスはヒストグラムを生成し始める。このプロセス4700の例において、アプリケーションは、最初に色値を、その後テクスチャ値を、そして最後に勾配値を生成する。しかしながら、当業者は、異なる実施形態は、異なる順序でこれらの計算を実行すること、または並列に実行することを認識するであろう。
【0255】
(4725で)プロセスは、画素値を色相・彩度・明値(HSV)色空間に変換する。記憶された画素値は、多くの場合はデバイス固有のRGB色空間であり、HSVへの変換は、単純な変換である。
図48はRGBデカルト座標系よりも直感的かつ知覚的に関連するように設計された円筒座標系であるHSV色空間4800を概念的に示す。図示のように、色空間4800で、色相は角度次元で表され、赤色は0°、緑色は120°、および青色は240°に一般的に位置する。半径次元は彩度を表し、中心ではゼロ彩度(無彩色)から外側の端では完全に飽和(純正色)までの範囲におよぶ。縦軸は、中心において黒(明度=0)から白(明度=1)までにおよぶ明度を表す。
【0256】
HSV色空間は、色ヒストグラムを生成するために使用することができる可能な色空間の1つにすぎない。いくつかの実施形態は、HSL(色相?彩度?明度)色空間、YCbCr(輝度?彩度)色空間、または他の開発者が定義した色空間のような異なる色空間を使用する。他の実施形態は、色変換を行わず、ただ画素が既に定義されているデバイスのガンマ補正されたRGB空間を使用する。
【0257】
画素値が変換された後、プロセス4700はその後(4730で)、現在選択されている画素が属するHSV色空間の領域を識別する。各領域は、色空間における三次元領域である。しかし、いくつかの実施形態では、各領域が人間の区別可能な色空間の似たような容積を覆うように、領域は色空間における異なるサイズを有する。つまり、人間の目が簡単に異なる色値を区別する色空間の領域と比較して、人間の目が異なる色値を区別し難い色空間では領域が大きい。
【0258】
例えば、2つの領域は、異なる色相範囲、異なる彩度範囲、および/または異なる明値範囲を有し得る。
図49は、2つの領域が定義されたHSV色空間の円形断面4900(すなわち、一定値)を示す。第1の領域4905は、色相次元の赤い部分にあり、第2の領域4910は、色相次元の青色部分にある。一般的に、人間の目は赤色の色合いよりも青の色合いをより容易に区別することができるため、いくつかの実施形態は、この例が示すように、色空間の赤色部分に比べて色空間の青色部分で小さい色相範囲の領域を使用する。
【0259】
図50は、2つの領域5005と5010に分割したHSV色空間の三次元部5000を示している。この場合には、2つの領域の彩度と色相は同じであるが、明値の範囲が異なる。当業者は、これらの領域が単なる例であること、及び領域が色空間内の任意の形状を有することができることを認識するであろう。
図49または
図50のいずれにも示されていないが、特定の色相および明値内に、複数の領域が異なる彩度範囲に対して定義され得る。さらに、その領域は、すべての次元で一定の範囲を有する必要はない。例えば、特定の領域は、領域が色空間の全体を占める限り、外側の彩度で第1の色相範囲を有し、最も内側の彩度で第2の異なる色相範囲を有してもよい。
【0260】
図47に戻り、プロセス4700は(4735で)画像内の隣接する画素に対して画素を比較することで、現在選択されている画素のテクスチャ値を算出する。いくつかの実施形態では、画素の単一のテクスチャ値を決定するために、周囲の画素の輝度値に対して画素の輝度値を比較する、テクスチャ計算を使用する。画素輝度を決定するために、いくつかの実施形態では、RGB画素値を用いる計算を行う。他の実施形態では、隣接画素に対して、画素の(輝度以外の)異なる特性を比較する。
【0261】
いくつかの実施形態で使用される新規なテクスチャ計算アルゴリズムを、
図51を参照して説明する。この図は、中心画素(P0)に対するテクスチャを計算するためにいくつかの実施形態で使用される9つの画素を示す。最初に、いくつかの実施形態は、画素毎の(明るさ、輝度、または明値と同様の)強度値を計算する。これは、基本的に、1つの色チャネル値又は他の色チャネル値に大きな重みを付けることができる、RGB値の加重平均である。例えば、いくつかの実施形態では、赤の色チャネルにより大きな重みを付ける。
【0262】
図51内の画素はI
0(画素P0用)からI
8(画素P8用)の強度値を有する。いくつかの実施形態のテクスチャ計算は、テクスチャ値を決定するための条件チェックのセットを使用する。当業者は、テクスチャ値が物理量に対応するのではなく、単に異なるビンであることを認識するであろう。いくつかの実施形態のテクスチャの計算は次のとおりである。
●P0がウィンドウ内の最大強度を有する場合、P0に0のテクスチャを割り当てる。
●P0がウィンドウ内の最小強度を有する場合、P0に1のテクスチャを割り当てる。
●P0が最小強度または最大強度を有していないが、I
0、I
1、…I
8がすべてお互いに閾値内であれば(すなわち、それらはすべて同一または類似する強度を有する場合)、P0に2のテクスチャを割り当てる。
【0263】
これら3つの条件のいずれも満たされていない場合、アプリケーションは次のような差を計算する。
●(I
1+I
2+I
3)−(I
6+I
7+I
8)
●(I
3+I
5+I
8)−(I
1+I
4+I
6)
●(I
1+I
2+I
4)−(I
5+I
7+I
8)
●(I
2+I
3+I
5)−(I
4+I
6+I
7)
【0264】
その後、アプリケーションは、画素P0の周りのウィンドウ内で最大の強度変化の方向を示すものとして、これらの差のどれが最大の絶対値を有するかを決定する。最初の差は強度の垂直変化に対応し、二番目の差は強度の水平変化に対応し、三番目の差は右上から左下への変化に対応し、および四番目の差は右下から左上への変化に対応する。
【0265】
最初の不等式が一番大きい場合、アプリケーションは、次の2つのテクスチャ値のいずれかを割り当てる。
●(I
1+I
2+I
3)>(I
6+I
7+I
8)ならば、P0に3のテクスチャを割り当てる。
●(I
1+I
2+I
3)≦(I
6+I
7+I
8)ならば、P0に4のテクスチャを割り当てる。
【0266】
二番目の不等式が一番大きい場合、アプリケーションは、次の2つのテクスチャ値のいずれかを割り当てる。
●(I
3+I
5+I
8)>(I
1+I
4+I
6)ならば、P0に5のテクスチャを割り当てる。
●(I
3+I
5+I
8)≦(I
1+I
4+I
6)ならば、P0に6のテクスチャを割り当てる。
【0267】
三番目の不等式が一番大きい場合、アプリケーションは、次の2つのテクスチャ値のいずれかを割り当てる。
●(I
1+I
2+I
4)>(I
5+I
7+I
8)ならば、P0に7のテクスチャを割り当てる。
●(I
1+I
2+I
4)≦(I
5+I
7+I
8)ならば、P0に8のテクスチャを割り当てる。
【0268】
そして最後に、四番目の不等式が一番大きい場合、アプリケーションは、次の2つのテクスチャ値のいずれかを割り当てる。
●(I
2+I
3+I
5)>(I
4+I
6+I
7)ならば、P0に9のテクスチャを割り当てる。
●(I
2+I
3+I
5)≦(I
4+I
6+I
7)ならば、P0に10のテクスチャを割り当てる。
【0269】
したがって、アプリケーションは、不等式に基づいて、11個の異なるテクスチャビンのいずれかに、各画素を割り当てる。当業者は、この例では3×3画素のウィンドウを示しているが、いくつかの実施形態では、5×5のウィンドウを使用し、各不等式はいずれかの側に3つではなく10個の画素強度を有することを認識するであろう。
【0270】
選択した画素のテクスチャを計算した後、プロセス4700はその後(4740で)画素が属するテクスチャ範囲を識別する。テクスチャは一次元の値であるため、テクスチャヒストグラムの各ビンは、その1つの次元に沿った特定の範囲を表している。色ヒストグラムと同様に、異なるテクスチャ範囲は必ずしも同じ長さでなくてもよい。
【0271】
プロセス4700はまた、(4745で)隣接する画素における最大の変化の方向を識別することによって、勾配値を計算する。いくつかの実施形態では、水平方向と垂直方向との両方における画素の強度の変化の方向と量を特定する勾配計算を使用する。例えば、いくつかの実施形態は、相対的な強度変化(すなわち、水平方向の変化に比べた垂直方向の変化)のみを測定する勾配を使用する。いくつかの実施形態は、勾配Θ=atan2(δI/δy,δI/δx)の式を使用し、ここでIはやはり強度(上記のテクスチャの計算に使用された同じ値)を示している。
【0272】
図51を再び参照すると、P0の勾配はΘ=atan2(I
2−I
7,I
4−I
5)である。関数atan2は、いずれもゼロに等しくない任意の実引数(y,x)に対して、デカルト平面の正のx軸と当該平面上の座標(x,y)により与えられる点の間の角度をラジアンで与える関数である。したがって、いくつかの実施形態の勾配は垂直強度変化と水平強度変化との間の相対的な差に関する角度である。
【0273】
勾配が計算された後に、プロセスは(3850で)画素が属する勾配範囲を識別する。上記の勾配は、一次元の値(すなわち、単なる角度)である。いくつかの実施形態では、勾配は、2次元値である(例えば、xyベクトルや角度および長さとして表現される)。したがって、勾配ヒストグラムの各ビンは、x勾配値およびy勾配値の特定の範囲を表している。色ヒストグラムと同様に、異なる勾配の範囲は必ずしもデカルトのxy空間において等しいサイズでではない。
【0274】
画素の3つの異なる性質の範囲を識別した後に、プロセスは(4755で)、動作4720で決定したように、画素が属する画像の各タイルの色ヒストグラム、テクスチャヒストグラム、および形状(勾配)ヒストグラムに画素を追加する。示されるように、上記の図に示されるタイル配置の場合、これは、画素の位置に応じて、3つの異なるヒストグラム、6つの異なるヒストグラム、または12個の異なるヒストグラムであってもよい。
【0275】
現在選択されている画素を分析した後に、プロセス4700は(4760で)画像内に分析されていない画素が残っているかを判定する。追加の画素が残る場合、プロセス4700は動作4715へ戻り、次の画素を選択する。一旦すべての画素が分析されると、プロセスは終了する。
【0276】
図52は、ヒストグラムを生成し、類似度のために画像を比較するいくつかの実施形態の画像閲覧、編集、および整理アプリケーションの一部のソフトウェアアーキテクチャを概念的に示す。
図52は、ヒストグラム生成モジュール5200、類似度比較部5250、および画像選択部5275を示している。また、この図は、画像データ5280(すなわち、アプリケーションによって格納された画像データ構造および画像ファイル)とコレクションデータ5285(すなわち、アプリケーションによって格納されたコレクションデータ構造)を示す。
【0277】
ヒストグラム生成モジュール5200は、画像(例えば、画像閲覧アプリケーションがインポートしている画像)を受信し、画像の様々な領域の色ヒストグラム、テクスチャヒストグラム、及び形状ヒストグラムを生成し、ヒストグラムを画像とともに記憶する。ヒストグラム生成モジュール5200は、画像タイル化部5205、HSV変換部5210、強度計算部5215、テクスチャ計算部5220、勾配計算部5225、およびヒストグラム生成部5230を含む。
【0278】
図示のように、画像タイル化部5205、HSV変換部5210、および強度計算部5215は、画像データを受信する。画像タイル化部5205は、画像を受信し、画像の寸法を識別し、および画像内の、ヒストグラム生成モジュール5200がヒストグラムを生成する対象の異なる領域の座標(すなわち、画素座標)を計算する。画像タイル化部5205は、ヒストグラム生成部5220にこのタイル座標を渡す。
【0279】
HSV変換部5210は、画像の画素データを受信し、(例えば、RGB空間から)HSV色空間に各画素を変換する。当業者は、異なる実施形態が、RGBからHSVへの変換の異なるバージョンを使用してもよいし、全く異なる色空間を使用してもよいことを認識するであろう。HSV変換部は、ヒストグラム生成部5220に、画像の各画素に対するこの色空間データを渡す。
【0280】
強度計算部5215は、画像の画素データを受信し、画素毎の強度値を算出する。HSV変換部と同様に、異なる実施形態は、RGB画素値から強度を導出するために別の計算を使用することができる。強度計算部5215は、テクスチャ計算部5220と勾配計算部5225とにこの強度データを提供する。
【0281】
テクスチャ計算部5220は、(例えば、上述のテクスチャアルゴリズム、または異なるプロセスを使用して)各画素に対するテクスチャ値を算出し、ヒストグラム生成部5220にこれらの値を提供する。勾配計算部5225は、(例えば、上述した勾配アルゴリズム、または異なるプロセスを使用して)各画素について勾配値を算出し、ヒストグラム生成部5220に勾配値を提供する。
【0282】
ヒストグラム生成部5220は、画像タイル化部5205から受信したタイルの各々のヒストグラムを生成するために色データ、テクスチャ値、および勾配値を用いる。ヒストグラム生成部5220は、例えば、各画素に対するテクスチャ値を受信する。特定の画素のために、ヒストグラム生成部は画素が属する(2つ以上の可能性もある)タイルを画素座標に基づいて識別する。生成部はその後、1つ以上のタイルのためのヒストグラムの適切なビンにテクスチャ値を追加する。ヒストグラム生成部5220は画像について画像データ5280にこれらのヒストグラムを格納する。
【0283】
類似度比較部5250は、ユーザが選択した特定の画像に類似する画像を識別する。図示のように、類似度比較部5250は、比較スコア生成部5255および閾値チェック部5260を含む。ユーザが特定の画像に対する類似画像を要求すると、類似度比較部5250は、コレクションデータ5285から画像のリスト(例えば、特定のコレクション内の画像のリスト)を受信する。類似度比較部5250は、画像のためのヒストグラムを取得し、画像の各ペアに対して1つ以上の比較スコアを算出する。
【0284】
閾値チェック部5260は、比較スコアを受信し、画像の各ペアが類似画像として適格であるかを判定する。閾値チェック部は、上述したように、異なるスコア(いくつかの実施形態では、27個の異なる比較スコアがある)に対して様々な異なるチェックを行うことができる。閾値チェック部5260は、GUIのための特定の画像の選択を管理する画像選択部5275に類似画像のリストを出力する。
【0285】
B.複数の画像のユーザ選択
上述したように、いくつかの実施形態は、選択画像を同時に表示するために複数の画像を選択するための様々な他の方法を提供する。例えば、アプリケーションは、マルチタッチ可能デバイス(すなわち、タッチスクリーン、タッチパッド等との複数の異なる接触点を認識できるデバイス)上で動作し、サムネイル表示領域上のマルチタッチ入力をサムネイルのブロック選択に変換することができる。さらに、いくつかの実施形態では、選択画像のセットにサムネイルを追加するために、ユーザはサムネイルを長押しすることができる。
【0286】
図53は画像表示領域内のサムネイルのブロックを選択するためのいくつかの実施形態のプロセス5300を概念的に示す。いくつかの実施形態において、アプリケーションは、このブロックを選択するために、マルチタッチ選択を受信する。
図53は、サムネイルのこのようなブロックの選択の例を示す
図54および55を参照して説明される。これらの図の両方は上述のGUI内の対応する表示領域と同様のサムネイル表示領域5405と画像表示領域5415とを含むGUI5400の3つの段階を示す。
図54の第1の段階5410と
図55の第1の段階5510との両方は画像が選択されていないGUI5400を示している。
【0287】
図示のように、プロセス5300は(5305で)サムネイル表示領域内に2つの別々で少なくとも一部が同時に起きた選択を受信することによって開始する。アプリケーションは、マルチタッチ入力を変換することができるデバイスのタッチスクリーンから、これらの選択を受けることができる。例えば、ユーザは、サムネイル表示領域における2つの別々のサムネイルを2本の指で押し付けてもよい。ユーザが2本の指でぴったり同時にタッチスクリーンに最初の接触をする可能性は低いので、いくつかの実施形態では、入力が部分的に同時であることのみを必要とする。
【0288】
プロセスはその後(5310で)サムネイル表示領域内の第1のタッチ選択に関連する第1のサムネイルおよび(5315で)第2のタッチ選択に関連する第2のサムネイルを識別する。いくつかの実施形態は、サムネイルが表示領域をスクロールすると変化する、特定の二次元配列に各サムネイルを関連付ける。ユーザがサムネイルグリッド上に画面にタッチすると、このタッチ入力は、画素値のセット(例えば、特定の半径を有する円、特定の辺の長さの正方形など)に変換される。その後、アプリケーションは、ユーザが選択したサムネイルを決定するために、これらの画素値をサムネイルの画素値と比較する。いくつかの実施形態では、タッチ入力画素の最大の部分に対応するサムネイル画像を識別する。
【0289】
図54の第2の段階5420は、ユーザが人差し指で第1のサムネイル5425をタップし、親指で第2のサムネイル5435をタップすることを示す。左上のサムネイルがコレクション内の最初の画像を表していると仮定すると、これらは、順序付けられた画像のコレクションの3番目のサムネイルおよび8番目のサムネイルである。
図55の第2の段階5520において、ユーザは、第1のサムネイル5505(順序付けられたコレクション内の4番目のサムネイル)と、同じ第2のサムネイル5435とをタップする。
【0290】
選択のための境界サムネイルが識別された後に、プロセス5300は(5320で)第1のサムネイルが表示領域において第2のサムネイルよりも前にあるかを判断する。順序はコレクションデータ構造(例えば、サムネイルを格納する画像データ構造への参照の配列インデックス)における順序値から決定されてもよく、またはサムネイルが表示される画面の画素から相対的な順序が導出されてもよい。
【0291】
いくつかの実施形態では、受信した第1の入力を第1のサムネイルとして使用し、受信した第2の入力を第2のサムネイルとして使用する。しかし、適切に選択を定義するために、アプリケーションは、第1のサムネイルが第2のサムネイルの前の順番に来ることを必要とする。このように、第1のサムネイルが第2のサムネイルの後である場合、プロセスは(5325で)第1のサムネイルが前の順番になるように第1のサムネイルと第2のサムネイルとを入れ替える。
【0292】
次に、プロセスは(5330で)グリッド内で第1のサムネイルから第2のサムネイルまでのサムネイルを有するすべての画像を選択する。例えば、
図54では、3番目のサムネイルが第1のサムネイルであり、8番目のサムネイルが第2のサムネイルである。このように、3番目から8番目のサムネイルのすべてが、このユーザの動作によって選択される。同様に、
図55では、4番目から8番目のサムネイルが選択される。
【0293】
プロセスは、その後に、選択サムネイル上に選択インジケータを(5335で)表示する。いくつかの実施形態は、選択サムネイルが二次選択画像(すなわち、いくつかの選択画像のうちの1つ)に対応するか、一次選択画像(すなわち、画像表示領域に示す唯一の画像であるアクティブな画像)に対応するかを示すために2つの異なる形式の選択インジケータを使用する。
【0294】
したがって、プロセス5300はまた、(5340で)、画像表示領域に選択画像を表示する。複数の画像がプロセス5300でブロック状に選択された場合、いくつかの実施形態では、画像表示領域内にすべての画像を必ず表示する。いくつかの実施形態において、アプリケーションは、各画像についてほぼ同数の画素を使用することによって、同じ視覚的重み付けを使用してすべての画像を表示する。理想的な表示を識別するためのいくつかの実施形態のプロセスが、このセクションのサブセクションCで以下に説明される。
【0295】
図54の第3の段階5430および
図55の5530は、それぞれのマルチタッチのブロック選択の結果の表示を示している。段階5430で、サムネイル5425から5435までの6つのサムネイルすべてが薄いハイライトで表示されている。さらに、アプリケーションは、画像表示領域に6つの画像を等しいサイズで表示する。段階5530は1つだけ少なくサムネイルを選択した状態で同じ結果を示している。アプリケーションが画像表示領域5415に5つの画像のみを表示するので、画像のうちの2つは下の行に沿って中央に表示されるが、上の行に沿って表示される他の画像と同じサイズを有する。これら2つの画像から明らかなように、いくつかの実施形態では、サムネイルがサムネイル表示領域に示された順序で(この順序は、画像がコレクションデータ構造に格納されている順序である)、画像表示領域に画像を表示する。
【0296】
マルチタッチのブロック選択に加えて、いくつかの実施形態では、ユーザは、選択画像のグループのうちの1つとしてサムネイルを選択するためにサムネイルを長押しできる。ユーザが単にサムネイルをタップすると、対応する画像が唯一の選択画像となる。一方、ユーザが入力の押しを維持しているとき(例えば、閾値期間、タッチスクリーン上に押し付けると)、アプリケーションは、以前に選択した画像の選択を維持し、選択画像のセットにサムネイルを追加する。
【0297】
図56は、選択されていないサムネイル上のユーザ入力をサムネイルの選択に変換するためのいくつかの実施形態のプロセス5600を概念的に示す。また、ユーザは、(一次選択であっても二次選択であってもよい)すでに選択されたサムネイルをタップ又は長押ししてもよく、これらの入力は、
図66を参照して以下に説明される。さらに、このプロセスはタッチスクリーン入力に対する応答として記載されているが、当業者は、いくつかの実施形態では、非タッチスクリーン入力(例えば、タップの代わりにマウスクリック、およびタッチスクリーン上の長押しの代わりにマウスボタンの長押し)に対して同様のプロセスを実装することを認識するであろう。
図56は、6つの段階5710〜5760にわたってGUI5400における様々な選択入力を示す
図57を参照して説明される。
【0298】
図示のように、プロセス5600は(5605において)、選択されていないサムネイル上に、サムネイル表示領域内のシングルタッチ入力を受信することによって開始する。いくつかの実施形態では、アプリケーションは、サムネイル表示領域上のすべての入力を解決するための単一プロセスを有する。他の実施形態では、アプリケーションは、入力タイプ(例えば、タップ、ホールド、スワイプなど)および画面位置を与える形態でタッチスクリーンデバイスからマルチタッチ情報を受信する。その後、アプリケーションは、実行するアクション(例えば、項目の選択、表示領域のスライド、編集の実行など)に、このイベント(入力と位置)を、現在の状態に基づいて解決する。しかし、この概念的なプロセスは、サムネイル表示領域における選択されていないサムネイルの上へのシングルタッチ入力(すなわち、タップやホールドのいずれか)の受信のみを扱っている。
【0299】
プロセスはその後(5610で)タッチ入力に関連付けられている選択されていないサムネイルを識別する。
図53を参照して上述したように、いくつかの実施形態は、サムネイルが表示領域をスクロールして通ると変化する画面の画素の特定の二次元配列に各サムネイルを関連付ける。ユーザがサムネイルグリッド上で画面にタッチすると、このタッチ入力は、画素値のセット(例えば、特定の半径を有する円、特定の辺の長さを有する正方形など)に変換される。その後、アプリケーションは、ユーザがどのサムネイルを選択したかを決定するために、これらの画素値をサムネイルの画素値と比較する。いくつかの実施形態では、タッチ入力画素の最大の部分に対応するサムネイル画像を識別する。
【0300】
その後、プロセスは(5615において)入力がタッチスクリーンから除去されたかを判定する。この概念的なプロセスでは、タッチスクリーンの特定部分がタッチ入力を受信しているという基本データをタッチスクリーンデバイスがアプリケーションに提供する間に、アプリケーションは、タップとホールドとのどちらであるかの判定を保留する。上述したように、いくつかの実施形態では、タップとホールドとの間の差は、デバイスレベルで(例えば、デバイスのオペレーティングシステム内のフレームワークによって)行われ、アプリケーションはこれらの異なる入力を対処するためのいくつかの異なるイベント駆動型プロセスを実際に有する。
【0301】
入力がまだタッチスクリーンから除去されていないとき、プロセスは入力が閾値期間の間、存在しているかを(5620において)判定する。この期間は、入力がタップではなく長押しとして認められるためにユーザがタッチスクリーンとの接触を維持しなければならない時間の長さである。ホールドの閾値期間にまだ達していない場合、アプリケーションは5615に戻る。本質的に、これら2つの動作はタップ(閾値時間に達する前にユーザがタッチスクリーンから入力を除去したとプロセスが判定した場合)およびホールド(入力がまだ存在するときに期間に達した場合)との間の判定を形成する。上述のように、いくつかの実施形態では、アプリケーションが動作するデバイスのフレームワークからの判定を受信する。
【0302】
閾値期間の前にタッチスクリーンから入力が除去された場合、プロセスは(5625で)識別されたサムネイルを選択し、(5630で)他のサムネイルの選択を除去する。つまり、アプリケーションは識別されたサムネイルを唯一の選択サムネイルとする。その後、プロセスは(5635において)サムネイルに関連付けられた画像を画像表示領域に唯一の画像として表示する。その後、プロセスは終了する。
【0303】
図57の第1の段階5710は、画像表示領域5415に第1の画像が表示され、それに対応するサムネイル5705が一次選択としてハイライトされているGUI5400を示している。図示のように、この段階で、ユーザは、タップ入力でサムネイル5715を選択する。第2の段階5720は、このタップ選択の結果として、アプリケーションは一次選択としてサムネイル5715をハイライトし、サムネイル5705がもはやハイライトされていないことを示している。また、サムネイル5715に対応する画像5717は、これが唯一の選択画像であるため、画像表示領域5415に表示される。
【0304】
図56に戻り、閾値期間の間、サムネイルの上に入力が存在する場合、アプリケーションは、(5640において)識別されたサムネイルを選択する。その後、アプリケーションは(5645で)、サムネイルに関連付けられた画像を、他の選択した画像と一緒に表示する。すなわち、1つ以上の画像が既に選択されていてもよく、アプリケーションはこれらのすべての画像を画像表示領域に表示する。その後、プロセスは終了する。
【0305】
第2の段階5720は、(概念的に、GUIの一部ではない小さな時計アイコンで示される)長押し選択でサムネイル5725を選択するユーザを示す。その結果、第3の段階5730でアプリケーションは画像5717と(サムネイル5725に対応する)画像5727との両方を表示する。さらに、サムネイル5715およびサムネイル5725の両方は、選択されているとしてハイライトされている。しかし、アプリケーションは、これらのサムネイルの両方が二次選択であり、および、現時点では一次選択が存在しないことを示すために、より細い選択指標ハイライトを使用する。以下のサブセクションCで説明するように、2つの画像5717及び5727は、アスペクト比を維持し(すなわち、画像を歪ませることまたはトリミングすることなく)、画像サイズを最大化するような方法で表示されている。
【0306】
第3の段階5730は、ユーザが今度はサムネイル5735上で再び長押し選択を実行することを示している。段階5740において、アプリケーションは、必要に応じて表示領域における他の画像を再配置して、画像表示領域に画像5737を追加する。さらに、サムネイル5735は現在、他の2つのサムネイルと同様に二次選択のハイライトでハイライトされている。
【0307】
さらに、ユーザは、この段階でマルチタッチのブロック選択を行い、サムネイル5745及び5755をタップする。段階5750に示されるように、これは、2つのタップされたサムネイルに加えて、サムネイル5765の選択を引き起こす。結果として、段階5750で、6つのサムネイルが現在、より細い選択指標でハイライトされ、対応する6つの画像が画像表示領域に表示される。同じ視覚的重み付きで表示領域に6つの画像を収めるために、前の段階に比べて、アプリケーションは、これらの画像の大きさを減少している。
【0308】
段階5750で、ユーザは選択されていないサムネイル5775をタップする。段階5760はこの選択の結果を示し、画像5777が画像表示領域に独自に表示される。他の6つのサムネイルの選択は除去され、アプリケーションはサムネイル5775に、より太い選択指標ハイライト表示している。
【0309】
図58は、いくつかの実施形態の携帯電話およびメディアプレーヤGUI1700における選択操作の同様のセットを示す。第1の段階5810はサムネイル5805のタップ選択をユーザが行うことを示し、表示領域1715内の対応する画像の表示をもたらす。第2の段階5820は、対応する画像がその後に画像表示領域に追加されるようにするためのサムネイル5815の長押し選択を示す。次に、ユーザはこれらのサムネイル画像に対応する画像およびそれらの間のサムネイル5845がすべて画面表示領域に追加されるようにするために、サムネイル5825及び5835の同時タップ選択を行う。
【0310】
C.複数の画像を表示
上記のサブセクションは、画像表示領域における同時表示のために複数の画像を選択するための、いくつかの実施形態で使用可能な異なる動作を説明した。簡単に説明したように、画像表示領域に複数の画像を表示する際に、いくつかの実施形態は、各画像のアスペクト比を維持しながら、各画像に同じ視覚的重み(例えば、画面の画素数)を与える。
【0311】
図59は画像表示領域内で同時に複数の画像を表示するためのいくつかの実施形態のプロセス5900を概念的に示す。
図59は、異なるアスペクト比を有する4つの画像を同じ視覚的な重み付けで表示するためのいくつかの実施形態によって実行される計算の概念図である
図60〜
図65を参照して説明される。
【0312】
図示のように、プロセス5900は、画像表示領域に表示するN個の画像を(5905で)受信することから始まる。この場合、Nは、非ゼロの正の整数(すなわち、1、2、3等)である。単一の画像のみがある場合に、いくつかの実施形態では、プロセスはフルサイズで1つの画像を表示する正しい結果を提供するが、プロセス5900を実行しない。これらの画像は、上記のサブセクションで説明したユーザインタラクション(例えば、ブロック選択、類似画像を識別するための要求、または複数の画像の選択および表示をもたらす他の選択)のいずれかを介して受信することができ、本明細書に記載されていない他の任意のインタラクションであってもよい。
【0313】
図60は、4つのサムネイルのブロック選択をユーザが行うGUI6000を示している。GUI6000は、拡大図に4:3のアスペクト比を有するように示されている画像表示領域6005を含む。いくつかの実施形態では、画像表示領域は、GUIが表示されるデバイスの表示画面の解像度及び画面アスペクト比、サムネイルの表示領域のサイズ、他のGUIの領域が画面の一部を占有するか等に応じて、サイズ(すなわち、画素数)及びアスペクト比が変わる。
【0314】
画像表示領域に画像を表示するためのコマンドを受信すると、プロセスは(5910において)受信された画像の平均アスペクト比を算出する。この平均アスペクト比は、画像が収まる先となる画像表示領域内の領域のセットのアスペクト比として使用される。
図61に示すように、4つの選択画像6105〜6120は、4:3、3:4、16:9、および4:3のアスペクト比を有する。画像6105及び6120は同じアスペクト比を有するが、異なるサイズである。多くの場合、特に複数の画像が表示される場合、すべての画像は、利用可能な画面の画素数よりも高い解像度(すなわち、定義された画素数)を有する。したがって、各画像に画面のより小さい部分が割り当てられる。画像6105〜6120の平均アスペクト比は、領域6125によって示されるように、[(4/3)+(3/4)+(16/9)+(4/3)]/4=187/144である。
【0315】
プロセス5900はその後、(5915において)算出された平均アスペクト比を有する少なくともN個の画像のために、画像ごとの画面領域を最大化する行数及び列数に画像表示領域を分割する。表示領域はすべて同じ寸法を有するため、領域に最も効率的に詰める方法は、グリッド形態にすることである。よって、5つの画像がある場合、領域のグリッドは3×2のグリッド、2×3のグリッド、または画像が極端に長くされている場合は1×5または5×1のグリッドであってもよい。
【0316】
最適解を識別するために、いくつかの実施形態では、平均アスペクト比を有する領域当たりの最大可能領域を与える組み合わせを決定するために、N個の画像を保持するために使用可能な行/列の組み合わせの空間をテストする。いくつかの実施形態は、1つの列から始まり、表示する画像の数まで反復する(しかし、いくつかの実施形態では、列数に上限を設ける)。
【0317】
特定の列数に対して、アプリケーションはすべての画像を表示するために必要な行数を決定する。例えば、3つの列と5つの画像との場合、領域の1つが使用されないが、2つの行が必要である。その後、アプリケーションは、閲覧領域の合計の幅を(場合によっては、表示における画像間に少なくとも小さな隙間があることを確保するために定数を減算した)列数で割ったものとして、特定の列数および行数のための最大の大きさの領域の幅を算出する。また、アプリケーションは、閲覧領域の高さの合計を(やはり、場合によっては、定数を減算した)行数で割ったものとして、最大サイズの領域の高さを算出する。アプリケーションはその後、この最大領域内に収まる平均アスペクト比を有する領域の寸法を決定する。使用される列数は、この領域の面積を最大にするものである。
【0318】
図62は、4:3の画像表示領域6005内の187:144のアスペクト比領域6125のための理想的な列数は2であり、そして2行であることを示している。実際には、187:144は4:3に非常に近いため、このグリッドはほぼ領域全体を埋める。
【0319】
次に、アプリケーションは(5920において)、行数および列数に基づいて画像の各々に使用可能な領域を算出する。この算出は、いくつかの実施形態では、前の段落で説明したように、動作5915の行数と列数を決定するために使用される最大サイズの領域である。この例では、この領域は画像表示領域6005内の領域6125の領域である。
【0320】
その後、アプリケーションは(5925で)利用できる領域に収めるときに、最小の面積を有する画像(すなわち、グリッド領域のサイズ)を識別する。これは、一般的に平均アスペクト比から最大限に異なるアスペクト比を有する画像となる。いくつかの実施形態では、この画像を識別するために、アプリケーションは、画像のアスペクト比を維持し、グリッド領域内に画像全体を収めるために、各画像の高さと幅を算出する。平均よりも大きいアスペクト比を有する画像について、幅はグリッド領域に等しく、高さはグリッド領域よりも減らされている。平均よりも小さいアスペクト比を有する画像について、高さはグリッド領域に等しく、幅はグリッド領域よりも減らされている。
【0321】
図63は、グリッド領域6125内の異なるアスペクト比の画像を示す。4:3の画像6105は、グリッド領域の97%を占め(および別の4:3画像6120は、同じ部分を占め)、16:9の画像6115は、グリッド領域の73%を占め、3:4の画像6110はグリッド領域の58%を占める。よって、画像6110は、グリッド領域に収める際の最小の面積を有するものとして識別される。従って、各画像が同じ画素数を使用するために、各画像はグリッド領域の面積の58%を占める。
【0322】
その後、プロセスは(5930において)、アスペクト比を維持し、動作5925で決定された最小の面積を有する画像と同じ面積をグリッド領域内で使用するために、各画像の幅と高さを算出する。特定の画像について、いくつかの実施形態は、最小面積と画像のアスペクト比との積の平方根として幅を計算する。その後、特定の画像の高さは、幅をアスペクト比で割ったものとして算出される。
【0323】
図64は、画像6110と同じ領域を画像表示領域内に占めるように収める際の、画像6105(これは画像6120と同じサイズである)と画像6115の大きさを示している。これらの画像の両方は、領域6125の58%のみを占めるように縮小されている。例示の数値を使用すると、領域6125が374画素の幅と288画素の高さを有する場合、表示用の画像6105のサイズは、約288画素×216画素である。画像6115の大きさは約333画素×187画素になる。
図63に示す画像6110のサイズは、約216画素×288画素である。
【0324】
プロセス5900は(5935で)画像をそれぞれ表示領域における自身の領域に割り当てる。アプリケーションは、いくつかの実施形態では、画像を順番(例えば、コレクション内での順序によって決定されるサムネイル表示領域内での画像の順番)にとり、これをグリッド領域に割り当てる。また、最後の行のグリッド領域の一部が使用されない場合、アプリケーションは、これらのグリッド領域を除去し、一番下の行のグリッド領域を中心に配置する。
【0325】
最後に、プロセスは(5940において)画像表示領域内に画像を割り当てられたサイズで割り当てられた領域に表示する。
図65は、画像表示領域6005内に表示された画像6105〜6120を示している。示されるように、それら各々が同じ画素数を有しているので、(例えば、人間の観察者にとって)画像がすべて同じ大きさに見える。これによって、画像が単に他の画像よりも大きいために、画像の比較でより好ましく見えることがないことという有益な結果が得られる。複数の画像の表示機能の一般的な用途は、ユーザが同じシーンの複数の写真のどれをキープするかを判定することであるから、画像が同じサイズに見えることはユーザに大きなメリットを提供する。
【0326】
V.1つ以上の画像に対する操作
上記セクションIVは、選択画像のグループに対応する画像を追加するために類似する画像のグループを自動的に識別すること、サムネイルのブロック選択、およびサムネイルを長押しすることを含む、1つ以上の画像を選択するためのいくつかの実施形態で使用可能な様々な技術を記載する。次のセクションでは、画像にタグを付けるため、選択範囲内の画像を巡回するため、並びに個々の画像を選択し、選択解除するために使用され得る様々な動作を説明する。
【0327】
A.選択動作と選択解除動作
図66は、画像の選択/選択解除および選択した画像の閲覧に関連するいくつかの実施形態のGUIの異なる状態とこれらの状態間での移行とを説明する状態
図6600を概念的に示す。当業者は、いくつかの実施形態のGUIは、入力イベントのすべての異なるタイプに関連する多くの異なる状態を有することを認識するであろうし、状態
図6600は、これらのイベントの一部に特に注目することを認識するだろう。状態
図6600は、様々な選択動作および選択解除動作を説明する
図67〜
図71を部分的に参照して説明される。状態
図6600、ならびに付随する図面は、GUIの状態を変更するためのタッチインタラクションを説明し、示している。当業者は、カーソルコントローラのジェスチャ、ボタンのクリック、キーボード入力、またはタッチパッド/トラックパッド入力などの、他の様々なインタラクションも、同様の選択操作に使用され得ることを認識するであろう。同図中では、移行条件の多くは、ユーザインタラクション(例えば、「左スワイプ」)として示されている。当業者は、状態移行は画像閲覧および編集アプリケーションによるこのようなユーザ入力の受信に応答して発生することを認識するであろう。
【0328】
1つの画像のみが選択されると、GUIは状態6605にあり、画像表示領域内に単一の選択画像を表示し、対応するサムネイル上に一次選択インジケータを表示する。前のセクションで示したように、いくつかの実施形態は、1つの画像のみが画像表示領域に表示された場合を示すためにサムネイルに一次選択インジケータを使用し、サムネイルが複数の選択画像の1つである場合を示すためにサムネイルに二次選択インジケータを使用する。いくつかの実施形態では、両方の選択インジケータはサムネイルの境界の周りのハイライトであり、一次選択インジケータは二次選択インジケータよりも強いハイライトである。
【0329】
1つの画像を選択した際、ユーザは選択されていないサムネイルをタップすることにより別の画像を選択することができる。ユーザが選択されていないサムネイル(この場合、表示している画像に対応するもの以外のサムネイル)をタップすると、アプリケーションは新たな選択画像としてタップされたサムネイル(およびそれに対応する画像)を設定するために状態6607に移行し、その後、状態6605に戻るように移行する。また、ユーザは、左右のスワイプジェスチャで画像を巡回することができる。アプリケーションが右方向のスワイプジェスチャを受信した場合、図示のように、アプリケーションは新たな選択画像としてコレクション内の前の画像を設定するために状態6608に移行する。同様に、アプリケーションが左方向のスワイプジェスチャを受信した場合、新たな選択画像としてコレクション内の次の画像を設定するために状態6609に移行する。いずれかのそのような変更の後、アプリケーションは状態6605に戻るように移行し、画像表示領域に新しい選択画像が表示される。これらのスワイプジェスチャのいずれかを受信すると、いくつかの実施形態は、以前の選択画像がディスプレイの外へスライドし、新しい選択画像がディスプレイ上に(左方向のジェスチャの場合は右側から、右方向のジェスチャの場合は左側から)スライドすることを表示するためにスライドアニメーションを使用する。他の実施形態は、画像の変化を示すために他のアニメーションを使用するか、またはアニメーションなしに画像表示領域内の画像を単に置き換える。
図33は、コレクション内の画像を巡回するためのこのようなスワイプジェスチャの例を示している。
【0330】
GUIが状態6605であると、ユーザは、画像表示領域に1つ以上の画像を加えることができる。これらは、(例えば、選択されていない画像に類似したすべての画像を表示するためにユーザがその選択されていない画像上をダブルタップした場合に)現在の選択画像を交換したり、または(例えば、ユーザがサムネイル上を長押しした場合に)現在の選択画像に追加したりすることができる。プレビュー表示領域に1つ以上の画像を追加するために、ユーザがこれらの操作のいずれかを行うと、GUIは状態6610に移行し、画像表示領域内に複数の選択画像を表示し、対応するサムネイル上に二次選択インジケータを表示する。このような移行の多数の例が上記セクションに示されている(例えば、
図44、54、55、および57)。
【0331】
(複数の画像が選択および表示された)状態6610になると、ユーザが選択されていないサムネイルをタップした場合、その後GUIは、
図57の段階5750および5760に示すように、タップされたサムネイルを唯一の選択画像として設定するために状態6607に移行し、その後に状態6605に戻る。また、状態6610にある間に、ユーザはサムネイル表示領域内のサムネイルのいずれかを長押しすることができる。特定のサムネイルが以前に選択されたサムネイルの1つである場合に、アプリケーションは、選択サムネイルのセットから特定のサムネイルを削除するために、状態6615に移行する。1つのサムネイルのみが選択したままであれば、GUIはその1つの選択画像だけを表示するために状態6605に移行する。それ以外の場合、GUIは、もはや特定のサムネイルを含まない選択画像を表示するために状態6610に戻るように移行する。さらに、ユーザが画像表示領域内の特定の画像上で下方向のスワイプジェスチャを実行した場合に、これは選択されたセットから特定の画像を除去するのと同じ効果を有する。一方、特定のサムネイルが現在選択されていない場合、前のセクションに示すように、アプリケーションは、現在の選択画像のセットに、サムネイルに対応する画像を追加するために、状態6617に移行し、その後、6610に戻り、画像表示領域に追加の画像が示される。
図57の段階5730と5740は、このような動作を示す。
【0332】
さらに、ユーザが選択サムネイルの1つ又は画像表示領域に表示された画像の1つをタップすると、GUIは状態6610から状態6620に移行する。状態6620で、アプリケーションはプレビュー領域内に単一のアクティブな画像を表示し、それに対応するサムネイル上に一次選択インジケータがあり、その他の選択画像に対応するサムネイル上に二次選択インジケータがある。
図67は、GUI6700の2つの段階6710と6720にわたるこの移行を示している。GUI6700は、サムネイル表示領域6705と画像表示領域6715とを含む。第1の段階6710において、GUIは、画像表示領域6715に3つの画像6725〜6735を表示し、対応するサムネイル6740〜6750サがムネイル表示領域6705でハイライトされる。
【0333】
また、第1の段階6710において、ユーザは画像6730をタップする。第2の段階6720は、このインタラクションの結果を示し、画像6730は画像表示領域6715の全体を占める。さらに、画像6730に対応するサムネイル6745は、現時点でサムネイル6740と6750よりも強いハイライトで囲まれている。いくつかの実施形態は、この移行をアニメーション化する。例えば、いくつかの実施形態において、アプリケーションは、画像が少なくとも一方向に、表示された複数の画像の中の位置から画像表示領域の全体を使用する大きな画像になるように拡大することを表示する。さらに、
図67の第2の段階6720は、画像表示領域のほぼ全体を占める画像6730を示しているが、いくつかの実施形態では、アプリケーションは、一次表示画像の背後にある他の選択画像の色あせた、暗いバージョンを表示する。(例えば、画像と表示領域のアスペクト比の違いにより)一次表示画像が画像表示領域の一部を占有しない場合に、他の選択画像(の色あせた、暗い形態)の一部がディスプレイで可視である。
【0334】
以下の説明では、一次選択画像はアクティブ画像と呼ばれ、選択範囲内のすべての画像は、一次選択であるか二次選択の1つであるかに関わらず選択されたものと呼ばれる。GUIが状態6620にあると、(例えば、セットのベストを識別するために様々な写真を比較する場合に)ユーザは画像を巡回するためにさまざまな操作を行うことができる。アプリケーションは、図示のように、画像表示領域上に右スワイプジェスチャを受信すると、GUIは、コレクションの順序における以前の選択画像を新しいアクティブ画像として設定するために状態6625に移行し、その後新しいアクティブ画像を表示するために状態6620に戻るように移行する。いくつかの実施形態は、この移行をアニメーション化し、例えば、新しいアクティブ画像をより大きな表示に拡大しながら以前のアクティブ画像を画像表示領域内での位置(すなわち、すべての選択画像を一度に表示する場合に当該画像が占める場所)に戻るように最小化する。
【0335】
他の実施形態は、スライドアニメーションの様々な形態を使用する。いくつかの実施形態では、アプリケーションは、以前のアクティブ画像をディスプレイの外にスライドさせながら、ディスプレイ上に、この新しいアクティブ画像をスライドする。他の実施形態では、以前の画像が外へスライドすると画像のより多くが見えてくるように、新しいアクティブ画像は以前のアクティブ画像の下にあるように見える。さらなる実施形態は、古いアクティブ画像の上に新しいアクティブ画像をディスプレイでスライドさせる。いくつかの実施形態では、アプリケーションがこの移行をどのように表示するかの選択は、ユーザに任されている。
【0336】
図68は、5つの段階6810〜6850にわたってユーザインタフェース6700におけるこのような一連の右方向のスワイプジェスチャを示している。第1の段階6810は、
図67の段階6720と同じ状態のGUI6700を示している。図示のように、ユーザは、1つの指でタッチスクリーンに接触し始めている。次の段階6820で、ユーザは、画像6730を画面の右側から外にスライドさせ、下にある画像6725を見せるように、右に指をスイープし始めている。このスワイプジェスチャの結果が段階6830で示され、現時点で画像表示領域6715に画像6725が表示されている。さらに、対応するサムネイル6740は現時点で、一次選択を示す太いハイライトで囲まれ、他の選択サムネイルは細いハイライトで囲まれている。
【0337】
また、この段階で、ユーザは再度タッチスクリーンに接触し、第4の段階6840は、ユーザが右に別のスワイプジェスチャを行うことを示している。これは、画面の右側から外へ画像6725をスライドさせ、下の画像6735を見えるようにする。このスワイプジェスチャの結果が段階6850で示され、現時点で画像表示領域6715に画像6735が表示されている。さらに、現時点で、対応するサムネイル6750が一次選択インジケータの太いハイライトで囲まれ、他の選択サムネイルが細いハイライトで囲まれている。
【0338】
右スワイプジェスチャと同様に、アプリケーションが状態6620にあり、画像表示領域上で左スワイプジェスチャを受信したときに、GUIはコレクション順序内の次の選択画像を新しいアクティブ画像として設定するために状態6630に移行し、その後新しいアクティブ画像を表示するために状態6620に戻って移行する。いくつかの実施形態は、この移行をアニメーション化する、例えば、新しいアクティブ画像を大きな表示に拡大しながら、以前のアクティブ画像を画像表示領域内での位置(すなわち、すべての選択画像が一度に表示される場合に画像が占める場所)に戻るように最小化する。
【0339】
他の実施形態は、スライドアニメーションの様々な形態を使用する。いくつかの実施形態では、アプリケーションは、以前のアクティブ画像をディスプレイの外にスライドさせながら、ディスプレイ上に、この新しいアクティブ画像をスライドする。他の実施形態では、以前の画像が外へスライドすると画像のより多くが見えてくるように、新しいアクティブ画像は以前のアクティブ画像の下にあるように見える。さらなる実施形態は、古いアクティブ画像の上に新しいアクティブ画像をディスプレイでスライドさせる。いくつかの実施形態では、アプリケーションがこの画像の巡回をどのように表示するかの選択は、ユーザに任されている。
【0340】
図69は、3つの段階6910〜6930にわたってGUI6700におけるこのような左方向のスワイプジェスチャを示している。第1の段階6910は
図68の段階6850と同じ状態であるGUI6700を示しており、アクティブ画像として画像6735が画像表示領域にあり、対応するサムネイル6750が太いハイライトで選択されている。図示のように、ユーザは、1つの指でタッチスクリーンに接触し始めている。次の段階6920で、ユーザは、画像6735を画面の左側から外へスライドさせ、下の画像6725が見えるようにさせるように、左に指をスイープし始めている。このスワイプジェスチャの結果が段階6930に示され、現段階で画像表示領域6715に画像6725が表示されている。さらに、現段階で、対応するサムネイル6740が一次選択を示す太いハイライトで囲まれ、他の選択サムネイルが細いハイライトで囲まれている。
【0341】
これらの図面が示すように、いくつかの実施形態ではアプリケーションは、選択画像のセットをユーザが巡回することを可能にし、この巡回はユーザがセットの終わりに到達すると一方向のスワイプジェスチャを防ぐのではなく、セット内の最後の画像からセット内の最初の画像にスワイプをすることを含む。
【0342】
ユーザの右および左へのスワイプに応じて選択画像のセットを巡回することに加えて、いくつかの実施形態ではまた、ユーザはスワイプジェスチャを介してセットから画像を削除することができる。状態
図6600に示すように、アプリケーションが状態6620にある間に下方向のスワイプジェスチャを受信すると、GUIは選択画像のセットからアクティブ画像を削除し、選択画像のセット内の次の画像を新しいアクティブ画像として設定するために状態6635に移行する。左右のスワイプジェスチャとほぼ同様に、いくつかの実施形態では、アプリケーションは移行をアニメーション化する。例えば、より大きな表示に新しいアクティブ画像を拡大しながら、以前のアクティブ画像を最小化する。
【0343】
他の実施形態は、スライドアニメーションの様々な形態を使用する。いくつかの実施形態では、アプリケーションは、以前のアクティブ画像をディスプレイの底にスライドさせながら、ディスプレイ上に、この新しいアクティブ画像をスライドする。他の実施形態では、以前の画像が外へスライドすると画像のより多くが見えてくるように、新しいアクティブ画像は以前のアクティブ画像の下にあるように見える。さらなる実施形態は、古いアクティブ画像の上に新しいアクティブ画像をディスプレイでスライドさせる。いくつかの実施形態では、アプリケーションがこの移行をどのように表示するかの選択は、ユーザに任されている。
【0344】
選択画像のセットに2つだけの画像があったときは、下スワイプは1つの選択画像のみを残し、その場合は、GUIは状態6605へ戻るように移行し、単一の選択画像が画像表示領域に表示される。一方、アクティブ画像を削除した後に少なくとも2つの画像が選択されて残っているときに、GUIは状態6620に戻り、セットの次の画像がアクティブ画像として設定される。選択画像について、いくつかのアプリケーションの実施形態は、それらの画像表示領域での大きさと位置を再計算し、アクティブ画像の背後にある新しい位置にアクティブでない選択画像の色あせた暗いバージョンを表示する。
【0345】
図70は、3つの段階7010〜7030にわたってユーザインタフェース6700におけるこのような下向きのスワイプジェスチャを示している。第1の段階7010は、前の図の段階6930と同じ状態でGUI6700を示し、画像表示領域にアクティブ画像として画像6725が表示され、それに対応するサムネイル6740が太いハイライトで選択されている。図示のように、ユーザは、1つの指でタッチスクリーンに接触し始めている。次の段階7020で、ユーザは、画像6725を画面の下から外へスライドさせ、下の画像6730を見えるようにさせるように、指を下方向にスイープし始めている。このスワイプジェスチャの結果は段階7030で示され、現時点で画像表示領域6715に画像6730が表示されている。さらに、対応するサムネイル6745は現時点で一次選択を示す太いハイライトで囲まれ、サムネイル6740は選択解除されているため、もはやハイライト表示されていない。
【0346】
いくつかの実施形態では、図示のように、ユーザがアクティブ画像のサムネイルを長押しすることは、選択画像のセットからアクティブ画像を削除し、セット内の次の画像をアクティブ画像として設定するためにGUIを状態6635に移行させるという同じ効果を有する。加えて、ユーザが選択してあるがアクティブでないサムネイルを長押しすると(すなわち、対応する画像は表示されている画像ではない)、選択画像のセットから対応する画像を削除するためにアプリケーションは状態6640へ移行する。段階6635のように、アプリケーションは状態6605へ移行する(アクティブ画像のみが選択されたままである場合)か、または状態6620に戻る(複数の画像が選択されたままである場合)。アプリケーションが状態6620に戻るように移行する際、アプリケーションのいくつかの実施形態は選択されたままの画像の画像表示領域内のサイズと位置を再計算し、アクティブでない選択画像の色あせた暗いバージョンを、アクティブ画像の背後にある新しい位置に表示する。
【0347】
加えて、ユーザが選択されていないサムネイルを長押しすると、対応する画像を選択画像のセットに追加するために、アプリケーションは状態6617に移行する。図示のように、いくつかの実施形態はまた、ユーザがセットに新しい画像を追加すると、状態6610に戻るように移行する。一方、いくつかの実施形態は、画像を選択するが、アクティブ画像のビューア全体の表示を維持する。
【0348】
図66に示すように、GUIが状態6620にある場合、ユーザが選択されていないサムネイルをタップすると、アプリケーションは他のすべての画像の選択を解除し、(タップされたサムネイルに対応する)新たに選択した画像を唯一の選択画像として設定するために状態6607に移行する。その後、アプリケーションは、新たに選択された画像を画像表示領域内に表示するために状態6605へ戻るように移行する。ユーザがアクティブサムネイルをタップすると、これは、画像表示領域に選択画像の全てが表示される状態6610にGUIを移行させ、タップされたサムネイルに対応する画像からアクティブの指定を除去する。最後に、いくつかの実施形態は、ユーザがアクティブでない画像のいずれかに対応する選択サムネイルをタップすることにより、セット内の異なる画像間でアクティブ画面を切り替えることを可能にする。図に示すように、ユーザが選択されているがアクティブでないサムネイルをタップしたとき、アプリケーションは、タップされたサムネイルに対応する画像を新しいアクティブ画像として設定するために状態6645に移行し、その後状態6620に戻るように移行する。
【0349】
図71は、4つの段階7110〜7140にわたってGUI6700における選択サムネイルをタップするユーザの例を示す。第1の段階7110は、
図67の第1の段階6710と同じ状態でGUI6700を示し、3つの画像6725〜6735がすべて画像表示領域に表示され、それらに対応するサムネイル6740〜6750はより明るいハイライトで選択されている。
【0350】
また、この段階7110で、ユーザは、サムネイル6740上でタッチスクリーンをタップする。第2の段階7120は、このインタラクションの結果を示し、対応する画像6725は現時点で画像表示領域6715の全体を占有しているアクティブ画像である。加えて、ユーザがタップしたサムネイル6740は現時点で他の選択サムネイルよりも太いハイライトで囲まれているように表示されている。
【0351】
この段階7120で、ユーザはサムネイル6745上でタッチスクリーンをタップする。第3の段階7130は、このインタラクションの結果を示し、対応する画像6730は現時点で画像表示領域6715の全体を占有するアクティブ画像である。さらに、ユーザがタップしたサムネイル6745は、現時点でより太いハイライトで囲まれているように表示されている。これらの段階は、GUIが状態6610にあるか状態6620にあるかを示し、選択されているがアクティブではないサムネイルをタップすると、対応する画像がアクティブ画像になる。
【0352】
また、段階7130において、ユーザが再びアクティブ画像のサムネイル6745をタップする。このインタラクションの結果が段階7140に示され、アプリケーションは再びすべての3つの画像6725〜6735をアクティブ画像なしに表示し、従ってサムネイルのいずれに関しても一次選択インジケータはない。この2つの段階は状態6620から状態6610への移行を示し、一度に複数の画像が表示される。
【0353】
B.画像のタグ付け
上記のセクションでは、いくつかの実施形態の画像閲覧アプリケーションで1つ以上の画像に実行される様々な選択および選択解除の動作について説明している。状態
図6600は、3つの一次選択状態6605、6610、および6620を含んでいた。いくつかの実施形態では、アプリケーションが、ユーザが選択したタグを適用する画像は、ユーザがタグを選択したときにGUIがこれらの3つの状態のうちどれであったかに依存する。
図72は、これらの3つの異なる状態でのタグの適用に関するいくつかの実施形態のGUIの状態図を示す。
図72は、1つ以上の画像への異なるタグの適用を示す
図73〜
図77を参照して説明される。
【0354】
図示のように、状態図は状態6605(1つの画像だけが選択されている)、状態6610(複数の画像が選択され表示されている)、および状態6620(複数の画像が選択され、アクティブ画像のみが表示されている)だけでなく、これらの状態間の移行(
図66を参照して上に説明されている)を示している。また、
図72は、これらの3つの異なる状態でタグUI項目が選択された結果の状態を示している。
図14を参照して上述したように、いくつかの実施形態は、1つ以上の画像に異なるタグを適用するためのGUI項目のセットを含む。これらのタグはお気に入りタグ(すなわち、ユーザが特に好きな画像を示すため)、フラグ(すなわち、ユーザが後でもう一度確認したい画像を示すため)、および非表示タグ(すなわち、サムネイル表示領域に示される画像のセットから不要な画像を除去するため)を含む。これらのタグは、いくつかの実施形態では、タグ付けされた画像のためのデータ構造で格納され、そのタグを有する画像のための特定のアルバムに追加するために使用することができる。
【0355】
図66に示すように、GUIが状態6605にあり、ユーザが画像に適用するタグを選択すると、GUIは唯一の現在の選択画像に、選択したタグを適用するために状態7205に移行する。その後GUIは状態6605に戻って移行する。いくつかの実施形態では、タグが画像非表示タグである場合、GUIはまた、ディスプレイから画像を削除し、コレクション内の次の画像を選択および表示のために選択する。他の実施形態は、ディスプレイから非表示画像をすぐに削除しないで、代わりにユーザがまず別の画像を閲覧するのを待つ。
【0356】
GUIが状態6610にあり、ユーザが適用するタグを選択すると、GUIは、現在の選択画像のすべてに、選択したタグを適用するために状態7210に移行する。その後、GUIは状態6610に戻って移行する。最後に、GUIが状態6620にあり、ユーザが適用するタグを選択すると、GUIは、現在の選択画像のすべてではなく、アクティブ画像にのみ選択されたタグを適用するために状態7220に移行する。その後GUIは状態6620に戻って移行する。
【0357】
図73〜
図78はいくつかの実施形態の画像閲覧アプリケーション内の画像への様々なタグの適用を示す。
図73は、GUI7300の4つの段階7310〜7300にわたって画像非表示タグの適用を示している。GUI7300は、画像表示領域7305と画像表示領域7315の他に、GUI項目の様々なセットを含む。これらのGUI項目は、フラグボタン7325、お気に入りボタン7332、および画像非表示ボタン7335を含む。
【0358】
第1の段階7310において、画像表示領域7315に画像7342が表示され、対応するサムネイル7345が選択される。この段階では、ユーザは画像非表示ボタン7335を選択し、よってボタンがハイライトされる。いくつかの実施形態では、アプリケーションは画像への非表示タグの適用をアニメーション化する。第2の段階7320は、画像表示領域内の画像への画像非表示タグの適用を示すために、いくつかの実施形態で使用されるアニメーションを示す。画像非表示アイコン7350(X)は、画像から出てくるように、そして画像の中へ戻るように(すなわち、画像の特性となるように)示されている。
【0359】
第3の段階7330は、アプリケーションが非表示画像7342に対応するサムネイル7345を、サムネイル上に重畳される非表示アイコン7355(X)でマークしていることを示している。また、この段階では、ユーザは、異なるサムネイル7360を選択する。第4の段階7340は、サムネイル7360に対応する画像が現時点で表示されていることを示している。さらに、アプリケーションは、サムネイル表示領域7305から非表示画像のサムネイル7345を削除し、それに応じて表示領域におけるサムネイルを再配置している。図示のように、いくつかの実施形態では、アプリケーションは、ユーザが別のサムネイルに移動するまで、表示されたサムネイルのセットから非表示サムネイルを除去することを待機する。
【0360】
図74は、GUI7400の4つの段階7410〜7440にわたってフラグ画像タグの適用を示している。GUI7400はGUI7300と同じ機能、すなわちサムネイル表示領域7405、画像表示領域7415、およびフラグボタン7425を含む様々なGUI項目を含む。また、GUIは、現在選択されているコレクション内の15個の画像のいずれもタグ付けされていないことを現時点で示しているタグフィルタリングボタン7435を含んでいる。このボタン7435は、いくつかの実施形態では、アプリケーションがコレクション内のどの画像をサムネイル表示領域に提示するべきかを識別するために使用される。現時点では、(サムネイル7445〜7455に対応する)3つの画像が選択されているが、選択画像の1つのみ(画像7460)が画像表示領域に表示されている。
【0361】
第1の段階7410で、ユーザがフラグボタン7425を選択することにより、ボタンがハイライト表示される。いくつかの実施形態では、アプリケーションは画像へのフラグ画像タグの適用をアニメーション化する。さらに、
図66を参照することにより上記に示したように、複数の画像が選択され、選択画像のいずれかがアクティブである場合、アプリケーションは、アクティブ画像(ここでは、画像7460)のみにタグを適用する。
【0362】
第2の段階7420および第3の段階7430は、画像表示領域内の画像にフラグ付きタグを適用することを示すためにいくつかの実施形態で使用されるアニメーションを示す。フラグアイコン7465は、アクティブ画像から出てきて、その後画像に戻るように(すなわち、画像の特性になるように)示されている。
【0363】
第4の段階7440において、アプリケーションはこの画像にフラグが付けられていることを示すために、サムネイル7445上に小さなフラグアイコン7470を表示する。サムネイル表示領域にサムネイルを表示する際に、いくつかの実施形態は、画像が何らかのタグを有するかを判定するために、コレクション内の画像に対する画像データ構造をチェックする。フラグ付きタグが画像に存在している場合、アプリケーションは、画像のサムネイル上にフラグを表示する。フラグボタン7425は、現在のアクティブ画像にフラグが付いていることを示すためにハイライトされたままである。いくつかの実施形態では、ユーザはこの状態のときにアクティブ画像からフラグを消すために、フラグボタンを選択することができる。また、この段階では、タグフィルタリングボタン7435は、コレクション内の15個の画像の1つにフラグが設定されていることを示している。
【0364】
図75は、GUI7400の4つの段階7510〜7540にわたって複数の画像へのフラグ画像タグの適用を示している。示されているように、第1の段階7510において、フラグアイコン7470は、サムネイル7445上に表示されている。しかし、画像表示領域は、3つの選択画像7505、7515、及び7525を表示し、これらの画像に対応するサムネイルが選択されている。この段階で、ユーザはフラグボタン7425を選択する。
図66を参照して上述したように、複数の画像が画像表示領域に表示されている場合、アプリケーションは、これらの選択画像のすべてにタグを適用する。いくつかの実施形態では、アプリケーションは画像へのフラグ画像タグの適用をアニメーション化する。
【0365】
第2の段階7520および第3の段階7530は、画像表示領域内の画像へのフラグ画像タグの適用を示すための、いくつかの実施形態のアニメーションを示す。アプリケーションは、フラグ画像タグの複数のインスタンスを表示し、1つのインスタンスは、表示されたそれぞれの画像から出てきて、その後画像に戻るように(すなわち、画像の特性になるように)表示される。
【0366】
第4の段階7540で、アプリケーションは画像7505、7515、および7525にフラグが付いていることを示すために、サムネイル7535、7450、および7455のそれぞれの上に小さなフラグアイコン7570を表示している。フラグボタン7425は、現在表示されている画像のすべてにフラグが付いていることを示すためにハイライトされたままである。また、タグフィルタリングボタン7435は現時点で、コレクション内の15個の画像のうち4つにフラグタグが適用されていることを示す。
【0367】
図76は、GUI7600の3つの段階7610〜7630にわたってタグフィルタリングボタン7435の使用を示している。第1の段階7610で、ボタン7435は、15個の画像のうち4つにフラグが付けられていることを示し、アプリケーションは、4つのサムネイル7445、7535、7450および7455の上にフラグアイコンを表示する。現時点で、画像表示領域にフラグが付いていない画像7605が表示され、従ってアプリケーションはフラグボタン7425をハイライト表示しない。第1の段階7610において、ユーザはボタン7435をタップする。
【0368】
第2の段階7620に示されるように、これは、メニュー7615を表示させる。このメニューは、ユーザが画像に適用されたタグに基づいて、選択したコレクション内の画像の異なるセット間で選択をすることを可能にする。示されているように、オプションは、「すべての写真」(いくつかの実施形態では、非表示写真を含まない)、「フラグ付き写真」、「編集済写真」、「非表示写真」、および「すべておよび非表示写真」である。フラグ付き写真、編集済写真、そして非表示写真のオプションは、これらのタグを有する画像のみを表示させる一方、すべておよび非表示写真のオプションは非表示写真をコレクション内の残りとともに表示可能にする。
【0369】
第2の段階7620では、ユーザが「フラグ付き写真」オプションを選択する。第3の段階7630は、この選択の結果を示し、アプリケーションは、フラグ付き画像としてサムネイル7445、7535、7450、および7455のみを表示している。基本的に、アプリケーションは、コレクション内の画像にフィルタを適用し、フラグ付きタグが付いている画像だけがフィルタを通る。また、アプリケーションは現時点で、画像表示領域に、タグ付き画像の1つである画像7460を表示する。
【0370】
図77は、
図73を参照して前述した、GUI7300の4つの段階7710〜7740にわたって画像へのお気に入りタグの適用を示している。この場合、画像7705は、2つの選択画像の1つとしてアクティブである。第1の段階7710で、ユーザはお気に入りボタン7332を選択し、それによりボタンがハイライトされる。いくつかの実施形態では、アプリケーションは画像にお気に入りタグを適用することをアニメーション化する。さらに、
図66を参照して示されるように、(この図の場合のように)複数の画像が選択され、選択画像のいずれかがアクティブである場合、アプリケーションは、アクティブ画像のみにタグを適用する。
【0371】
第2の段落7720および第3の段階7730は、画像表示領域内の画像にお気に入りタグを適用することを示すためにいくつかの実施形態で使用されるアニメーションを示す。お気に入りアイコン7715は、アクティブ画像から出てきて、その後画像に戻るように(すなわち、画像の特性になるように)示されている。
【0372】
第4の段階7740で、お気に入りのボタン7332は、アクティブ画像がお気に入りであることを示すためにハイライトされたままである。フラグ付き画像タグと同様に、ユーザはこの状態にある場合、アクティブ画像からお気に入りタグを除去するためにお気に入りボタンを選択することができる。いくつかの実施形態において、(この図に示すように)アプリケーションはどの画像がお気に入りであるかを示すためにサムネイル上にアイコンを表示することをしない。しかし、後述するように、アプリケーションは、お気に入りの画像の別のコレクションを保持し、このコレクションにお気に入りタグでタグ付けされた画像を追加する。
【0373】
いくつかの実施形態では、アプリケーションは、お気に入りタグと画像非表示タグとの両方で画像がタグ付けされることを防ぐ。ユーザが非表示としてタグ付けされた画像に対してお気に入りボタンを選択すると、アプリケーションは、画像非表示タグを除去しながら、お気に入りタグを適用する。同様に、ユーザがお気に入り画像を非表示にしたときに、アプリケーションは、画像からお気に入りタグを削除する。
【0374】
図78は、GUI7800の4つの段階7810〜7840にわたって複数の画像にお気に入りタグを適用することを示している。図示のように、第1の段階7810において、アプリケーションは、画像表示領域内に画像7805、7815、及び7825を表示し、対応するサムネイル画像が選択される。この段階で、ユーザはお気に入りボタン7332を選択する。
図66を参照して上述したように、複数の画像が画像表示領域に表示されるときに、アプリケーションは、これらの選択画像のすべてにタグを適用する。いくつかの実施形態では、アプリケーションは画像にお気に入り画像タグの適用することをアニメーション化する。
【0375】
第2の段階7820及び第3の段階7830は、画像表示領域内の画像へのお気に入りタグの適用を示すために、いくつかの実施形態のアニメーションを示す。アプリケーションは、お気に入りタグの複数のインスタンスを表示し、1つのインスタンスは表示された各画像から出てきて、その後画像に戻るように(すなわち、画像の特性になるように)示される。第4の段階7340において、お気に入りボタン7332は、選択画像がお気に入りとしてマークされていることを示すためにハイライトされたままになっている。上記の図のように、サムネイル表示はお気に入りタグには影響されない。
【0376】
お気に入りタグを参照して述べたように、いくつかの実施形態は、アプリケーションが画像に適用できるタグの一部またはすべてに対して個別のコレクションを作成する。他の実施形態では、お気に入りコレクションのみが作成され、他の実施形態は、お気に入り画像、フラグ付き画像、非表示画像、および編集済画像、またはそれらの任意の組み合わせのためにコレクションを作成する。
【0377】
図79は、画像に適用するタグを受信すると、いくつかの実施形態のアプリケーションによって実行されるプロセス7900を概念的に示している。図示のように、プロセス7900は(7905で)1つ以上の画像に適用するタグの選択を受信することによって開始する。いくつかの実施形態では、タグの選択は、(例えば、画像にフラグを付けるため、画像を非表示にするため、またはお気に入り画像として画像をマークするために)ユーザがタグ付けボタンのいずれかを選択することによって、または以前に編集されていない画像を編集することによって発生してもよい。
【0378】
プロセスはその後、画像のためのデータ構造に(7910で)選択したタグを追加する。上の
図15に示すように、いくつかの実施形態のアプリケーションによって格納された画像のためのデータ構造は、画像に適用されるタグのフィールドを含む。いくつかの実施形態において、タグを適用するために、アプリケーションは特定のタグに対する変数の値を0から1に切り替える。
【0379】
その後、プロセスは(7915において)選択されたタグを有する画像のコレクションが既に存在するかを判定する。いくつかの実施形態において、アプリケーションは空のコレクションを作成せず、従って、例えば、少なくとも1つの画像がお気に入りとしてマークされるまで、お気に入りのアルバムは存在しない。しかしながら、他の実施形態は、アプリケーションが少なくとも1つの画像を有するか、空であるかにかかわらず、それぞれの可能なタグに対するコレクションを常に格納する。
【0380】
選択したタグのコレクションが既に存在する場合に、プロセスは特定のタグを有する画像の既存のコレクションに、新たにタグ付けされた画像を(7920で)追加する。いくつかの実施形態では、画像は、コレクションの画像の順序付けられたシリーズの末尾においてコレクションに追加される。他の実施形態では、アプリケーションは、画像の全体的な順序(例えば、すべての画像のコレクション内の順序)を格納し、この順序はタグ付き画像のコレクション内に維持される。
【0381】
一方、特定のタグに対するコレクションがまだ存在しないときに、プロセス7900は(7925で)タグ付き画像のための新しいコレクションを作成する。プロセスはその後、新しいコレクションに(7930で)新たにタグ付けされた画像を追加する。いくつかの実施形態において、アプリケーションは、「お気に入り」のような名前で、特定のタグのための新しいコレクションデータ構造を作成する。その後、アプリケーションは、新しく作成されたデータ構造に、新たにタグ付けされた画像のための画像データ構造への参照を追加する。いくつかの実施形態では、タグ付けされた画像の異なるコレクションはアルバムとして現れる。
【0382】
図80は、GUI7300の3つの段階8010〜8030にわたってアルバムからお気に入り画像のコレクションへのユーザの移動を示している。第1の段階8010において、アプリケーションは、ハイライトされたお気に入りボタン7735によって示されるように、お気に入りタグが適用された画像7705を表示している。また、この段階で、ユーザは戻るボタン8005を選択する。
【0383】
その結果、第2の段階8020は、現時点で、アプリケーションがコレクション整理GUI8000を表示し、アルバムタブ8015がハイライトされていることを示す。アプリケーションは、現時点で2つのアルバム、「アルバム1」およびお気に入りアルバムを格納している。図示のように、ユーザは、この段階でお気に入りアルバムを選択する。第3の段階8030において、選択したコレクションがお気に入りになっているGUI7300を示している。4つの画像のみがお気に入りとしてマークされているため、コレクションはこれらの4つの画像のみを含む。いくつかの実施形態では、ユーザがお気に入りアルバムを閲覧し、画像を選択し、そして(ハイライトされている)お気に入りボタンを選択すると、アプリケーションは選択画像からお気に入りタグを削除するだけでなく、お気に入りコレクションから画像を削除し、(特定のコレクションのための画像非表示タグのようにタグが機能するように)もはや画像を表示しないようになる。
【0384】
C.画像情報の閲覧
いくつかの実施形態で、ユーザは、1つ以上の画像に関する情報を閲覧することを希望する可能性がある。いくつかの実施形態は、GUI項目を提供し(またはキーボードショートカット、メニューオプションなどを提供し)、その選択は、画像についての情報を画像閲覧アプリケーションに提示させる。いくつかの実施形態において、アプリケーションは、画像のデータ構造にこの情報を格納するか、または表示される情報にアクセスするためにデータ構造からの情報を使用する。複数の画像が選択され、画像表示領域に表示される場合、いくつかの実施形態は、各選択画像に個別の情報を表示し、他の実施形態は、選択画像の全てに共通する情報のみを表示する。
【0385】
図81は、本発明のいくつかの実施形態による3つの段階8110〜8130にわたって画像8105のGUI7300におけるそのようの情報へのアクセスを示している。図示のように、第1の段階8110において、アプリケーションは、現時点で画像8105を表示している。第2の段階8120において、ユーザは、情報ボタン8115を選択する。
【0386】
第3の段階8130は、ユーザが情報ボタン8115を選択したときに現れる情報ウィンドウ8125を示している。示されているように、ウィンドウ8125は、3つのタブ、すなわち情報タブ、マップタブ、およびコメントタブを有する。情報タブは、主にExifデータを使用して、選択画像の情報を表示する。画像がGPSデータを有する場合、ユーザは、画像が撮像された場所を示す地図を閲覧するためにマップタブを選択することができる。いくつかの実施形態において、アプリケーションは、地図データのデータベースにアクセスするためにGPSデータを使用し、GPS位置の周辺の地図データの特定領域をダウンロードする。このデータベースは、アプリケーションを実行しているデバイスに対するローカルデータベースであってもよいし、インターネットなどのネットワークを介してアクセスするリモートデータベースであってもよい。コメントタブは、セクションVIで後述するように、画像がソーシャルメディアや写真共有サイトにアップロードされた場合に、画像に関する他人のコメントを閲覧するため、および共有画像上にコメントを追加するために使用できる。
【0387】
いくつかの実施形態のアプリケーションは、情報タブ内に、画像を撮像したデバイス(キヤノンEOS−1DsMarkIII)、画像データを格納するために使用されたファイルタイプ(JPEG)、画像の解像度(3072×4608)とファイルサイズ(2.6MB)、画像が撮像された時刻と日付(2012年3月4日、12:10:17PM)、および画像が撮像された位置(ジョシュアツリー国立公園)を表示する。いくつかの実施形態では、位置はGPSデータに基づいて自動的に解決されるが、他の実施形態では、ユーザがこのデータを入力する。ウィンドウ8125の下部に、アプリケーションは、開口(f/5.6)、シャッター速度(1/200)、焦点距離(180mm)、露光(0.7EV)、およびフィルム速度(ISO200)を含むカメラ設定情報を表示する。
【0388】
図82は、本発明のいくつかの実施形態に係る3つの段階8210〜8230にわたってGUI7300内の画像8205の情報にアクセスするユーザを示している。画像表示領域内の異なる画像8205を除いて、最初の2つの段階8210と8220は上記
図81に示されるものと同じである。第3の段階において、情報ウィンドウ8125は、画像8105とは情報の一部が異なるため、情報について異なる値を表示する。例えば、タイムスタンプ(3:15:57PM)は、同日のより遅い時間であり、ファイルサイズならびにカメラの設定の一部が異なっている。
【0389】
図83は、GUI7300の3つの段階8310〜8330にわたって画像8105と8205の両方で情報ウィンドウの選択を示している。また、図の最初の2つの段階は、この場合、アプリケーションが画像表示領域内に画像8105および8205の両方を表示することを除いて、前の2つの図と同様である。第3の段階8330において、情報ウィンドウ8125は、選択画像のすべてに共通する情報のみを表示する。この場合、画像は両方とも14.2MPのJPEGファイルであるが、異なるファイルサイズを有する(したがって図示されていない)。さらに、両方の画像のGPSデータはジョシュアツリー国立公園に解決し、タイムスタンプが異なっているが、両方の画像は(異なる時刻で)3月4日に撮像された。画像設定では、シャッター速度、焦点距離、およびフィルム速度の設定は、2つの画像に同じであったが、撮影者が開口部および露光補正に関して2つの画像間に異なる設定をしていたので、アプリケーションは、この情報を表示しない。
【0390】
VI.画像の共有
前のセクションで簡単に述べたように、いくつかの実施形態は、サイト上のユーザのアカウントを介して画像をソーシャルメディアや写真共有サイトにアップロードすることにより、ユーザは画像編集、閲覧、および整理アプリケーションから画像を直接共有することができる。ユーザが画像の共有を要求すると、アプリケーションは、アプリケーションを動作するデバイスに(例えば、インターネットを介して)ウェブサイトへ接続するように指示し、その後ウェブサイト上のユーザのアカウントに画像を自動的にアップロードする。いくつかの実施形態において、アプリケーションはさらに、ウェブサイトの他のユーザがいつ画像にコメントしたかを識別し、アプリケーションのユーザにこれらのコメントを表示する。
【0391】
いくつかの実施形態は、ユーザが画像にキャプションを追加するための機能を提供する。ユーザが写真ホスティングサイト上で画像を共有したい場合、ユーザは、画像にキャプションを持たせることを望むことがある。いくつかの実施形態では、ユーザは、アプリケーション内の画像について記憶されているキャプションを使用することに加えて、又はこれに代えて、ウェブサイトに画像を共有するためのダイアログ内でこのキャプションを追加することができる。上記の
図15に示すように、アプリケーション内で、このキャプションは、画像のデータ構造に格納されている。
図84は、GUI8400の6つの段階8410〜8460にわたって画像にキャプションを追加するユーザを示している。GUI8400は、以前のGUI(例えば、GUI3500)と同様であるが、上部のツールバーの中央にキャプション追加ボタン8405がさらに含まれている。第1の段階8410において、アプリケーションは、画像表示領域8415に選択画像を表示する。
【0392】
第2の段階8420において、選択画像8415にキャプションを追加するために、ユーザはキャプション追加ボタン8405をタップする。第3の段階8430は、ユーザがキャプションを入力するために、アプリケーションがタッチスクリーンの一部またはすべての上にタッチスクリーンキーボード8425を重畳することを示している。いくつかの実施形態において、キーボードはデバイスのオペレーティングシステムによって提供され、ユーザがキャプションを追加するために入力を提供するときに、アプリケーションは、オペレーティングシステムにキーボードの要求を送信する。
【0393】
なお、いくつかの実施形態ではタッチスクリーンデバイスは、ユーザがキャプションを入力するために使用できる別個のキーボードに接続されうる。さらに、当業者は、画像閲覧アプリケーションは、キャプション追加ボタンを選択するためのカーソルコントローラ(または他のデバイス)と、その後にキャプションを入力するためにキーボードとを用いてユーザがインタラクションする非タッチスクリーンデバイス上で動作してもよいことを認識するであろう。
【0394】
第3の段階8430及び第4の段階8440は、ユーザが画像8405のために「最前列!(In the Front Row!)」というキャプションをタイプする場合のGUI8400を示している。ユーザがタイプすると、キャプションは、画像表示領域の上の上部ヘッダ領域に現れる。第5の段階8450において、ユーザは、キャプションを完了するために、キーボード上の「リターン」ボタンを選択する。第6の段階8460は、ユーザがキャプションを入力した後のGUI8400を示している。アプリケーションは現時点で、キャプション追加ボタンの代わりに画像の上にキャプションを表示している。また、アプリケーションは、サムネイル8435上に小さなテキストでキャプションを重畳する。現時点で、アプリケーションは、画像8415のためのデータ構造で入力キャプションを格納している。
【0395】
述べたように、画像がキャプションを有するか否かに関わらず、いくつかの実施形態では、ユーザはソーシャルメディアや写真共有サイトに画像をアップロードするために画像閲覧および編集アプリケーションを使用することができる。
図85は、いくつかの実施形態によるソーシャルメディアサイトFacebookを介して画像8405を共有するためのGUI8400とのユーザインタラクションを示している。第1の段階8510において、ユーザは、様々な方法で選択画像を共有するためのオプションを提供する共有ボタン8505を選択する。第2の段階8520に示すように、アプリケーションは画像を送信(beam)するオプション、選択画像でジャーナルを作成するオプション、および画像をインターネットを介して共有するオプションを含む共有メニュー8515を表示する。いくつかの実施形態では、画像を送信することは、同じローカルネットワーク(例えば、Bluetoothネットワーク、WiFiネットワークなど)上の別のデバイスと画像を直接に共有することを含む。ジャーナルは、いくつかの実施形態では、ユーザがテキストメモ、グラフィックス、および他の情報を追加できる画像のセットの共用可能な構成である。
【0396】
第2の段階8520において、ユーザは「インターネット上の共有」オプションを選択する。第3の段階8530は、アプリケーションが現時点で、3つの写真共有サイトのオプション(twitter、Flickr、およびFacebook)を有する新しいメニュー8525を表示していることを示すが、他の実施形態は、ユーザが画像を共有することができる異なるウェブサイトを含み得る。この例では、ユーザは自分のFacebookアカウントに画像を共有するためにFacebookオプションを選択する。この時点で、アプリケーションは、ユーザのFacebookアカウントに画像をアップロードすることを試み始める。
【0397】
いくつかの実施形態では、異なるソーシャルメディア/写真共有サイトは、ジャーナルの作成、画像の送信、および様々な他の共有オプションとともに、メニュー8515の一部である。さらに、ユーザが画像を共有するウェブサイトを選択した後に、アプリケーションは、写真共有サイトにアップロードする画像(すなわち、選択画像または選択画像群、現在のアルバム内のすべての画像、現在のアルバムからの画像の新しいセットなど)をユーザが選択するためのオプションを提供する。
【0398】
図86は、ソーシャルメディアや写真共有サイトを介して画像を共有するためのいくつかの実施形態のプロセス8600を概念的に示している。
図86は、「写真共有」サイトを参照するが、これは写真共有のために特別に設計されたFlickrなどのサイトであってもよいし、FacebookやTwitterなどの広範なソーシャルメディアウェブサイトなどであってもよい。図示のように、プロセス8600は(8605で)写真共有サイトに画像をアップロードするコマンドを受信することによって始まる。アプリケーションは、
図85に示すユーザインタラクションのセット、またはその変形を介してこのコマンドを受信することができる。
【0399】
プロセスはその後、(8610で)アプリケーションが動作しているデバイスからユーザアカウントが選択した写真共有サイトにログオンされているかを判定する。アプリケーションのいくつかの実施形態は、デバイスが必要に応じて自動的にソーシャルメディアウェブサイトにログオンするために使用する異なるソーシャルメディアおよび写真共有サイトのための特定のアプリケーションを含むデバイス上で動作する。この場合、アプリケーションは、ウェブサイトにログインする際に問題はない。他の実施形態では、ユーザは、サイトへ(サイト固有のアプリケーョンまたはウェブブラウザを介して)肯定的にログオンする必要がある。
【0400】
ユーザがログオンしていない場合、プロセス8600は(8615で)、画像をアップロードする前に、Webサイトにサインインするようにユーザを促し、その後終了する。ユーザがログオンすると、アプリケーションは再度プロセス8600を開始する。いくつかの実施形態において、画像閲覧アプリケーションは、ユーザがウェブサイトにログインするために使用するインタフェースを表示するが、他の実施形態は、ユーザがログオンするために別のアプリケーション(例えば、サイト専用アプリケーションまたはウェブブラウザ)に切り替えることを必要とする。
【0401】
要求された写真共有サイトにユーザがログオンしたときに、プロセスは(8616において)、画像が既にサイトにアップロードされているかを判定する。いくつかの実施形態において、アプリケーションは、特定の写真共有ウェブサイトについて画像に対して画像IDが既に格納されているかを判定するために画像のデータ構造をチェックする。さらに、いくつかの実施形態は、ウェブサイトのデータベースに照会することによって、ウェブサイト上に画像がまだ存在するかを判定する。いくつかの実施形態は、いくつかのウェブサイト対してこの確認を実行するが、他のサイトに対しては実行しない。
【0402】
画像が既に共有されている場合、プロセス8600は、ユーザが新しい画像として画像を共有したいかを(8619において)判定する。ユーザは、写真共有ウェブサイト内の別のアルバムに画像を追加したい場合がある。また、ユーザは画像を編集し、(例えば、編集前と編集後との両方の画像を表示するために)新しい画像として編集画像を追加したい可能性がある。ユーザが新しい画像として画像を追加すると、プロセスは後述する8620へ進む。そうでない場合、プロセスはまた、ユーザが写真共有サイトにアップロードした画像を置き換えたいかを(8617において)判定する。例えば、ユーザは画像を編集し、共有している画像を新しいバージョンと置き換えたい可能性がある。動作8619および8617を実装するに、いくつかの実施形態は、アップロードをキャンセルするか、新しい画像として画像を共有するか、または写真共有サイト上の既存の画像のバージョンを置き換えるかをユーザが選択できるようにするために、ユーザにプロンプトを提供する。ユーザが画像を置き換えたり、または新しい画像を共有したりしたくない場合に、プロセスは、画像をアップロードすることなく終了する。
【0403】
ユーザが共有画像を置き換えたい場合、プロセスは(8618で)画像を置き換えるために、既存の画像IDを使用して、写真共有サイトのインタフェースを介して新しい画像をアップロードし、その後終了する。画像はまだ共有されていないときに、プロセスは、(8620で)写真共有サイトのインタフェースを介して画像をアップロードする。いくつかの実施形態では、画像閲覧および編集アプリケーションは、アップロード動作を実行するために、デバイス上のサイト固有のアプリケーション(例えば、Facebookアプリケーション)を使用する。他の実施形態では、アプリケーションは、ウェブサイト自体とトランザクションを行う。画像をアップロードするために、いくつかの実施形態は、編集指示が適用されたフルサイズの画像を生成する(上述のように、いくつかの実施形態は、元のフルサイズ画像を、元の画像から編集画像を生成するための編集指示とともに格納する)。
【0404】
写真共有サイトのインタフェースを介して画像をアップロードした後、プロセス8600は(8625で)写真共有サイトのデータベース内のアップロードされた画像のためのIDを受信する。プロセスは(8630で)、ウェブサイト上の画像へのアクセスに使用するための画像IDを格納し、終了する。この画像IDは、(例えば、コメントをダウンロードするために)アプリケーションがウェブサイトにコンタクトすることやアップロードされた画像についての情報を要求することを可能にする。いくつかの実施形態において、アプリケーションは、
図15を参照して上記したように、画像データ構造に画像IDを記憶する。
【0405】
いくつかの実施形態のプロセス8600において、ユーザが画像をアップロードすることを選択すると、アプリケーションはさらなるインタラクションなしに写真共有サイトに画像を自動的にアップロードする。しかしながら、いくつかの実施形態では、ユーザは、アップロードをさらにカスタマイズすることができる。
図87は、GUI8700の10個の段階8701〜8710にわたってFacebookに画像をアップロードするユーザを示している。GUI8700は、以前に示したいくつかの実施形態によるGUI8400と同様であり、共有ボタン8705を含む。第1の段階8705は、ユーザがすでにアプリケーションに種々の異なる共有オプションのメニューを表示させるように、共有ボタン8715を選択したことを示している。この場合、メニューはさまざまな異なる写真共有/ソーシャルメディアのウェブサイトのため、ならびにジャーナルを作成するためのいくつかのアイコンを含む。いくつかの実施形態では、このメニューは別のデバイスへの画像の送信すること、画像を電子メールで送信することなどの追加の共有オプションを含む。示されるように、ユーザは、段階8701で「Facebook」アイコンを選択する。
【0406】
このオプションの選択は、アプリケーションに、第2の段階8702でGUI8700に追加のメニュー8720を表示させる。このメニュー8720は、ユーザがどの画像を共有するかを決定することを可能にする。ユーザは、現時点でサムネイル表示領域に表示されているアルバムの全体を共有すること、現在選択されている画像を共有すること、または新しい画像を共有する第3の選択肢を選択することができ、後者に関して、いくつかの実施形態では現在のアルバム(または他の実施形態においては異なるアルバム)から画像のセットをユーザが共有するために選択できるダイアログボックスを呼び出す。この場合、ユーザは、1つの選択画像を共有することを選択する。
【0407】
第3の段階103において、GUI8700は、現時点で、ユーザが特定の選択された写真共有サイト(この場合は、Facebook)への画像のアップロードをカスタマイズすることを可能にする画像共有ダイアログボックス8725を含む。ダイアログボックス8725は、サムネイル画像8730、キャプションボックス8735、場所追加項目8740、および友達タグ付け項目8745を含む。いくつかの実施形態において、ユーザは複数の画像を共有する場合に、アプリケーションは共有するために選択された各画像に対してこれらの項目を表示する。また、ダイアログボックス8725は、ユーザが共有操作をキャンセルすることを可能にするキャンセルオプションと、実際に画像をアップロードし始めることを可能にする共有オプションとを含む。最後に、ダイアログボックス8725は、ユーザが(画像閲覧および編集アプリケーション内のアルバムとは対照的に)写真共有サイト上の異なるアルバム間で共有画像のための宛先として選択できるようにするアルバム選択ボタン8750を含む。図示のように、第3の段階8703において、ユーザは、アルバム選択ボタン8750を選択する。
【0408】
この選択の結果、ユーザが第4の段階8704で別のアルバムを選択することができるメニュー(またはピッカー)8755が表示される。いくつかの実施形態において、アプリケーション(またはアプリケーションが動作するデバイス)は写真共有サイト上のユーザのアカウントにログインし(上述したように、画像をアップロードするために必要)、ユーザがウェブサイトで作成した異なるアルバムのリストを取得する。ユーザがボタン8750(またはそれに相当するもの)を選択すると、アプリケーションはユーザのアルバムのリストとだけでなく、新しいアルバムを作成するためのオプションを表示する。いくつかの実施形態は、事前にユーザが作成または画像をアップロードした特定の個数の直近のアルバムをピッカーに事前に投入入力する。この場合、ユーザは、「自然」アルバムのオプションを選択して、雷の写真がFacebook上のこのアルバムにアップロードされるようにする。
【0409】
第5の段階8705において、ユーザは場所追加項目8740を選択する。第6の段階8706に示すように、この選択の結果としてメニュー(またはピッカー)8760が表示され、そこからユーザは画像にタグ付けするのとは異なる場所を選択できる。いくつかの実施形態において、アプリケーション(またはアプリケーションが動作するデバイス)は、ユーザが以前に写真共有サイト上の画像にタグ付けした異なる場所のリストを取得する。図示のように、メニュー8760は以前に作成した「ホーム」の場所を選択するオプション、新しい場所を選択するオプション、または現在の場所を選択するオプションを含む。いくつかの実施形態において、画像閲覧および編集アプリケーション、または画像閲覧および編集アプリケーションを動作するデバイス上の別のアプリケーションは、ユーザの位置を特定する位置検出機構(例えば、GPS)を使用し、その後、識別された現在位置の特定の距離(例えば、1キロメートル、1マイル(1.6キロメートル)など)内の場所(例えば、レストラン、住所などの)のリストをこの場所に関連付ける。さらに、いくつかの実施形態は、場所を決定するために、画像と一緒に格納された(例えば、Exifデータ内の)GPSデータを使用し、画像が撮像された位置から特定の距離内にある場所を列挙する。その後、アプリケーションはメニュー8760内の現在位置オプションとしてこれを提供する。いくつかの実施形態は、ユーザが画像にタグ付けした特定の数の直近の場所をピッカーに事前に投入する。この場合、ユーザは、「ホーム」位置のタグを選択する。
【0410】
第7の段階8707において、ユーザは友達タグ付け項目8745を選択する。第8の段階8708に示すように、この選択の結果として、写真共有サイトのコンテキスト内でユーザの友達を列挙するメニュー(またはピッカー)8765が表示される。様々な写真共有/ソーシャルメディアウェブサイトは、ユーザが友達のネットワークを有することを可能にし、いくつかの実施形態では、ユーザが画像閲覧および編集アプリケーションのインタフェースを介して画像における自分の友達にタグ付けすることができるように、これらの友達のリストを取得する。いくつかの実施形態では、直近にタグ付けされたユーザの特定の数の友達をピッカーに事前に投入する。いくつかの実施形態において、ユーザは、希望する任意の数の友達にタグ付けすることができる。ただし、この例では、ユーザは友達にタグを付けない代わりに、キャプションボックス8735内を選択する。
【0411】
第9の段階8709は、ユーザが(例えば、タップして)キャプションボックス内を選択した場合、ユーザが画像のキャプションを入力するためのアプリケーションがタッチスクリーンキーボード8770を重畳することを示している。いくつかの実施形態において、キーボードは、デバイスのオペレーティングシステムによって提供され、ユーザがキャプションボックス内をタップすると、アプリケーションがオペレーティングシステムにキーボードの要求を送信する。この場合では、ユーザはキャプションボックス8735内に「家のすぐ前!(Right outside my house!)」を入力するためにキーボード8770を使用し、キャプションを完成するために、キーボード上の「リターン」ボタンを選択する。第10の段階8710において、ユーザはキャプションと一緒に写真を共有するために、共有ボタンを選択する。いくつかの実施形態では、このキャプションは写真共有サイトのために使用されているが、画像閲覧および編集アプリケーション内に画像と格納されていない。
【0412】
図86を参照して上述したように、画像が以前にアップロードされた写真共有ウェブサイトで共有するための画像をユーザが選択すると、いくつかの実施形態では、ユーザは、新しい画像として画像をアップロードするか、またはウェブサイト上の古い画像と置き換えることができる。また、画像を置き換える際、いくつかの実施形態は、キャプション、タグ、および/または他の情報をユーザが更新するためにこの付随する情報をウェブサイトから取得する。
【0413】
図88は、GUI8700の4つの段階8801〜8804にわたって、
図87にアップロードした画像の編集されたバージョンを含む、Facebookにアップロードするための2つの画像を選択するユーザを示す。最初の2つの段階8801と8802は、この場合は(サムネイル上に重畳されたツールボックスアイコンにより示されるように)雷の写真が編集され、第2の画像が選択されていることを除いて、段階8701と8702と同じである。また、雷の写真は、すでに少なくとも1つの写真共有サイトで共有されていることを示す、そのサムネイルに重畳されているアイコンを有する。
【0414】
ユーザが選択画像をアップロードすることを選択した後、アプリケーションは、画像のいずれかが既にアップロードされているかを判定する。(例えば、上記の
図15を参照して説明したように)画像のデータ構造は、画像が共有されている先の場所を示す。この例で選択された画像のいずれかが既にFacebookに共有されているので、アプリケーションは、写真が既に共有されていることを示すとともに、ユーザが画像を置き換え、(写真共有ウェブサイトのコンテキスト内の新しい画像として)画像を共有し、またはアップロードをキャンセルすることを可能にするダイアログボックス8805を表示する。この場合、ユーザは、画像を置き換えることを選択する。しかしながら、いくつかの実施形態において、アプリケーションは、ユーザが以前のバージョンと同一の写真共有サイトのアルバムに画像をアップロードしようとする際にのみダイアログボックス8805を表示する。
【0415】
結果として、第4の段階でアプリケーションは画像共有ダイアログボックス8810を表示する。これは、ダイアログボックス8725に類似するが、2つの別々のセットのキャプションボックス、サムネイル、場所追加項目、友達タグ付け項目を含む。雷の画像に関して、アプリケーションは写真共有サイトからキャプションとタグ付け情報とを取得し、ダイアログボックス8810内で編集可能な情報として表示する。この場合に、キャプションと位置とは編集可能な情報として表示されている。
【0416】
写真共有サイトにアップロードされた画像に関して、いくつかの実施形態は、これらのウェブサイトから画像とのインタラクションを自動的に取得する。
図89は、写真共有やソーシャルメディアのウェブサイト上の画像に投稿されたコメントを取得するためのいくつかの実施形態のプロセス8900を概念的に示している。いくつかの実施形態のアプリケーションは、アプリケーションのGUIの画像表示領域に現在表示されている画像が写真共有サイトに投稿された際にプロセス8900を行う。いくつかの実施形態は、設定された期間(例えば、1秒、5秒、1分等)画像を表示領域に表示した後にのみ、コメント取得プロセスを実行する。
【0417】
図示のように、プロセス8900は、現在表示されている画像が写真共有サイトに投稿されたことを(8905で)識別することから始まる。いくつかの実施形態は、画像を表示しながら特定の期間を待ち、その後、画像がどこかに共有されているかを判定する。画像が共有されていない場合、プロセス8900は実行されない。また、画像が複数の異なるサイトに共有されている場合、いくつかの実施形態は、プロセス8900またはその変形を、サイトごとにまたはサイトのサブセットについて実行する。
【0418】
プロセス8900は、(8910で)写真共有ウェブサイトのデータベース内の画像のために使用される画像IDを取得する。アプリケーションは、いくつかの実施形態で、表示される画像のデータ構造からこの画像IDを取得する。その後、プロセスは(8915で)サイトのデータベース内の画像を識別するために取得した画像のIDを使用して、画像に関する情報の要求を写真共有サイトに送信する。いくつかの実施形態では、この画像IDはサイトのデータベース内の画像用に作成されたオブジェクトを識別するオブジェクトIDであり、アプリケーションはそのオブジェクトの何らかの属性を要求する。
【0419】
要求を送信したことに応答して、プロセスは、(8920において)コメントストリームと要求された追加情報とを写真共有サイトから受信する。いくつかの実施形態では、コメントストリームは、それぞれにコメントをしたユーザ、ユーザのプロファイルのサムネイル、コメントのテキスト自体、およびタイムスタンプを含む一連のコメントとして受信される。しかしながら他の実施形態は、ネストされたコメントのツリー構造を受信し、構文解析する。また、Facebookまたは類似の特徴を有するサイトに投稿された画像に関して、いくつかの実施形態は、投稿画像が受けた「いいね!」の数を受信するだけでなく、誰が画像を気に入ったかを受信する。
【0420】
この情報が受信されると、プロセス8900は画像のコメントストリームの最終アクセス日を(8925で)取得する。取得した日付と時刻は、ユーザが画像閲覧アプリケーション内で画像の何れかのコメントを閲覧した最後の時刻である。ユーザが画像をアップロードした後、画像上のコメントをいずれも閲覧していない場合、取得した時刻は、アップロードしたときのものである。いくつかの実施形態では、ユーザが写真共有サイトから直接画像上のコメントを閲覧したかどうかは最終アクセス日に影響しない。
【0421】
プロセスはその後(8930で)、取得した最終アクセス日がコメントストリーム内の直近のコメントより前であるかを判定する。プロセスは最終アクセス日を直近のコメントのタイムスタンプに対して比較し、どちらが前かを判定する。最終アクセス日が前である場合は、プロセスは(8935で)新しいコメントが利用可能であることの通知をユーザに表示する。いくつかの実施形態では、通知は、(コメントにアクセスするために使用される)情報ボタン上に小さなアイコン、すなわちバッジから成る。いくつかの実施形態は、新しいコメントが利用可能であることを単に示す通知ボタンを使用し、他の実施形態は、新規のコメントの数の指標(例えば、アイコン内の数字)を提供する。新しいコメントの数を決定するために、いくつかの実施形態は、最終アクセス日のよりも前のコメントに至るまで、連続して古い各コメントに対して最終アクセス日を比較する。必要であれば通知を表示した後、プロセス8900は終了する。
【0422】
いくつかの実施形態では、ユーザは情報ウィンドウ内のコメントタブにアクセスすることによって、これらのコメントを閲覧することができる。このウィンドウを介して、いくつかの実施形態では、ユーザは写真共有サイトに投稿されている追加のコメントに応答することができる。
【0423】
図90は、いくつかの実施形態のGUI8400の6つの段階9010〜9060にわたって情報ウィンドウを介してそのようなコメントを投稿するユーザを示す。第1の段階9010において、アプリケーションは、ユーザが以前にキャプションを与え、Facebookに投稿した画像8415を表示する。さらに、アプリケーションは、情報ボタン8505上に小さなアイコン9005を表示する。この小さなアイコンは、表示された画像が2つのコメントを受信したことを示している。いくつかの実施形態は、異なるサイトを区別することなく、異なる写真共有サイトのために同じアイコンを使用する。他の実施形態は、FacebookやFlickrなどについて異なるアイコン(例えば、異なる色、異なるアイコンの形など)を使用する。
【0424】
第2の段階9020において、ユーザは情報ボタン8505を選択する。
図81〜
図83に示すように、これは段階9030に表示上に情報ウィンドウ9015が現れるようにする。その後、ユーザはコメントタブを選択する。第4の段階9040は、コメントタブを表示する。図示のように、情報ウィンドウ9015では、現時点で、ユーザの画像に「ポール・スミス(Paul Smith)」が書いたFacebookのコメントが表示されている。この図は、情報タブが最初に表示され、その後ユーザがコメントタブを選択することを示す。しかし、いくつかの実施形態は、ユーザが新しいコメントを閲覧したい可能性が最も高いという前提で、通知アイコンが表示された情報ボタンをユーザが選択したことに応じて、コメントタブを自動的に表示する。情報ウィンドウ9015は、すべてのコメントを表示するために、段階9030に比べて段階9040で大きい。いくつかの実施形態において、情報ウィンドウ9015は、拡大するのではなく、同じサイズを維持し、ウィンドウの最上部に最初の新しいコメントがあり、ユーザがコメントストリームをスクロールすることができるように自動的にコメントを表示する。
【0425】
段階9040で、コメントストリームはまた、ユーザがコメントを入力できるセクションを含む。ユーザは、このセクションをタップし、第5の段階9050は結果として現れるタッチスクリーンのキーボード8425を示している。これは、ユーザが画像についてFacebookに投稿するコメントをタイプすることを可能にする。ユーザが彼女の返事をタイプした後、情報ウィンドウ8415は、コメントがFacebookに投稿されたことを示すように、段階9060のコメントストリームの末尾に新しいコメントを表示する。ユーザのコメントを投稿するために、アプリケーションはユーザ情報とともに写真共有サイトに、保存された画像IDとユーザのコメントを送信する。いくつかの実施形態では、アプリケーションは、アプリケーションのGUIにコメントを表示する前に、ウェブサイトからの確認を待つ。
【0426】
VII.コンテキスト依存ヘルプ
いくつかの実施形態は、ツールの機能に関するさまざまなユーザインタフェースツールの指標を提供するコンテキスト依存ヘルプ機能を含む。いくつかの実施形態において、アプリケーションは、アプリケーションの現在のアクティブツールに基づいてどのユーザインタフェース機能に対してヘルプ情報が提供されるべきであるかを判定する。例えば、ユーザが編集ツールの特定のセットを選択したときに、アプリケーションはディスプレイに編集ツールの選択されたセットのための特定の情報を追加しながら、画面からヘルプ情報の一部を削除する。
【0427】
図91はヘルプ機能の各種操作を提示するいくつかの実施形態のGUIの状態
図9100を概念的に示している。当業者は、状態
図9100が、画像閲覧および編集GUIのあらゆる状態、あるいはコンテキスト依存ヘルプ機能に関連するすべての状態を包含するのではなく、GUI内のヘルプ機能操作のサブセットのみを包含していることを認識するであろう。
【0428】
状態
図9100は、
図92〜96に示したUIの例を参照して説明する。具体的には、
図92は、ヘルプアイコンの出現に関連する複数の段階でいくつかの実施形態の画像編集アプリケーションのGUI9200を示している。
図93〜96は、ユーザがGUI内のさまざまな操作を実行する際のヘルプ機能の起動や表示に関する複数の段階にわたるGUI9200を示している。
【0429】
図91に示すように、ユーザが、状態9105で画像閲覧、編集、および整理アプリケーションを開くと状態
図9100が始まる。アプリケーションが開くと、アプリケーションが動作するデバイス上でヘルプツールが以前に起動されたかどうかに応じて状態9110または9115のどちらかの状態に移行する。いくつかの実施形態では、画像編集アプリケーションは、デバイス上に2つの状態(例えば、1または0)を有するパラメータを格納する。まずデバイスにロードされると、アプリケーションはパラメータを第1の状態(例えば、0)に初期化する。ユーザがデバイス上でヘルプツールを起動した後、アプリケーションは他の状態(例えば、1)にパラメータを切り替える。このように、アプリケーションは、パラメータをチェックすることにより、デバイス上でヘルプツールが起動されたかを判定する。
【0430】
ヘルプツールがデバイス上で一度も起動されたことのない(例えば、パラメータが0の値である)場合、アプリケーションが開くとGUIは状態9110に移行し、この状態において、アプリケーションは、アプリケーションの他のGUI項目に異なる目立つ方法でヘルプアイコンを表示する。いくつかの実施形態では、ヘルプアイコンは、ユーザがヘルプツールを起動するために選択することができる選択可能なUI項目である。ヘルプツールの異なる実施形態は、ヘルプアイコンの目立つ表示を異なるように実装する。例えば、いくつかの実施形態では、点滅するヘルプアイコン、または鼓動するように見えるアイコンを使って、目立つ方法でヘルプアイコンが表示される。アプリケーションは、小さな第1の状態とより大きい第2の状態の間で切り替わるように、すなわち2つの状態を切り替えるために2つを交互に点滅するか、または拡大・縮小するように、ヘルプアイコンを表示する。
【0431】
図92は、3つの段階9205〜9215にわたってGUI9200に目立つ方法でヘルプアイコンを表示する例を示す。図示のように、GUI9200は、サムネイル表示領域9230、画像表示領域9245、メニューバー9240、UIコントロール表示領域9260、およびツールバー9235を含む。メニューバー9240は、画像トリミングツールのセットを呼び出すための選択可能なUI項目9242、露光調整ツールのセットを呼び出すための選択可能なUI項目9244、色調整ツールのセットを呼び出すための選択可能なUI項目9246、ブラシツールのセットを呼び出すための選択可能なUI項目9248、および特殊効果ツールのセットを呼び出すための選択可能なUI項目9250を含む、画像編集ツールの異なるセットを呼び出すための選択可能なUI項目のセットを含む。UIコントロール表示領域9260は、呼び出されたときにUIコントロールの異なるセットを表示するためのものである。この例では、UIコントロール表示領域9260は、画像上で自動補正動作を開始するための選択可能なUI項目9262、画像の回転動作を開始するための選択可能なUI項目9264、画像にフラグを付けるための選択可能なUI項目9266、お気に入りとして画像をマークするための選択可能なUI項目9268、および画像を非表示にするための選択可能なUI項目9270を含む、画像閲覧GUI用のUI項目のデフォルトのセットを含む。
【0432】
ツールバー9235は、コレクション整理GUIに戻るように移動するための選択可能なUI項目9232、ヘルプツールを呼び出すための選択可能なUI項目9250(すなわち、ヘルプアイコン)、表示されている画像のための情報ウィンドウの呼び出しを表示するための選択可能なUI項目9252、および表示された画像の元のバージョンと編集されたバージョンとの間を切り替えるための選択可能なUI項目9254を含む、追加の選択可能な項目を含む。
【0433】
図92において、ヘルプツールは、デバイス上で一度も起動されていないため、アプリケーションは目立つ方法でヘルプアイコンを表示する。この例では、アプリケーションは拍動、または鼓動するようにヘルプアイコン9250を表示する。図示のように、ヘルプアイコンは、クエスチョンマークのグラフィックを含む。このクエスチョンマークは鼓動するような外観を生成するために拡大および縮小する。第1の段階9205で、ヘルプアイコンは、アイコンの境界を越える大きなクエスチョンマークを有する。
【0434】
第2の段階9210は、ヘルプアイコン9250が最小の状態であるGUI9200を示している。図示のように、ヘルプアイコン9250は、ヘルプアイコン9250の枠で完全に囲まれているアイコン上の小さなクエスチョンマークで示されるように、もはやハイライトされていない。第1の段階9205から第2の段階9210になるために、アプリケーションはアイコンのクエスチョンマーク部分のサイズを素早く小さくする。いくつかの実施形態において、第2の段階9210は、第1の段階9205の後に、非常に短い期間(例えば、0.5秒)内でのみ発生する。
【0435】
第3の段階9215は、段階9205と同様に、アプリケーションがヘルプアイコン9250内のクエスチョンマークの大きさをその最大の大きさに再び拡大した後のGUI9200を示す。いくつかの実施形態において、アプリケーションが第1の段階9205から第2の段階9210になるための時間は、第2の段階9210から第3の段階9215になるまでの時間と同じである。アプリケーションは、いくつかの実施形態では、ヘルプアイコンのサイズを縮小し、その後そのアイコンのサイズを素早く拡大し、以下同様である。いくつかの実施形態において、アプリケーションは、ユーザが少なくとも一度はヘルプ機能を呼び出すまで、このようにヘルプアイコンを表示する。
【0436】
図91に戻って参照すると、アプリケーションが開く際にヘルプツールが以前にデバイス上で呼び出されていたとアプリケーションが判定した場合、ヘルプツールは状態9115に移行し、GUIは他のアイコンと同じ方法でヘルプアイコンを表示する。すなわち、ヘルプアイコンは、
図92の第2の段階9210に示されるものと同様に通常の状態で現れる。
【0437】
状態9110または状態9115にある間、アプリケーションがヘルプアイコンの選択を受信すると、(i)不変GUI項目と(ii)ユーザツールの現在選択されているレベルとのためのヘルプインジケータを表示するために、GUIは状態9120に移行する。いくつかの実施形態ではGUI項目は、ユーザツールの異なるセットを含む。例えば、いくつかの実施形態では、第1のセットとしてデフォルトのツール(自動補正、回転、フラグ付け、お気に入り、非表示)を含み、さらに編集ツールの様々なセット(例えば、トリミングツール、露光ツール、色調整ツール、ブラシツール、および特殊効果ツール)を含む。デフォルトツールがGUIに表示される際、いくつかの実施形態では、デフォルトのツールだけでなく、(編集ツールの異なるセットを起動するための)様々な編集起動項目のヘルプインジケータを表示する。編集ツールのセットのいずれかが起動されると、アプリケーションは、デフォルトツールの代わりにこれらのツールを表示する。ヘルプ機能が呼び出されている場合、いくつかの実施形態は、異なる編集起動項目のヘルプインジケータを表示するのではなく、その代わりに、選択された編集ツールのヘルプインジケータのみを表示する。いくつかの実施形態では、不変GUI項目は、どの項目が選択されているかにかかわらず、常にGUIに存在する項目を含む。これらの項目は、オリジナル切り替えボタン、共有ボタン、情報ボタン、および他のGUI項目を含み得る。
【0438】
いくつかの実施形態において、アプリケーションは、(1)ユーザが編集ツールの新しいセットを選択するか、(2)ユーザが、現在選択されている編集ツールのいずれかを移動するか、または(3)ユーザがヘルプ機能を無効にするためにヘルプアイコンを選択するかをしない限り、状態9120にとどまる。ユーザがツールの新しいセットを選択すると、アプリケーションは現在選択されているユーザツールのレベルを変更するために状態9125に移行し、その後新しい現在選択されているツールのレベルのためのヘルプインジケータを表示するために状態9120に戻るように移行する。
【0439】
図93は、3つの異なる段階9305〜5715にわたってGUI9200のコンテキスト依存ヘルプツールを呼び出して、ユーザツールの選択されたセットを変更する例を示している。第1の段階9305は、画像表示領域9245が1つの画像のみを含むことを除いて、
図92の第1の段階9205と同様である。第2の段階9310は、ユーザがヘルプツールを起動した後のGUI9200を示している。いくつかの実施形態では、ヘルプツールはヘルプアイコンを選択することによって起動することができる。図示のように、ユーザはヘルプアイコン9250に指をタップすることによって、ヘルプツールを起動した。選択の結果として、アプリケーションは、GUI上に様々なヘルプインジケータを重畳する。これらのヘルプインジケータは、さまざまなGUI項目のための短い説明情報を表示する。
【0440】
第2の段階9310では、アプリケーションはツールバー9235内で常に表示されるGUI項目9238、9252、および9254に対してヘルプインジケータ9325を表示する。これらのヘルプインジケータは共有ボタン9238に「共有(Share)」、情報ボタン9252に「画像情報(Image info)」、およびオリジナル切り替えボタン9254に「オリジナル表示(Show Original)」のラベルが付くが、様々な実施形態は、項目の1つ以上に対して異なる記述を用いる。また、いくつかの実施形態は、選択可能である項目のためのヘルプインジケータのみを表示する。ユーザが表示された画像をまだ編集していない場合、オリジナル切り替えボタンは効果がないので、いくつかの実施形態では、そのヘルプインジケータを表示しない。いくつかの実施形態は、ツールバー9235内に異なる項目(例えば、アンドゥボタン)のヘルプインジケータを表示する。
【0441】
ヘルプツールはまた、ユーザツールの現在選択されているレベルのためのインジケータ9335のセット(「自動補正(Auto-Enhance)」、「回転(Rotate)」、「フラグ付き(Flag)」、「お気に入り(Favorite)」、および「非表示(Hide)」)を表示する。また、ツールのこのレベル(編集起動項目のいずれもが選択されていないときに表示される、ユーザツールのデフォルトのセット)である際に、アプリケーションは、ユーザに異なる編集オプション(「トリミング(Crop)」、「露光(Exposure)」、「色(Color)」、「ブラシツール(Brush Tool)」、および「特殊効果(Special Effects)」)を示す編集起動項目9242、9244、9246、9248、および9262用のヘルプインジケータ9330を表示する。常に存在するGUIの項目と同様に、異なる実施形態は、同じ項目に異なる説明を使用してもよく、またはGUI項目の異なるセットを有してもよい。いくつかの実施形態では、ヘルプインジケータのセットは選択可能なUI項目である。このような実施形態では、ユーザがヘルプインジケータを選択すると、アプリケーションは、対応するGUI項目の機能と動作についてのより詳細な情報を重畳する。
【0442】
いくつかの実施形態は、項目の一部についてヘルプインジケータ内で使用するための指示が表示される。例えば、いくつかの実施形態では、「回転」インジケータは「90°回転。さらなるオプションには長押し」などのさらなる情報を含む。図示のように、9310においてアプリケーションが重畳されたヘルプインジケータは、ズームツールの使用に関する指示を提供する、画像表示領域の中央のズームツールのためのインジケータ9365と、選択入力の異なる種類を説明するサムネイル表示領域のためのインジケータ9375とを含む。
【0443】
図93の第3の段階9315は、GUI9200の新しいツールのセットをユーザが選択する例を示す。第3の段階9315に示されるように、ユーザは、露光調整ツールのセットを呼び出すためのメニューバー9240内の選択可能なUI項目9244を選択している。その結果、アプリケーションは、自動補正、回転、およびタグ付けのUI項目に置き換えて、UIコントロール表示領域9260内に露光調整ツールのセットを表示する。露光調整ツールのセットは、影調整ツール9340、コントラスト調整ツール9345及び9350のセット、明るさ調整ツール9355、およびハイライト調整ツール9360を含む。ツールの新しいセットをユーザが選択した結果、様々な編集起動ツール9242、9244、9246、9248、および9262のためのヘルプインジケータ9330を除去しながら、新しく表示されるツールのセットのためのヘルプインジケータ9370(「ブラックポイントおよび影(Black point & Shadows)」、「コントラスト(Contrast)」、「ハイライト(Highlights)」、「コントラスト(Contrast)」、および「ホワイトポイントおよびハイライト(White point & Highlights)」)を重畳する。また、アプリケーションは、ユーザが画像自体の上にタッチしてドラッグすることによって、画像のための露光データを調整することができることを示すために画像表示領域内にインジケータ9380を重畳する。また、ユーザがGUIツールのどのセットを選択したかにかかわらず、共有ボタン、画像情報ボタン、およびオリジナル切り替えボタンのためのヘルプインジケータシェア9325は残る。
【0444】
図94は、ユーザが2つの異なる段階9405及び9410でGUI9200内の新しいツールのセットを選択した場合のヘルプ機能の変更の別の例を示す。第1の段階9405は、
図93の第2の段階9310と同一である。図示のように、GUI9200におけるヘルプインジケータ9325、9330、9335、9365、および9375のセットの出現によって示されるように、ヘルプツールが起動されている。第2の段階9410は、ユーザがGUI9200で表示するためのツールの新しいセットを選択した後のGUI9200を示している。この場合、ユーザは、ブラシツールのセットを呼び出すためのメニューバー9240内の選択可能なUI項目9248を選択している。このように、アプリケーションは、GUI9200において異なる画像調整動作を呼び出すためのブラシツールのセット9425を表示する。ツールの新しいセットをユーザが選択した結果、ヘルプツールはさらに、異なる編集起動ツールのためのヘルプインジケータ9330のセットを除去しながら、ブラシツール9425の新しいセットのためのヘルプインジケータ9430の新しいセットを表示する。
【0445】
図91の段階
図9100に戻って、アプリケーションが状態9120にある間、ユーザが現在選択されているツールのいずれかを移動すると、アプリケーションは、移動するGUIツールと一緒にヘルプインジケータを移動するために状態9130に移行する。例えば、ユーザがスライダを移動すると、そのスライダのヘルプインジケータはそれと一緒に移動する。
【0446】
図95は、3つの段階9505〜9515にわたってアプリケーションがヘルプインジケータを対応する編集ツールと一緒に自動的に移動する例を示している。第1の段階9505は、
図93の第3の段階の9315と同一であり、ヘルプツールは起動してあり、露光調整ツールは選択されている。図示のように、アプリケーションは、露光調整ツール9340〜9360のセットのためのヘルプインジケータ9370のセットを表示する。第2の段階9510は、ユーザが露光調整スライダのいずれかを移動するためにタッチスクリーンに接触し始める際のGUI9200を示している。第3の段階9515は、ユーザによるコントラスト調整ツール9345の移動を示す。この移動の結果として、(「コントラスト(Contrast)」のラベルが付いている)ヘルプインジケータ9370はツールと一緒に右に移動する。また、コントラストツールのいずれかを移動すると、他のコントラストツールも同様に移動し、これによりその他のコントラストスライダ9350はそのヘルプインジケータと一緒に左に移動する。この移動の結果として、表示された画像のコントラストが変更される。
【0447】
図91に戻って参照すると、ヘルプツールが起動された後、ユーザが再度ヘルプアイコンを選択すると、ヘルプツールは、GUIからすべてのヘルプインジケータを削除する。さらに、ユーザが既にデバイスのヘルプツールを起動しているので、
図93の段階9305に示されているように、ヘルプツールが他のアイコンと同様にヘルプアイコンを表示した状態9115にヘルプツールは戻る。
【0448】
上述したように、ユーザがヘルプインジケータの1つを選択すると、いくつかの実施形態では、選択された機能に関する詳細なヘルプ記事が表示される。いくつかの実施形態は、外部の場所から(例えば、インターネットを介して)これらのヘルプ記事をダウンロードするか、またはアプリケーションと記憶する。
【0449】
図96は、3つの異なる段階9605〜9610にわたってGUI9200を介してGUI項目のいずれかに関連した詳細なヘルプ記事を表示する例を示す。第1の段階9605は、
図94の第1の段階9405と同一であり、GUI9200に示すGUI項目のためのヘルプインジケータの表示によって示されるようにヘルプツールを起動する。ユーザがヘルプインジケータのいずれかを選択すると、アプリケーションは、対応するGUI項目に関連する機能及び動作に関する詳細情報を表示する。
【0450】
第2の段階9410は、ヘルプインジケータの1つをユーザが選択することを示している。具体的に、ユーザは、トリミング項目9242のためのヘルプインジケータを(例えば、示されるようにタップ、クリック選択などにより)選択することにより、アプリケーションにトリミングインジケータをハイライトさせる。
【0451】
選択の結果として、アプリケーションは段階9615でGUI9200上にトリミングツールの詳細なヘルプ情報9630を重畳する。上述のように、いくつかの実施形態では、詳細なヘルプ情報の内容は画像編集アプリケーションが実行されるデバイス上に格納されている。これらの実施形態において、ユーザがヘルプインジケータを選択すると、アプリケーションは、GUI9200上に情報を表示する前に、デバイスから対応するヘルプ情報を取得する。他の実施形態では、詳細なヘルプ情報は、デバイスがネットワーク(例えば、インターネット)を介して接続する1つ以上の遠隔地に格納される。これらの実施形態において、ユーザがヘルプインジケータを選択すると、アプリケーションは、GUI9200上に情報を表示する前に、ネットワークを介してこれらの遠隔地のうちの1つから詳細なヘルプ情報を取得する。
【0452】
図97は、いくつかの実施形態における異なるGUI項目のためのヘルプインジケータの表示の別の例を示す。具体的には、
図97は、GUI9300の4つの段階9710〜9740にわたってヘルプインジケータの動きおよび色調整ツールのためのヘルプインジケータの複数のレベルを示している。第1の段階9710は、
図94の第1の段階9405と同一であり、GUI9200に示すGUI項目のためのヘルプインジケータの表示によって示されるように、ヘルプツールが起動されている。
【0453】
第2の段階9720は、ユーザが色調整起動項目9246を選択した後のGUI9200を示している。これにより、アプリケーションはツールバー9260に4つの色調整スライダを表示させる。ヘルプインジケータ9705によって示されるように、これらのスライダは、ユーザが表示画像の彩度、空の色、緑の色、および皮膚の色調を調整することを可能にする。また、色調整ツールは、ヘルプインジケータ9725によって示されるホワイトバランス項目9715を含む。
【0454】
第3の段階9730において、ユーザは、画像の空の色の彩度を増加させるために、青い空のスライダ9745を右に移動する。これはまた、スライダ9745のためのヘルプインジケータ9705を右に移動させる。そうすることで、インジケータは緑のスライダのためのヘルプインジケータと重なるようになる。その結果、アプリケーションは、ユーザがヘルプインジケータの全体を見ることができるように、緑のスライダヘルプインジケータを(より長い脚を使用して)上向きに自動的に移動する。
【0455】
第4の段階9740は、ホワイトバランス項目9715をユーザが選択した結果を示す。図示のように、アプリケーションは多数の選択可能なホワイトバランスオプションを提供するツールバー9750を重畳する。これらの項目が表示された状態で、アプリケーションは色調整のスライダのためのヘルプインジケータ9705を除去し、代わりに異なるホワイトバランス項目のインジケータ9755を重畳する。
【0456】
VIII.ソフトウェアアーキテクチャ
いくつかの実施形態において、上記のプロセスは、コンピュータまたはハンドヘルドデバイスなどの特定の機械上で実行されるソフトウェアとして実装されるか、又は機械可読媒体に格納されている。
図98はいくつかの実施形態による画像閲覧、編集、および整理アプリケーション9800のソフトウェアアーキテクチャを概念的に示している。いくつかの実施形態では、画像閲覧、編集、および整理アプリケーションは、スタンドアロンのアプリケーションであるか、または別のアプリケーションに統合されるが、他の実施形態では、アプリケーションはオペレーティングシステム内に実装されてもよい。さらに、いくつかの実施形態では、アプリケーションは、サーバベースのソリューションの一部として提供される。いくつかのそのような実施形態では、アプリケーションは、シンクライアントを介して提供される。つまり、サーバから遠く離れた別個の機械を介してユーザがアプリケーションとインタラクションしながら、アプリケーションはサーバ上で実行される。他のそのような実施形態では、アプリケーションはシッククライアントを介して提供される。つまり、アプリケーションはサーバからクライアントマシンに配信され、クライアントマシン上で実行される。
【0457】
画像閲覧、編集、および整理アプリケーション9800は、ユーザインタフェース(UI)インタラクションおよび生成モジュール9805、メディア取り込みモジュール9810、ヒストグラム生成部9815、編集モジュール9820、画像処理部9825、画像表示領域生成部9830、画像選択部9835、画像タグ付け部9840、画像比較部9845、および共有管理部9850を含む。この図はさらに、アプリケーション9800に関連付けられた格納データ、すなわちソース画像9855、画像データ9860、コレクションデータ9865、およびキャッシュ画像9870を示す。
【0458】
いくつかの実施形態では、ソース画像9835は、アプリケーションにインポートされた画像ファイル(および、場合によっては、ビデオファイル又は他のメディア)を記憶する(すなわち、ローカル画像データベース)。いくつかの実施形態では、画像ファイルは、アプリケーション9800が通信する他の画像閲覧および整理アプリケーションに関連付けられてもよい。画像データ9860はいくつかの実施形態の画像データ構造を格納し、コレクションデータ9865はコレクションデータ(例えば、アルバム、イベント、ジャーナルなど)を格納する。キャッシュ画像9870は画像のキャッシュされたバージョン(例えば、サムネイル、表示サイズの画像など)を格納する。いくつかの実施形態では、データの4つのセット9855〜9870は1つの物理記憶装置(例えば、内部ハードドライブ、外部ハードドライブ、ソリッドステートメモリ等)に格納される。いくつかの実施形態では、データは複数の物理記憶装置間で分割されてもよい。
【0459】
図98はまた、入力デバイスドライバ(群)9880、ディスプレイモジュール9885、メディアインポートモジュール9890、及びネットワークインタフェース(群)9895を含むオペレーティングシステム9875を示す。いくつかの実施形態では、図示するように、メディア編集アプリケーション9800がオペレーティングシステムとは別々のアプリケーションである場合に、デバイスドライバ9880、ディスプレイモジュール9885、メディアインポートモジュール9890、およびネットワークインタフェース9895はオペレーティングシステムの一部である。
【0460】
入力デバイスドライバ9860は、タッチスクリーンだけでなく、キーボード、マウス、タッチパッド、タブレットなどからの信号を変換するためのドライバを含み得る。対応するデバイスドライバに信号を送信するこれらの入力デバイスのうちの1つ以上とユーザはインタラクションをする。その後デバイスドライバは、UIインタラクションおよび生成モジュール9805に提供されるユーザ入力データに信号を変換する。
【0461】
本出願は、動作および機能の異なるセットを行うためにさまざまな方法をユーザに提供するグラフィカルユーザインタフェースを記述する。いくつかの実施形態では、これらの動作と機能は、異なるタイプのタッチスクリーンデバイスを介してユーザから受信される異なるコマンドに基づいて行われる。例えば、本出願は、グラフィカルユーザインタフェース内のオブジェクトを制御(例えば、選択、移動)するために(例えば、1以上の指での)タッチスクリーン入力の使用を示す。しかし、いくつかの実施形態では、グラフィカルユーザインタフェース内のオブジェクトはまた、カーソルなどの他のコントロールによって制御又は操作することができる。いくつかの実施形態では、カーソル制御は、デバイスのディスプレイ上の異なる位置にカーソルを移動する入力デバイスを介して実装される。カーソルの位置に基づいて、さまざまなアクション(例えば、GUI項目の選択)を実行するために、異なる入力(例えば、マウスボタンのクリック等)を使用することができる。したがって、上記の画像の多くはカーソルを示していないが、いくつかの実施形態では、(タッチコントロールの有無にかかわらず)カーソルを使用して同じアクションを実行する。
【0462】
表示モジュール9885は表示デバイスのためにユーザインタフェースの出力を変換する。すなわち、表示モジュール9885は、表示するべきものを記述する信号を(例えば、UIインタラクションおよび生成モジュール9805から)受信し、表示デバイスに送信される画素情報にこれらの信号を変換する。表示デバイスは、LCD、プラズマススクリーン、CRTモニタ、タッチスクリーンなどであってもよい。いくつかの実施形態では、表示モジュール9885と、入力デバイスドライバ(群)9880とは、単一のタッチスクリーンドライバの一部である。
【0463】
メディアインポートモジュール9890はメディア編集アプリケーション9800が動作するデバイスの1つ以上のポート(例えば、USBポート、ファイヤワイヤポート等)を介して外部記憶装置(例えば、外付けドライブ、記録装置など)からメディアファイル(例えば、画像ファイル等)を受信し、アプリケーション9800のためにこのメディアデータを変換するか、またはデータをデバイスの記憶装置に直接格納する。
【0464】
メディア編集アプリケーション9800のUIインタラクションおよび生成モジュール9805は、入力デバイスドライバから受信したユーザ入力データを解釈し、メディア取り込みモジュール9810、編集モジュール9820、画像処理部9825、画像表示領域生成部9830、画像選択部9835、および画像タグ付け部9840を含む、様々なモジュールにそれを渡す。UIインタラクションモジュールはさらに、メディア編集アプリケーションのGUIの表示を管理し、表示モジュール9865にこの表示情報を出力する。このUI表示情報は編集モジュール9815、タイムライン生成部9820、角度ビューア生成部9827、再生部9830、データ9835〜9850等に基づいてもよい。さらに、モジュール9805は、例えば、UIの片側から反対側にウィンドウを移動することや、クリップブラウザとクリップライブラリの相対的なサイズを変更することなど、他の何れかのモジュールではなく表示のみに影響を与えるUI内の項目をユーザが移動する場合に、ユーザ入力のみに基づいてUIの部分を生成することができる。いくつかの実施形態では、UIインタラクションおよび生成モジュール9805は、基本的なGUIを生成し、他のモジュールと格納されたデータとからの情報をGUIに投入する。
【0465】
メディア取り込みモジュール9810は、アプリケーション9800へのソースメディアのインポートを管理する。いくつかの実施形態は、図示のように、オペレーティングシステム9875のメディアインポートモジュール9890からソースメディアを受信する。メディア取り込みモジュール9810は、どのファイルをインポートするべきかに関する指示を、UIモジュール9805を介して受信し、その後メディアインポートモジュール9890に、(例えば、外付けドライブ、外付けカメラ、アプリケーションが動作するデバイス上のカメラ、デバイス上の別のアプリケーションなどからの)このインポートを可能にするように指示する。いくつかの実施形態のメディア取り込みモジュール9810は、ソース画像9855にこれらの画像を記憶する。いくつかの実施形態において、メディア取り込みモジュール9810はまた、ソース画像のインポートの際に画像データ構造の作成を管理する。
【0466】
ヒストグラム生成部9815は、いくつかの実施形態において、インポートされた各画像に対して色ヒストグラム、テクスチャヒストグラム、および形状ヒストグラムを生成する。いくつかの実施形態のヒストグラム生成部9815は、
図52を参照して上に詳細に説明する。
【0467】
編集モジュール9815は、画像を編集するためのさまざまなモジュールを含む。編集モジュール9815は、さまざまな編集GUIツールを生成し、これらのツールからの入力を画像用の編集命令(例えば、トリミング命令、回転命令、色調整命令など)に変換する。画像を出力する必要がある場合、画像処理部9825は、画像に編集命令を適用する。例えば、ユーザが表示された画像に編集を追加するときに、編集モジュール9820のうちの適切なものは、画像用の編集命令を変更し、画像処理部9825は、所望の画像を生成するためにこれらの命令を適用する。
【0468】
画像表示領域生成部9830は、画像表示領域の生成を処理する。画像表示領域生成部9830は、表示する画像のセットを(例えば、UIインタラクションおよび生成モジュール9805又は画像選択部9835から)受信する。いくつかの実施形態の生成部9830は、画像の平均アスペクト比を算出し、画像表示領域にグリッドを定義し、画像を表示するために使用する画素数を算出し、各画像のサイズを算出する。
【0469】
画像選択部9835は様々なユーザインタラクションを、画像表示領域生成部9830に送信するための1つ以上の選択に変換する。ユーザが特定の画像に類似する画像のセットを要求すると、画像選択部は、類似画像を識別するために画像比較部9845を使用する。いくつかの実施形態の画像比較部9845は、
図52を参照して上に説明してある。画像タグ付け部9840は、1つ以上の画像にタグを付けするためにユーザ入力を受信し、それに応じて画像のデータ構造を変更する。
【0470】
共有管理部9850は、さまざまな写真共有ウェブサイト(例えば、Facebook、Twitter、およびFlickrなど)上の画像の共有を管理する。いくつかの実施形態では、共有管理部9850は、画像をアップロードし、アップロードされた画像のオブジェクトIDを受信および格納し、画像へのコメントを受信/アップロードするために、ネットワークインタフェース(群)9895を介してこれらのウェブサイトに接続する。
【0471】
メディア編集アプリケーション9800の特徴の多くが1つのモジュール(例えば、UIインタラクションおよび生成モジュール9805、メディア取り込みモジュール9810等)によって実行されるものとして説明してきたが、当業者は本明細書に説明された機能は、複数のモジュールに分割され得ることを認識するであろう。同様に、複数の異なるモジュールによって実行されるものとして説明された機能は、いくつかの実施形態では単一のモジュールによって実行され得る(例えば、画像表示領域生成部9830と画像選択部9835とは、UIインタラクションおよび生成モジュール9805の一部であってもよい)。
【0472】
IX.電子システム
上述の機能とアプリケーションの多くは、コンピュータ読み取り可能な記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令セットとして特定されたソフトウェアプロセスとして実施される。これらの命令は、1つ以上の演算または処理ユニット(群)(例えば、1つ以上のプロセッサ、プロセッサのコア、または他の処理ユニット)により実行されたときに、命令に示された動作を処理ユニット(群)に実行させる。コンピュータ可読媒体の例は、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードドライブ、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的消去可能なプログラマブルリードオンリメモリ(EEPROM)などを含むが、これらに限定されない。コンピュータ可読媒体は、搬送波と、ワイヤレスまたは有線接続を介して伝わる電子信号とを含んでいない。
【0473】
本明細書において、「ソフトウェア」という用語は、リードオンリメモリにあるファームウェアまたはプロセッサによる処理のためにメモリに読み込むことが可能な磁気記憶装置に記憶されたアプリケーションを含むことを意味する。さらに、いくつかの実施形態では、複数のソフトウェア発明は、特徴的なソフトウェア発明を維持しながらも、より大きなプログラムの下位部分として実装することができる。いくつかの実施形態において、複数のソフトウェア発明はまた、別々のプログラムとして実装することができる。最後に、本明細書に記載されているソフトウェアの発明を一緒になって実装する別々のプログラムの任意の組合せも、本発明の範囲内である。いくつかの実施形態では、ソフトウェアプログラムは、1つ以上の電子システム上で動作するようにインストールされた場合、ソフトウェアプログラムの動作を実行し、行う1つ以上の特定のマシンの実装を規定する。
【0474】
A.モバイルデバイス
いくつかの実施形態の画像編集および閲覧アプリケーションはモバイルデバイス上で動作する。
図99は、このようなモバイルコンピューティングデバイスのアーキテクチャ9900の例である。モバイルコンピューティングデバイスの例は、スマートフォン、タブレット、ノートパソコンなどを含む。図示のように、モバイルコンピューティングデバイス9900は、1つ以上の処理ユニット9905、メモリインタフェース9910および周辺インタフェース9915を含む。
【0475】
周辺インタフェース9915は様々なセンサや、カメラサブシステム9920、無線通信サブシステム(群)9925、オーディオサブシステム9930、I/Oサブシステム9935などを含むサブシステムに結合されている。周辺インタフェース9915は、処理ユニット9905と様々な周辺機器間の通信を可能にする。例えば、方位センサ9945(例えば、ジャイロスコープ)と加速度センサ9950(例えば、加速度計)が方位機能と加速度機能とを容易にするために、周辺インタフェース9915に結合されている。
【0476】
カメラサブシステム9920は、1つ以上の光学センサ9940(例えば、電荷結合素子(CCD)光学センサ、相補型金属酸化膜半導体(CMOS)光学センサ等)に結合されている。光学センサ9940に結合されたカメラサブシステム9920は、画像および/またはビデオデータ取り込みなどのカメラ機能を容易にする。無線通信サブシステム9925は、通信機能を容易にする役割を果たす。いくつかの実施形態では、無線通信サブシステム9925は、高周波受信機と高周波送信機および光学受信機と光学送信機(
図99には図示されていない)を含む。いくつかの実施形態のこれらの受信機と送信機は、GSM(登録商標)ネットワーク、WiFiネットワーク、Bluetoothネットワーク等などの1つ以上の通信ネットワークで動作するように実装されている。オーディオサブシステム9930は、オーディオを出力するために(例えば、異なる画像操作に関連付けられた異なる効果音を出力するために)スピーカに結合される。また、オーディオサブシステム9930は、音声認識、デジタル録音などの音声対応機能を容易にするために、マイクロフォンに結合されている
【0477】
I/Oサブシステム9935は、周辺インタフェース9915を介してディスプレイやタッチスクリーンなどの入出力周辺デバイスと処理ユニット9905のデータバス9905との間での転送を伴う。I/Oサブシステム9935は、入出力周辺デバイスと処理ユニット9905のデータバスとの間の転送を容易にするためにタッチスクリーンコントローラ9955および他の入力コントローラ9960を含む。図示のように、タッチスクリーンコントローラ9955は、タッチスクリーン9965に結合されている。タッチスクリーンコントローラ9955は、複数のタッチ感知技術のいずれかを使用して、タッチスクリーン9965上の接触と動きを検知する。他の入力コントローラ9960は、1つ以上のボタンなどの他の入力/制御デバイスに結合される。いくつかの実施形態は、タッチインタラクションの代わりに又はこれに追加して、ニアタッチインタラクションを検出することができるニアタッチセンシティブスクリーンおよび対応するコントローラを含む。
【0478】
メモリインタフェース9910はメモリ9970に結合されている。いくつかの実施形態では、メモリ9970は、揮発性メモリ(例えば、高速ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、揮発性メモリおよび不揮発性メモリの組み合わせ、および/または他のタイプのメモリを含む。
図99に示すように、メモリ9970は、オペレーティングシステム(OS)9972を格納する。OS9972は、基本的なシステムサービスを処理するための命令、およびハードウェアに依存するタスクを実行するための命令を含む。
【0479】
メモリ9970は、1つ以上の追加デバイスとの通信を容易にするための通信命令9974、グラフィックユーザインタフェース処理を容易にするためのグラフィカルユーザインタフェース命令9976、画像関連処理及び機能を容易にするための画像処理命令9978、入力(例えば、タッチ入力)関連の処理および機能を容易にするための入力処理命令、オーディオ関連処理及び機能を容易にするためのオーディオ処理命令9982、およびカメラに関する処理及び機能を容易にするためのカメラ命令9984を含む。前述の命令は、単に例示的なものであり、いくつかの実施形態において、メモリ9970は追加の命令および/または他の命令を含む。例えば、スマートフォンのメモリは電話関連処理及び機能を容易にするための電話命令を含んでもよい。上記で識別された命令は、別個のソフトウェアプログラム又はモジュールとして実装される必要はない。モバイルコンピューティングデバイスの種々の機能は、1つ以上の信号処理集積回路及び/又は特定用途向け集積回路を含む、ハードウェアおよび/またはソフトウェアで実装することができる。
【0480】
図99に示すコンポーネントは、別々のコンポーネントとして示されているが、当業者は、2つ以上のコンポーネントが1つ以上の集積回路に統合されてもよいことを認識するであろう。また、2つ以上のコンポーネントは1つ以上の通信バスや信号線によって互いに結合されてもよい。さらに、機能の多くは1つのコンポーネントによって実行されるものとして説明してきたが、また、当業者は、
図99に関して説明した機能は、2つ以上の集積回路に分割することができることを理解するであろう。
【0481】
B.コンピュータシステム
図100は、本発明のいくつかの実施形態を実装する電子システム10000の他の例を概念的に示す。電子システム10000は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ等)、電話、PDA、または任意の他の種類の電子デバイス又はコンピューティングデバイスのであってもよい。このような電子システムは、様々なタイプのコンピュータ可読媒体と、様々な他のタイプのコンピュータ可読媒体とのインタフェースとを含む。電子システム10000は、バス10005、処理ユニット(群)10010、グラフィックス処理ユニット(GPU)10015、システムメモリ10020、ネットワーク10025、リードオンリメモリ10030、永久記憶装置10035、入力デバイス10040および出力デバイス10045を含む。
【0482】
バス10005は電子システム10000の多数の内部デバイスを通信可能に接続するすべてのシステムバス、周辺機器バス、およびチップセットバスをまとめて表す。例えば、バス10005は、処理ユニット(群)10010を、リードオンリメモリ10030と、GPU10015、システムメモリ10020、および永久記憶装置10035に通信可能に接続する。
【0483】
これらの種々のメモリユニットから、処理ユニット(群)10010は、本発明のプロセスを実行するために実行する命令及び処理するデータを取得する。処理ユニット(群)は、別の実施形態で、単一のプロセッサ又はマルチコアプロセッサであってもよい。いくつかの命令はGPU10015に渡され、GPU10015によって実行される。GPU10015は、各種の演算をオフロードするか、または処理ユニット(群)10010によって提供される画像処理を補完することができる。いくつかの実施形態では、そのような機能は、Corelmageのカーネルシェーディング言語を使用して提供することができる。
【0484】
リードオンリメモリ(ROM)10030は処理ユニット(群)10010および電子システムの他のモジュールによって必要とされる静的データ及び命令を記憶する。一方、永久記憶装置10035は、リード・ライトメモリデバイスである。このデバイスは、電子システム10000がオフの状態でも、命令およびデータを記憶する不揮発性メモリユニットである。本発明のいくつかの実施形態は、永久記憶装置10035として大容量記憶装置(磁気ディスクまたは光ディスクおよびそれに対応するディスクドライブなど)を使用する。
【0485】
他の実施形態は、永久記憶装置としてリムーバブルストレージデバイス(例えば、フロッピーディスク(登録商標)、フラッシュメモリデバイス等、及びそれに対応するドライブ)を使用する。永久記憶装置10035のように、システムメモリ10020は、リード・ライトメモリデバイスである。しかし、記憶装置10035とは異なり、システムメモリ10020は、ランダムアクセスメモリのような、揮発性リード・ライトメモリである。システムメモリ10020は、プロセッサが実行時に必要とする命令とデータの一部を記憶する。いくつかの実施形態では、本発明のプロセスは、システムメモリ10020、永久記憶装置10035、および/またはリードオンリメモリ10030に格納される。例えば、様々なメモリユニットは、いくつかの実施形態によるマルチメディアクリップを処理するための命令を含む。これらの種々のメモリユニットから、処理ユニット(群)10010は、いくつかの実施形態のプロセスを実行するために実行する命令と処理するデータとを取得する。
【0486】
バス10005はさらに、入力デバイス10040と出力デバイス10045に接続する。入力デバイス10040は、ユーザが電子システムに情報を伝え、コマンドを選択することを可能にする。入力デバイス10040は、英数字キーボードおよびポインティングデバイス(また、「カーソルコントロールデバイス」と呼ばれる)、カメラ(例えば、ウェブカメラ)、音声コマンド等を受信するためのマイクロフォンまたは類似のデバイスなどを含む。出力デバイス10045は、電子システムによって生成された表示画像又は他の出力データを表示する。出力デバイス10045は、例えば陰極線管(CRT)または液晶ディスプレイ(LCD)などのプリンタやディスプレイデバイス、ならびにスピーカまたは類似のオーディオ出力デバイスを含む。いくつかの実施形態では、例えばタッチスクリーンなどの、入力デバイスおよび出力デバイスの両方として機能するデバイスを含む。
【0487】
最後に、
図100に示すように、バス10005はネットワークアダプタ(図示せず)を介してネットワーク10025に電子システム10000を結合する。このように、コンピュータはコンピュータのネットワーク(例えば、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、もしくはイントラネット、またはインターネットなどのようなネットワークのネットワーク)の一部でありうる。電子システム10000のすべて又はいずれかのコンポーネントは、本発明と共に使用することができる。
【0488】
いくつかの実施形態は、マイクロプロセッサ、記憶装置、およびメモリなどの、機械可読又はコンピュータ可読媒体(あるいはコンピュータ読み取り可能な記憶媒体、機械可読媒体又は機械可読記憶媒体と呼ばれる)にコンピュータプログラム命令を記憶する電子部品を含む。そのようなコンピュータ可読媒体のいくつかの例は、RAM、ROM、リードオンリコンパクトディスク(CD−ROM)、記録可能なコンパクトディスク(CD−R)、書き換え可能コンパクトディスク(CD−RW)、リードオンリデジタル多用途ディスク(例えば、DVD−ROM、2層DVD−ROM)、さまざまな種類の記録可能/書き換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気ハードドライブおよび/またはソリッドステートハードドライブ、リードオンリおよび記録可能ブルーレイディスク、超高密度光学ディスク、その他の光学ディスクまたは磁気媒体、及びフロッピーディスクを含む。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、各種動作を実行するための命令セットを含むコンピュータプログラムを記憶し得る。コンピュータプログラム又はコンピュータコードの例は、コンパイラによって生成されるマシンコード、コンピュータによって実行される高レベルのコードを含むファイル、またはインタプリタなどを用いるマイクロプロセッサを含む。
【0489】
上記の議論は、主にソフトウェアを実行するマイクロプロセッサまたはマルチコアプロセッサを参照するが、いくつかの実施形態は、例えば、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの1つ以上の集積回路によって実行される。いくつかの実施形態では、そのような集積回路は、回路自体に格納された命令を実行する。さらに、いくつかの実施形態は、プログラマブルロジックデバイス(PLD)、ROM、又はRAMデバイスに格納されたソフトウェアを実行する。
【0490】
本明細書および本願のいずれかの請求項で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」という用語はすべて、電子デバイスまたは他の技術的なデバイスを意味する。これらの用語は、人や人のグループを除外する。明細書においては、表示や、表示するという用語は、電子デバイス上に表示することを意味する。本明細書や本願の何れかの請求項で使用されるように、「コンピュータ読み取り可能な記録媒体」、「コンピュータ読み取り可能な媒体」及び「機械可読媒体」という用語は、完全に有形な、コンピュータに読み取り可能な形式で情報を格納する物理オブジェクトに制限されている。これらの用語は、無線信号、有線ダウンロード信号、および他の一時的な信号を除外する。
【0491】
本発明は、多数の特定の詳細を参照して説明されたが、当業者は、本発明は、本発明の精神から逸脱することなく他の特定の形態で実施できることを認識するであろう。例えば、図の多くは、さまざまなタッチジェスチャ(例えば、タップ、ダブルタップ、スワイプジェスチャ、長押しジェスチャなど)を示している。しかし、図示の操作の多くは、異なるタッチジェスチャ(例えば、タップの代わりにスワイプなど)を介して、または非タッチ入力(例えば、カーソルコントローラ、キーボード、タッチパッド/トラックパッド、ニアセンシティブスクリーンなど)により実行することができる。また、(
図7、34、43、47、53、59、79、86、および89を含む)いくつかの図面は、概念的にプロセスを示す。これらのプロセスの具体的な動作は、図示および説明された正確な順序で実行されなくてもよい。特定の動作は、連続的な動作として処理されなくてもよく、異なる特定の動作は、異なる実施形態で実施することができる。さらに、プロセスはいくつかのサブプロセスを用いて、またはより大きなマクロプロセスの一部として実施することができる。従って、当業者は、本発明は、前述の例示的な詳細によって限定されるものではないことを理解し、むしろ添付の特許請求の範囲によって規定されるものだと理解するであろう。