專利名稱:使用預定義布局來對圖像和相關聯的文本進行動態布局的制作方法
使用預定義布周來對圖像和相關聯的文本進行動態布局
扭旦 冃爾
許多類型的桌面應用程序允許用戶向他們的文檔添加圖像和相關聯的文 本注釋。例如,許多文字處理應用程序、電子表格應用程序和演示應用程序允 許用戶將一個或多個圖像插入到文檔中并且與這些圖像相關地放置文本注釋。 然而,這些應用程序通常提供極少或者不提供關于應當如何彼此相關地對這些 圖像和相關聯的文本注釋進行布局的設計指導。相反,大多數應用程序需要用 戶手動地對圖像和相關聯的文本注釋進行布局。
盡管對圖像和相關聯的文本注釋進行布局的手動方法確實為技術水平高 的設計者提供了極大的靈活性,但大多數用戶并不擁有創建看上去專業的圖像 和相關聯的文本的布局所需的創造性設計技能。結果,許多用戶最終創建出看 上去很業余的圖像和相關聯的文本的布局,該布局包括未對齊或大小不適當的 圖像,并且可能包括對于相關圖像布局不適當地定位或者設定大小的文本注 釋。在許多情況下,手動生成的布局完全沒有傳達用戶所期望的信息。
某些桌面應用程序確實提供了有限的用于使用靜態模板來協助用戶在頁 面上自動對多個圖像進行布局的功能。然而,這些類型的應用程序并非對圖像 進行動態布局并且不提供用于對與這些圖像相關聯的文本注釋進行布局的任 何指導。此外,這些類型的應用程序通常迫使用戶利用所提供的模板的確切結 構和設計。用戶不被準許通過重新排列或添加圖像或相關文本來修改由這些模 板提供的布局。這令試圖創建包含文本注釋或者比模板所準許的更多或更少的 圖像的布局的用戶感到挫敗。
此處所做出的本發明正是針對這些和其它考慮事項而給出的。
概述
此處描述了用于動態地排列圖像和相關文本注釋的技術。通過利用此處所 給出的技術與概念,應用程序可以使用預定義布局來對圖像和相關聯的文本注 釋進行動態布局。可將不同的布局應用于圖像及其相關聯的文本注釋并且可以改變預定義布局直至標識最佳可能布局為止。而且,預定義布局準許添加其它 圖像或者注釋同時仍保留該布局的設計元素。通過使用這些技術,實際上沒有 創造性設計技能的用戶可創建看上去專業的圖像和相關聯的文本注釋的布局。
根據此處所呈現的一方面,創建一個或多個預定義布局并將定義這些布局 的數據存儲在布局定義文件中。每一個預定義布局都指定一個或多個圖像和相 關聯的文本注釋的布局。具體地,每一個預定義布局都指定應如何縮放和彼此 相關地定位圖像和任何相關聯的文本注釋。例如, 一布局可指定該布局中的圖 像的位置和大小以及與圖像相關聯的文本的位置、大小和樣式。該布局還可指 定在向該布局添加其它圖像或文本的情況下應當如何修改該布局。如將在下面 詳細描述的,布局定義文件的內容用于對圖像和相關聯的文本進行動態布局并 且在添加新內容或者修改布局后重新生成該布局。
根據另一方面,此處描述了一種用于利用布局定義文件的內容來對圖像和 相關聯的文本進行動態布局的應用程序。在一個實現中,該應用程序提供用于 對圖像和相關聯的文本進行動態布局的用戶界面。該用戶界面包括用戶可在其 上放置一個或多個圖像的畫布。該用戶界面還包括用戶可用于選擇要應用于放 置在畫布上的圖像的預定義布局的控件。在一個實現中,該控件是被顯示為與 畫布相鄰的布局長廊。該布局長廊包括對應于每一個可用預定義布局的可選視 覺表示。當選擇這些視覺表示中的一個時,對應的預定義布局就被動態地應用 于畫布上的圖像。
一旦動態地生成和顯示了布局,用戶就可通過在該布局中添加其它圖像或 者完成文本注釋來修改該布局。用戶還可修改布局中的元素的大小和位置。響 應于對布局的修改,可利用布局定義文件的內容來重新生成鑒于該修改的布 局。例如,如果添加了新圖像,則可重新生成布局以適當地將該新圖像合并到 該布局中。其它預定義布局也可通過選擇布局長廊中的視覺表示來應用于圖像 和文本。
根據另一方面,布局長廊中所顯示的視覺表示可用于生成布局預覽。例如, 在一個實現中,當用戶界面鼠標光標懸停在布局長廊中的一個視覺表示的上方 時,生成對應的預定義布局的實況預覽。懸停指將用戶輸入鼠標光標放在一對 象的上方但沒有使用鼠標按鈕來選擇該對象的過程。應當理解,可使用利用除了鼠標之外的其它類型的用戶輸入設備的其它用戶輸入機制來生成布局預覽。 通過以此方式生成預覽,用戶可在應用預定義布局之前查看將該預定義布局應 用于畫布上的圖像的結果。當已經標識合適的布局時,可通過選擇適當的視覺 表示來應用預定義布局。
應當理解,此處所描述的各實現適用于對圖像和相關聯的文本進行布局的 任何類型的計算機程序。例如,此處所提出的概念可用于文字處理應用程序、 電子表格應用程序、演示應用程序、桌面發布應用程序和其它類型的應用程序。 上述主題也可被實現為計算機控制的裝置、計算機進程、計算系統或者諸如計 算機可讀介質等制品。通過閱讀以下詳細描述和查閱相關聯的附圖,這些和各 個其它特征將是顯而易見的。
提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的 一些概念。本概述并不旨在標識出所要求保護的主題的關鍵特征或必要特征, 本概述也不旨在用于限定所要求保護的主題的范圍。此外,所要求保護的主題 不限于解決在本發明的任一部分中提及的任何或所有缺點的實現。
附圖簡述
圖1圖形地示出在一個實現中呈現的布局定義文件的內容和其中定義的 若干預定義布局;
圖2-5是示出在此處所呈現的一個實施例中的由能夠使用預定義布局來對
圖像和相關聯的文本進行動態布局的應用程序提供的用戶界面的各方面的屏
幕圖6是示出此處所描述的一個實現中的使用預定義布局來對圖像和相關 聯的文本進行動態布局的說明性過程的流程圖;以及
圖7是示出能夠實現此處所呈現的各實施例的計算系統的說明性計算機 硬件和軟件體系結構的計算機體系結構圖。
詳細描述
下面的詳細描述涉及用于使用預定義布局來動態地排列圖像和相關聯的 文本的技術。通過使用此處所呈現的各實施例,應用程序可提供使用預定義布
8局的對圖像和相關聯的文本的自動化的、動態排列。利用具體化此處所提出的 概念和技術的應用程序,用戶可容易地生成看上去專業的圖像和相關聯的文本 注釋的布局。
盡管此處所述的主題是在結合操作系統和應用程序在計算系統上的執行 而執行的程序模塊的一般上下文中提供的,但本領域技術人員可以認識到,可 結合其它類型的程序模塊來執行其它實現。 一般而言,程序模塊包括執行特定 任務或實現特定的抽象數據類型的例程、程序、組件、數據結構和其它類型的 結構。此外,本領域的技術人員可以理解,此處所述的本主題可以使用其它計 算機系統配置來實踐,這些其它計算機系統配置包括手持式設備、多處理器系 統、基于微處理器或可編程的消費電子產品、小型計算機、大型計算機等。
在以下詳細描述中,參考了構成其一部分并作為說明示出了各具體實施例 或示例的附圖。現在參考附圖(全部若干附圖中相同的標號表示相同的元素), 將描述用于對圖像及相關聯的文本進行布局的計算系統和方法的各方面。
現在轉到圖1,將提供關于此處所呈現的用于使用預定義布局來動態地排 列圖像和與這些圖像相關聯的文本的一個實施例的細節。具體地,圖l示出了
應用程序100和布局定義文件102的各方面。應用程序100在對圖像和文本進 行動態布局時利用布局定義文件102的內容。應當理解,應用程序'100可以是 對圖像和相關聯的文本進行布局的任何類型的應用程序,包括但不限于,文字 處理應用程序、電子表格應用程序、演示創建應用程序、網頁設計程序、或桌 面發布應用程序。此處所提出的概念不限于與用于執行任何特定功能的應用程 序一起使用。
根據一個實現,布局定義文件102存儲定義一個或多個布局104A-104D 的數據。布局104A-104D各自定義一個或多個圖像以及與這些圖像相關聯的文 本的方位、大小和其它特性。例如,布局104A包括六個圖像106A-106D以及 與這些圖像相關聯的文本108A-108D。布局104B包括一個圖像106G和在水 平方向上橫跨該圖像106G的文本108G。布局104C包括三個圖像106H-106J 和放置在這些圖像之間的文本108H。布局104D包括一個圖像106K和文本 1081。應當理解,圖l所示的布局104A-104D僅僅是說明性的,并且布局定義 文件102可定義具有圖像和/或相關聯文本的任何排列的任何數量的布局。根據此處所呈現的其它方面,布局定義文件102還將供應用程序100在對 圖像和文本進行動態布局時使用的數據存儲在每一個布局中。該數據還允許應 用程序100在諸如重新排列布局中的圖像或文本或者向布局添加新圖像或文本 等對布局的修改后重新生成布局。在一個實現中,該數據作為用于動態地生成 每一個布局的約束和規則來存儲。應用程序100利用這些約束和規則來對布局 中的每一個圖像和文本進行布局并且在修改后重新生成該布局。
約束定義應用程序應如何對內容對象進行布局。內容對象可以是圖像、影 片、文本或其它類型的數字媒體。這些約束可包括定義每一個內容對象的位置 和大小的數據。每一個對象的大小和位置可與其它對象相關地或者獨立于其它 對象來定義。這些約束還定義應當如何格式化每一個內容對象。例如,用于文 本對象的約束可定義字體、字體大小、對齊方式、版式以及文本的其它格式化 特性。約束可包括數值或布爾值。數字約束可指定特定數值(例如,寬度=1 英寸)。數字約束也可通過使用引用來參考其它約束來定義其值(例如,高度 二寬度X0.75)。
應用程序IOO利用布局定義文件102中所定義的規則來修改約束。具體地, 規則定義如何修改一個或多個約束以使得內容適合在布局中。例如,應用程序 100在對內容對象應用約束導致內—容溢出該內容對象的指定邊界時利用規則來 修改約束。作為一示例,如果向一布局添加對于該布局太大的圖像,則可動態 地縮放、裁剪、拉伸或以其它方式調整該圖像的大小以適合該布局。這些操作 可以按非破壞性方式來執行以保持圖像的內容。在各實施例中,某些操作可按
破壞性方式來執行。作為另一示例, 一個約束可指定文本對象的字體大小為14 號。進而,規則可指定可將字體大小減小至8號以使得該文本適合布局。應當 理解,規則和約束可在不同對象之間傳播以確保在布局中的一致性。以此方式, 例如,可使布局中的所有文本或圖像大小相同。應用程序100將取決于存在于 布局中的文本量或圖像數量來動態地調整文本或圖像的大小。
根據其它實現,布局定義文件102也可指定將由應用程序100用來對內容 進行布局的布局算法。例如,布局定義文件102可指定用于布局文本的算法, 應用程序IOO利用該算法來排列布局中的文本。也可在布局定義文件102內指 定用于其它類型的內容對象的其它類型的布局算法。還可準許用戶向布局定義文件102添加新布局。
根據一個實現,布局定義文件102的內容使用可擴展標記語言("XML") 來指定。XML是用于傳遞數據的標準格式。在XML數據格式中,利用架構來 為XML數據提供管理可傳遞的數據的類型和結構的一組語法和數據類型規 則。XML數據格式是本領域技術人員所公知的,因此不在此處更詳細地討論。 關于布局定義文件102的內容以及由應用程序100用來對圖像和文本進行動態 布局的過程的其它細節可在下列專利文獻中找到2005年3月15日提交的題 為"Method and Computer-Readable Medium for Generating Graphics Having a Finite Number of Dynamically Sized and Positioned Shapes (用于生成具有有限數 量的動態調整大小和定位的形狀的圖形的方法和計算機可讀介質)"的美國專 利公開No. US2006/0209093、 2006年3月15日提交的題為"Method and Computer-Readable Medium for Fitting Text to Shapes Within a Graphic (用于使 文本適合圖形內的形狀的方法和計算機可讀介質)"的美國專利公開No. US006/0212801、以及2004年9月30日提交的題為"Method, System, and Computer-Readable Medium for Creating and Laying Out a Graphic Within an Application Program (用于在應用程序內創建圖形并對其進行布局的方法、系 統和計算機可讀介質)"的美國專利公開No.US2006/0066631,這些專利中的 每一個都通過整體引用明確地結合于此。
現在參考圖2,將描述一個實施例中的、由應用程序100提供的、用于對 圖像和相關聯的文本進行動態布局的說明性用戶界面202。如圖2所示,用戶 界面202包括畫布206。畫布206用于容納布局的圖像和文本。用戶可通過諸 如插入操作或"剪切和粘貼"操作等適當的操作來將圖像放在畫布206上。例 如,在圖2所示的示例中,用戶已經在畫布206上放置了圖像106L。應當理 解,畫布206可取決于應用程序100的特性而采用不同的形式。例如,如果應 用程序100是演示應用程序,則畫布206可以是幻燈片演示中的單個幻燈片。 如果應用程序100是文字處理應用程序100,則畫布206可包括文字處理文檔 中的一頁。如果應用程序100是電子表格應用程序,則畫布206可包括電子表 格的一部分。畫布206可在由其它類型的應用程序實現時采用其它形式。
圖2所示的用戶界面202還包括布局長廊204。布局長廊204包括可動態地應用于放置在畫布206上的圖像的預定義布局的可選視覺表示210A-210D。 視覺表示210A-210D中的每一個都對應于一布局。當諸如通過使用鼠標按鈕或 者其它類型的用戶輸入設備來選擇一視覺表示時,對應的布局將被應用于已經 放置在畫布206上的圖像和文本。例如,視覺表示210A對應于具有單個圖像 但沒有文本的布局。視覺表示210B對應于具有單個圖像和水平橫跨該圖像放 置的文本的布局。視覺表示210C對應于具有三個圖像且文本被放置在這三個 圖像之間的布局。視覺表示210D對應于具有兩個圖像且文本橫跨這兩個圖像 垂直放置的布局。
根據各實現,用戶界面202還可包括圖像調整選項板208。圖像調整選項 板208提供用于調整放置在畫布206上的圖像的用戶界面控件212A-212C。例 如,用戶界面控件212A在被選擇時提供用于調整圖像亮度的功能,用戶界面 控件212B提供用于調整圖像對比度的功能,而用戶界面控件212C提供用于 調整圖像顏色的功能。可以按相似的方式提供用于調整圖像內容的其它工具。
根據其它實現,用戶界面202還包括內容窗格214。內容窗格214提供畫 布206上所闡述的數據模型的視覺表示。具體地,在一個實施例中,內容窗格 214包括畫布206上每一個圖像的縮略圖。例如,在圖2所示的示例中,內容 窗格214包括對應于圖像106L的縮略圖216A。縮略像可反映對相應圖像 所作的修改,諸如對圖像應用樣式。內容窗格214還包括與畫布上的每一個圖 像相關聯的文本。
根據各實現,內容窗格214可用于選擇和編輯存在于畫布206上的圖像和 文本。例如,在一個實現中,選擇內容窗格中的一個縮略像將導致也選擇 畫布上的對應圖像。也可選擇和編輯內容窗格214中所示出的文本。這些編輯 被反映在畫布206上所示的文本中。內容窗格214還可用于向數據模型添加附 加節點、從數據模型中移除節點、改變節點次序、以及執行其它編輯功能。
現在轉到圖3,將提供關于此處所呈現的一個實施例中的用戶界面202的 各方面的其它細節。在該實施例中,用戶界面202用于響應于用戶命令來提供 所選布局的實況預覽。具體地,在該實施例中,用戶可利用鼠標輸入設備來將 鼠標光標302懸停在視覺表示210A-210D中的一個的上方。響應于檢測到這一 輸入,應用程序100可用于根據對應的預定義布局來對存在于畫布206上的圖像進行動態布局。所生成的布局作為預覽來顯示。g卩,所生成的布局實際上沒 有應用于畫布206上的圖像。相反,只是臨時向用戶顯示該布局。以此方式,
用戶可將鼠標光標302懸停在視覺表示210A-210D中的每一個的上方以獲得對 應的布局在應用于畫布206的內容時將如何出現的預覽。應當理解,可利用使 用其它用戶輸入設備的其它類型的用戶輸入來使得生成預覽。
在圖3所示的示例中,鼠標光標302正懸停在視覺表示210B的上方。結 果,應用程序100已經使用存在于畫布上的單個圖像106L來生成并顯示布局 304A的預覽。布局304A包括已經被反映在畫布206上和內容窗格214中的文 本108J。應當理解,布局304A實際上尚未應用于畫布206的內容。結果,當 鼠標光標302從視覺表示210B移開時,畫布206將再次如圖1所示地那樣出 現。還應當理解,鼠標懸停事件只是用于向應用程序IOO指示應當生成和顯示 布局的實況預覽的一種機制。也可以按相似的方式利用其它類型的用戶輸入機 制。如在下面將參考圖5更詳細地描述的,諸如通過使用鼠標按鈕來選擇視覺 表示210A-210D中的一個將使對應于所選視覺表示的布局被動態地應用于畫 布206的內容。
現在參考圖4,將描述關于一個實施例中所提供的用戶界面202的操作的 其它細節。在圖4所示的示例中,用戶己經利用鼠標光標302和鼠標按鈕來選 擇視覺表示210D。結果,對應于視覺表示210D的布局已經被動態地應用于圖 l所示的畫布206的內容。這產生了圖3中的畫布206上所示的布局304B。
如圖3所示,布局304B包括圖像106L和文本108J。在該例中,用戶用 短語"我們的湖邊小屋"替換了占位符文本。因為在選擇視覺表示210D時畫 布206上只存在一個圖像,所以已經在畫布上為圖像106M放置占位符。用戶 可在畫布206上的適當位置插入一圖像以替換該占位符。用戶還可通過選擇文 本108K并鍵入新文本來修改文本108K。所鍵入的文本將替換文本108K。應 當理解,根據各實施例,文本注釋可包括標題或者可以被動態地綁定到引用。
如將在下面更詳細地描述的,用戶還可在任何時刻選擇視覺表示 210A-210D中的任一個以使對應的布局應用于畫布的內容。當用戶選擇一新視 覺表示時,當前布局中的圖像被帶到對應于所選視覺表示的新布局。以此方式, 用戶可在布局之間快速移動而不必重新選擇將在布局中利用的圖像。
13響應于將布局應用于畫布的內容,用戶界面202還呈現了樣式選項板404 和布局修改選項板402。樣式選項板404包括用于調整應用于布局304B上的 圖像和文本的樣式的用戶界面對象212G-212J。例如,可選擇用戶界面對象 212G來修改布局304B中的顏色,諸如文本或圖像背景的顏色。可選擇用戶界 面對象212H-212I以將不同的樣式應用于布局304B。可選擇用戶界面對象212J 以獲得對樣式選項板404中未示出的其它樣式的訪問。應當理解,還可提供此 處未描述的用于修改圖像的功能。
布局修改選項板402提供用于修改布局的功能。例如,用戶界面對象212D 在被選擇時提供允許用戶向布局添加另一個圖像的功能。用戶界面對象202E 在被選擇時提供允許用戶向布局添加附加文本的功能。用戶界面對象212F在 被選擇時提供通過移除用戶對布局所作的的任何修改來重置布局的功能。當已 經對布局作出諸如添加新的圖像或文本等修改時,應用程序100以上面參考圖 1所述的方式使用布局定義文件102的內容來動態地重新生成該布局。還可提 供用于修改圖像在布局中的顯示順序的功能。例如,在一個實現中,用戶能夠 選擇并拖拽圖像以改變圖像在布局中相對于彼此的順序。
在還在圖4中示出的,已更新內容窗格214以反映所選布局對畫布的應用。 具體地,文本108J已被顯示為與縮略圖216A相鄰。對應于圖像106M的縮略 圖216B也已經連同對應的文本108K —起顯示。如上所述,圖像縮略圖 216A-216B可分別用于選擇對應的圖像106L-106M。內容窗格214還可用于執 行上述其它文本編輯操作。
現在轉到圖5,將提供關于用戶界面202的操作的其它細節。具體地,圖 5示出了改變布局的過程。如上所述,在任何時刻選擇視覺表示210A-210D中 的一個將導致對應的布局被應用于畫布206的內容。在圖5所示的示例中,用 戶已經通過使用鼠標光標302并按下鼠標按鈕來選擇視覺表示210B。結果, 對應的布局被應用于畫布206的內容并且圖4所示的布局304B已經由圖5所 示的布局304A來替換。布局304A包括圖像106L和文本108J。應當理解,布 局對畫布206的內容的應用不是破壞性的,并且在任何時刻都可動態地將一新 布局應用于畫布206上的圖像和文本。
現在轉到圖6,將提供關于此處所呈現的用于對圖像和相關聯的文本進行動態布局的各實施例的其它細節。具體地,圖6是示出例程600的流程圖,例程600示出由應用程序100執行的、用于使用預定義布局來對圖像和相關聯的文本進行動態布局的說明性過程的各方面。應當理解,此處所述的邏輯操作被實現為(l)一系列計算機實現動作或運行于計算系統上的程序模塊,和/或(2)計算系統內的互連機器邏輯電路或電路模塊。該實現是取決于計算機系統的性能和其他要求的選擇的問題。因此,此處所描述的邏輯操作被不同地稱為操作、結構設備、動作或模塊。這些操作、結構設備、動作和模塊可用軟件、固件、專用數字邏輯以及它們的任何組合來實現。還應當理解,可以實現比各附圖所示的并在此處描述的更多或更少操作。這些操作也可按與本文所描述的不同的次序來執行。
例程600開始于操作602,在那里用戶將一個或多個圖像放置在畫布206上。例程600隨后繼續到操作604,在那里應用程序100顯示布局長廊204。從操作604,例程600繼續到操作606,在那里應用程序100確定鼠標光標302是否正懸停在布局長廊204中所示出的視覺表示210A-210D中的一個的上方。如果是,則例程600從操作606分叉到操作608,在那里以上面參考圖3描述的方式顯示對應于該視覺表示的布局的實況預覽。從操作608,例程600繼續到下面描述的操作610。
如果在操作606處應用程序100確定鼠標光標302未懸停在視覺表示210A-210D中的一個的上方,則例程600繼續到操作610。在操作610,應用程序100確定是否已經諸如通過使用鼠標光標302并點擊相應的鼠標按鈕來選擇視覺表示210A-210D中的一個。如果否,例程600返回到上述操作606。如果已經選擇了視覺表示210A-210D中的一個,從而指示應當將對應的布局應用于畫布206的內容,則例程600從操作610繼續至操作612。
在操作612,應用程序100以上面參考圖1所述的方式動態地將適當的布局應用于畫布206上的圖像和文本。例程600隨后繼續至操作614,在那里應用程序100確定是否已經通過選擇視覺表示210A-210D中的一個來請求新布局。如果是,則例程600返回到上述操作612,在那里應用程序100以上面參考圖1所述的方式動態地將適當的布局應用于畫布206的內容。如果沒有請求新布局,則例程600從操作614繼續到操作616。
15在操作616,應用程序100確定是否已經修改了當前布局或者已經向當前布局添加了附加內容。如果否,則例程600返回到上述操作614。如果是,則例程600繼續至操作618。在操作618,應用程序100使用布局定義文件102來動態地重新生成當前布局以適當地將修改合并到該布局。例程600隨后從操作618繼續到上述操作614。
圖7示出了能夠執行此處所描述的用于對圖像及相關聯的文本注釋進行布局的軟件組件的計算機700的說明性計算機體系結構。圖7所示的計算機體系結構示出了常規臺式計算機、膝上型計算機或服務器計算機并且可用于執行此處所描述的應用程序100的任何方面。
圖7所示的計算機體系結構包括中央處理單元702 ("CPU")、包括隨機存取存儲器714 ("RAM")和只讀存儲器("ROM") 716的系統存儲器708、以及將存儲器耦合至CPU 702的系統總線704。基本輸入/輸出系統被存儲在ROM716中,該系統包含幫助諸如在啟動期間在計算機700中的元件之間傳遞信息的基本例程。計算機700還包括用于存儲操作系統718、應用程序和其它程序模塊等的大容量存儲設備710,這將在以下更為詳盡地描述。
大容量存儲設備710通過連接至總線704的大容量存儲控制器(未示出)連接到CPU 702。大容量存儲設備710及其相關聯的計算機可讀介質為計算機700提供非易失性存儲。盡管本文所包含的計算機可讀介質的描述指的是大容量存儲設備,如硬盤或CD-ROM驅動器,但本領域的技術人員應理解,計算機可讀介質可以是可由計算機700訪問的任何可用計算機存儲介質。
作為示例而非限制,計算機可讀介質可包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。例如,計算機可讀介質包括但不限于,RAM、ROM、 EPROM、 EEPROM、閃存或其它固態存儲器技術、CD-ROM、數字多功能盤("DVD") 、 HD-DVD、藍光(BLU-RAY)或其它光學存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機700訪問的任何其它介質。
根據各實施例,計算機700可以使用通過諸如網絡720等網絡與遠程計算機的邏輯連接在聯網環境中操作。計算機700可以通過連接至總線704的網絡接口單元706來連接到網絡720。應當理解,網絡接口單元706也可用于連接至其它類型的網絡和遠程計算機系統。計算機700還可以包括用于接收和處理來自多個其它設備的輸入的輸入/輸出控制器712,這些設備包括鍵盤、鼠標或者電子指示筆(未在圖7中示出)。類似地,輸入/輸出控制器可以提供至顯示屏、打印機或其它類型的輸出設備(也未在圖7中示出)的輸出。
如前簡述的那樣,多個程序模塊和數據文件可以存儲在計算機700的大容量存儲設備710和RAM 714內,包括適于控制聯網的臺式計算機、膝上型計算機或服務器計算機的操作的操作系統718。大容量存儲設備710和RAM 714還可以存儲一個或多個程序模塊。具體而言,大容量存儲設備710和RAM714可存儲提供此處所描述的用于使用預定義布局來對圖像及相關聯的文本進行動態布局的功能的應用程序100。大容量存儲設備710和RAM 714還可存儲由應用程序100利用的布局定義文件102和圖像106。
基于上述內容,應當理解,此處呈現了用于對圖像及相關聯的文本進行動態布局的技術。盡管用對計算機結構特征、方法動作和計算機可讀介質專用的語言描述了此處呈現的本主題,但可以理解,所附權利要求書中定義的本發明不必限于此處所述的具體特征、動作或介質。相反,具體特征、動作和介質是作為實現權利要求的示例形式公開的。
上述主題僅作為說明提供,并且不應被解釋為限制。可對此處所述的主題作出各種修改和改變,而不必遵循所示和所述的示例實施例和應用,且不背離所附權利要求書中所述的本發明的真正精神和范圍。
1權利要求
1.一種用于對一個或多個圖像(106)以及與所述圖像(106)中的一個或多個相關聯的文本(108)進行布局的方法,所述方法包括接收所述一個或多個圖像(106)和所述文本(108);接收根據預定義布局(104)來對所述一個或多個圖像(106)和所述文本(108)進行布局的請求;響應于所述請求,根據所述預定義布局(104)來動態地生成所述圖像(106)和所述文本(108)的布局(304);以及顯示所述布局(304)。
2. 如權利要求1所述的方法,其特征在于,還包括接收所述布局的附加內容;響應于接收到所述布局的附加內容,動態地重新生成所述布局;以及顯示所述布局。
3. 如權利要求1所述的方法,其特征在于,還包括接收對所述布局的修改;響應于接收到對所述布局的修改,動態地重新生成所述布局;以及顯示所述布局。
4. 如權利要求1所述的方法,其特征在于,還包括接收根據第二預定義布局來對所述一個或多個圖像和所述文本進行布局的請求;以及響應于所述根據第二預定義布局來對所述圖像和文本進行布局的請求,根據所述第二預定義布局來動態地生成所述圖像和所述文本的第二布局;以及顯示所述第二布局。
5. 如權利要求4所述的方法,其特征在于,還包括顯示包括一個或多個預定義布局的表示的布局長廊。
6. 如權利要求5所述的方法,其特征在于,接收根據預定義布局來對所述 一個或多個圖像和文本進行布局的請求包括接收對所述布局長廊中所顯示的 表示中的一個表示的選擇。
7. 如權利要求6所述的方法,其特征在于,接收根據所述第二預定義布局 來對所述一個或多個圖像和文本進行布局的請求包括接收對所述布局長廊中 所顯示的表示中的第二表示的選擇。
8. 如權利要求4所述的方法,其特征在于,還包括顯示包括所述一個或多 個圖像的表示的內容窗格。
9. 一種其上存儲有計算機可執行指令的計算機存儲介質,所述指令在被計 算機執行時將使所述計算機執行如權利要求1所述的方法。
10. —種用于根據預定義布局(104)來動態地對一個或多個圖像(106) 以及與所述圖像(106)中的一個或多個相關聯的文本(108)進行布局的方法, 所述方法包括顯示一個布局長廊(204),所述布局長廊(204)包括一個或多個預定義 布局(104)的一個或多個可選表示(210);接收對所述布局長廊(204)中所顯示的表示中的一個表示的選擇;以及響應于接收到所述選擇,根據與所選表示(210)相關聯的預定義布局(104) 來動態地生成一個或多個圖像(106)以及與所述圖像(106)相關聯的文本(108) 的布局(304);以及顯示所述布局(304)。
11. 如權利要求10所述的方法,其特征在于,還包括 接收對所述布局長廊中所顯示的表示中的第二表示的選擇;以及 響應于接收到對第二視覺表示的選擇,根據與所述第二視覺表示相關聯的預定義布局來動態地生成所述一個或多個圖像以及與所述圖像相關聯的文本的第二布局;以及顯示所述第二布局。
12. 如權利要求11所述的方法,其特征在于,所述布局在畫布上被顯 示為與所述布局長廊相鄰。
13. 如權利要求12所述的方法,其特征在于,還包括檢測對所述布局 的修改或者對所述布局的新內容添加并且響應于此動態地重新生成所述布局。
14. 如權利要求13所述的方法,其特征在于,還包括與所述畫布相鄰 地顯示內容窗格,所述內容窗格包括所述一個或多個圖像的表示。
15. —種其上存儲有計算機可執行指令的計算機存儲介質,所述指令在 被計算機執行時將使所述計算機執行如權利要求10所述的方法。
16. —種用于根據一個或多個預定義布局(104)來動態地對一個或多 個圖像(106)以及與所述圖像(106)中的一個或多個相關聯的文本(108) 進行布局的方法,所述方法包括顯示用于呈現所述布局(304)的畫布(202);接收所述一個或多個圖像(106)和所述文本(108)在所述畫布上的放置; 與所述畫布(202)相鄰地顯示布局長廊(204),所述布局長廊(204)包括所述一個或多個預定義布局(104)的可選表示(210),所述可選表示在被選擇時使得所述畫布(202)上的圖像(106)和文本(108)根據對應的預定義布局(104)來動態地布局;接收對所述布局長廊(204)中的表示(210)中的一個表示的選擇; 響應于接收到對所述表示(210)中的一個表示的選擇,基于對應于所選表示(210)的預定義布局(104)來動態地生成所述一個或多個圖像(106)和所述文本(108)的布局(304);以及在所述畫布(202)上顯示所述布局(304)。
17. 如權利要求16所述的方法,其特征在于,還包括 接收對所述布局長廊中所顯示的第二表示的選擇;響應于接收到對第二表示的選擇,基于對應于所選第二表示的預定義布局 來動態地重新生成所述一個或多個圖像和所述文本的布局;以及 在所述畫布上顯示重新生成的布局。
18. 如權利要求17所述的方法,其特征在于,還包括與所述畫布相鄰 地顯示內容窗格,所述內容窗格包括所述一個或多個圖像的表示。
19. 如權利要求18所述的方法,其特征在于,對在所述內容窗格中所 顯示的表示的選擇將導致在所述畫布上選擇對應的圖像。
20. —種其上存儲有計算機可執行指令的計算機存儲介質,所述指令在 被計算機執行時將使所述計算機執行如權利要求16所述的方法。
全文摘要
此處描述了用于使用預定義布局來對圖像和相關聯的文本進行動態布局的技術。創建預定義布局并且將定義布局的數據存儲在布局定義文件中。一種應用程序提供用于使用布局定義文件的內容來對圖像和相關聯的文本進行動態布局的用戶界面。該用戶界面包括用戶可在其上放置將一個或多個圖像的畫布以及用戶可用于選擇要應用于放置在該畫布上的圖像的預定義布局的布局長廊。該布局長廊包括對應于每一個可用預定義布局的可選視覺表示。當選擇這些視覺表示中的一個時,對應的預定義布局就被動態地應用于畫布上的圖像。布局長廊中所顯示的視覺表示還可用于生成布局預覽。
文檔編號G06F17/00GK101689177SQ200880020169
公開日2010年3月31日 申請日期2008年6月1日 優先權日2007年6月15日
發明者C·L·霍耶, C·M·貝克爾, J·S·施內克洛特, L·沃爾德曼, T·C·昂德希爾 申請人:微軟公司