(57)【特許請求の範囲】
【請求項１】
１つまたは複数の画像、および前記画像の１つまたは複数に関連付けられたテキストをレイアウトするための方法であって、
前記１つまたは複数の画像および前記テキストを表示するためのキャンバス、および前記キャンバスの前記１つまたは複数の画像および前記テキストについての１つまたは複数の事前定義済みレイアウトの選択可能な１つまたは複数の視覚表現を表示するレイアウトギャラリを有するユーザインターフェースを表示することであって、前記キャンバス内のコンテンツの位置およびサイズを規定するための制約が規定されており、当該制約が、当該コンテンツに対して当該制約を適用したことにより、当該コンテンツが、そのコンテンツに対する指定境界をオーバーフローしたときに、当該制約を修正するための規則により修正されるものと、
前記１つまたは複数の画像および前記テキストを受け取ること、
前記１つまたは複数の視覚表現のうちの１つでのホバリングを検出することと、
ホバリングの検出に応答して、当該ホバリングが検出された視覚表現に対応する事前定義済みレイアウトに従ってライブプレビュー用に前記１つまたは複数の画像および前記テキストのレイアウトを動的に生成して表示すること、
事前定義済みレイアウトに従って前記１つまたは複数の画像および前記テキストをレイアウトするための要求を受け取ること、
前記要求に応答して、前記事前定義済みレイアウトに従って前記１つまたは複数の画像および前記テキスト用のレイアウトを生成すること、
前記キャンバスに前記レイアウトを表示すること
前記事前定義済みレイアウトに対する修正を受け取ること、
前記事前定義済みレイアウトに対する前記修正を受け取ることに応答して、前記制約を満足しつつ前記事前定義済みレイアウトのデザイン要素を維持して、前記修正を反映して前記レイアウトを動的に刷新すること、および、
前記レイアウトを表示すること、
を含むことを特徴とする方法。
【請求項２】
前記事前定義済みレイアウト用の追加のコンテンツを受け取ること、
前記事前定義済みレイアウト用の追加のコンテンツを受け取ることに応答して、前記事前定義済みレイアウトのデザイン要素を維持して、前記追加のコンテンツを組み込んで前記事前定義済みレイアウトを動的に刷新すること、および、
前記レイアウトを表示すること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
第２の定義済みレイアウトに従って前記１つまたは複数の画像および前記テキストをレイアウトするための要求を受け取ること、
第２の定義済みレイアウトに従って前記画像およびテキストをレイアウトするための要求に応答して、前記第２の事前定義済みレイアウトに従って前記画像および前記テキスト用の第２のレイアウトを生成すること、および、
前記第２のレイアウトを表示すること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
事前定義済みレイアウトに従って前記１つまたは複数の画像およびテキストをレイアウトするための要求を受け取ることが、前記レイアウトギャラリ内で表示された前記視覚表現のうちの１つの選択を受け取ることを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第２の事前定義済みレイアウトに従って前記１つまたは複数の画像およびテキストをレイアウトするための要求を受け取ることが、前記レイアウトギャラリ内で表示された前記視覚表現のうちの第２の１つの選択を受け取ることを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記１つまたは複数の画像の表現を含むコンテンツペインを表示することをさらに含むことを特徴とする請求項３に記載の方法。
【請求項７】
プロセッサとプログラムを記録した記録媒体とを備えた装置であって、前記グログラムは、前記プロセッサに請求項１乃至６のいずれかに記載の方法を実行させることを特徴とする装置。
【請求項８】
コンピュータによって実行されたとき請求項１乃至６のいずれかに記載の方法を前記コンピュータに実施させることになるコンピュータ実行可能命令が記憶されていることを特徴とするコンピュータ記憶媒体。
【請求項９】
１つまたは複数の画像、および前記画像の１つまたは複数に関連付けられたテキストをレイアウトするための方法であって、
１つまたは複数の事前定義済みレイアウトの１つまたは複数の選択可能な視覚表現を含むレイアウトギャラリを表示することであって、前記キャンバス内のコンテンツの位置およびサイズを規定するための制約が規定されており、当該制約が、当該コンテンツに対して当該制約を適用したことにより、当該コンテンツが、そのコンテンツに対する指定境界をオーバーフローしたときに、当該制約を修正するための規則により修正されるものと、
前記レイアウトギャラリ内で表示された前記視覚表現のうちの１つでのホバリングを検出することと、
ホバリングの検出に応答して、当該ホバリングが検出された視覚表現に対応する事前定義済みレイアウトに従ってライブプレビュー用に前記１つまたは複数の画像および前記テキストのレイアウトを動的に生成して表示すること、
前記レイアウトギャラリ内で表示された前記視覚表現のうちの１つの選択を受け取ること、および、
前記選択を受け取ることに応答して、前記選択された視覚表現に関連付けられた事前定義済みレイアウトに従って１つまたは複数の画像およびテキストのレイアウトを生成すること、および、
前記レイアウトを表示すること
を含み、
前記レイアウトギャラリ内で表示された前記表現のうちの第２の１つの選択を受け取ること、
第２の視覚的表現の前記選択を受け取ることに応答して、前記第２の視覚的表現に関連付けられた事前定義済みレイアウトに従って１つまたは複数の画像およびテキストの第２のレイアウトを生成すること、および、
前記第２のレイアウトを表示すること
をさらに含み、
前記レイアウトが前記レイアウトギャラリに隣接してキャンバス上で表示され、
前記事前定義済みレイアウトの修正または前記事前定義済みレイアウトに対する新しいコンテンツの追加を検出すること、および、それに応答して、前記制約を満足しつつ前記事前定義済みレイアウトのデザイン要素を維持して、前記修正を反映してまたは前記追加のコンテンツを組み込んで前記事前定義済みレイアウトを動的に刷新することを含む、
方法。
【請求項１０】
前記１つまたは複数の画像の表現を含むコンテンツペインを、前記キャンバスに隣接して表示することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
プロセッサとプログラムを記録した記録媒体とを備えた装置であって、前記プログラムは、前記プロセッサに請求項９または１０のいずれかに記載の方法を実行させることを特徴とする装置。
【請求項１２】
コンピュータによって実行されたとき請求項９または１０のいずれかに記載の方法を前記コンピュータに実施させることになるコンピュータ実行可能命令が記憶されていることを特徴とするコンピュータ記憶媒体。
【請求項１３】
１つまたは複数の事前定義済みレイアウトに従って、１つまたは複数の画像を、前記画像の１つまたは複数に関連付けられたテキストと共にレイアウトするための方法であって、
レイアウトを提示するためのキャンバスを表示すること、
前記キャンバス上での前記１つまたは複数の画像および前記テキストの配置を受け取ること、
選択されたとき、前記キャンバス上の前記画像およびテキストを、対応する事前定義済みレイアウトに従ってレイアウトさせる、１つまたは複数の事前定義済みレイアウトの選択可能な視覚表現を含むレイアウトギャラリを、前記キャンバスに隣接して表示することであって、前記キャンバス内のコンテンツの位置およびサイズを規定するための制約が規定されており、当該制約が、当該コンテンツに対して当該制約を適用したことにより、当該コンテンツが、そのコンテンツに対する指定境界をオーバーフローしたときに、当該制約を修正するための規則により修正されるものと、
前記レイアウトギャラリ内で前記１つまたは複数の視覚表現のうちの１つでのホバリングを検出することと、
ホバリングの検出に応答して、当該ホバリングが検出された視覚表現に対応する事前定義済みレイアウトに従ってライブプレビュー用に前記１つまたは複数の画像および前記テキストのレイアウトを動的に生成して表示すること、
前記レイアウトギャラリ内の前記表現のうちの１つの選択を受け取ること、
前記表現のうちの１つの前記選択を受け取ることに応答して、前記選択された表現に対応する事前定義済みレイアウトに基づいて前記１つまたは複数の画像および前記テキストのレイアウトを動的に生成すること、
前記キャンバス上で前記レイアウトを表示すること、
前記事前定義済みレイアウトに対する修正を受け取ること、
前記事前定義済みレイアウトに対する前記修正を受け取ることに応答して、前記制約を満足しつつ前記事前定義済みレイアウトのデザイン要素を維持して、前記修正を反映して前記レイアウトを動的に刷新すること、および、
前記レイアウトを表示すること、
を含むことを特徴とする方法。
【請求項１４】
前記レイアウトギャラリ内で表示された第２の表現の選択を受け取ること、
第２の表現の前記選択を受け取ることに応答して、前記選択された第２の表現に対応する事前定義済みレイアウトに基づいて前記１つまたは複数の画像および前記テキストのレイアウトを動的に刷新すること、および、
前記キャンバス上で前記刷新されたレイアウトを表示すること
をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記１つまたは複数の画像の表現を含むコンテンツペインを、前記キャンバスに隣接して表示することをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記コンテンツペイン内で表示された表現の選択により、対応する画像が前記キャンバス上で選択されることになることを特徴とする請求項１５に記載の方法。
【請求項１７】
プロセッサとプログラムを記録した装置であって、前記プログラムは、前記プロセッサに前記請求項１３乃至１６のいずれかに記載の方法を実行させることを特徴とする装置。
【請求項１８】
コンピュータによって実行されたとき請求項１３乃至１６のいずれかに記載の方法を前記コンピュータに実施させることになるコンピュータ実行可能命令が記憶されていること
を特徴とするコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事前定義済みレイアウトを使用する、画像および関連のテキストの動的レイアウト
【背景技術】
【０００２】
多くのタイプのデスクトップアプリケーションでは、ユーザが自分の文書に画像および関連のテキストアノテーションを追加することができる。たとえば、多くのワードプロセッシングアプリケーション、スプレッドシートアプリケーション、およびプレゼンテーションアプリケーションでは、ユーザが文書に１つまたは複数の画像を挿入し、それらの画像に対してテキストアノテーションを配置することができる。しかし、これらのアプリケーションは、一般に、画像および関連のテキストアノテーションを互いに関係付けてどのようにレイアウトすべきかに関して、設計ガイダンスを提供しない、またはほとんど提供しない。それどころか、大抵のアプリケーションは、ユーザが手動で画像および関連のテキストアノテーションをレイアウトすることを必要とする。
【０００３】
画像および関連のテキストアノテーションをレイアウトするための手動の手法は、非常に熟練した設計者に対して大きな柔軟性をもたらすが、大抵のユーザは、画像および関連のテキストのプロ級のレイアウトを生み出すのに必要な、創造的な設計技能を身につけていない。その結果、多数のユーザは、素人臭く見える、整然と並んでいないまたは不適切なサイズの画像と、おそらくは関連画像のレイアウトとして位置またはサイズが不適切なテキストアノテーションとを含む、画像および関連のテキストを有するレイアウトを作成することで終わる。多くの場合、手動で生成されたレイアウトでは、ユーザが望むメッセージが容易く伝わらない。
【０００４】
一部のデスクトップアプリケーションは、静的なテンプレートを自動的に使用して、ページ上で複数の画像をレイアウトする際にユーザを支援するための限られた機能を提供する。しかし、これらのタイプのアプリケーションは、画像を動的にレイアウトせず、その画像に関連するテキストアノテーションをレイアウトするためのなんらかのガイダンスをも提供しない。さらに、これらのタイプのアプリケーションは、一般に、提供されるテンプレートの正確な構造および設計を使用することをユーザに強いる。ユーザは、画像または関連テキストの再配置または追加を通じて、テンプレートによって提供されるレイアウトを修正することが許されないことがある。これは、テキストアノテーション、またはテンプレートによって可能にされるより多い、もしくは少ない画像を含むレイアウトを作成しようと試みるユーザにとって期待はずれとなる可能性がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００６／０２０９０９３号公報
【特許文献２】米国特許出願公開第２００６／０２１２８０１号公報
【特許文献３】米国特許出願公開第２００６／００６６６３１号公報
【発明の概要】
【０００６】
これらの考慮すべき点などに関連して、本明細書の開示が提供されている。
【０００７】
本明細書では、画像および関連テキストアノテーションを動的に配置するための技術について述べる。本明細書に提示されている技術および概念の使用を通じて、アプリケーションプログラムは、事前定義済みレイアウトを使用して、画像および関連のテキストアノテーションを動的にレイアウトすることができる。様々なレイアウトを画像およびそれらの関連のテキストアノテーションに適用することができ、事前定義済みレイアウトは、可能な最良のレイアウト確認するまで変更することができる。さらに、事前定義済みレイアウトは、そのレイアウトの図案要素（design elements）を依然として保持したまま、追加の画像またはアノテーションを追加することを可能にする。これらの技術の使用を通じて、事実上創造的な設計技能のないユーザが画像および関連のテキストアノテーションのプロ級のレイアウトを作成することができる。
【０００８】
本明細書に提示されている一態様によれば、１つまたは複数の事前定義済みレイアウトが作成され、そのレイアウトを定義するデータがレイアウト定義ファイル内に格納される。各事前定義済みレイアウトは、１つまたは複数の画像および関連のテキストアノテーション用のレイアウトを指定する。具体的には、各事前定義済みレイアウトは、画像および任意の関連のテキストアノテーションを、互いに関係付けてどのようにサイズ設定および位置決めすべきか指定する。たとえば、レイアウトは、そのレイアウト内の画像の場所およびサイズを、それらの画像に関連付けられたテキストの場所、サイズ、およびスタイルと共に指定することができる。また、レイアウトは、追加の画像またはテキストがレイアウトに追加された場合、レイアウトをどのように修正すべきか指定することができる。下記で詳細に述べるように、レイアウト定義ファイルの内容を使用して、画像および関連のテキストを動的にレイアウトし、および新しいコンテンツを追加した後またはレイアウトを修正した後にレイアウトを刷新（regenerate）する。
【０００９】
他の態様に従って、レイアウト定義ファイルの内容を使用し画像および関連のテキストを動的にレイアウトするように動作するアプリケーションプログラムについて本明細書で述べる。一実施例では、このアプリケーションプログラムは、画像および関連のテキストを動的にレイアウトするためのユーザインターフェースを提供する。このユーザインターフェースは、ユーザが１つまたは複数の画像を配置することができるキャンバスを含む。また、このユーザインターフェースは、キャンバス上に配置された画像に適用される事前定義済みレイアウトを選択することができるコントロールを含む。一実施例では、このコントロールは、キャンバスに隣接して表示されるレイアウトギャラリである。レイアウトギャラリは、使用可能な事前定義済みレイアウトのそれぞれに対応する、選択可能な視覚的表現を含む。視覚的表現の１つが選択されると、対応する事前定義済みレイアウトが、キャンバス上の画像に動的に割り当てられる。
【００１０】
レイアウトが動的に生成および表示された後で、ユーザは、レイアウト内で追加の画像を追加する、またはテキストアノテーションを完成させることによって、レイアウトを修正することができる。また、ユーザは、レイアウト内の要素のサイズまたは位置を修正することができる。レイアウトの修正に応答して、レイアウト定義ファイルの内容が使用され、修正を鑑みてレイアウトを刷新する。たとえば、新しい画像が追加された場合、その新しい画像をレイアウトに適切に組み込むようにレイアウトを刷新することができる。また他の事前定義済みレイアウトを、レイアウトギャラリ内の視覚的表現の選択を通じて画像およびテキストに適用することもできる。
【００１１】
他の態様によれば、レイアウトギャラリ内に表示される視覚的表現を使用し、レイアウトのプレビューを生成することができる。たとえば、一実施例では、ユーザインターフェースのマウスカーソルがレイアウトギャラリ内の視覚的表現の上でホバー（hover）されたとき、対応する事前定義済みレイアウトのライブプレビューが生成される。ホバリングは、ユーザ入力マウスカーソルを、マウスボタンを使用してオブジェクトを選択することなしに、オブジェクトの上に置くプロセスを指す。レイアウトのプレビューを生成させるために、マウス以外の他のタイプのユーザ入力デバイスを使用する他のユーザ入力機構を使用することができることを理解されたい。このようにしてプレビューを生成することによって、ユーザは、事前定義済みレイアウトを適用する前に、キャンバス上の画像に事前定義済みレイアウトを適用した結果を見ることができる。適切なレイアウトが識別されたとき、事前定義済みレイアウトを、適切な視覚的表現の選択を通じて適用することができる。
【００１２】
本明細書で述べられている実施例は、画像および関連のテキストをレイアウトする任意のタイプのコンピュータプログラムに適用可能であることを理解されたい。たとえば、本明細書に提示されている概念は、ワードプロセッシングアプリケーションプログラム、スプレッドシートアプリケーションプログラム、プレゼンテーションアプリケーションプログラム、デスクトップパブリッシングアプリケーションプログラム、および他のタイプのアプリケーションプログラムで使用することができる。また、上述の主題は、コンピュータによって制御される装置、コンピュータプロセス、コンピューティングシステムとして、またはコンピュータ可読媒体などの製品として実施することができる。これらの、また様々な他の特徴は、以下の詳細な説明を読み、関連の図面を検討すれば明らかになるであろう。
【００１３】
この概要は、以下、詳細な説明でさらに述べられる概念の集まりを、簡潔な形態で紹介するために提供されている。この概要は、特許請求されている主題の重要な特徴または不可欠な特徴を識別することが意図されているものでも、特許請求されている主題の範囲を限定するためにこの概要が使用されることが意図されているものでもない。さらに、特許請求されている主題は、この開示のいずれかの部分に示されている欠点の一部またはすべてを解決する実施例に限定されない。
【図面の簡単な説明】
【００１４】
【図１】一実施例で提示されている、レイアウト定義ファイルの内容およびそこに定義されるいくつかの事前定義済みレイアウトをグラフィックに示す図である。
【図２】本明細書に提示されている一実施形態における、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトすることができるアプリケーションプログラムによって提供されるユーザインターフェースの態様を示す画面図である。
【図３】本明細書に提示されている一実施形態における、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトすることができるアプリケーションプログラムによって提供されるユーザインターフェースの態様を示す画面図である。
【図４】本明細書に提示されている一実施形態における、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトすることができるアプリケーションプログラムによって提供されるユーザインターフェースの態様を示す画面図である。
【図５】本明細書に提示されている一実施形態における、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトすることができるアプリケーションプログラムによって提供されるユーザインターフェースの態様を示す画面図である。
【図６】本明細書で述べられている一実施例における、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトするための例示的なプロセスを示す流れ図である。
【図７】本明細書に提示されている実施形態を実施することができるコンピューティングシステムのための例示的なコンピュータハードウェア／ソフトウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明は、事前定義済みレイアウトを使用して画像および関連のテキストを動的に配置するための技術を対象とする。本明細書に提示されている実施形態の使用を通じて、アプリケーションプログラムは、事前定義済みレイアウトを使用する、画像および関連のテキストの自動化された動的な配置を実現することができる。本明細書に提示されている概念および技術を実施するアプリケーションプログラムを使用して、ユーザは、画像および関連のテキストアノテーションのプロ級のレイアウトを容易に生成することができる。
【００１６】
本明細書で述べられている主題は、コンピュータシステム上でのオペレーティングシステムおよびアプリケーションプログラムの実行と共に実行されるプログラムモジュールの一般的な状況で提示されているが、他の実施例を他のタイプのプログラムモジュールと組み合わせて実施することができることを、当業者なら理解するであろう。一般に、プログラムモジュールは、特定のタスクを実施する、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、本明細書で述べられている主題は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサをベースとする、またはプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成と共に実施することができることを、当業者なら理解するであろう。
【００１７】
以下の詳細な説明では、その一部を形成する、かつ例として特定の実施形態または実施例を示す添付の図面を参照する。次に、同様の符号がいくつかの図全体にわたって同様の要素を表す図面を参照して、画像および関連のテキストをレイアウトするためのコンピューティングシステムおよび方法の態様について述べる。
【００１８】
次に、図１を参照して、事前定義済みレイアウトを使用して画像およびその画像に関連付けられたテキストを動的に配置するための、本明細書に提示されている一実施形態について詳述する。具体的には、図１は、アプリケーションプログラム１００およびレイアウト定義ファイル１０２の態様を示す。アプリケーションプログラム１００は、画像およびテキストを動的にレイアウトするときレイアウト定義ファイル１０２の内容を使用する。アプリケーションプログラム１００は、それだけには限らないが、ワードプロセッシングアプリケーションプログラム、スプレッドシートアプリケーションプログラム、プレゼンテーション作成アプリケーションプログラム、ウェブページ設計プログラム、またはデスクトップパブリッシングアプリケーションプログラムを含めて、画像および関連のテキストをレイアウトする任意のタイプのアプリケーションプログラムとすることができることを理解されたい。本明細書に提示されている概念は、アプリケーションプログラムと共に使用し任意の特定の機能を実施することに限定されない。
【００１９】
一実施例によれば、レイアウト定義ファイル１０２は、１つまたは複数のレイアウト１０４Ａ〜１０４Ｄを定義するデータを格納する。レイアウト１０４Ａ〜１０４Ｄはそれぞれ、１つまたは複数の画像について、またそれらの画像に関連付けられたテキストについて、配置、サイズ、および他の特性を定義する。たとえば、レイアウト１０４Ａは、６つの画像１０６Ａ〜１０６Ｄと、それらの画像に関連するテキスト１０８Ａ〜１０８Ｄとを含む。レイアウト１０４Ｂは、１つの画像１０６Ｇと、画像１０６Ｇを横切って水平に配向されたテキスト１０８Ｇとを含む。レイアウト１０４Ｃは、３つの画像１０６Ｈ〜１０６Ｊと、画像間に配置されたテキスト１０８Ｈとを含む。レイアウト１０４Ｄは、１つの画像１０６Ｋ、およびテキスト１０８Ｉを含む。図１に示されているレイアウト１０４Ａ〜１０４Ｄが例示的なものにすぎないこと、また、レイアウト定義ファイル１０２は、画像および／または関連のテキストの任意の配置を有する任意の数のレイアウトを定義することができることを理解されたい。
【００２０】
本明細書に提示されている他の態様によれば、レイアウト定義ファイル１０２はまた、各レイアウト内で画像およびテキストを動的にレイアウトする際にアプリケーションプログラムが使用するためのデータを格納する。このデータはまた、レイアウト内での画像もしくはテキストの再配置またはレイアウトに対する新しい画像もしくはテキストの追加など、レイアウトに対する修正の後で、アプリケーションプログラム１００がレイアウトを動的に生成することを可能にする。一実施例では、このデータは、各レイアウトを動的に生成するための制約および規則として格納される。アプリケーションプログラム１００は、これらの制約および規則を使用し、レイアウト内で画像およびテキストのそれぞれをレイアウトし、また修正の後でそのレイアウトを刷新する。
【００２１】
制約は、コンテンツオブジェクトをアプリケーションプログラムがどのようにレイアウトすべきか定義する。コンテンツオブジェクトは、画像、動画、テキスト、または他のタイプのデジタルメディアとすることができる。制約は、各コンテンツオブジェクトの位置およびサイズを定義するデータを含むことができる。各オブジェクトのサイズおよび位置は、他のオブジェクトに対して、または他のオブジェクトから独立に定義することができる。また、制約は、各コンテンツオブジェクトをどのようにフォーマットすべきか定義する。たとえば、テキストオブジェクト用の制約は、フォントフェース、フォントサイズ、位置合わせ、行揃え、およびテキストのための他のフォーマット特性を定義することができる。制約は、数値またはブール値を含むことができる。数値制約は、特定の数値を指定することができる（たとえば、幅＝１インチ（２．５４ｃｍ））。また、数値制約は、参照を使用して他の制約を参照することによってそれらの値を定義することができる（たとえば、高さ＝幅×０．７５）。
【００２２】
アプリケーションプログラム１００は、レイアウト定義ファイル１０２内で定義された規則を使用し、制約を修正することができる。具体的には、規則は、コンテンツをレイアウト内にはめ込もうと試みるために１つまたは複数の制約をどのように修正するか定義する。たとえば、アプリケーションプログラム１００は、コンテンツオブジェクトに対して制約を適用したことにより、コンテンツが、そのコンテンツオブジェクトに対する指定境界をオーバーフローしたとき制約を修正するために規則を使用する。例として、レイアウトにとって大きすぎる画像がレイアウトに追加された場合、レイアウトに合うように、画像を動的に縮尺、トリミング、ストレッチ、または他の方法でサイズ変更することができる。これらの動作は、画像の内容を保存するように非破壊的な仕方で実施することができる。諸実施形態では、いくつかの動作が破壊的な仕方で実施されてもよい。別の例として、制約では、テキストオブジェクト用のフォントサイズが１４ポイントであることを指定することができる。次に、規則では、そのテキストをレイアウトにはめ込もうと試みる際にフォントサイズを８ポイントに縮小することができることを指定することができる。規則および制約は、レイアウト内での一貫性を確保するために、相異なるオブジェクト間で伝播（propagate）されてもよいことを理解されたい。このようにして、たとえば、レイアウト内のテキストまたは画像すべてを同じサイズにすることができる。アプリケーションプログラム１００は、レイアウト内にあるテキストの量または画像の量に応じて、テキストまたは画像のサイズを動的に調整することになる。
【００２３】
他の実施例によれば、レイアウト定義ファイル１０２はまた、コンテンツをレイアウトするためにアプリケーションプログラム１００によって使用されるべきレイアウトアルゴリズムを指定することができる。たとえば、レイアウト定義ファイル１０２はまた、テキストをレイアウト内に配置するためにアプリケーションプログラム１００によって使用される、テキストをレイアウトするためのアルゴリズムを指定することができる。また、他のタイプのコンテンツオブジェクト用の、他のタイプのレイアウトアルゴリズムを、レイアウト定義ファイル１０２内で指定することができる。また、ユーザがレイアウト定義ファイル１０２に新しいレイアウトを追加することが許されてもよい。
【００２４】
一実施例によれば、レイアウト定義ファイル１０２の内容は、拡張マークアップ言語（ＸＭＬ）を使用して指定される。ＸＭＬは、データを通信するための標準的なフォーマットである。ＸＭＬデータフォーマットでは、スキーマが使用され、通信することができるデータのタイプおよび構造を支配する文法規則およびデータ型規則のセットをＸＭＬデータに提供する。ＸＭＬデータフォーマットは当業者に周知であり、したがって本明細書ではこれ以上詳細に論じない。レイアウト定義ファイル１０２の内容、ならびに画像およびテキストを動的にレイアウトするためにアプリケーションプログラム１００によって使用されるプロセスに関する追加の詳細は、２００５年３月１５日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｍｐｕｔｅｒ−Ｒｅａｄａｂｌｅ  Ｍｅｄｉｕｍ  ｆｏｒ  Ｇｅｎｅｒａｔｉｎｇ  Ｇｒａｐｈｉｃｓ  Ｈａｖｉｎｇ  ａ  Ｆｉｎｉｔｅ  Ｎｕｍｂｅｒ  ｏｆ  Ｄｙｎａｍｉｃａｌｌｙ  Ｓｉｚｅｄ  ａｎｄ  Ｐｏｓｉｔｉｏｎｅｄ  Ｓｈａｐｅｓ」という名称の特許出願（特許文献１参照）、２００６年３月１５日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｍｐｕｔｅｒ−Ｒｅａｄａｂｌｅ  Ｍｅｄｉｕｍ  ｆｏｒ  Ｆｉｔｔｉｎｇ  Ｔｅｘｔ  ｔｏ  Ｓｈａｐｅｓ  Ｗｉｔｈｉｎ  ａ  Ｇｒａｐｈｉｃ」という名称の特許出願（特許文献２参照）、２００４年９月３０日に出願された「Ｍｅｔｈｏｄ，  Ｓｙｓｔｅｍ，  ａｎｄ  Ｃｏｍｐｕｔｅｒ−Ｒｅａｄａｂｌｅ  Ｍｅｄｉｕｍ  ｆｏｒ  Ｃｒｅａｔｉｎｇ  ａｎｄ  Ｌａｙｉｎｇ  Ｏｕｔ  ａ  Ｇｒａｐｈｉｃ  Ｗｉｔｈｉｎ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ」という名称の特許出願（特許文献３参照）に見出すことができ、これらのそれぞれは、その全体を参照により明確に本明細書に組み込む。
【００２５】
次に図２を参照して、画像および関連のテキストを動的にレイアウトするための一実施形態におけるアプリケーション１００によって提供される例示的なユーザインターフェース２０２について述べる。図２に示されているように、ユーザインターフェース２０２は、キャンバス２０６を含む。キャンバス２０６は、レイアウト用の画像およびテキストを保持するために使用される。ユーザは、挿入操作、または「カットアンドペースト」操作など、適切な操作を通じてキャンバス２０６上に画像を配置することができる。たとえば、図２に示されている例では、ユーザが画像１０６Ｌをキャンバス２０６上に配置済みである。キャンバス２０６は、アプリケーションプログラム１００の性質に応じて様々な形態をとることができることを理解されたい。たとえば、アプリケーションプログラム１００がプレゼンテーションアプリケーションプログラムである場合、キャンバス２０６は、スライドプレゼンテーション内の単一のスライドであってもよい。アプリケーションプログラム１００がワードプロセッシングアプリケーションプログラム１００である場合、キャンバス２０６は、ワードプロセッシング文書内のページを含むことができる。アプリケーションプログラム１００がスプレッドシートアプリケーションプログラムである場合、キャンバス２０６は、スプレッドシートの一部分を含むことができる。キャンバス２０６は、他のタイプのアプリケーションプログラムによって実装されるとき他の形態をとることができる。
【００２６】
また、図２に示されているユーザインターフェース２０２は、レイアウトギャラリ２０４を含む。レイアウトギャラリ２０４は、キャンバス２０６上に配置された画像に動的に適用することができる事前定義済みレイアウトの、選択可能な視覚的表現２１０Ａ〜２１０Ｄを含む。視覚的表現２１０Ａ〜２１０Ｄのそれぞれは、レイアウトに対応する。マウスボタンまたは他のタイプのユーザ入力デバイスを使用することによってなど、視覚的表現が選択されたとき、対応するレイアウトが、キャンバス２０６上に配置されている画像およびテキストに適用されることになる。たとえば、視覚的表現２１０Ａは、単一の画像を有しテキストを有していないレイアウトに対応する。視覚的表現２１０Ｂは、単一の画像と、その画像を横切って水平にレイアウトされたテキストとに対応する。視覚的表現２１０Ｃは、３つの画像を有するレイアウトに対応し、テキストがそれらの３つの画像の間に配置される。視覚的表現２１０Ｄは、２つの画像を有するレイアウトに対応し、テキストが両画像を横切って垂直に配置される。
【００２７】
諸実施例によれば、ユーザインターフェース２０２はまた、画像調整パレット２０８を含むことができる。画像調整パレット２０８は、キャンバス２０６上に配置された画像を調整するためのユーザインターフェースコントロール２１２Ａ〜２１２Ｃを提供する。たとえば、ユーザインターフェースコントロール２１２Ａは、選択されたとき、画像の明るさを調整するための機能を提供し、ユーザインターフェースコントロール２１２Ｂは、画像のコントラストを調整するための機能を提供し、ユーザインターフェースコントロール２１２Ｃは、画像の色を調整するための機能を提供する。画像の内容を調整するために、他のツールを同様の仕方で提供することができる。
【００２８】
他の実施例によれば、ユーザインターフェース２０２はまた、コンテンツペイン２１４を含む。コンテンツペイン２１４は、キャンバス２０６上に陳列されているデータモデルの視覚的表現を提供する。具体的には、一実施形態では、コンテンツペイン２１４は、キャンバス２０６上の各画像に対するサムネイル画像を含む。たとえば、図２に示されている例では、コンテンツペイン２１４は、画像１０６Ｌに対応するサムネイル２１６Ａを含む。サムネイル画像は、画像に対するスタイルの適用など、対応する画像に対して加えられた修正を反映することができる。また、コンテンツペイン２１４は、キャンバス上の各画像に関連付けられたテキストを含む。
【００２９】
諸実施例によれば、コンテンツペイン２１４を使用し、キャンバス２０６上にある画像およびテキストを選択および編集することができる。たとえば、一実施例では、コンテンツペイン内でサムネイル画像を選択することにより、キャンバス上の対応する画像もまた選択されることになる。また、コンテンツペイン２１４内に示されているテキストをも、選択および編集することができる。そのような編集は、キャンバス２０６上に示されているテキストに反映される。また、コンテンツペイン２１４を使用し、追加のノードをデータモデルに追加すること、ノードをデータモデルから除去すること、ノードの順番を変更すること、また他の編集機能を実施することができる。
【００３０】
次に図３を参照すると、本明細書に提示されている一実施形態におけるユーザインターフェース２０２の態様についてさらに詳述する。この実施形態では、ユーザインターフェース２０２は、ユーザコマンドに応答して、選択されたレイアウトのライブプレビューを提供するように動作する。具体的には、この実施形態では、ユーザは、マウス入力デバイスを使用し、マウスカーソル３０２を視覚的表現２１０Ａ〜２１０Ｄの１つの上でホバーすることができる。そのような入力を検出したことに応答して、アプリケーションプログラム１００は、対応する事前定義済みレイアウトに従ってキャンバス２０６上にある画像を動的にレイアウトするように動作する。生成されたレイアウトは、プレビューとして表示される。すなわち、生成されたレイアウトは、実際にはキャンバス２０６上の画像に適用されない。より正確に言えば、レイアウトは、一時的にユーザに対して表示されるにすぎない。このようにして、ユーザは、マウスカーソル３０２を視覚的表現２１０Ａ〜２１０Ｄのそれぞれの上でホバーし、対応するレイアウトがキャンバス２０６の内容に割り当てられたときどのように見えることになるかについてプレビューを得ることができる。他のユーザ入力デバイスを使用する他のタイプのユーザ入力を使用し、プレビューを生成させることができることを理解されたい。
【００３１】
図３に示されている例では、マウスカーソル３０２は、視覚的表現２１０Ｂの上でホバー中である。その結果、アプリケーションプログラム１００は、キャンバス上にある単一の画像１０６Ｌを使用して、レイアウト３０４Ａのプレビューを生成および表示している。レイアウト３０４Ａはテキスト１０８Ｊを含み、テキスト１０８Ｊは、キャンバス２０６上およびコンテンツペイン２１４内で反映されている。レイアウト３０４Ａは、実際にはキャンバス２０６の内容に適用されていないことを理解されたい。その結果、マウスカーソル３０２が視覚的表現２１０Ｂから離されると、キャンバス２０６は、再び図１のように見えることになる。マウスホバーイベントは、レイアウトのライブプレビューを生成および表示すべきであることをアプリケーションプログラム１００に対して示すための１つの機構にすぎないことをも理解されたい。他のタイプのユーザ入力機構をも同様な仕方で使用することができる。図５に関連して下記でより詳細に述べるように、マウスボタンの使用を通じてなど、視覚的表現２１０Ａ〜２１０Ｄの１つを選択することにより、選択された視覚的表現に対応するレイアウトが、キャンバス２０６の内容に動的に適用されることになる。
【００３２】
次に図４を参照して、一実施形態において提供されるユーザインターフェース２０２の動作に関する追加の詳細について述べる。図４に示されている例では、ユーザがマウスカーソル３０２とマウスボタンとを使用し、視覚的表現２１０Ｄを選択した。その結果、視覚的表現２１０Ｄに対応するレイアウトが、図４に示されているキャンバス２０６の内容に動的に適用されている。これにより、図４におけるキャンバス２０６上に示されているレイアウト３０４Ｂが得られる。
【００３３】
図４に示されているように、レイアウト３０４Ｂは、画像１０６Ｌと、テキスト１０８Ｊとを含む。この例では、ユーザは、プレースホルダテキストを「Ｏｕｒ  Ｌａｋｅ  Ｈｏｕｓｅ（私たちの湖の家）」という文句で置き換えた。視覚的表現２１０Ｄが選択されたときキャンバス２０６上に画像が１つしかなかったため、画像１０６Ｍに対してキャンバス上にプレースホルダが配置されている。ユーザは、キャンバス２０６上で定位置に画像を挿入し、プレースホルダを置き換えることができる。また、ユーザは、テキスト１０８Ｋを選択し、新しいテキストをタイプすることによって、テキスト１０８Ｋを修正することができる。タイプされたテキストがテキスト１０８Ｋに取って代わることになる。諸実施形態によれば、テキストアノテーションは、キャプションを含んでも、参照に動的に結びつけられてもよいことを理解されたい。
【００３４】
下記でより詳細に述べるように、ユーザはまた、いつでも視覚的表現２１０Ａ〜２１０Ｄをどれでも選択し、対応するレイアウトをキャンバスの内容に適用させることができる。ユーザが新しい視覚的表現を選択すると、現在のレイアウト内の画像が、選択された視覚的表現に対応する新しいレイアウトに繰り越される。このようにして、ユーザは、レイアウト内で使用しようとする画像を選択し直す必要なしにレイアウト間を迅速に移動することができる。
【００３５】
キャンバスの内容にレイアウトを適用したことに応答して、ユーザインターフェース２０２はまた、スタイルパレット４０４と、レイアウト修正パレット４０２とを提示している。スタイルパレット４０４は、レイアウト３０４Ｂ内の画像およびテキストに適用されたスタイルを調整するためのユーザインターフェースオブジェクト２１２Ｇ〜２１２Ｊを含む。たとえば、ユーザインターフェースオブジェクト２１２Ｇを選択し、テキストまたは画像背景の色など、レイアウト３０４Ｂ内の色を修正することができる。ユーザインターフェースオブジェクト２１２Ｈ〜２１２Ｉを選択し、異なるスタイルをレイアウト３０４Ｂに適用することができる。ユーザインターフェースオブジェクト２１２Ｊを選択し、スタイルパレット４０４内に示されていない追加のスタイルにアクセスすることができる。本明細書で述べられていない、画像を修正するための他の機能をも提供することができることを理解されたい。
【００３６】
レイアウト修正パレット４０２は、レイアウトを修正するための機能を提供する。たとえば、ユーザインターフェースオブジェクト２１２Ｄは、選択されたとき、ユーザが別の画像をレイアウトに追加することを可能にする機能を提供する。ユーザインターフェースオブジェクト２１２Ｅは、選択されたとき、ユーザが追加のテキストをレイアウトに追加することを可能にする機能を提供する。ユーザインターフェースオブジェクト２１２Ｆは、選択されたとき、レイアウトに対する、ユーザによって加えられたどの修正をも除去することによって、レイアウトをリセットする機能を提供する。新しい画像またはテキストの追加など、修正がレイアウトに加えられたとき、アプリケーションプログラム１００は、図１を参照して上述した仕方で、レイアウト定義ファイル１０２の内容を使用して、レイアウトを動的に刷新する。また、画像がレイアウト内で表示される順番を修正するための機能を提供することができる。たとえば、一実施例では、ユーザは、画像を選択およびドラッグし、画像の順番をレイアウト内で互いに変更することができる。
【００３７】
やはり図４に示されているように、コンテンツペイン２１４は、キャンバスに対する選択されたレイアウトの適用を反映するように更新されている。具体的には、テキスト１０８Ｊが、画像サムネイル２１６Ａに隣接して表示されている。また、画像１０６Ｍに対応する画像サムネイル２１６Ｂが、対応するテキスト１０８Ｋに沿って表示されている。上記で論じたように、画像サムネイル２１６Ａ〜２１６Ｂは、それぞれ対応する画像１０６Ｌ〜１０６Ｍを選択するために使用することができる。また、コンテンツペイン２１４を使用し、上述の、他のテキスト編集操作を実施することができる。
【００３８】
次に、図５を参照して、ユーザインターフェース２０２の動作についてさらに詳述する。具体的には、図５は、レイアウトを変更するプロセスを示す。上述のように、いつでも視覚的表現２１０Ａ〜２１０Ｄの１つを選択することにより、キャンバス２０６の内容に、対応するレイアウトが適用されることになる。図５に示されている例では、ユーザは、マウスカーソル３０２を用いて、またマウスボタンを押して視覚的表現２１０Ｂを選択した。その結果、対応するレイアウトが、キャンバス２０６の内容に適用されており、図４に示されているレイアウト３０４Ｂが、図５に示されているレイアウト３０４Ａと置き換えられている。レイアウト３０４Ａは、画像１０６Ｌと、テキスト１０８Ｊとを含む。キャンバス２０６の内容にレイアウトを適用することは非破壊的であり、いつでも新しいレイアウトを、キャンバス２０６上の画像およびテキストに動的に適用することができることを理解されたい。
【００３９】
次に図６を参照して、画像および関連のテキストを動的にレイアウトするための、本明細書に提示されている実施形態についてさらに詳述する。具体的には、図６は、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトするためにアプリケーションプログラム１００によって実施される例示的なプロセスの態様を示すルーチン６００を示す流れ図である。本明細書で述べられている論理オペレーションは、（１）一連の、コンピュータによって実施される働き（ａｃｔ）もしくはコンピューティングシステム上で動作するプログラムモジュールとして、および／または（２）コンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして実装されることを理解されたい。実装は、コンピューティングシステムの性能および他の要件によって決まる選択の問題である。したがって、本明細書で述べられている論理オペレーションは、オペレーション、構造デバイス、働き、またはモジュールとして様々に称される。これらのオペレーション、構造デバイス、働き、およびモジュールは、ソフトウェア、ファームウェア、専用デジタル論理で、またそれらの任意の組合せで実装することができる。また、図に示され本明細書で述べられているものより多い、または少ないオペレーションを実施することができることを理解されたい。また、これらのオペレーションは、本明細書で述べられているものと異なる順番で実施することができる。
【００４０】
ルーチン６００は、オペレーション６０２で始まり、ここでユーザは、１つまたは複数の画像をキャンバス２０６上に配置する。次いで、ルーチン６００は、オペレーション６０４に進み、ここでアプリケーションプログラム１００は、レイアウトギャラリ２０４を表示する。ルーチン６００は、オペレーション６０４からオペレーション６０６に進み、ここでアプリケーションプログラム１００は、マウスカーソル３０２が、レイアウトギャラリ２０４内に示されている視覚的表現２１０Ａ〜２１０Ｄの１つの上でホバーしているかどうか判定する。ホバーしている場合、ルーチン６００は、オペレーション６０６からオペレーション６０８に分岐し、ここで、その視覚的表現に対応するレイアウトのライブプレビューが、図３に関連して上述した仕方で表示される。ルーチン６００は、オペレーション６０８から、下記で述べるオペレーション６１０に進む。
【００４１】
オペレーション６０６でマウスカーソル３０２が視覚的表現２１０Ａ〜２１０Ｄの１つの上でホバーしていないとアプリケーションプログラム１００が決定した場合、ルーチン６００は、オペレーション６１０に進む。オペレーション６１０では、アプリケーションプログラム１００は、マウスカーソル３０２および対応するマウスボタンクリックを用いて選択することによってなど、視覚的表現２１０Ａ〜２１０Ｄの１つが選択されているかどうか判定する。選択されていない場合、ルーチン６００は、上述のオペレーション６０６に戻る。視覚的表現２１０Ａ〜２１０Ｄの１つが選択され、それによって、対応するレイアウトをキャンバス２０６の内容に適用すべきであることを示す場合、ルーチン６００は、オペレーション６１０からオペレーション６１２に進む。
【００４２】
オペレーション６１２では、アプリケーションプログラム１００は、図１に関連して上述した仕方で、適切なレイアウトをキャンバス２０６上の画像およびテキストに動的に適用する。次いで、ルーチン６００は、オペレーション６１４に進み、ここでアプリケーションプログラム１００は、視覚的表現２１０Ａ〜２１０Ｄの１つの選択を通じて新しいレイアウトが要求されているかどうか判定する。要求されている場合、ルーチン６００は、上述のオペレーション６１２に戻り、ここでアプリケーションプログラム１００は、図１に関連して上述した仕方で、適切なレイアウトをキャンバス２０６の内容に動的に適用する。新しいレイアウトが要求されていない場合、ルーチン６００は、オペレーション６１４からオペレーション６１６に進む。
【００４３】
オペレーション６１６では、アプリケーションプログラム１００は、現在のレイアウトが修正されている、または追加のコンテンツが現在のレイアウトに追加されているかどうか判定する。どちらでもない場合、ルーチン６００は、上述のオペレーション６１４に戻る。どちらかである場合、ルーチン６００は、オペレーション６１８に進む。オペレーション６１８では、アプリケーションプログラム１００は、修正をレイアウトに適切に組み込むために、レイアウト定義ファイル１０２を使用して現在のレイアウトを動的に刷新する。次いで、ルーチン６００は、オペレーション６１８から、上述のオペレーション６１４に進む。
【００４４】
図７は、画像および関連のテキストアノテーションをレイアウトするための、本明細書で述べられているソフトウェアコンポーネントを実行することができるコンピュータ７００用の例示的なコンピュータアーキテクチャを示す。図７に示されているコンピュータアーキテクチャは、従来のデスクトップ、ラップトップコンピュータ、またはサーバコンピュータを示し、本明細書で述べられているアプリケーションプログラム１００の任意の態様を実行するために使用することができる。
【００４５】
図７に示されているコンピュータアーキテクチャは、中央処理装置７０２（ＣＰＵ）と、ランダムアクセスメモリ７１４（ＲＡＭ）および読出し専用メモリ（ＲＯＭ）７１６を含むシステムメモリ７０８と、メモリをＣＰＵ７０２に結合するシステムバス７０４とを含む。 起動中などにコンピュータ７００内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システムは、ＲＯＭ７１６内に記憶されている。コンピュータ７００は、オペレーティングシステム７１８、アプリケーションプログラム、および他のプログラムモジュールを記憶するための大容量記憶装置７１０をさらに含み、これについては下記でより詳細に述べる。
【００４６】
大容量記憶装置７１０は、バス７０４に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ７０２に接続される。大容量記憶装置７１０、およびその関連のコンピュータ可読媒体は、コンピュータ７００用の不揮発性記憶を実現する。本明細書に含まれているコンピュータ可読媒体の説明は、ハードディスクまたはＣＤ−ＲＯＭドライブなど大容量記憶装置を参照するが、コンピュータ可読媒体は、コンピュータ７００によってアクセスすることができる任意の使用可能なコンピュータ記憶媒体とすることができることを、当業者なら理解されたい。
【００４７】
限定ではなく例を挙げると、コンピュータ可読媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、取外し式と非取外し式の媒体が含まれる。たとえば、コンピュータ可読媒体には、それだけには限らないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、ＨＤ−ＤＶＤ、ブルーレイもしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または、所望の情報を記憶するために使用することができ、コンピュータ７００によってアクセスすることができる任意の他の媒体が含まれる。
【００４８】
本発明の様々な実施形態によれば、コンピュータ７００は、インターネット７２０などネットワークを介して、遠隔コンピュータに対する論理接続を使用してネットワーク環境内で動作することができる。コンピュータ７００は、バス７０４に接続されたネットワークインターフェースユニット７０６を介してネットワーク７２０に接続することができる。ネットワークインターフェースユニット７０６はまた、他のタイプのネットワークおよび遠隔コンピュータシステムに接続するために使用することができることを理解されたい。また、コンピュータ７００は、キーボード、マウス、または電子スタイラス（図７に示さない）を含めて、いくつかの他のデバイスから入力を受け取り、処理するための入出力コントローラ７１２を含むことができる。同様に、入出力コントローラは、ディスプレイ画面、プリンタ、または他のタイプの出力デバイス（やはり図７に示さない）に出力を送ることができる。
【００４９】
上記で簡潔に述べたように、いくつかのプログラムモジュールおよびデータファイルは、ネットワーク化されたデスクトップコンピュータ、ラップトップコンピュータ、またはサーバコンピュータの動作を制御するのに適したオペレーティングシステム７１８を含めて、コンピュータ７００の大容量記憶装置７１０およびＲＡＭ７１４内に記憶することができる。大容量記憶装置７１０およびＲＡＭ７１４はまた、１つまたは複数のプログラムモジュールを記憶することができる。具体的には、大容量記憶装置７１０およびＲＡＭ７１４は、事前定義済みレイアウトを使用して画像および関連のテキストを動的にレイアウトするための、本明細書で述べられている機能を提供するアプリケーションプログラム１００を記憶することができる。大容量記憶装置７１０およびＲＡＭ７１４はまた、アプリケーションプログラム１００によって使用されるレイアウト定義ファイル１０２および画像１０６を記憶することができる。
【００５０】
前述に基づいて、画像および関連のテキストを動的にレイアウトするための技術が本明細書に提示されていることを理解されたい。本明細書に提示されている主題について、コンピュータの構造的特徴、方法上の働き、およびコンピュータ可読媒体に特有の言葉で述べたが、添付の特許請求の範囲に規定されている本発明は、必ずしも本明細書で述べられている特定の特徴、働き、または媒体に限定されないことを理解されたい。それどころか、これらの特定の特徴、働き、または媒体は、特許請求の範囲を実施する例示的な形態として開示されている。
【００５１】
上述の主題は、例として提供されているものにすぎず、限定するものと解釈すべきでない。図示され述べられている例示的な実施形態および応用例に従うことなしに、また以下の特許請求の範囲に述べられている本発明の真の精神および範囲から逸脱することなしに、様々な修正および変更を、本明細書で述べられている主題に加えることができる。
【図１】
0005698532.tif 000002
【図２】
0005698532.tif 000003
【図３】
0005698532.tif 000004
【図４】
0005698532.tif 000005
【図５】
0005698532.tif 000006
【図６】
0005698532.tif 000007
【図７】
0005698532.tif 000008