グラフィック出力における重なりを回避するためにラベルを移動させる方法、システム及びコンピューター読取可能媒体
【課題】1ページに複数のオブジェクトを配置する方法を提供する。
【解決手段】図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程202と、図内に各々位置を有する複数の可動オブジェクト(MO)を特定する工程204と、図を表す粗画素配列(CPA)を取得する工程206と、フットプリントに対応する粗画素を占有状態に設定する工程208と、MOを選択する工程210と、MOの位置に基づいてMOのフレームに対応するCPA内の粗画素群を特定する工程212と、粗画素群のうち少なくとも一の粗画素が占有状態であると判断する工程214と、MOの修正位置を生成する工程220と、修正位置に基づいてMOの修正フレームに対応するCPA内の修正粗画素群を特定する工程222と、MOの修正粗画素群を占有状態に設定する工程224と、MOをページ上の修正位置に配置して図をレンダリングする工程226を備える方法。
【解決手段】図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程202と、図内に各々位置を有する複数の可動オブジェクト(MO)を特定する工程204と、図を表す粗画素配列(CPA)を取得する工程206と、フットプリントに対応する粗画素を占有状態に設定する工程208と、MOを選択する工程210と、MOの位置に基づいてMOのフレームに対応するCPA内の粗画素群を特定する工程212と、粗画素群のうち少なくとも一の粗画素が占有状態であると判断する工程214と、MOの修正位置を生成する工程220と、修正位置に基づいてMOの修正フレームに対応するCPA内の修正粗画素群を特定する工程222と、MOの修正粗画素群を占有状態に設定する工程224と、MOをページ上の修正位置に配置して図をレンダリングする工程226を備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフィック出力における重なりを回避するためにラベルを移動させる方法、システム及びコンピューター読取可能媒体に関する。
【背景技術】
【0002】
1ページは、複数のオブジェクトを含む場合がある。これらのオブジェクトには、ページ上の所定の位置に比較的維持されるオブジェクトと、ページ上の多数の位置のうちの何れかの位置に移動させることのできるオブジェクトがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
多数のアプリケーションにおいて、1ページは、重なり合う多数のオブジェクトを有する場合がある。これはオブジェクトの読み取りや識別を困難にする。また、オブジェクトが重なり合っていない場合であっても、非常に接近し合ってひとかたまりとなり、明確に解釈できない場合がある。
【課題を解決するための手段】
【0004】
主として、一側面において、本発明は図をレンダリングする方法に関する。
該方法は、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程と、
前記図内に各々位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定する工程と、
コンピュータープロセッサーを用いて、前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定する工程と、
前記コンピュータープロセッサーを用いて、前記フットプリントに対応する前記粗画素を占有状態に設定する工程と、
前記コンピュータープロセッサーを用いて、前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択する工程と、
前記コンピュータープロセッサーを用いて、前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成する工程と、
前記コンピュータープロセッサーを用いて、前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定する工程と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定する工程と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングする工程と、
を備える。
【0005】
主として、一側面において、本発明は図をレンダリングするシステムに関する。
該システムは、
ハードウェアプロセッサーと、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列と、
可動オブジェクトの第1のフレームと第2のフレームを生成するように構成されたフレームモジュールと、
前記ハードウェアプロセッサー上で実行されるレイアウトエンジンと、
を備え、
前記レイアウトエンジンは、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定し、
前記フットプリントに対応する前記粗画素配列内の粗画素を占有状態に設定し、
前記可動オブジェクトの第1の位置に基づいて、前記第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定し、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断し、
前記可動オブジェクトと関連付けられた第2の位置に基づいて、前記可動オブジェクトの前記第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定し、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするように構成されている。
【0006】
主として、一側面において、本発明は図をレンダリングするための指示を記憶する非一時的コンピューター読取可能記憶媒体に関する。
該指示は、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定するための指示と、
前記図内に位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定するための指示と、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定するための指示と、
前記フットプリントに対応する前記粗画素を占有状態に設定するための指示と、
前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択するための指示と、
前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成するための指示と、
前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内で第2の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定するための指示と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするための指示と、
を備える。
【0007】
本発明のその他の側面は、以下の説明及び添付の特許請求の範囲から明らかである。
【図面の簡単な説明】
【0008】
【図1A】本発明の一以上の実施形態に係るシステムのブロック図を示す。
【図1B】本発明の一以上の実施形態に係る複数のオブジェクトを有する図を示す。
【図1C】本発明の一以上の実施形態に係る図及び粗画素配列(CPA)を示す。
【図1D】本発明の一以上の実施形態に係る可動オブジェクト用に生成される複数のフレームを示す。
【図2A】本発明の一以上の実施形態に係るフローチャートを示す。
【図2B】本発明の一以上の実施形態に係るフローチャートを示す。
【図2C】本発明の一以上の実施形態に係るフローチャートを示す。
【図3A】本発明の一以上の実施形態に係る例を示す。
【図3B】本発明の一以上の実施形態に係る例を示す。
【図3C】本発明の一以上の実施形態に係る例を示す。
【図3D】本発明の一以上の実施形態に係る例を示す。
【図3E】本発明の一以上の実施形態に係る例を示す。
【図3F】本発明の一以上の実施形態に係る例を示す。
【図3G】本発明の一以上の実施形態に係る例を示す。
【図3H】本発明の一以上の実施形態に係る例を示す。
【図3I】本発明の一以上の実施形態に係る例を示す。
【図3J】本発明の一以上の実施形態に係る例を示す。
【図4】本発明の一以上の実施形態に係るコンピューターシステムを示す。
【発明を実施するための形態】
【0009】
本発明の具体的な実施形態を、添付の図面を参照して詳細に説明する。複数の図に示される同様の構成要素は、一貫性を保つために同様の参照符号で示す。
【0010】
以下の本発明に係る実施形態の詳細な説明には、本発明についてより完全な理解を提供するために、数多くの詳細を示す。しかし、当業者には、これらの詳細を用いずとも本発明の実施が可能であることは明らかであろう。他の例においては、不要に複雑な説明となるのを避けるため、周知の特徴に関しては詳細な説明は省略する。
【0011】
主として、本発明の実施形態は、1ページに複数のオブジェクト(すなわち、固定オブジェクト、可動オブジェクト)を配置するシステム及び方法を提供する。具体的には、複数の固定オブジェクト、そしてそれらに伴う可動オブジェクトを、互いに重なり合わないように1ページ上に配置する。粗画素配列(Coarse Pixel Array;CPA)は粗画素の二次元配列であり、オブジェクトを有する図のページスペースを表す。ページ上の一の位置に配置されるオブジェクトは、CPAに位置する粗画素群によって表される。この粗画素群は占有状態に設定される。配置される必要のあるオブジェクトは、当該オブジェクトの粗画素群によって表され、初期位置に配置される。このオブジェクトの粗画素群のうち少なくとも一の粗画素が既に占有状態である場合、新たな位置が使用される。この処理は、全てのオブジェクトがページ上に配置されるまで(すなわち、図がレンダリングされるまで)繰り返される。本発明の実施形態において、オブジェクトは、当該オブジェクトのフットプリントの拡大/縮小版に対応するフレームを用いて配置される。
【0012】
図1は、本発明の一以上の実施形態に係るシステム100を示す。図1に示されるように、システム100は、ページレンダリングデバイス(PRD)150と、ストレージリポジトリ130と、クライアントコンピューター105とを含む、複数の構成要素を備える。PRD150は、プリンター、電子読取装置などである。コンピューティングデバイス105は、パーソナルコンピューター(PC)、デスクトップコンピューター、汎用コンピューター、サーバー、電話、公共電話ボックス、ケーブルボックス、携帯情報端末(PDA)、電子読取装置、携帯電話、スマートフォンなどである。ストレージリポジトリ130は、ハードウェア記憶装置(例えば、ハードドライブ、テープ、メモリー等)の何れかの種類に対応する。コンピューティングデバイス105と、PRD150と、ストレージリポジトリ130は、直接的に接続されてもよい(例えば、ユニバーサルシリアルバス(USB)接続など)。あるいは、コンピューティングデバイス105と、PRD150と、ストレージリポジトリ130は、有線部分及び/又は無線部分を有するネットワーク120を用いて接続されてもよい。
【0013】
本発明の一以上の実施形態において、PRD150及び/又は記憶装置130はコンピューティングデバイス105上に位置する。このような実施形態では、PRD150は、コンピューティングデバイス105上の、図をレンダリングするためのハードウェアとソフトウェアの組み合わせに対応する。本発明の一以上の実施形態において、記憶装置130はPRD150上に位置する。
【0014】
本発明の一以上の実施形態において、コンピューティングデバイス105はユーザーアプリケーション110を実行する。ユーザーアプリケーション110はユーザーによって操作されるソフトウェアアプリケーションであり、図(例えば、図115)を取得、入力、生成、表示及び/又は印刷するように構成されている。よって、ユーザーアプリケーション110は、ワードプロセッシングアプリケーション、表計算アプリケーション、デスクトップパブリッシングアプリケーション、グラフィックアプリケーション、写真印刷アプリケーション、インターネットブラウザー、地図作成アプリケーション、グラフィカラルプロットアプリケーションなどである。ユーザーアプリケーション110は、新たな図を生成及び/又は事前に保存した図を取得する。
【0015】
本発明の一以上の実施形態において、図115は、一以上の固定オブジェクトと一以上の可動オブジェクトを含む。図115は、一以上の背景オブジェクトを含んでもよい。背景オブジェクトは、上から重ねて印刷されてもよい図内のアイテムに対応する。背景オブジェクトの例としては、背景画像、多角形フィル、シンボル、線(例えば、表内の縦横拡大縮小線)などがある。固定オブジェクトは、図内に位置を有し、図全体に意味を付与する当該図内のアイテムに対応する。本発明の一以上の実施形態において、固定オブジェクトは上から重ねて印刷されてはならない。固定オブジェクトの例としては、クリップアート、形、散布データ図のマーカー、地図上のシンボルなどがある。一方、可動オブジェクトは、図の全体的な意味を変えずに再配置することが可能な図内のアイテムに対応する。可動オブジェクトは、固定オブジェクトを特定及び/又は説明するために用いられる。例えば、可動オブジェクトは、固定オブジェクトを特定及び/又は説明する文字列(すなわち、ラベル)である。
【0016】
本発明の一以上の実施形態において、図115内の複数の固定オブジェクトと、図115内の複数の可動オブジェクトは、ランク付けされる(すなわち、優先順位が付けられる)。すなわち、固定オブジェクトの階層と可動オブジェクトの階層が存在する。記憶装置130は、図115内の全固定オブジェクトのリスト(すなわち、固定オブジェクト(FO)リスト132)と、図115内の全可動オブジェクトのリスト(すなわち、可動オブジェクト(MO)リスト136)を含む。FO階層134は、図115内の固定オブジェクトのランクを特定する。同様に、MO階層138は、図115内の可動オブジェクトのランクを特定する。
【0017】
図1Bは、本発明の一以上の実施形態に係る図(すなわち、図X/199)を示す。図1Bに示されるように、図X/199は、複数の固定オブジェクト(すなわち、固定オブジェクトA/197、固定オブジェクトB/193)と、複数の可動オブジェクト(すなわち、可動オブジェクトX/195、可動オブジェクトY/193)と、背景オブジェクト180を含む。固定オブジェクトA/197はクリップアート要素であり、可動オブジェクトX/195は固定オブジェクトA/197を特定し説明する文字列(すなわち、「ELEPHANT」(象))である。固定オブジェクトB/193はシンボルであり、可動オブジェクトY/191は固定オブジェクトB/191を特定し説明する文字列(すなわち、「AUSTIN」(オースティン))である。また、同じく図1Bに示されるように、固定オブジェクトB/193と可動オブジェクトY/191は背景画像180上に印刷される。また、可動オブジェクトX/195は対応する固定オブジェクトA/197に隣接しており、可動オブジェクトY/191は対応する固定オブジェクトB/193に隣接している。
【0018】
本詳細な説明の恩恵に浴する当業者であれば、可動オブジェクトX/195と可動オブジェクトY/191は、それぞれが対応する固定オブジェクトを特定し説明しながら、図X/199の意味を曲解させることなく、再配置される場合があることを理解するであろう。例えば、可動オブジェクトX/195は、対応する固定オブジェクトA/197を特定し説明しながら、図X/199の意味を曲解させることなく、当該固定オブジェクトA/197の近傍に再配置される場合がある。同様に、可動オブジェクトY/191は、対応する固定オブジェクトB/195を特定し説明しながら、図X/199の意味を曲解させることなく、当該固定オブジェクトB/195の近傍に再配置される場合がある。
【0019】
また、本詳細な説明の恩恵に浴する当業者であれば、図は、固定オブジェクト及び可動オブジェクトをいくつ有してもよいことを理解するであろう。そのため、多数の可動オブジェクトが存在する場合、可動オブジェクトが重なり合う場合がある。このような場合は、図の読み取り及び理解を容易にするため、一以上の可動オブジェクトを初期位置から新たな位置へと再配置する。可動オブジェクトの初期位置は、図内で指定される。
【0020】
図1Aに戻り、本発明の一以上の実施形態において、PRD150は粗画素配列(CPA)158を含む。CPA158は、図115のページスペースを表す多次元(すなわち、二次元)配列である。CPA158の有する粗画素数はいくつであってもよい。本発明の一以上の実施形態において、各粗画素は図115のx/72in2に対応する。xは図115で使用される最小のフォントサイズである。
【0021】
本発明の一以上の実施形態において、CPA158は固定オブジェクト及び可動オブジェクトがどこに描画されたのかを記録又は追跡する。具体的には、描画された固定オブジェクト及び可動オブジェクトのフットプリント(すなわち、面積、周長及び/又はバウンディングボックス)に対応するCPA158内の粗画素は、占有状態に設定される。本発明の一以上の実施形態において、CPA158はビット配列である。このような実施形態においては、値「0」を有する粗画素は全て空き(すなわち、占有されていない)状態であり、値「1」を有する粗画素は全て占有状態である。本詳細な説明の恩恵に浴する当業者であれば、占有状態と空き(すなわち、占有されていない)状態を示す二つの値には、いかなる値を使用してもよいことを理解するであろう。
【0022】
図1Cは、本発明の一以上の実施形態に係る粗画素配列190を示す。CPA190は図X/199を表す。図1Cに示されるように、固定オブジェクト及び可動オブジェクトのフットプリントに対応するCPA190内の粗画素は、占有状態に設定される。例えば、フットプリントA/187は固定オブジェクトA/197に対応する。よって、フットプリントA/187に対応する粗画素は占有状態に設定される。同様に、フットプリントB/183は固定オブジェクトB/193に対応する。よって、フットプリントB/183に対応する粗画素は占有状態に設定される。また、フットプリントX/185は可動オブジェクトX/195に対応する。よって、フットプリントX/185に対応する粗画素は占有状態に設定される。更に、フットプリントY/181は可動オブジェクトY/191に対応する。よって、フットプリントY/181に対応する粗画素は占有状態に設定される。本発明の一以上の実施形態において、CPA190は背景オブジェクト(例えば、背景オブジェクト180)のフットプリントを記録/追跡しない。
【0023】
図1Aに戻り、本発明の一以上の実施形態において、PRD150はフレームモジュール160を含む。フレームモジュール160は図115内の各可動オブジェクトについて、サイズの異なる複数のフレームを算出するように構成されている。また、本発明の一以上の実施形態において、フレームモジュール160は、固定オブジェクトが重なり合う場合、重なり合っている固定オブジェクトのうち一以上の固定オブジェクトについて、フレームを算出するように構成されている。各フレームは、実質的に、可動オブジェクト又は固定オブジェクトを囲うコンテナーである。よって、最小フレームはオブジェクトのフットプリントに対応し、最大フレームはフットプリントの拡大/縮小版(すなわち、拡大版)に対応する。フレームは、拡大縮小係数で拡大/縮小されたフットプリントに対応する。例えば、可動オブジェクトがフォントサイズ10ポイントの文字列である場合、最大フレームはフォントサイズ80ポイントの当該文字列を囲うバウンディングボックスに対応する。フレームは、オブジェクトをページ上に配置する際に、フットプリントの代わりに用いられる(後述)。
【0024】
図1Dは、本発明の一以上の実施形態に係る、可動オブジェクト用に生成される複数のフレームを示す。図1Dに示されるように、複数のKフレーム(すなわち、フレーム1/172、フレーム2/174、フレーム3/176、・・・、フレームK/178)は、可動オブジェクトY/191用に生成されたものである。フレーム1/172は最小フレームであり、実質的に、可動オブジェクトY/191のフットプリントに対応する。一方、フレームK/178は最大フレームである。
【0025】
図1Aに戻り、本発明の一以上の実施形態において、PRD150はレイアウトエンジン152を含む。レイアウトエンジン152は、処理するオブジェクト(例えば、FO、MO)を選択するように構成されている。処理とは、既にページ上に配置されている他のオブジェクトと重ならないように、当該ページ上にオブジェクト(例えば、FO、MO)を配置することである。レイアウトエンジン152がオブジェクトを選択する順番は、階層(例えば、FO階層134、MO階層138)に基づく。
【0026】
また、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントに対応するCPA160内の粗画素群を特定するように構成されている。更に、レイアウトエンジン152は、粗画素群のうち何れかの粗画素が、既に占有状態に設定されているか否か判断するように構成されている。すなわち、本発明の一以上の実施形態において、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントが、前に描画された一以上のオブジェクト(例えば、FO、MO)と重なるか否か判断するように構成されている。
【0027】
本発明の一以上の実施形態において、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)について、異なる位置(すなわち、修正された位置又は新たな位置)を選択するように構成されている。この異なる位置は、多数の手段のうちの一つを用いて生成/選択される。その手段は特に制限されないが、アルゴリズム、デフォルトスケジュール(例えば、下、上、左、右、左下、右下、左上、右上)、ランダムロケーションジェネレーター、異なる位置を選択するのに適切なその他の手段などである。
【0028】
また、レイアウトエンジン152は、オブジェクトに対応するCPA160内の粗画素を占有状態に設定するように構成されている。レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントが、他のオブジェクト(例えば、FO、MO)と重ならない場合に、当該オブジェクトのフットプリントを占有状態に設定する。更に、レイアウトエンジン152は、固定オブジェクト、可動オブジェクト及び背景オブジェクトをページ170上に配置して、図115をレンダリングするように構成されている。
【0029】
図2Aから図2Cは、本発明の一以上の実施形態に係るフローチャートを示す。図2Aから図2Cに示される処理は、例えば、図1のシステムによって図をレンダリングする際に用いられる。これらフローチャートには多様なステップが順に示され説明されているが、いくつか又は全てのステップは、異なる順番で実行されてもよく、組み合わせや省略をされてもよい。また、いくつか又は全てのステップは、並行して実行されてもよい。更に、本発明の一以上の実施形態において、後述する一以上のステップは、省略、繰り返し及び/又は異なる順番で実行されてもよい。更に、この方法を実行する際に、図2Aから図2Cでは省略されているステップを追加ステップとして含んでもよい。よって、図2Aから図2Cに示されるステップの具体的な順番は、本発明の範囲を制限するものではない。
【0030】
本発明の一以上の実施形態において、例えば、図1Aを参照して上述したコンピューティングデバイスや、図5を参照して後述するコンピューティングデバイスを用いて、後述する一以上のステップを実行する。
【0031】
図2Aを参照すると、ステップ202において、図内の複数のFO各々のフットプリントを特定する。フットプリントは、図内のFOの周長、面積及び/又はバウンディングボックスに対応する。
【0032】
固定オブジェクトは、ページ上で移動させてもよい。例えば、二つの固定オブジェクトがページ上で重なり合う場合、少なくとも何れかの固定オブジェクトを(例えば、MOの重なり合いを回避する手段と同様の手段で)移動させて、重なり合いを回避する。
【0033】
ステップ204において、図内の複数のMOを特定する。本発明の一以上の実施形態において、MOはページ上のFOのフットプリントと関連付けられている。例えば、各MOはFOを特定及び/又は説明するラベル(すなわち、一のフォントサイズの文字列)である。各MOは図内に初期位置を有する。例えば、MOの初期位置は対応するFOに隣接する。
【0034】
ステップ206において、図のページスペースを表すCPAを取得する。本発明の一以上の実施形態において、CPAは図を表す多次元配列である。また、CPAの各粗画素は図の一領域に対応する。
【0035】
ステップ208において、フットプリントに対応するCPA内の粗画素を、占有状態に設定する。本発明の一以上の実施形態において、CPAはビット配列である。このような実施形態においては、各粗画素は「0」又は「1」に設定される。「1」は占有状態を示すために用いられ、「0」は空き(すなわち、占有されていない)状態を示すために用いられる。
【0036】
ステップ208において、FOの間で重なり合いがある場合、図2Bを参照して後述する、ステップ228から始まる処理を用いて、FOの間の重なり合いを回避する。
【0037】
ステップ210において、図内の一のMOを選択する。本発明の一以上の実施形態において、MOは一手法を用いて選択される。例えば、MOはMO階層に基づいて選択される。MOは他の手法を用いて選択されてもよい。特に制限はされないが、他の手法としては、MOのサイズや位置を用いるものがある。MOの位置は、ページ上のMOの初期位置である。MOのフレームを調整する必要がある場合、図2Cを参照して後述する、ステップ240から始まる処理を用いて、MOのフレームを変更する。
【0038】
ステップ212において、MOのフレームに対応するCPA内の粗画素群を特定する。粗画素群はMOの初期位置に基づく。フレームはMOのフットプリントの拡大/縮小版に対応する。
【0039】
ステップ214において、粗画素群のうち少なくとも一の粗画素が占有状態であるか否か判断する。すなわち、MOのフレームが何れかのFO(又はページ上の位置に事前に貼り付けられた他のMO)のフットプリントと重なっているか否か判断する。特定された粗画素群の何れの粗画素も占有状態ではないと判断された場合、ステップ216に移行する。粗画素群のうち少なくとも一の粗画素が占有状態であると判断された場合、ステップ220に移行する。
【0040】
ステップ216において、粗画素群を占有状態に設定する。すなわち、MOはページ上の初期位置に貼り付けられる。ステップ218において、上記複数のFOをフットプリントに、上記一のMOを初期位置に有する図をレンダリングする。ステップ218終了後、本処理を終了する。
【0041】
ステップ220において、上記一のMOの修正位置を選択する。MOの修正位置は多数の手段のうちの一つを用いて選択される。例えば、MOの修正位置は、当該MOの初期位置に対して、当該MOが対応するFOの反対側となる。MOが関連付けられたFOの近隣に利用可能な位置が無い場合、MOの修正位置は関連付けられたFOから離れた位置となる。このような場合、修正位置に配置されたMOを前述のFOと結び付けるために、印を追加する。MOをFOと結び付けるために印が追加された場合、この印はMOのフットプリントの一部となる。
【0042】
ステップ222において、MOのフレームに対応するCPA内の修正粗画素群を特定する。修正粗画素群はMOの修正位置に基づく。ステップ224において、MOの修正粗画素群を占有状態に設定する。すなわち、MOが初期位置に固定されるのは、重なり合いがない場合である。ステップ226において、上記複数のFOと修正位置に配置された上記一のMOを有する図をレンダリングする。ステップ226終了後、本処理を終了する。
【0043】
図2Bは、FO間の重なり合いを解決する方法を説明する。また図2Bは、FOをページ上に配列する順番を決定する際に、どのように階層を用いるのかについても説明する。本発明の複数の実施形態は、図2Bを参照して説明されるいくつか又は全ての方法を、MOに対しても適用する。図2Bのステップ228は、例えば、図2Aのステップ208に続くステップである。
【0044】
図2Bを参照すると、ステップ228において、第1のFOに対応する粗画素を占有状態に設定後、他のFOを選択する。本発明の一以上の実施形態において、図1を参照して上述したFO階層を用いて、FOの処理順を選択する。
【0045】
ステップ230において、前記他のFOのフレームに対応するCPA内の粗画素群を特定する。粗画素群は前記他のFOの位置に基づく。フレームは、拡大縮小係数に応じて前記他のFOのフットプリントを拡大/縮小して算出される。拡大縮小係数は、1よりも小さい(例えば、全てのオブジェクトを重ならずにページ内に収めるために、一以上のオブジェクトのサイズを縮小する必要が場合)、1(すなわち、フレームとフットプリントが同じ)又は1よりも大きい。
【0046】
ステップ232において、粗画素群のうち少なくとも一の粗画素が占有状態に設定されていると判断する。すなわち、前記他のFOは、少なくとも一部分、既に初期位置に固定されている第1のFOと重なる。よって、第1のFOとの重なり合いを回避するために、前記他のFOを移動させる必要がある。ステップ234において、前記他のFOについて修正位置を生成する。前記他のFOの修正位置は、MOに対してステップ220で説明した手段など多数の手段のうちの一つを用いて生成される。
【0047】
ステップ236において、前記他のFOのフレームに対応するCPA内の修正粗画素群を特定する。修正粗画素群は前記他のFOの修正位置に基づく。ステップ238において、前記他のFOの修正粗画素群を占有状態に設定する。ステップ238終了後、本処理は、例えば、図2Aのステップ210に戻る。
【0048】
図2Cは、オブジェクトのフレームを変更する(例えば、フレームを大きくする又は小さくする)方法を説明する。フレームの変更は、ページ上のオブジェクトの重なり合いを低減させる方法として用いられる。例えば、フレームを小さくして、ラベルをページ上の特定の位置に維持する。このような場合、拡大縮小係数を用いてオブジェクトのフットプリントを拡大/縮小して、フレームを算出する。図2Cに記載の処理は、FO及び/又はMOのフレームに対して用いられる。図2Cのステップ240は、例えば、図2Aのステップ210に続くステップである。
【0049】
図2Cを参照すると、ステップ240において、MOの初期フレームに対応するCPA内の初期粗画素群を特定する。MOのフレームに対応する初期粗画素群は、MOの初期位置に基づく。ステップ242において、初期粗画素群のうち少なくとも一の粗画素が占有状態に設定されていると判断する。すなわち、MOの初期フレームは、少なくとも一部分、ページ上に既に配置されているオブジェクトと重なる。
【0050】
ステップ244において、修正拡大縮小係数を用いて、MOのフットプリントを拡大/縮小して、異なるフレームを算出する。修正拡大縮小係数は、初期フレームに用いられた拡大縮小係数よりも小さい。本発明の一以上の実施形態においては、修正拡大縮小係数は、初期フレームに用いられた拡大縮小係数よりも大きい。修正拡大縮小係数は、多数の方法のうちの一つを用いて選択される。例えば、所望のフレームサイズ、オブジェクト間の所望のスペース間隔、配置される必要のあるオブジェクトの数及びオブジェクトのフットプリントに基づいて修正拡大縮小係数を決定するアルゴリズムがある。異なるフレームが図2Aと関連して用いられる場合、当該異なるフレームは、例えば、ステップ212のフレームである。
【0051】
図3Aから図3Jは、本発明の一以上の実施形態に係る例を示す。図3Aから図3Jに示される例は、例えば、システム100によって、印刷時の重なりを低減させるために用いられる。
【0052】
本例においては、コロラド州ボルダーの小規模ビール製造所の位置を示す図が存在する。その図は図3Aに示される。当該図は多数のシンボル(すなわち、正方形)(すなわち、FO1/402、FO2/404、FO3/406、FO4/408、FO5/410、FO6/412、FO7/414、FO8/416、FO9/418、FO10/420、FO11/422、FO12/424、FO13/426)含む。これらシンボルは固定オブジェクトである。各正方形はコロラド州ボルダーの小規模ビール製造所を示す。また、当該図はラベル(すなわち、MO1/432、MO2/434、MO3/436、MO4/438、MO5/440、MO6/442、MO7/444、MO8/446、MO9/448、MO10/450、MO11/452、MO12/454、MO13/456)も有する。図3Aに示されるように、いくつかのオブジェクト(例えば、FO12/424とFO13/426、FO6/412とMO5/440)は重なっている。
【0053】
FOの処理は、ページ上の最北端(すなわち、ページの上部)に位置するFOから始まり、最南端に位置するFOまで行われると定める。本例では、最初にFO1/402がページ上に配置され、次にFO4/408が配置される。そして、最後にFO13/426が配置されるまで当該ページの下部へと進む。
【0054】
各位置のフットプリント(例えば、正方形)を拡大縮小係数「1」で拡大/縮小してフレームを生成する。すなわち、本例において、各FOのフットプリントとフレームは同じである。また、フレームは正方形の面積で表される。図3Bは、図境界480と、それぞれの初期位置に位置するFOのフレームを示す。
【0055】
各FOは、互いに重ならないように配置される。図3Bに示されるように、FO12/424とFO13/426を除き、それぞれの初期位置に位置するFOの何れも重なっていない。図3Cに示されるように、FO12/424とFO13/426をそれぞれの初期位置から修正位置へ移動させ、FO12/424の修正位置と初期位置、FO13/426の修正位置と初期位置を、それぞれ印を用いて結び付けることによって、重なりを回避する。各FOのフットプリントに対応するCPA内の粗画素は、占有状態に設定される。
【0056】
ここで、図内のMOを配置する。図3Dは、互いに重ならないように(上述のようにして)配列されたFOと、それぞれの初期位置に位置するMOを有する図を示す。MOに関連した重なりが引き続き多数存在する。例えば、MO5/440がFO6/412と重なっている。他の例としては、MO11/452がFO12/424及びFO13/426と重なっている。更に別の例としては、MO3/436とMO2/434が重なっており、MO12/454とMO13/456が重なっている。
【0057】
本例では、MOの処理は、ページ上の最北端(すなわち、図の上部)のFOに関連付けられたMOから始まり、図の最南端のFOに関連付けられたMOまで行われる。本例では、最初にMO1/432がページ上に配置され、次にMO4/438が配置される。そして、最後にMO13/456が配置されるまで当該ページの下部へと進む。
【0058】
MOのフットプリントを用いて当該MOのフレームを生成する。図3Eは、ページ上のMO(例えば、MO1/432、MO13/456)のフットプリントを示す。本例において、MO(例えば、MO1/432、MO13/456)のフットプリントは、(フットプリントの特定を助ける白抜き文字と共に)黒ボックスで示される。各MOのフットプリント(例えば、長方形)を拡大縮小係数「2」で拡大/縮小して、各MOのフレームを生成する。すなわち、各MOのフレームは、当該MOのフットプリントのサイズの二倍である。図3Fは、初期位置にあるMOのフレームの例を示す。具体的には、図3Fにおいて、フレームMO5−1/481は、FO5/410と関連付けられたMO5/440(Heavy Hand Brewing Co.)のフレームである。
【0059】
MOのフレームに対応するCPA内の粗画素群を特定する。粗画素群のうち少なくとも一の粗画素が占有状態であると判断された場合、フレームを移動させる。この処理は重なりが無くなるまで繰り返される。重なりが無くなると、MOのフットプリントに対応するCPA内の粗画素が占有状態に設定される(すなわち、MOの位置がページ上で固定される)。図3Fから図3Iは、MOが重なっている二つのケースを示し、どのようにして重なりが解決されるのかを示す。
【0060】
図3FはFO5/410の周りに位置する四つのフレームを示す。各フレームは「Heavy Hand Brewing Co.」と名前の付いたMO5/440のフレームである。初期位置に位置するフレームMO5−1/481は、当該フレームMO5−1/481内の粗画素群の少なくとも一の粗画素が占有状態に設定されているため(すなわち、FO6/412のフットプリントと重なっているため)、使用できない。フレームMO5−1/481が使用できないと判断されると、MO5−2/482の処理が試みられる。ここで、フレームMO5−2/482内の粗画素群のうち少なくとも一の粗画素は、占有状態に設定されている(すなわち、FO7/414のフットプリント及びMO7/444のフレーム(図示なし)と重なっている)。
【0061】
図3Fから引き続き、フレームMO5−2/482が使用できないと判断されると、フレームMO5−3/483が処理される。ここで、フレームMO5−3/483内の粗画素群のうち少なくとも一の粗画素は、占有状態に設定されている(すなわち、FO7/414のフットプリントと重なっている)。そこで、フレームMO5−4/484が処理される。ここで、フレームMO5−4/484内の粗画素群の粗画素は、何れも占有されていない。ただし、MO5−4/484の一部は図境界480の縁を越えて延びている。本発明の一以上の実施形態において、テキストはワードラップされる(すなわち、MOは一ラインのテキストから複数ラインのテキストに変換される)。それにより、MO5/440はフレームMO5−4/484内に収まる。
【0062】
図3GはMO5/440の処理結果を示す。また、図3Gは、MOのフレームは、当該MOが関連付けられたFOの真上や真下又は真横ではなく、隣接する位置に配置されてもよいことを示す。具体的には、図3Gに示されるMO6/442は、当該MO6/442が関連付けられたFO6/412の左下に配置される。
【0063】
図3Hは、どのように重なりが解決されるのかについての他の例を示す。MO10/450とMO11/452は既に配置されている。これらは、それぞれFO10/420、FO11/422に関連付けられており、FO10/420とFO11/422はページの上部に位置するためである。FO12/424はFO13/426よりもページの下部に位置する。一方、FO12/424からの印はFO13/426からの印よりもページの上部を指し示す。このような場合には、MO12/454をMO13/456よりも前に処理すると定める。最初にフレームMO12−1/490が処理される。ここで、フレームMO12−1/490内の粗画素群の粗画素は、何れも占有状態に設定されていない(すなわち、何れのFOのフットプリント及び/又は何れのMOのフレームとも重なっていない)。本例においては、図3Hに示される他のフレーム(フレームMO12−2/491、フレームMO12−3/492、フレームMO12−4/493)は何れも処理されないが、説明のために示している。図3Hに示される他のフレーム(フレームMO12−2/491、フレームMO12−3/492、フレームMO12−4/493)の何れかが処理される場合、当該フレームの粗画素群のうち少なくとも一の粗画素が占有状態に設定される。図3IはMO12/454の処理結果を示す。図3Gは、続くMO13/456の処理結果も示す。
【0064】
図3Jは、本発明の実施形態を用いてFO及びMOを配列した後にレンダリングした図を示す。
【0065】
図4は、一以上の実施形態に係るシステム(例えば、図1を参照して説明した、クライアントコンピューター、オブジェクトレイアウトデバイスなど)が実装されたコンピューターシステム500を示す。図5のコンピューターシステム500は、用いられているプラットフォームに係らず、実質的に、あらゆるタイプのコンピューターである。例えば、図5に示されるように、コンピューターシステム500は、集積回路、中央処理装置(CPU)又はその他のハードウェアプロセッサーなどの一以上のプロセッサー502と、関連するメモリー504(例えば、ランダムアクセスメモリー(RAM)、キャッシュメモリー、フラッシュメモリーなど)と、記憶装置506(例えば、ハードディスク、コンパクトディスクドライブやデジタルビデオディスク(DVD)ドライブなどの光学ドライブ、フラッシュメモリースティックなど)と、その他多くの構成要素を含み、今日のコンピューター(図示なし)の有する一般的な機能を備える。コンピューターシステム500は、キーボード508、マウス510、マイクロフォン(図示なし)などの入力手段も含んでもよい。また、コンピューターシステム500は、グラフィックディスプレイ512(例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、ブラウン管(CRT)モニター)などの出力手段も含んでもよい。コンピューターシステム500は、ネットワークインターフェース接続(図示なし)を介して、ネットワーク514(例えば、ローカルエリアネットワーク(LAN)、インターネットなどの広域ネットワーク(WAN)、その他同様のタイプのネットワーク)に接続してもよい。多くの異なるタイプのコンピューターシステムが存在しており、前述の入力手段及び出力手段は、周知の又は今後開発される他の形態を取ってもよい。概括して言えば、コンピューターシステム500は、少なくとも、本発明の実施形態を実施するために必要な、必要最低限の処理と、入力手段及び/又は出力手段を備える。
【0066】
また、前述したコンピューターシステム500の一以上の構成要素は、遠隔に位置し、ネットワークを介して、その他の構成要素と接続してもよい。また、本発明の複数の実施形態は、複数のノードを有する分散システムに実装されてもよく、本発明の各部(例えば、信頼予測エンジン、ソーシャルソース評価モジュール、ソーシャルスコア計算器)は、分散システム内の異なるノードに位置してもよい。本発明の一以上の実施形態において、ノードはコンピューターシステムに対応する。あるいは、ノードは関連する物理メモリーを有するプロセッサーに対応する。または、ノードは共有メモリー及び/又は共有資源を有するプロセッサーに対応する。また、本発明の実施形態を実行するためのソフトウェア指示を、非一時的コンピューター読取可能記憶媒体に記憶させてもよい。非一時的コンピューター読取可能記憶媒体としては、コンパクトディスク(CD)、ディスケット、テープ、その他の物理的コンピューター読取可能記憶装置がある。
【0067】
本発明の一以上の実施形態は、1ページ上に一以上のオブジェクトを配列する。具体的には、本発明の実施形態は、オブジェクト同士が重なり合わないように、自動的に、オブジェクトを1ページ上に配列する。また、オブジェクトは、固定オブジェクト又は可動オブジェクトに分類される。固定オブジェクトは、ページ上で(可能ならば)固定された状態を維持する。固定オブジェクトに関連付けられた可動オブジェクトは、固定オブジェクトとの関連性を維持したまま、重なり合い及び/又は群がりを回避するように移動させることができる。
【0068】
本発明の実施形態は、1ページ上のオブジェクトの重なり合い及び/又は群がりを回避するために、手動で当該ページ上のオブジェクトを移動させる必要がなく、ユーザーの時間を短縮できる。また、本発明の実施形態は、コンピューター処理時間を短縮することもできる。また、(例えば、個々の画素ではなく)CPAを用いることにより、各オブジェクトを処理し1ページ上に配列させるために使用するメモリー量が低減する。本発明の実施形態は、一の固定オブジェクトに関連付けられた複数の可動オブジェクトを処理することにより、コンピューターリソースを節約することもできる。例えば、オブジェクト又はオブジェクトのフレームの位置を、本発明の実施形態を用いて修正する必要がある場合、影響を受けるのは、ページ上に既に配置されている全てのオブジェクトではなく、可動オブジェクトが関連付けられている固定オブジェクトのみである。すなわち、本発明の実施形態は、一のオブジェクトを移動及び/又は修正する必要がある場合に、既に配置されている全てのオブジェクトに関する値を再度求める必要はない。
【0069】
限られた数の実施形態を用いて本発明を説明したが、本開示の恩恵に浴する当業者であれば、ここに開示された本発明の範囲から逸脱することなく、他の実施形態を考案できることを理解するであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ制限されるべきである。
【技術分野】
【0001】
本発明は、グラフィック出力における重なりを回避するためにラベルを移動させる方法、システム及びコンピューター読取可能媒体に関する。
【背景技術】
【0002】
1ページは、複数のオブジェクトを含む場合がある。これらのオブジェクトには、ページ上の所定の位置に比較的維持されるオブジェクトと、ページ上の多数の位置のうちの何れかの位置に移動させることのできるオブジェクトがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
多数のアプリケーションにおいて、1ページは、重なり合う多数のオブジェクトを有する場合がある。これはオブジェクトの読み取りや識別を困難にする。また、オブジェクトが重なり合っていない場合であっても、非常に接近し合ってひとかたまりとなり、明確に解釈できない場合がある。
【課題を解決するための手段】
【0004】
主として、一側面において、本発明は図をレンダリングする方法に関する。
該方法は、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程と、
前記図内に各々位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定する工程と、
コンピュータープロセッサーを用いて、前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定する工程と、
前記コンピュータープロセッサーを用いて、前記フットプリントに対応する前記粗画素を占有状態に設定する工程と、
前記コンピュータープロセッサーを用いて、前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択する工程と、
前記コンピュータープロセッサーを用いて、前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成する工程と、
前記コンピュータープロセッサーを用いて、前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定する工程と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定する工程と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングする工程と、
を備える。
【0005】
主として、一側面において、本発明は図をレンダリングするシステムに関する。
該システムは、
ハードウェアプロセッサーと、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列と、
可動オブジェクトの第1のフレームと第2のフレームを生成するように構成されたフレームモジュールと、
前記ハードウェアプロセッサー上で実行されるレイアウトエンジンと、
を備え、
前記レイアウトエンジンは、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定し、
前記フットプリントに対応する前記粗画素配列内の粗画素を占有状態に設定し、
前記可動オブジェクトの第1の位置に基づいて、前記第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定し、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断し、
前記可動オブジェクトと関連付けられた第2の位置に基づいて、前記可動オブジェクトの前記第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定し、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするように構成されている。
【0006】
主として、一側面において、本発明は図をレンダリングするための指示を記憶する非一時的コンピューター読取可能記憶媒体に関する。
該指示は、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定するための指示と、
前記図内に位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定するための指示と、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定するための指示と、
前記フットプリントに対応する前記粗画素を占有状態に設定するための指示と、
前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択するための指示と、
前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成するための指示と、
前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内で第2の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定するための指示と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするための指示と、
を備える。
【0007】
本発明のその他の側面は、以下の説明及び添付の特許請求の範囲から明らかである。
【図面の簡単な説明】
【0008】
【図1A】本発明の一以上の実施形態に係るシステムのブロック図を示す。
【図1B】本発明の一以上の実施形態に係る複数のオブジェクトを有する図を示す。
【図1C】本発明の一以上の実施形態に係る図及び粗画素配列(CPA)を示す。
【図1D】本発明の一以上の実施形態に係る可動オブジェクト用に生成される複数のフレームを示す。
【図2A】本発明の一以上の実施形態に係るフローチャートを示す。
【図2B】本発明の一以上の実施形態に係るフローチャートを示す。
【図2C】本発明の一以上の実施形態に係るフローチャートを示す。
【図3A】本発明の一以上の実施形態に係る例を示す。
【図3B】本発明の一以上の実施形態に係る例を示す。
【図3C】本発明の一以上の実施形態に係る例を示す。
【図3D】本発明の一以上の実施形態に係る例を示す。
【図3E】本発明の一以上の実施形態に係る例を示す。
【図3F】本発明の一以上の実施形態に係る例を示す。
【図3G】本発明の一以上の実施形態に係る例を示す。
【図3H】本発明の一以上の実施形態に係る例を示す。
【図3I】本発明の一以上の実施形態に係る例を示す。
【図3J】本発明の一以上の実施形態に係る例を示す。
【図4】本発明の一以上の実施形態に係るコンピューターシステムを示す。
【発明を実施するための形態】
【0009】
本発明の具体的な実施形態を、添付の図面を参照して詳細に説明する。複数の図に示される同様の構成要素は、一貫性を保つために同様の参照符号で示す。
【0010】
以下の本発明に係る実施形態の詳細な説明には、本発明についてより完全な理解を提供するために、数多くの詳細を示す。しかし、当業者には、これらの詳細を用いずとも本発明の実施が可能であることは明らかであろう。他の例においては、不要に複雑な説明となるのを避けるため、周知の特徴に関しては詳細な説明は省略する。
【0011】
主として、本発明の実施形態は、1ページに複数のオブジェクト(すなわち、固定オブジェクト、可動オブジェクト)を配置するシステム及び方法を提供する。具体的には、複数の固定オブジェクト、そしてそれらに伴う可動オブジェクトを、互いに重なり合わないように1ページ上に配置する。粗画素配列(Coarse Pixel Array;CPA)は粗画素の二次元配列であり、オブジェクトを有する図のページスペースを表す。ページ上の一の位置に配置されるオブジェクトは、CPAに位置する粗画素群によって表される。この粗画素群は占有状態に設定される。配置される必要のあるオブジェクトは、当該オブジェクトの粗画素群によって表され、初期位置に配置される。このオブジェクトの粗画素群のうち少なくとも一の粗画素が既に占有状態である場合、新たな位置が使用される。この処理は、全てのオブジェクトがページ上に配置されるまで(すなわち、図がレンダリングされるまで)繰り返される。本発明の実施形態において、オブジェクトは、当該オブジェクトのフットプリントの拡大/縮小版に対応するフレームを用いて配置される。
【0012】
図1は、本発明の一以上の実施形態に係るシステム100を示す。図1に示されるように、システム100は、ページレンダリングデバイス(PRD)150と、ストレージリポジトリ130と、クライアントコンピューター105とを含む、複数の構成要素を備える。PRD150は、プリンター、電子読取装置などである。コンピューティングデバイス105は、パーソナルコンピューター(PC)、デスクトップコンピューター、汎用コンピューター、サーバー、電話、公共電話ボックス、ケーブルボックス、携帯情報端末(PDA)、電子読取装置、携帯電話、スマートフォンなどである。ストレージリポジトリ130は、ハードウェア記憶装置(例えば、ハードドライブ、テープ、メモリー等)の何れかの種類に対応する。コンピューティングデバイス105と、PRD150と、ストレージリポジトリ130は、直接的に接続されてもよい(例えば、ユニバーサルシリアルバス(USB)接続など)。あるいは、コンピューティングデバイス105と、PRD150と、ストレージリポジトリ130は、有線部分及び/又は無線部分を有するネットワーク120を用いて接続されてもよい。
【0013】
本発明の一以上の実施形態において、PRD150及び/又は記憶装置130はコンピューティングデバイス105上に位置する。このような実施形態では、PRD150は、コンピューティングデバイス105上の、図をレンダリングするためのハードウェアとソフトウェアの組み合わせに対応する。本発明の一以上の実施形態において、記憶装置130はPRD150上に位置する。
【0014】
本発明の一以上の実施形態において、コンピューティングデバイス105はユーザーアプリケーション110を実行する。ユーザーアプリケーション110はユーザーによって操作されるソフトウェアアプリケーションであり、図(例えば、図115)を取得、入力、生成、表示及び/又は印刷するように構成されている。よって、ユーザーアプリケーション110は、ワードプロセッシングアプリケーション、表計算アプリケーション、デスクトップパブリッシングアプリケーション、グラフィックアプリケーション、写真印刷アプリケーション、インターネットブラウザー、地図作成アプリケーション、グラフィカラルプロットアプリケーションなどである。ユーザーアプリケーション110は、新たな図を生成及び/又は事前に保存した図を取得する。
【0015】
本発明の一以上の実施形態において、図115は、一以上の固定オブジェクトと一以上の可動オブジェクトを含む。図115は、一以上の背景オブジェクトを含んでもよい。背景オブジェクトは、上から重ねて印刷されてもよい図内のアイテムに対応する。背景オブジェクトの例としては、背景画像、多角形フィル、シンボル、線(例えば、表内の縦横拡大縮小線)などがある。固定オブジェクトは、図内に位置を有し、図全体に意味を付与する当該図内のアイテムに対応する。本発明の一以上の実施形態において、固定オブジェクトは上から重ねて印刷されてはならない。固定オブジェクトの例としては、クリップアート、形、散布データ図のマーカー、地図上のシンボルなどがある。一方、可動オブジェクトは、図の全体的な意味を変えずに再配置することが可能な図内のアイテムに対応する。可動オブジェクトは、固定オブジェクトを特定及び/又は説明するために用いられる。例えば、可動オブジェクトは、固定オブジェクトを特定及び/又は説明する文字列(すなわち、ラベル)である。
【0016】
本発明の一以上の実施形態において、図115内の複数の固定オブジェクトと、図115内の複数の可動オブジェクトは、ランク付けされる(すなわち、優先順位が付けられる)。すなわち、固定オブジェクトの階層と可動オブジェクトの階層が存在する。記憶装置130は、図115内の全固定オブジェクトのリスト(すなわち、固定オブジェクト(FO)リスト132)と、図115内の全可動オブジェクトのリスト(すなわち、可動オブジェクト(MO)リスト136)を含む。FO階層134は、図115内の固定オブジェクトのランクを特定する。同様に、MO階層138は、図115内の可動オブジェクトのランクを特定する。
【0017】
図1Bは、本発明の一以上の実施形態に係る図(すなわち、図X/199)を示す。図1Bに示されるように、図X/199は、複数の固定オブジェクト(すなわち、固定オブジェクトA/197、固定オブジェクトB/193)と、複数の可動オブジェクト(すなわち、可動オブジェクトX/195、可動オブジェクトY/193)と、背景オブジェクト180を含む。固定オブジェクトA/197はクリップアート要素であり、可動オブジェクトX/195は固定オブジェクトA/197を特定し説明する文字列(すなわち、「ELEPHANT」(象))である。固定オブジェクトB/193はシンボルであり、可動オブジェクトY/191は固定オブジェクトB/191を特定し説明する文字列(すなわち、「AUSTIN」(オースティン))である。また、同じく図1Bに示されるように、固定オブジェクトB/193と可動オブジェクトY/191は背景画像180上に印刷される。また、可動オブジェクトX/195は対応する固定オブジェクトA/197に隣接しており、可動オブジェクトY/191は対応する固定オブジェクトB/193に隣接している。
【0018】
本詳細な説明の恩恵に浴する当業者であれば、可動オブジェクトX/195と可動オブジェクトY/191は、それぞれが対応する固定オブジェクトを特定し説明しながら、図X/199の意味を曲解させることなく、再配置される場合があることを理解するであろう。例えば、可動オブジェクトX/195は、対応する固定オブジェクトA/197を特定し説明しながら、図X/199の意味を曲解させることなく、当該固定オブジェクトA/197の近傍に再配置される場合がある。同様に、可動オブジェクトY/191は、対応する固定オブジェクトB/195を特定し説明しながら、図X/199の意味を曲解させることなく、当該固定オブジェクトB/195の近傍に再配置される場合がある。
【0019】
また、本詳細な説明の恩恵に浴する当業者であれば、図は、固定オブジェクト及び可動オブジェクトをいくつ有してもよいことを理解するであろう。そのため、多数の可動オブジェクトが存在する場合、可動オブジェクトが重なり合う場合がある。このような場合は、図の読み取り及び理解を容易にするため、一以上の可動オブジェクトを初期位置から新たな位置へと再配置する。可動オブジェクトの初期位置は、図内で指定される。
【0020】
図1Aに戻り、本発明の一以上の実施形態において、PRD150は粗画素配列(CPA)158を含む。CPA158は、図115のページスペースを表す多次元(すなわち、二次元)配列である。CPA158の有する粗画素数はいくつであってもよい。本発明の一以上の実施形態において、各粗画素は図115のx/72in2に対応する。xは図115で使用される最小のフォントサイズである。
【0021】
本発明の一以上の実施形態において、CPA158は固定オブジェクト及び可動オブジェクトがどこに描画されたのかを記録又は追跡する。具体的には、描画された固定オブジェクト及び可動オブジェクトのフットプリント(すなわち、面積、周長及び/又はバウンディングボックス)に対応するCPA158内の粗画素は、占有状態に設定される。本発明の一以上の実施形態において、CPA158はビット配列である。このような実施形態においては、値「0」を有する粗画素は全て空き(すなわち、占有されていない)状態であり、値「1」を有する粗画素は全て占有状態である。本詳細な説明の恩恵に浴する当業者であれば、占有状態と空き(すなわち、占有されていない)状態を示す二つの値には、いかなる値を使用してもよいことを理解するであろう。
【0022】
図1Cは、本発明の一以上の実施形態に係る粗画素配列190を示す。CPA190は図X/199を表す。図1Cに示されるように、固定オブジェクト及び可動オブジェクトのフットプリントに対応するCPA190内の粗画素は、占有状態に設定される。例えば、フットプリントA/187は固定オブジェクトA/197に対応する。よって、フットプリントA/187に対応する粗画素は占有状態に設定される。同様に、フットプリントB/183は固定オブジェクトB/193に対応する。よって、フットプリントB/183に対応する粗画素は占有状態に設定される。また、フットプリントX/185は可動オブジェクトX/195に対応する。よって、フットプリントX/185に対応する粗画素は占有状態に設定される。更に、フットプリントY/181は可動オブジェクトY/191に対応する。よって、フットプリントY/181に対応する粗画素は占有状態に設定される。本発明の一以上の実施形態において、CPA190は背景オブジェクト(例えば、背景オブジェクト180)のフットプリントを記録/追跡しない。
【0023】
図1Aに戻り、本発明の一以上の実施形態において、PRD150はフレームモジュール160を含む。フレームモジュール160は図115内の各可動オブジェクトについて、サイズの異なる複数のフレームを算出するように構成されている。また、本発明の一以上の実施形態において、フレームモジュール160は、固定オブジェクトが重なり合う場合、重なり合っている固定オブジェクトのうち一以上の固定オブジェクトについて、フレームを算出するように構成されている。各フレームは、実質的に、可動オブジェクト又は固定オブジェクトを囲うコンテナーである。よって、最小フレームはオブジェクトのフットプリントに対応し、最大フレームはフットプリントの拡大/縮小版(すなわち、拡大版)に対応する。フレームは、拡大縮小係数で拡大/縮小されたフットプリントに対応する。例えば、可動オブジェクトがフォントサイズ10ポイントの文字列である場合、最大フレームはフォントサイズ80ポイントの当該文字列を囲うバウンディングボックスに対応する。フレームは、オブジェクトをページ上に配置する際に、フットプリントの代わりに用いられる(後述)。
【0024】
図1Dは、本発明の一以上の実施形態に係る、可動オブジェクト用に生成される複数のフレームを示す。図1Dに示されるように、複数のKフレーム(すなわち、フレーム1/172、フレーム2/174、フレーム3/176、・・・、フレームK/178)は、可動オブジェクトY/191用に生成されたものである。フレーム1/172は最小フレームであり、実質的に、可動オブジェクトY/191のフットプリントに対応する。一方、フレームK/178は最大フレームである。
【0025】
図1Aに戻り、本発明の一以上の実施形態において、PRD150はレイアウトエンジン152を含む。レイアウトエンジン152は、処理するオブジェクト(例えば、FO、MO)を選択するように構成されている。処理とは、既にページ上に配置されている他のオブジェクトと重ならないように、当該ページ上にオブジェクト(例えば、FO、MO)を配置することである。レイアウトエンジン152がオブジェクトを選択する順番は、階層(例えば、FO階層134、MO階層138)に基づく。
【0026】
また、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントに対応するCPA160内の粗画素群を特定するように構成されている。更に、レイアウトエンジン152は、粗画素群のうち何れかの粗画素が、既に占有状態に設定されているか否か判断するように構成されている。すなわち、本発明の一以上の実施形態において、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントが、前に描画された一以上のオブジェクト(例えば、FO、MO)と重なるか否か判断するように構成されている。
【0027】
本発明の一以上の実施形態において、レイアウトエンジン152は、オブジェクト(例えば、FO、MO)について、異なる位置(すなわち、修正された位置又は新たな位置)を選択するように構成されている。この異なる位置は、多数の手段のうちの一つを用いて生成/選択される。その手段は特に制限されないが、アルゴリズム、デフォルトスケジュール(例えば、下、上、左、右、左下、右下、左上、右上)、ランダムロケーションジェネレーター、異なる位置を選択するのに適切なその他の手段などである。
【0028】
また、レイアウトエンジン152は、オブジェクトに対応するCPA160内の粗画素を占有状態に設定するように構成されている。レイアウトエンジン152は、オブジェクト(例えば、FO、MO)のフレーム及び/又はフットプリントが、他のオブジェクト(例えば、FO、MO)と重ならない場合に、当該オブジェクトのフットプリントを占有状態に設定する。更に、レイアウトエンジン152は、固定オブジェクト、可動オブジェクト及び背景オブジェクトをページ170上に配置して、図115をレンダリングするように構成されている。
【0029】
図2Aから図2Cは、本発明の一以上の実施形態に係るフローチャートを示す。図2Aから図2Cに示される処理は、例えば、図1のシステムによって図をレンダリングする際に用いられる。これらフローチャートには多様なステップが順に示され説明されているが、いくつか又は全てのステップは、異なる順番で実行されてもよく、組み合わせや省略をされてもよい。また、いくつか又は全てのステップは、並行して実行されてもよい。更に、本発明の一以上の実施形態において、後述する一以上のステップは、省略、繰り返し及び/又は異なる順番で実行されてもよい。更に、この方法を実行する際に、図2Aから図2Cでは省略されているステップを追加ステップとして含んでもよい。よって、図2Aから図2Cに示されるステップの具体的な順番は、本発明の範囲を制限するものではない。
【0030】
本発明の一以上の実施形態において、例えば、図1Aを参照して上述したコンピューティングデバイスや、図5を参照して後述するコンピューティングデバイスを用いて、後述する一以上のステップを実行する。
【0031】
図2Aを参照すると、ステップ202において、図内の複数のFO各々のフットプリントを特定する。フットプリントは、図内のFOの周長、面積及び/又はバウンディングボックスに対応する。
【0032】
固定オブジェクトは、ページ上で移動させてもよい。例えば、二つの固定オブジェクトがページ上で重なり合う場合、少なくとも何れかの固定オブジェクトを(例えば、MOの重なり合いを回避する手段と同様の手段で)移動させて、重なり合いを回避する。
【0033】
ステップ204において、図内の複数のMOを特定する。本発明の一以上の実施形態において、MOはページ上のFOのフットプリントと関連付けられている。例えば、各MOはFOを特定及び/又は説明するラベル(すなわち、一のフォントサイズの文字列)である。各MOは図内に初期位置を有する。例えば、MOの初期位置は対応するFOに隣接する。
【0034】
ステップ206において、図のページスペースを表すCPAを取得する。本発明の一以上の実施形態において、CPAは図を表す多次元配列である。また、CPAの各粗画素は図の一領域に対応する。
【0035】
ステップ208において、フットプリントに対応するCPA内の粗画素を、占有状態に設定する。本発明の一以上の実施形態において、CPAはビット配列である。このような実施形態においては、各粗画素は「0」又は「1」に設定される。「1」は占有状態を示すために用いられ、「0」は空き(すなわち、占有されていない)状態を示すために用いられる。
【0036】
ステップ208において、FOの間で重なり合いがある場合、図2Bを参照して後述する、ステップ228から始まる処理を用いて、FOの間の重なり合いを回避する。
【0037】
ステップ210において、図内の一のMOを選択する。本発明の一以上の実施形態において、MOは一手法を用いて選択される。例えば、MOはMO階層に基づいて選択される。MOは他の手法を用いて選択されてもよい。特に制限はされないが、他の手法としては、MOのサイズや位置を用いるものがある。MOの位置は、ページ上のMOの初期位置である。MOのフレームを調整する必要がある場合、図2Cを参照して後述する、ステップ240から始まる処理を用いて、MOのフレームを変更する。
【0038】
ステップ212において、MOのフレームに対応するCPA内の粗画素群を特定する。粗画素群はMOの初期位置に基づく。フレームはMOのフットプリントの拡大/縮小版に対応する。
【0039】
ステップ214において、粗画素群のうち少なくとも一の粗画素が占有状態であるか否か判断する。すなわち、MOのフレームが何れかのFO(又はページ上の位置に事前に貼り付けられた他のMO)のフットプリントと重なっているか否か判断する。特定された粗画素群の何れの粗画素も占有状態ではないと判断された場合、ステップ216に移行する。粗画素群のうち少なくとも一の粗画素が占有状態であると判断された場合、ステップ220に移行する。
【0040】
ステップ216において、粗画素群を占有状態に設定する。すなわち、MOはページ上の初期位置に貼り付けられる。ステップ218において、上記複数のFOをフットプリントに、上記一のMOを初期位置に有する図をレンダリングする。ステップ218終了後、本処理を終了する。
【0041】
ステップ220において、上記一のMOの修正位置を選択する。MOの修正位置は多数の手段のうちの一つを用いて選択される。例えば、MOの修正位置は、当該MOの初期位置に対して、当該MOが対応するFOの反対側となる。MOが関連付けられたFOの近隣に利用可能な位置が無い場合、MOの修正位置は関連付けられたFOから離れた位置となる。このような場合、修正位置に配置されたMOを前述のFOと結び付けるために、印を追加する。MOをFOと結び付けるために印が追加された場合、この印はMOのフットプリントの一部となる。
【0042】
ステップ222において、MOのフレームに対応するCPA内の修正粗画素群を特定する。修正粗画素群はMOの修正位置に基づく。ステップ224において、MOの修正粗画素群を占有状態に設定する。すなわち、MOが初期位置に固定されるのは、重なり合いがない場合である。ステップ226において、上記複数のFOと修正位置に配置された上記一のMOを有する図をレンダリングする。ステップ226終了後、本処理を終了する。
【0043】
図2Bは、FO間の重なり合いを解決する方法を説明する。また図2Bは、FOをページ上に配列する順番を決定する際に、どのように階層を用いるのかについても説明する。本発明の複数の実施形態は、図2Bを参照して説明されるいくつか又は全ての方法を、MOに対しても適用する。図2Bのステップ228は、例えば、図2Aのステップ208に続くステップである。
【0044】
図2Bを参照すると、ステップ228において、第1のFOに対応する粗画素を占有状態に設定後、他のFOを選択する。本発明の一以上の実施形態において、図1を参照して上述したFO階層を用いて、FOの処理順を選択する。
【0045】
ステップ230において、前記他のFOのフレームに対応するCPA内の粗画素群を特定する。粗画素群は前記他のFOの位置に基づく。フレームは、拡大縮小係数に応じて前記他のFOのフットプリントを拡大/縮小して算出される。拡大縮小係数は、1よりも小さい(例えば、全てのオブジェクトを重ならずにページ内に収めるために、一以上のオブジェクトのサイズを縮小する必要が場合)、1(すなわち、フレームとフットプリントが同じ)又は1よりも大きい。
【0046】
ステップ232において、粗画素群のうち少なくとも一の粗画素が占有状態に設定されていると判断する。すなわち、前記他のFOは、少なくとも一部分、既に初期位置に固定されている第1のFOと重なる。よって、第1のFOとの重なり合いを回避するために、前記他のFOを移動させる必要がある。ステップ234において、前記他のFOについて修正位置を生成する。前記他のFOの修正位置は、MOに対してステップ220で説明した手段など多数の手段のうちの一つを用いて生成される。
【0047】
ステップ236において、前記他のFOのフレームに対応するCPA内の修正粗画素群を特定する。修正粗画素群は前記他のFOの修正位置に基づく。ステップ238において、前記他のFOの修正粗画素群を占有状態に設定する。ステップ238終了後、本処理は、例えば、図2Aのステップ210に戻る。
【0048】
図2Cは、オブジェクトのフレームを変更する(例えば、フレームを大きくする又は小さくする)方法を説明する。フレームの変更は、ページ上のオブジェクトの重なり合いを低減させる方法として用いられる。例えば、フレームを小さくして、ラベルをページ上の特定の位置に維持する。このような場合、拡大縮小係数を用いてオブジェクトのフットプリントを拡大/縮小して、フレームを算出する。図2Cに記載の処理は、FO及び/又はMOのフレームに対して用いられる。図2Cのステップ240は、例えば、図2Aのステップ210に続くステップである。
【0049】
図2Cを参照すると、ステップ240において、MOの初期フレームに対応するCPA内の初期粗画素群を特定する。MOのフレームに対応する初期粗画素群は、MOの初期位置に基づく。ステップ242において、初期粗画素群のうち少なくとも一の粗画素が占有状態に設定されていると判断する。すなわち、MOの初期フレームは、少なくとも一部分、ページ上に既に配置されているオブジェクトと重なる。
【0050】
ステップ244において、修正拡大縮小係数を用いて、MOのフットプリントを拡大/縮小して、異なるフレームを算出する。修正拡大縮小係数は、初期フレームに用いられた拡大縮小係数よりも小さい。本発明の一以上の実施形態においては、修正拡大縮小係数は、初期フレームに用いられた拡大縮小係数よりも大きい。修正拡大縮小係数は、多数の方法のうちの一つを用いて選択される。例えば、所望のフレームサイズ、オブジェクト間の所望のスペース間隔、配置される必要のあるオブジェクトの数及びオブジェクトのフットプリントに基づいて修正拡大縮小係数を決定するアルゴリズムがある。異なるフレームが図2Aと関連して用いられる場合、当該異なるフレームは、例えば、ステップ212のフレームである。
【0051】
図3Aから図3Jは、本発明の一以上の実施形態に係る例を示す。図3Aから図3Jに示される例は、例えば、システム100によって、印刷時の重なりを低減させるために用いられる。
【0052】
本例においては、コロラド州ボルダーの小規模ビール製造所の位置を示す図が存在する。その図は図3Aに示される。当該図は多数のシンボル(すなわち、正方形)(すなわち、FO1/402、FO2/404、FO3/406、FO4/408、FO5/410、FO6/412、FO7/414、FO8/416、FO9/418、FO10/420、FO11/422、FO12/424、FO13/426)含む。これらシンボルは固定オブジェクトである。各正方形はコロラド州ボルダーの小規模ビール製造所を示す。また、当該図はラベル(すなわち、MO1/432、MO2/434、MO3/436、MO4/438、MO5/440、MO6/442、MO7/444、MO8/446、MO9/448、MO10/450、MO11/452、MO12/454、MO13/456)も有する。図3Aに示されるように、いくつかのオブジェクト(例えば、FO12/424とFO13/426、FO6/412とMO5/440)は重なっている。
【0053】
FOの処理は、ページ上の最北端(すなわち、ページの上部)に位置するFOから始まり、最南端に位置するFOまで行われると定める。本例では、最初にFO1/402がページ上に配置され、次にFO4/408が配置される。そして、最後にFO13/426が配置されるまで当該ページの下部へと進む。
【0054】
各位置のフットプリント(例えば、正方形)を拡大縮小係数「1」で拡大/縮小してフレームを生成する。すなわち、本例において、各FOのフットプリントとフレームは同じである。また、フレームは正方形の面積で表される。図3Bは、図境界480と、それぞれの初期位置に位置するFOのフレームを示す。
【0055】
各FOは、互いに重ならないように配置される。図3Bに示されるように、FO12/424とFO13/426を除き、それぞれの初期位置に位置するFOの何れも重なっていない。図3Cに示されるように、FO12/424とFO13/426をそれぞれの初期位置から修正位置へ移動させ、FO12/424の修正位置と初期位置、FO13/426の修正位置と初期位置を、それぞれ印を用いて結び付けることによって、重なりを回避する。各FOのフットプリントに対応するCPA内の粗画素は、占有状態に設定される。
【0056】
ここで、図内のMOを配置する。図3Dは、互いに重ならないように(上述のようにして)配列されたFOと、それぞれの初期位置に位置するMOを有する図を示す。MOに関連した重なりが引き続き多数存在する。例えば、MO5/440がFO6/412と重なっている。他の例としては、MO11/452がFO12/424及びFO13/426と重なっている。更に別の例としては、MO3/436とMO2/434が重なっており、MO12/454とMO13/456が重なっている。
【0057】
本例では、MOの処理は、ページ上の最北端(すなわち、図の上部)のFOに関連付けられたMOから始まり、図の最南端のFOに関連付けられたMOまで行われる。本例では、最初にMO1/432がページ上に配置され、次にMO4/438が配置される。そして、最後にMO13/456が配置されるまで当該ページの下部へと進む。
【0058】
MOのフットプリントを用いて当該MOのフレームを生成する。図3Eは、ページ上のMO(例えば、MO1/432、MO13/456)のフットプリントを示す。本例において、MO(例えば、MO1/432、MO13/456)のフットプリントは、(フットプリントの特定を助ける白抜き文字と共に)黒ボックスで示される。各MOのフットプリント(例えば、長方形)を拡大縮小係数「2」で拡大/縮小して、各MOのフレームを生成する。すなわち、各MOのフレームは、当該MOのフットプリントのサイズの二倍である。図3Fは、初期位置にあるMOのフレームの例を示す。具体的には、図3Fにおいて、フレームMO5−1/481は、FO5/410と関連付けられたMO5/440(Heavy Hand Brewing Co.)のフレームである。
【0059】
MOのフレームに対応するCPA内の粗画素群を特定する。粗画素群のうち少なくとも一の粗画素が占有状態であると判断された場合、フレームを移動させる。この処理は重なりが無くなるまで繰り返される。重なりが無くなると、MOのフットプリントに対応するCPA内の粗画素が占有状態に設定される(すなわち、MOの位置がページ上で固定される)。図3Fから図3Iは、MOが重なっている二つのケースを示し、どのようにして重なりが解決されるのかを示す。
【0060】
図3FはFO5/410の周りに位置する四つのフレームを示す。各フレームは「Heavy Hand Brewing Co.」と名前の付いたMO5/440のフレームである。初期位置に位置するフレームMO5−1/481は、当該フレームMO5−1/481内の粗画素群の少なくとも一の粗画素が占有状態に設定されているため(すなわち、FO6/412のフットプリントと重なっているため)、使用できない。フレームMO5−1/481が使用できないと判断されると、MO5−2/482の処理が試みられる。ここで、フレームMO5−2/482内の粗画素群のうち少なくとも一の粗画素は、占有状態に設定されている(すなわち、FO7/414のフットプリント及びMO7/444のフレーム(図示なし)と重なっている)。
【0061】
図3Fから引き続き、フレームMO5−2/482が使用できないと判断されると、フレームMO5−3/483が処理される。ここで、フレームMO5−3/483内の粗画素群のうち少なくとも一の粗画素は、占有状態に設定されている(すなわち、FO7/414のフットプリントと重なっている)。そこで、フレームMO5−4/484が処理される。ここで、フレームMO5−4/484内の粗画素群の粗画素は、何れも占有されていない。ただし、MO5−4/484の一部は図境界480の縁を越えて延びている。本発明の一以上の実施形態において、テキストはワードラップされる(すなわち、MOは一ラインのテキストから複数ラインのテキストに変換される)。それにより、MO5/440はフレームMO5−4/484内に収まる。
【0062】
図3GはMO5/440の処理結果を示す。また、図3Gは、MOのフレームは、当該MOが関連付けられたFOの真上や真下又は真横ではなく、隣接する位置に配置されてもよいことを示す。具体的には、図3Gに示されるMO6/442は、当該MO6/442が関連付けられたFO6/412の左下に配置される。
【0063】
図3Hは、どのように重なりが解決されるのかについての他の例を示す。MO10/450とMO11/452は既に配置されている。これらは、それぞれFO10/420、FO11/422に関連付けられており、FO10/420とFO11/422はページの上部に位置するためである。FO12/424はFO13/426よりもページの下部に位置する。一方、FO12/424からの印はFO13/426からの印よりもページの上部を指し示す。このような場合には、MO12/454をMO13/456よりも前に処理すると定める。最初にフレームMO12−1/490が処理される。ここで、フレームMO12−1/490内の粗画素群の粗画素は、何れも占有状態に設定されていない(すなわち、何れのFOのフットプリント及び/又は何れのMOのフレームとも重なっていない)。本例においては、図3Hに示される他のフレーム(フレームMO12−2/491、フレームMO12−3/492、フレームMO12−4/493)は何れも処理されないが、説明のために示している。図3Hに示される他のフレーム(フレームMO12−2/491、フレームMO12−3/492、フレームMO12−4/493)の何れかが処理される場合、当該フレームの粗画素群のうち少なくとも一の粗画素が占有状態に設定される。図3IはMO12/454の処理結果を示す。図3Gは、続くMO13/456の処理結果も示す。
【0064】
図3Jは、本発明の実施形態を用いてFO及びMOを配列した後にレンダリングした図を示す。
【0065】
図4は、一以上の実施形態に係るシステム(例えば、図1を参照して説明した、クライアントコンピューター、オブジェクトレイアウトデバイスなど)が実装されたコンピューターシステム500を示す。図5のコンピューターシステム500は、用いられているプラットフォームに係らず、実質的に、あらゆるタイプのコンピューターである。例えば、図5に示されるように、コンピューターシステム500は、集積回路、中央処理装置(CPU)又はその他のハードウェアプロセッサーなどの一以上のプロセッサー502と、関連するメモリー504(例えば、ランダムアクセスメモリー(RAM)、キャッシュメモリー、フラッシュメモリーなど)と、記憶装置506(例えば、ハードディスク、コンパクトディスクドライブやデジタルビデオディスク(DVD)ドライブなどの光学ドライブ、フラッシュメモリースティックなど)と、その他多くの構成要素を含み、今日のコンピューター(図示なし)の有する一般的な機能を備える。コンピューターシステム500は、キーボード508、マウス510、マイクロフォン(図示なし)などの入力手段も含んでもよい。また、コンピューターシステム500は、グラフィックディスプレイ512(例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、ブラウン管(CRT)モニター)などの出力手段も含んでもよい。コンピューターシステム500は、ネットワークインターフェース接続(図示なし)を介して、ネットワーク514(例えば、ローカルエリアネットワーク(LAN)、インターネットなどの広域ネットワーク(WAN)、その他同様のタイプのネットワーク)に接続してもよい。多くの異なるタイプのコンピューターシステムが存在しており、前述の入力手段及び出力手段は、周知の又は今後開発される他の形態を取ってもよい。概括して言えば、コンピューターシステム500は、少なくとも、本発明の実施形態を実施するために必要な、必要最低限の処理と、入力手段及び/又は出力手段を備える。
【0066】
また、前述したコンピューターシステム500の一以上の構成要素は、遠隔に位置し、ネットワークを介して、その他の構成要素と接続してもよい。また、本発明の複数の実施形態は、複数のノードを有する分散システムに実装されてもよく、本発明の各部(例えば、信頼予測エンジン、ソーシャルソース評価モジュール、ソーシャルスコア計算器)は、分散システム内の異なるノードに位置してもよい。本発明の一以上の実施形態において、ノードはコンピューターシステムに対応する。あるいは、ノードは関連する物理メモリーを有するプロセッサーに対応する。または、ノードは共有メモリー及び/又は共有資源を有するプロセッサーに対応する。また、本発明の実施形態を実行するためのソフトウェア指示を、非一時的コンピューター読取可能記憶媒体に記憶させてもよい。非一時的コンピューター読取可能記憶媒体としては、コンパクトディスク(CD)、ディスケット、テープ、その他の物理的コンピューター読取可能記憶装置がある。
【0067】
本発明の一以上の実施形態は、1ページ上に一以上のオブジェクトを配列する。具体的には、本発明の実施形態は、オブジェクト同士が重なり合わないように、自動的に、オブジェクトを1ページ上に配列する。また、オブジェクトは、固定オブジェクト又は可動オブジェクトに分類される。固定オブジェクトは、ページ上で(可能ならば)固定された状態を維持する。固定オブジェクトに関連付けられた可動オブジェクトは、固定オブジェクトとの関連性を維持したまま、重なり合い及び/又は群がりを回避するように移動させることができる。
【0068】
本発明の実施形態は、1ページ上のオブジェクトの重なり合い及び/又は群がりを回避するために、手動で当該ページ上のオブジェクトを移動させる必要がなく、ユーザーの時間を短縮できる。また、本発明の実施形態は、コンピューター処理時間を短縮することもできる。また、(例えば、個々の画素ではなく)CPAを用いることにより、各オブジェクトを処理し1ページ上に配列させるために使用するメモリー量が低減する。本発明の実施形態は、一の固定オブジェクトに関連付けられた複数の可動オブジェクトを処理することにより、コンピューターリソースを節約することもできる。例えば、オブジェクト又はオブジェクトのフレームの位置を、本発明の実施形態を用いて修正する必要がある場合、影響を受けるのは、ページ上に既に配置されている全てのオブジェクトではなく、可動オブジェクトが関連付けられている固定オブジェクトのみである。すなわち、本発明の実施形態は、一のオブジェクトを移動及び/又は修正する必要がある場合に、既に配置されている全てのオブジェクトに関する値を再度求める必要はない。
【0069】
限られた数の実施形態を用いて本発明を説明したが、本開示の恩恵に浴する当業者であれば、ここに開示された本発明の範囲から逸脱することなく、他の実施形態を考案できることを理解するであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ制限されるべきである。
【特許請求の範囲】
【請求項1】
図をレンダリングする方法であって、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程と、
前記図内に各々位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定する工程と、
コンピュータープロセッサーを用いて、前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定する工程と、
前記コンピュータープロセッサーを用いて、前記フットプリントに対応する前記粗画素を占有状態に設定する工程と、
前記コンピュータープロセッサーを用いて、前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択する工程と、
前記コンピュータープロセッサーを用いて、前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成する工程と、
前記コンピュータープロセッサーを用いて、前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定する工程と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定する工程と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングする工程と、
を備える方法。
【請求項2】
前記可動オブジェクトは、フォントサイズを有するテキストを備えるラベルであり、フットプリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項1に記載の方法。
【請求項3】
前記第1の固定オブジェクトはクリップアートであることを特徴とする請求項2に記載の方法。
【請求項4】
第1の係数で前記可動オブジェクトのフットプリントを拡大/縮小して前記第1のフレームを算出する工程と、
を更に備えることを特徴とする請求項2に記載の方法。
【請求項5】
前記第1の係数は第2の係数よりも大きく、当該第2の係数で前記可動オブジェクトのフットプリントを拡大/縮小して第3のフレームを算出する工程と、
前記可動オブジェクトを選択後、前記第1の位置に基づいて、前記可動オブジェクトの前記第3のフレームに対応する前記粗画素配列内の第3の粗画素群を特定する工程と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断する工程と、
を更に備える請求項4に記載の方法。
【請求項6】
前記可動オブジェクトの前記第1の位置と前記第2の位置は、前記複数の固定オブジェクトのうちの第1の固定オブジェクトに隣接していることを特徴とする請求項1に記載の方法。
【請求項7】
前記複数の固定オブジェクトのうち第3の位置を有する第2の固定オブジェクトを選択する工程と、
前記第3の位置に基づいて、前記第2の固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定する工程と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断する工程と、
前記第4の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記第2の固定オブジェクトの第4の位置を生成する工程と、
前記第4の位置に基づいて、前記第2の固定オブジェクトの前記フレームに対応する前記粗画素配列内の第5の粗画素群を特定する工程と、
前記可動オブジェクトの前記第5の粗画素群を前記占有状態に設定する工程と、
を更に備え、
前記第2の固定オブジェクトは、固定オブジェクト階層に基づいて、前記第1の固定オブジェクトの後に選択されることを特徴とする請求項1に記載の方法。
【請求項8】
前記ページは前記第2の固定オブジェクトを前記第3の位置に結び付ける印を備えることを特徴とする請求項7に記載の方法。
【請求項9】
図をレンダリングするシステムであって、
ハードウェアプロセッサーと、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列と、
可動オブジェクトの第1のフレームと第2のフレームを生成するように構成されたフレームモジュールと、
前記ハードウェアプロセッサー上で実行されるレイアウトエンジンと、
を備え、
前記レイアウトエンジンは、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定し、
前記フットプリントに対応する前記粗画素配列内の粗画素を占有状態に設定し、
前記可動オブジェクトの第1の位置に基づいて、前記第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定し、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断し、
前記可動オブジェクトと関連付けられた第2の位置に基づいて、前記可動オブジェクトの前記第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定し、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするように構成されていることを特徴とするシステム。
【請求項10】
前記レイアウトエンジンは、更に、
前記複数の固定オブジェクトのうち第3の位置を有する固定オブジェクトを選択し、
前記第3の位置に基づいて、前記固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定し、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断し、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記固定オブジェクトの第4の位置を生成し、
前記第4の位置に基づいて、前記固定オブジェクトの前記フレームに対応する前記粗画素配列内の第4の粗画素群を特定し、
前記第4の粗画素群を前記占有状態に設定するように構成されていることを特徴とする請求項9に記載のシステム。
【請求項11】
前記固定オブジェクトはクリップアートであることを特徴とする請求項10に記載のシステム。
【請求項12】
前記固定オブジェクトは散布図におけるマーカーであることを特徴とする請求項10に記載のシステム。
【請求項13】
前記可動オブジェクトは、フォントサイズを有する文字を備えるテキストであり、プリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項9に記載のシステム。
【請求項14】
固定オブジェクト階層を記憶する固定オブジェクトリストと、
可動オブジェクト階層を記憶する可動オブジェクトリストと、
を更に備える請求項9に記載のシステム。
【請求項15】
図をレンダリングするための指示を記憶する非一時的コンピューター読取可能記憶媒体であって、該指示は
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定するための指示と、
前記図内に位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定するための指示と、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定するための指示と、
前記フットプリントに対応する前記粗画素を占有状態に設定するための指示と、
前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択するための指示と、
前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成するための指示と、
前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内で第2の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定するための指示と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするための指示と、
を備える非一時的コンピューター読取可能記憶媒体。
【請求項16】
前記可動オブジェクトは、フォントサイズを有する文字を備えるラベルであり、フットプリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項16に記載の非一時的コンピューター読取可能記憶媒体。
【請求項17】
第1の係数で前記可動オブジェクトのフットプリントを拡大/縮小して前記第1のフレームを算出するための指示と、
を更に備える請求項16に記載の非一時的コンピューター読取可能記憶媒体。
【請求項18】
前記第1の係数は第2の係数よりも大きく、当該第2の係数で前記可動オブジェクトのフットプリントを拡大/縮小して第3のフレームを算出するための指示と、
前記可動オブジェクトを選択後、前記第1の位置に基づいて、前記可動オブジェクトの前記第3のフレームに対応する前記粗画素配列内の第3の粗画素群を特定するための指示と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断するための指示と、
を更に備える請求項17に記載の非一時的コンピューター読取可能記憶媒体。
【請求項19】
前記複数の固定オブジェクトのうち第3の位置を有する第2の固定オブジェクトを選択するための指示と、
前記第3の位置に基づいて、前記第2の固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定するための指示と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断するための指示と、
前記第4の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記第2の固定オブジェクトの第4の位置を生成するための指示と、
前記第4の位置に基づいて、前記第2の固定オブジェクトの前記フレームに対応する前記粗画素配列内の第5の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第5の粗画素群を前記占有状態に設定するための指示と、
を更に備え、
前記第2の固定オブジェクトは、固定オブジェクト階層に基づいて、前記第1の固定オブジェクトの後に選択されることを特徴とする請求項15に記載の非一時的コンピューター読取可能記憶媒体。
【請求項20】
前記ページは前記第2の固定オブジェクトを前記第3の位置に結び付ける印を備えることを特徴とする請求項19に記載の非一時的コンピューター読取可能記憶媒体。
【請求項1】
図をレンダリングする方法であって、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定する工程と、
前記図内に各々位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定する工程と、
コンピュータープロセッサーを用いて、前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定する工程と、
前記コンピュータープロセッサーを用いて、前記フットプリントに対応する前記粗画素を占有状態に設定する工程と、
前記コンピュータープロセッサーを用いて、前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択する工程と、
前記コンピュータープロセッサーを用いて、前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断する工程と、
前記コンピュータープロセッサーを用いて、前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成する工程と、
前記コンピュータープロセッサーを用いて、前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定する工程と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定する工程と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングする工程と、
を備える方法。
【請求項2】
前記可動オブジェクトは、フォントサイズを有するテキストを備えるラベルであり、フットプリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項1に記載の方法。
【請求項3】
前記第1の固定オブジェクトはクリップアートであることを特徴とする請求項2に記載の方法。
【請求項4】
第1の係数で前記可動オブジェクトのフットプリントを拡大/縮小して前記第1のフレームを算出する工程と、
を更に備えることを特徴とする請求項2に記載の方法。
【請求項5】
前記第1の係数は第2の係数よりも大きく、当該第2の係数で前記可動オブジェクトのフットプリントを拡大/縮小して第3のフレームを算出する工程と、
前記可動オブジェクトを選択後、前記第1の位置に基づいて、前記可動オブジェクトの前記第3のフレームに対応する前記粗画素配列内の第3の粗画素群を特定する工程と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断する工程と、
を更に備える請求項4に記載の方法。
【請求項6】
前記可動オブジェクトの前記第1の位置と前記第2の位置は、前記複数の固定オブジェクトのうちの第1の固定オブジェクトに隣接していることを特徴とする請求項1に記載の方法。
【請求項7】
前記複数の固定オブジェクトのうち第3の位置を有する第2の固定オブジェクトを選択する工程と、
前記第3の位置に基づいて、前記第2の固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定する工程と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断する工程と、
前記第4の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記第2の固定オブジェクトの第4の位置を生成する工程と、
前記第4の位置に基づいて、前記第2の固定オブジェクトの前記フレームに対応する前記粗画素配列内の第5の粗画素群を特定する工程と、
前記可動オブジェクトの前記第5の粗画素群を前記占有状態に設定する工程と、
を更に備え、
前記第2の固定オブジェクトは、固定オブジェクト階層に基づいて、前記第1の固定オブジェクトの後に選択されることを特徴とする請求項1に記載の方法。
【請求項8】
前記ページは前記第2の固定オブジェクトを前記第3の位置に結び付ける印を備えることを特徴とする請求項7に記載の方法。
【請求項9】
図をレンダリングするシステムであって、
ハードウェアプロセッサーと、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列と、
可動オブジェクトの第1のフレームと第2のフレームを生成するように構成されたフレームモジュールと、
前記ハードウェアプロセッサー上で実行されるレイアウトエンジンと、
を備え、
前記レイアウトエンジンは、
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定し、
前記フットプリントに対応する前記粗画素配列内の粗画素を占有状態に設定し、
前記可動オブジェクトの第1の位置に基づいて、前記第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定し、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断し、
前記可動オブジェクトと関連付けられた第2の位置に基づいて、前記可動オブジェクトの前記第2のフレームに対応する前記粗画素配列内の第2の粗画素群を特定し、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするように構成されていることを特徴とするシステム。
【請求項10】
前記レイアウトエンジンは、更に、
前記複数の固定オブジェクトのうち第3の位置を有する固定オブジェクトを選択し、
前記第3の位置に基づいて、前記固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定し、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断し、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記固定オブジェクトの第4の位置を生成し、
前記第4の位置に基づいて、前記固定オブジェクトの前記フレームに対応する前記粗画素配列内の第4の粗画素群を特定し、
前記第4の粗画素群を前記占有状態に設定するように構成されていることを特徴とする請求項9に記載のシステム。
【請求項11】
前記固定オブジェクトはクリップアートであることを特徴とする請求項10に記載のシステム。
【請求項12】
前記固定オブジェクトは散布図におけるマーカーであることを特徴とする請求項10に記載のシステム。
【請求項13】
前記可動オブジェクトは、フォントサイズを有する文字を備えるテキストであり、プリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項9に記載のシステム。
【請求項14】
固定オブジェクト階層を記憶する固定オブジェクトリストと、
可動オブジェクト階層を記憶する可動オブジェクトリストと、
を更に備える請求項9に記載のシステム。
【請求項15】
図をレンダリングするための指示を記憶する非一時的コンピューター読取可能記憶媒体であって、該指示は
前記図内に各々フットプリントを有する複数の固定オブジェクトを特定するための指示と、
前記図内に位置を有し、前記フットプリントと関連付けられた複数の可動オブジェクトを特定するための指示と、
前記図のページスペースを表す粗画素の二次元配列を有する粗画素配列内で、前記フットプリントに対応する粗画素を特定するための指示と、
前記フットプリントに対応する前記粗画素を占有状態に設定するための指示と、
前記複数の可動オブジェクトのうち第1の位置を有する可動オブジェクトを選択するための指示と、
前記第1の位置に基づいて、前記可動オブジェクトの第1のフレームに対応する前記粗画素配列内の第1の粗画素群を特定するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断するための指示と、
前記第1の粗画素群のうち少なくとも一の粗画素が前記占有状態であると判断された場合に前記可動オブジェクトの第2の位置を生成するための指示と、
前記第2の位置に基づいて、前記可動オブジェクトの第2のフレームに対応する前記粗画素配列内で第2の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第2の粗画素群を前記占有状態に設定するための指示と、
ページ上の前記第2の位置に前記可動オブジェクトを配置して、前記図をレンダリングするための指示と、
を備える非一時的コンピューター読取可能記憶媒体。
【請求項16】
前記可動オブジェクトは、フォントサイズを有する文字を備えるラベルであり、フットプリントを有し、
前記可動オブジェクトは、前記複数の固定オブジェクトのうちの第1の固定オブジェクトと関連付けられていることを特徴とする請求項16に記載の非一時的コンピューター読取可能記憶媒体。
【請求項17】
第1の係数で前記可動オブジェクトのフットプリントを拡大/縮小して前記第1のフレームを算出するための指示と、
を更に備える請求項16に記載の非一時的コンピューター読取可能記憶媒体。
【請求項18】
前記第1の係数は第2の係数よりも大きく、当該第2の係数で前記可動オブジェクトのフットプリントを拡大/縮小して第3のフレームを算出するための指示と、
前記可動オブジェクトを選択後、前記第1の位置に基づいて、前記可動オブジェクトの前記第3のフレームに対応する前記粗画素配列内の第3の粗画素群を特定するための指示と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断するための指示と、
を更に備える請求項17に記載の非一時的コンピューター読取可能記憶媒体。
【請求項19】
前記複数の固定オブジェクトのうち第3の位置を有する第2の固定オブジェクトを選択するための指示と、
前記第3の位置に基づいて、前記第2の固定オブジェクトのフレームに対応する前記粗画素配列内の第3の粗画素群を特定するための指示と、
前記第3の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断するための指示と、
前記第4の粗画素群のうち少なくとも一の粗画素が前記占有状態に設定されていると判断された場合に前記第2の固定オブジェクトの第4の位置を生成するための指示と、
前記第4の位置に基づいて、前記第2の固定オブジェクトの前記フレームに対応する前記粗画素配列内の第5の粗画素群を特定するための指示と、
前記可動オブジェクトの前記第5の粗画素群を前記占有状態に設定するための指示と、
を更に備え、
前記第2の固定オブジェクトは、固定オブジェクト階層に基づいて、前記第1の固定オブジェクトの後に選択されることを特徴とする請求項15に記載の非一時的コンピューター読取可能記憶媒体。
【請求項20】
前記ページは前記第2の固定オブジェクトを前記第3の位置に結び付ける印を備えることを特徴とする請求項19に記載の非一時的コンピューター読取可能記憶媒体。
【図1A】
【図1B】
【図1C】
【図1D】
【図2A】
【図2B】
【図2C】
【図3A】
【図3B】
【図3C】
【図3D】
【図3E】
【図3F】
【図3G】
【図3H】
【図3I】
【図3J】
【図4】
【図1B】
【図1C】
【図1D】
【図2A】
【図2B】
【図2C】
【図3A】
【図3B】
【図3C】
【図3D】
【図3E】
【図3F】
【図3G】
【図3H】
【図3I】
【図3J】
【図4】
【公開番号】特開2012−190456(P2012−190456A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−48675(P2012−48675)
【出願日】平成24年3月6日(2012.3.6)
【出願人】(507031918)コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド (157)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2012−48675(P2012−48675)
【出願日】平成24年3月6日(2012.3.6)
【出願人】(507031918)コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド (157)
【Fターム(参考)】
[ Back to top ]