(57)【要約】【課題】  従来の一般的なグループ化機能のロジックを大きく変更することなく、オブジェクト同士の前後関係を崩さないようにオブジェクトのグループ化を実施するための技術を提供すること。【解決手段】  オブジェクト情報が描画順に登録されているオブジェクトリストにおいてグループ化対象のオブジェクトのオブジェクト情報（第１のオブジェクト情報）に挟まれているオブジェクト情報（第２のオブジェクト情報）へのリンク情報で構成された複製オブジェクト情報と第１のオブジェクト情報とを描画順に並べたグループリストを作成する。第１のオブジェクト情報の最後の描画順でグループリストが参照されるように該グループリストをオブジェクトリストに登録し、該オブジェクトリストから第１のオブジェクト情報を削除する。そしてオブジェクトリストに従ってブジェクトを描画順に描画する。【選択図】  図９
2020123241.tif 000002
【特許請求の範囲】
【請求項１】
描画対象となるオブジェクトのオブジェクト情報が描画順に登録されているオブジェクトリストにおいて、グループ化対象のオブジェクトのオブジェクト情報を第１のオブジェクト情報、該第１のオブジェクト情報に挟まれているオブジェクト情報を第２のオブジェクト情報とし、該第２のオブジェクト情報へのリンク情報で構成された複製オブジェクト情報と前記第１のオブジェクト情報とを描画順に並べたリストをグループリストとして作成する作成手段と、
前記第１のオブジェクト情報の描画順のうち最後の描画順で前記グループリストが参照されるように、該グループリストを前記オブジェクトリストに登録し、該オブジェクトリストから前記第１のオブジェクト情報を削除することで前記オブジェクトリストを更新する更新手段と、
前記更新手段により更新されたオブジェクトリストに登録されているオブジェクト情報に従って、対応するオブジェクトを描画順に描画する描画手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記更新手段は、
前記グループリストの描画順が前記第１のオブジェクト情報のうち最前面の描画順と、前記第２のオブジェクト情報の描画順との間になるように登録する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
更に、
前記第２のオブジェクト情報に対応するオブジェクトの描画順を変更する操作がユーザにより行われた場合には、前記複製オブジェクト情報を削除する手段を備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
更に、
前記更新手段により更新されたオブジェクトリストに登録されている各オブジェクトが描画順に描画されたページの印刷データを生成して印刷装置に出力する出力手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の作成手段が、描画対象となるオブジェクトのオブジェクト情報が描画順に登録されているオブジェクトリストにおいて、グループ化対象のオブジェクトのオブジェクト情報を第１のオブジェクト情報、該第１のオブジェクト情報に挟まれているオブジェクト情報を第２のオブジェクト情報とし、該第２のオブジェクト情報へのリンク情報で構成された複製オブジェクト情報と前記第１のオブジェクト情報とを描画順に並べたリストをグループリストとして作成する作成工程と、
前記画像処理装置の更新手段が、前記第１のオブジェクト情報の描画順のうち最後の描画順で前記グループリストが参照されるように、該グループリストを前記オブジェクトリストに登録し、該オブジェクトリストから前記第１のオブジェクト情報を削除することで前記オブジェクトリストを更新する更新工程と、
前記画像処理装置の描画手段が、前記更新工程で更新されたオブジェクトリストに登録されているオブジェクト情報に従って、対応するオブジェクトを描画順に描画する描画工程と
を備えることを特徴とする画像処理方法。
【請求項６】
コンピュータを、請求項１乃至４のいずれか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトの描画技術に関するものである。
【背景技術】
【０００２】
複数のオブジェクトで構成されるレイアウトデータを編集する機能を有するアプリケーションソフトウェアをレイアウト編集アプリケーションと呼ぶ。一般的にレイアウト編集アプリケーションは、レイアウトデータに含まれるオブジェクトを管理するためのオブジェクトリストを有している。オブジェクトリストはひとつのオブジェクトを１要素として構成されるリストで、レイアウト編集アプリケーションはオブジェクトリストに従って順番にオブジェクトの描画処理を行うのが一般的である。これにより、オブジェクト同士の前後関係もオブジェクトリストの要素順に依存する。
【０００３】
レイアウト編集アプリケーションの中には、複数のオブジェクトをひとつのオブジェクトとして扱うためのグループ化機能を持つものも多い。グループ化機能を実現する手法のひとつとして、グループ化の対象となる複数のオブジェクト（グループ対象オブジェクト）をオブジェクトリストから抜き取り、その代わりにグループオブジェクトをオブジェクトリストに挿入する方法がある。これにより、レイアウト編集アプリケーションはオブジェクトリスト上で複数のオブジェクトをひとつのオブジェクトとして扱うことができる。オブジェクト描画処理においてグループオブジェクトを描画する際には、レイアウト編集アプリケーションは抜き出しておいたグループ対象オブジェクトを順番に描画する。
【０００４】
このグループ化機能を用いた場合、オブジェクトリストの要素順に従ってオブジェクトを描画する際に、グループオブジェクトを描画する順番になったタイミングでグループ対象オブジェクトをすべて描画することになるため、グループ対象オブジェクト同士の前後関係位置は必ず隣り合うことになる。そのため、あるグループ対象オブジェクトよりも前面かつ別のグループ対象オブジェクトよりも背面に描画したいオブジェクトが存在するレイアウトデータにおいて、オブジェクトをグループ化するとオブジェクト同士の前後関係が崩れてしまうという課題がある。
【０００５】
この課題を解決する技術として、特許文献１では、オブジェクトリストの各要素にグループ情報と出力順序情報を持たせることで、オブジェクトリストにグループオブジェクトを挿入することなく、複数のオブジェクトをひとつのように扱うことを可能とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０８-１２３９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
既存のレイアウト編集アプリケーションに対して特許文献１によるグループ化機能を適用するためには、オブジェクトリストの定義を変更するほか、オブジェクト描画順を決定する処理の変更や、ひとつのグループ対象オブジェクトの描画順序を変更した際に他のグループ対象オブジェクトの出力順序を連動して変化させる処理の追加など、プログラム変更をしなければならない処理が多い。プログラム変更量が多いほど製品開発や品質保証にかかる工数も増大するため、機能追加のためのコストが増大するという課題があった。
【０００８】
本発明では、従来の一般的なグループ化機能のロジックを大きく変更することなく、オブジェクト同士の前後関係を崩さないようにオブジェクトのグループ化を実施するための技術を提供する。
【課題を解決するための手段】
【０００９】
本発明の１つの様態は、描画対象となるオブジェクトのオブジェクト情報が描画順に登録されているオブジェクトリストにおいて、グループ化対象のオブジェクトのオブジェクト情報を第１のオブジェクト情報、該第１のオブジェクト情報に挟まれているオブジェクト情報を第２のオブジェクト情報とし、該第２のオブジェクト情報へのリンク情報で構成された複製オブジェクト情報と前記第１のオブジェクト情報とを描画順に並べたリストをグループリストとして作成する作成手段と、前記第１のオブジェクト情報の描画順のうち最後の描画順で前記グループリストが参照されるように、該グループリストを前記オブジェクトリストに登録し、該オブジェクトリストから前記第１のオブジェクト情報を削除することで前記オブジェクトリストを更新する更新手段と、前記更新手段により更新されたオブジェクトリストに登録されているオブジェクト情報に従って、対応するオブジェクトを描画順に描画する描画手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、従来の一般的なグループ化機能のロジックを大きく変更することなく、オブジェクト同士の前後関係を崩さないようにオブジェクトのグループ化を実施することができる。
【図面の簡単な説明】
【００１１】
【図１】オブジェクトリストの一例を示す図。
【図２】オブジェクトリストにオブジェクト情報が登録されているオブジェクトのうち幾つかのオブジェクトをグループ化する場合に画像処理装置Ａが行う処理のフローチャート。
【図３】ステップＳ２０１における処理の詳細を示すフローチャート。
【図４】グループ解除処理のフローチャート。
【図５】オブジェクトリストに登録されている各オブジェクトを描画する処理のフローチャート。
【図６】ユーザが操作部９０５を操作して任意のオブジェクトの前後関係（描画順序）を変更した場合における画像処理装置Ａの動作を示すフローチャート。
【図７】オブジェクトリストにオブジェクト情報が登録されているオブジェクトを従来の方法でグループ化してから該オブジェクトリストに基づいて各オブジェクトを描画するケースを説明する図。
【図８】オブジェクトリストにオブジェクト情報が登録されているオブジェクトを第１の実施形態に係る方法でグループ化してから該オブジェクトリストに基づいて各オブジェクトを描画するケースを説明する図。
【図９】画像処理装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。また実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【００１３】
［第１の実施形態］
先ず、本実施形態に係る画像処理装置のハードウェア構成例について、図９のブロック図を用いて説明する。本実施形態に係る画像処理装置には、ＰＣ（パーソナルコンピュータ）、タブレット型端末装置、スマートフォンなどのコンピュータ装置が適用可能である。
【００１４】
ＣＰＵ９０１は、ＲＡＭ９０２やＲＯＭ９０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ９０１は、画像処理装置Ａ全体の動作制御を行うと共に、画像処理装置Ａが行うものとして後述する各処理を実行若しくは制御する。
【００１５】
ＲＡＭ９０２は、ＲＯＭ９０３や外部記憶装置９０６からロードされたコンピュータプログラムやデータ、通信ＩＦ（インターフェース）部９０４を介してプリンタＢから受信した各種のデータ、を格納するためのエリアを有する。さらにＲＡＭ９０２は、ＣＰＵ９０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ９０２は、各種のエリアを適宜提供することができる。ＲＯＭ９０３には、画像処理装置Ａの設定データや起動プログラムなどが格納されている。
【００１６】
通信ＩＦ部９０４は、プリンタＢとの間のデータ通信を行うためのインターフェースとして機能するものであり、プリンタＢとの間のデータ通信は、この通信ＩＦ部９０４を介して行われる。プリンタＢは、紙などの記録媒体上に画像や文字を記録する印刷機能を有する装置の一例であり、よって、プリンタＢの代わりに、例えば、複合機（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を用いても良い。
【００１７】
操作部９０５は、キーボード、マウス、タッチパネルなどのユーザインターフェースであり、ユーザが操作することで各種の指示をＣＰＵ９０１に対して入力することができる。
【００１８】
外部記憶装置９０６は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置９０６には、ＯＳ（オペレーティングシステム）、画像処理装置Ａが行うものとして後述する各処理をＣＰＵ９０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置９０６に保存されているコンピュータプログラムには、上記のレイアウト編集アプリケーションのコンピュータプログラム、プリンタＢのドライバソフトウェア、等が含まれている。また、外部記憶装置９０６に保存されているデータには、以下の説明において画像処理装置Ａが既知の情報として取り扱う情報も含まれている。
【００１９】
外部記憶装置９０６に保存されているコンピュータプログラムやデータは、ＣＰＵ９０１による制御に従って適宜ＲＡＭ９０２にロードされ、ＣＰＵ９０１による処理対象となる。
【００２０】
表示部９０７は、液晶画面などの表示画面を有し、ＣＰＵ９０１による処理結果を画像や文字などでもって表示することができる。なお、表示部９０７は、タッチパネル画面を有していても良く、その場合、ＣＰＵ９０１による処理結果を画像や文字などでもって表示することができるだけでなく、ユーザからの各種の操作入力（タッチ操作、ドラッグ操作など）を受け付けることができる。
【００２１】
ＣＰＵ９０１、ＲＡＭ９０２、ＲＯＭ９０３、通信ＩＦ部９０４、操作部９０５、外部記憶装置９０６、表示部９０７は何れもバス９０８に接続されている。なお、図９に示した構成は画像処理装置Ａに適用可能な構成の一例であり、画像処理装置Ａに適用可能な構成は図９に示した構成に限らない。
【００２２】
次に、画像処理装置Ａが１つのページ上に画像を描画（配置）する際に用いるオブジェクトリストについて説明する。オブジェクトリストの一例を図１に示す。オブジェクトリストの各行には、ページ上に描画するオブジェクトに係る情報（オブジェクト情報）が登録されており、より手前に描画する（描画順においてより後に描画する）オブジェクトのオブジェクト情報がより上側の行に登録されている。つまり、最前面に位置するオブジェクトのオブジェクト情報が最も上の行に登録されており、最背面に位置するオブジェクトのオブジェクト情報が最も下の行に登録されている。
【００２３】
列１０１は、各オブジェクトに対するインデックス（Ｉｎｄｅｘ）が登録されている。列１０２には、各オブジェクトの名称（Ｎａｍｅ）が登録されている。列１０３には、各オブジェクトのファイル名（Ｉｍａｇｅ）が登録されている。列１０４には、各オブジェクトの幅（Ｗｉｄｔｈ）が登録されている。列１０５には、各オブジェクトの高さ（Ｈｅｉｇｈｔ）が登録されている。列１０６には、各オブジェクトのページ上におけるＸ座標位置（Ｘ）が登録されている。列１０７には、各オブジェクトのページ上におけるＹ座標位置（Ｙ）が登録されている。
【００２４】
例えば図１の例では、最前面に位置するオブジェクトのオブジェクト情報は、｛Ｉｎｄｅｘ＝１、Ｎａｍｅ＝Ｏｂｊｅｃｔ０１、Ｉｍａｇｅ＝Ａ．ｂｍｐ、Ｗｉｄｔｈ＝１０、Ｈｅｉｇｈｔ＝１５、Ｘ＝０、Ｙ＝０｝である。
【００２５】
なお、図１では後述する理由により、Ｉｎｄｅｘ＝４に対応するオブジェクトを複製した複製オブジェクトのオブジェクト情報を作成して行１０８に挿入している。なお、Ｉｎｄｅｘは、オブジェクトリストへのオブジェクト情報の追加や削除がある度に１から順にふり直すものとする。複製オブジェクトについては後述する。
【００２６】
また以下の説明において単に「リストにオブジェクトを登録する」と説明した場合は、「リストに該オブジェクトのオブジェクト情報を登録する」ことを意味しており、「リストからオブジェクトを削除する」と説明した場合は、「リストから該オブジェクトのオブジェクト情報を削除する」ことを意味しているものとする。
【００２７】
本実施形態では、このようなオブジェクトリストは予め作成されて外部記憶装置９０６に保存されているものとする。そして、ページ上にオブジェクト描画する際には、オブジェクトリストをＲＡＭ９０２にロードし、該オブジェクトリストの各行に登録されているオブジェクト情報を描画順に読み出し、該読み出したオブジェクト情報に従ってページ上にオブジェクトを描画する。
【００２８】
次に、オブジェクトリストにオブジェクト情報が登録されているオブジェクトのうち幾つかのオブジェクトをグループ化する場合に画像処理装置Ａが行う処理について、図２のフローチャートに従って説明する。なお、図２のフローチャートに従った処理を開始する段階では、オブジェクトリストはＲＡＭ９０２にロードされており、該オブジェクトリストにオブジェクト情報が登録されているオブジェクトのうちグループ化の対象となるオブジェクト（グループ化対象オブジェクト）は指定されているものとする。
【００２９】
ステップＳ２０１では、ＣＰＵ９０１は、オブジェクトリストにオブジェクト情報が登録されているオブジェクトのうち複製する対象となるオブジェクト（複製対象オブジェクト）を特定する。ステップＳ２０１における処理の詳細について、図３のフローチャートに従って説明する。
【００３０】
ステップＳ３０１では、ＣＰＵ９０１は、最前面のグループ化対象オブジェクトのオブジェクト情報を特定する。つまりＣＰＵ９０１は、オブジェクトリストに登録されているグループ化対象オブジェクトのオブジェクト情報のうち最も上の行に登録されている（Ｉｎｄｅｘが最も小さい）オブジェクト情報を特定する。
【００３１】
ステップＳ３０２では、ＣＰＵ９０１は、最背面のグループ化対象オブジェクトのオブジェクト情報を特定する。つまりＣＰＵ９０１は、オブジェクトリストに登録されているグループ化対象オブジェクトのオブジェクト情報のうち最も下の行に登録されている（Ｉｎｄｅｘが最も大きい）オブジェクト情報を特定する。
【００３２】
ステップＳ３０３では、ＣＰＵ９０１は、ステップＳ３０１で特定したオブジェクト情報を基準オブジェクト情報とする。そしてステップＳ３０４では、ＣＰＵ９０１は、基準オブジェクト情報よりも１つ下の行に登録されているオブジェクト情報（基準オブジェクト情報よりも１つ背面のオブジェクト情報）を選択する。
【００３３】
ステップＳ３０５では、ＣＰＵ９０１は、ステップＳ３０４で選択したオブジェクト情報がグループ化対象オブジェクトのオブジェクト情報であるか否かを判断する。この判断の結果、ステップＳ３０４で選択したオブジェクト情報がグループ化対象オブジェクトのオブジェクト情報であれば、処理はステップＳ３０７に進む。一方、ステップＳ３０４で選択したオブジェクト情報がグループ化対象オブジェクトのオブジェクト情報ではない場合には、処理はステップＳ３０６に進む。
【００３４】
ステップＳ３０６では、ＣＰＵ９０１は、ステップＳ３０４で選択したオブジェクト情報を、複製対象オブジェクトのオブジェクト情報を登録するためのリスト（複製対象オブジェクトリスト）に登録する。つまり、オブジェクトリストにおいてグループ化対象オブジェクトのオブジェクト情報に挟まれているオブジェクト情報を、複製対象オブジェクトのオブジェクト情報とする。
【００３５】
ステップＳ３０７では、ＣＰＵ９０１は、ステップＳ３０４で選択したオブジェクト情報が、ステップＳ３０２で特定した「最背面のグループ化対象オブジェクトのオブジェクト情報」であるか否かを判断する。
【００３６】
この判断の結果、ステップＳ３０４で選択したオブジェクト情報が、ステップＳ３０２で特定した「最背面のグループ化対象オブジェクトのオブジェクト情報」である場合には、処理は図２のステップＳ２０２に進む。一方、ステップＳ３０４で選択したオブジェクト情報が、ステップＳ３０２で特定した「最背面のグループ化対象オブジェクトのオブジェクト情報」ではない場合には、ステップＳ３０４で選択したオブジェクト情報を基準オブジェクト情報とし、処理はステップＳ３０４に進む。
【００３７】
図２に戻って、次にステップＳ２０２では、ＣＰＵ９０１は、複製対象オブジェクトリストに登録されているオブジェクト情報の複製（複製オブジェクトのオブジェクト情報）を作成し、該作成した複製を、オブジェクトリストにおいて複製元のオブジェクト情報の直上の行に挿入する。
【００３８】
図１の例では、Ｉｎｄｅｘ＝４の行に登録されているオブジェクト情報が複製対象オブジェクトのオブジェクト情報であるとしている。このとき、Ｉｎｄｅｘ＝４の行に登録されているオブジェクト情報の複製としては次のようなものが作成される。
【００３９】
複製のＮａｍｅは、複製元のＮａｍｅ＝Ｏｂｊｅｃｔ０３から規定の規則で作成した「ｒｅｐＯｂｊ０３」となる。
【００４０】
複製のＩｍａｇｅは、複製元のＩｍａｇｅへのリンク「Ｏｂｊｅｃｔ  ０３−＞Ｉｍａｇｅ」となる。つまり、複製元のＩｍａｇｅが変更されると、複製元のＩｍａｇｅへのリンクにより、この変更は複製のＩｍａｇｅにも反映される。
【００４１】
複製のＷｉｄｔｈは、複製元のＷｉｄｔｈへのリンク「Ｏｂｊｅｃｔ  ０３−＞Ｗｉｄｔｈ」となる。つまり、複製元のＷｉｄｔｈが変更されると、複製元のＷｉｄｔｈへのリンクにより、この変更は複製のＷｉｄｔｈにも反映される。
【００４２】
複製のＨｅｉｇｈｔは、複製元のＨｅｉｇｈｔへのリンク「Ｏｂｊｅｃｔ  ０３−＞Ｈｅｉｇｈｔ」となる。つまり、複製元のＨｅｉｇｈｔが変更されると、複製元のＨｅｉｇｈｔへのリンクにより、この変更は複製のＨｅｉｇｈｔにも反映される。
【００４３】
複製のＸは、複製元のＸへのリンク「Ｏｂｊｅｃｔ  ０３−＞Ｘ」となる。つまり、複製元のＸが変更されると、複製元のＸへのリンクにより、この変更は複製のＸにも反映される。
【００４４】
複製のＹは、複製元のＹへのリンク「Ｏｂｊｅｃｔ  ０３−＞Ｙ」となる。つまり、複製元のＹが変更されると、複製元のＹへのリンクにより、この変更は複製のＹにも反映される。
【００４５】
つまり、複製オブジェクトのオブジェクト情報は、複製元のオブジェクト情報へのリンク情報で構成されるので、複製オブジェクトを描画することはすなわち複製元オブジェクトを描画することと等しい。
【００４６】
そして図１の例では、Ｉｎｄｅｘ＝４の行に登録されているオブジェクト情報の上記の複製は、Ｉｎｄｅｘ＝４の行の直上の行１０８に登録される。
【００４７】
次に、ステップＳ２０３では、ＣＰＵ９０１は、オブジェクトリストにおいて最前面のグループ化対象オブジェクトのオブジェクト情報の行から、オブジェクトリストにおいて最背面のグループ化対象オブジェクトのオブジェクト情報の行までの各行のオブジェクト情報のうち、グループ化対象オブジェクトのオブジェクト情報と複製オブジェクトのオブジェクト情報を描画順（Ｉｎｄｅｘ順）に並べたリスト（グループリスト）を作成する。
【００４８】
ステップＳ２０４では、ＣＰＵ９０１は、最前面のグループ化対象オブジェクトのオブジェクト情報の描画順（グループ化対象オブジェクトの描画順のうち最後の描画順）でグループリストが参照されるようにするべく、ステップＳ３０１でオブジェクト情報を特定した行に、ステップＳ２０３で作成したグループリストへのリンク情報（例えば、グループリストのアドレス情報）」を登録することで、オブジェクトリストを更新する。例えば、ステップＳ３０１でオブジェクト情報を特定した行におけるＮａｍｅに、ステップＳ２０３で作成したグループリストへのリンク情報を登録し、該行におけるＩｍａｇｅ、Ｗｉｄｔｈ、Ｈｅｉｇｈｔ、Ｘ、Ｙには規定値（ＮＵＬＬなど）を登録する。
【００４９】
ステップＳ２０５では、ＣＰＵ９０１は、ステップＳ２０４において更新したオブジェクトリストから、グループ化対象オブジェクトのオブジェクト情報と、複製オブジェクトのオブジェクト情報と、を削除することで、オブジェクトリストを更新する。
【００５０】
ここで、オブジェクトリストにオブジェクト情報が登録されているオブジェクトを従来の方法でグループ化してから、該オブジェクトリストに基づいて各オブジェクトを描画するケースについて、図７を用いて説明する。オブジェクトリスト７０２は、オブジェクトのグループ化前の状態におけるオブジェクトリストである。図７では説明上、オブジェクトリストを簡略化して示している。オブジェクトリスト７０２の各行の右側には、該行に対応するオブジェクトを表示している。図７は、例えば、ページを作成してプリンタＢに印刷させるためのアプリケーションソフトウェアのＧＵＩ（グラフィカルユーザインターフェース）の表示例を示す。
【００５１】
オブジェクトリスト７０２の１行目には最前面のオブジェクト（Ｏｂｊｅｃｔ  ０１）が登録されており、２行目には最前面から２番目のオブジェクト（Ｏｂｊｅｃｔ  ０２）が登録されており、…、７行目には最前面から７番目のオブジェクト（Ｏｂｊｅｃｔ  ０７）が登録されており、８行目には最前面から８番目（最背面）のオブジェクト（Ｏｂｊｅｃｔ  ０８）が登録されている。ページ７０１（例えば名刺）は、オブジェクトリスト７０２に登録されている各オブジェクトを描画順に従って描画したページである。
【００５２】
ここで、オブジェクトリスト７０２においてＯｂｊｅｃｔ  ０１、０２、０４、０５、０６、０７、がグループ化対象オブジェクトとして指定されているとする。このとき、従来の方法では、オブジェクトリスト７０２から抜き出したグループ化対象オブジェクトを登録したグループリスト（Ｇｒｏｕｐ  ０１）７０５を作成し、オブジェクトリスト７０２において最前面のグループ化対象オブジェクトであるＯｂｊｅｃｔ  ０１の行にグループリスト７０５を挿入した後、該オブジェクトリスト７０２からグループ化対象オブジェクトを削除したものが、オブジェクトリスト７０４として作成される。
【００５３】
このオブジェクトリスト７０４に登録されている各オブジェクトを、該オブジェクトリスト７０４が規定する描画順で描画したページがページ７０３である。ページ７０３では、グループ化対象オブジェクトではないオブジェクト（非グループ化対象オブジェクト）であるＯｂｊｅｃｔ  ０３およびＯｂｊｅｃｔ  ０８が描画された後、グループ化対象オブジェクトであるＯｂｊｅｃｔ  ０１、０２、０４、０５、０６、０７が描画される。
【００５４】
オブジェクトリスト７０２ではＯｂｊｅｃｔ  ０３よりも背面に位置していたＯｂｊｅｃｔ  ０４、０５、０６，０７が、オブジェクトリスト７０４ではＧｒｏｕｐ  ０１としてＯｂｊｅｃｔ  ０３よりも前面に位置するため、ページ７０１とページ７０３との間で描画結果が異なってしまう。
【００５５】
次に、オブジェクトリストにオブジェクト情報が登録されているオブジェクトを本実施形態に係る方法でグループ化してから、該オブジェクトリストに基づいて各オブジェクトを描画するケースについて、図８を用いて説明する。図８では説明上、オブジェクトリストを簡略化して示している。オブジェクトリスト８０２の各行の右側には、該行に対応するオブジェクトを表示している。図８は、例えば、ページを作成してプリンタＢに印刷させるためのアプリケーションソフトウェアのＧＵＩの表示例を示す。
【００５６】
オブジェクトリスト８０２は、Ｏｂｊｅｃｔ  ０１、０２、０４、０５、０６、０７がグループ化対象オブジェクトとして指定されているオブジェクトリスト７０２を図２のフローチャートに従った処理の対象としたときにステップＳ２０２で得られるオブジェクトリストである。オブジェクトリスト８０２では、複製対象オブジェクトがＯｂｊｅｃｔ  ０３であるから、複製オブジェクトｒｅｐＯｂｊ  ０３がオブジェクトリスト８０２に挿入されている。複製オブジェクトのオブジェクト情報は複製元のオブジェクトのオブジェクト情報へのリンクであるから、複製オブジェクトは複製元と重なって描画されていることになり（複製オブジェクトは描画対象から外しても良い）、ページ８０１に示す如く、オブジェクトリスト８０２に従ってオブジェクトをページ上に描画しても、その結果は上記のページ７０１と変わらない。
【００５７】
ここで、本実施形態では、オブジェクトリスト８０２におけるグループ化対象オブジェクトだけでなく複製オブジェクトもグループリストに登録する。オブジェクトリスト８０２におけるグループ化対象オブジェクトＯｂｊｅｃｔ  ０１、０２、０４、０５、０６、０７および複製オブジェクトｒｅｐＯｂｊ  ０３を登録したグループリストがグループリスト８０５である。そして、オブジェクトリスト８０２において最前面のグループ化対象オブジェクトであるＯｂｊｅｃｔ  ０１の行にグループリスト８０５を挿入した後、該オブジェクトリスト８０２からグループ化対象オブジェクトおよび複製オブジェクトを削除したものが、オブジェクトリスト８０４として作成される。なお、グループリスト８０５は、最前面のグループ化対象オブジェクトであるＯｂｊｅｃｔ  ０１の行から非グループ化対象オブジェクトであるＯｂｊｅｃｔ  ０３の上の行のいずれかの行に挿入すれば良い。つまり、グループ化対象オブジェクトの描画順のうち最後の描画順でグループリストが参照されるように、グループ化対象オブジェクトの最前面の描画順と非グループ化対象オブジェクトの描画順の間にグループリスト８０５を登録する。
【００５８】
このオブジェクトリスト８０４に登録されている各オブジェクトを、該オブジェクトリスト８０４が規定する描画順で描画したページがページ８０３である。ページ８０３では、グループ化対象オブジェクトではないオブジェクト（非グループ化対象オブジェクト）であるＯｂｊｅｃｔ  ０３およびＯｂｊｅｃｔ  ０８が描画された後、グループ化対象オブジェクトであるＯｂｊｅｃｔ  ０１、０２、０４、０５、０６、０７および複製オブジェクトｒｅｐＯｂｊ  ０３が描画される。
【００５９】
オブジェクトリスト８０２では、Ｏｂｊｅｃｔ  ０４、０５、０６，０７よりも前面にｒｅｐＯｂｊ  ０３（つまりＯｂｊｅｃｔ  ０３）が描画されるため、ページ８０１とページ８０３との間で描画結果は同じになる。
【００６０】
次に、図２のフローチャートに従った処理によって作成されたオブジェクトリストにおいてグループ化されているオブジェクトに対するグループ解除処理について、図４のフローチャートに従って説明する。
【００６１】
ステップＳ４０１では、ＣＰＵ９０１は、グループリストにおいて最も上の行に登録されているオブジェクト情報を選択する。
【００６２】
ステップＳ４０２では、ＣＰＵ９０１は、ステップＳ４０１において選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報であるか否かを判断する（幅、高さなどがリンク情報であれば複製オブジェクトのオブジェクト情報）。この判断の結果、ステップＳ４０１において選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報であれば、処理はステップＳ４０３に進む。一方、ステップＳ４０１において選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報ではない場合には、処理はステップＳ４０６に進む。
【００６３】
ステップＳ４０３では、ＣＰＵ９０１は、ステップＳ４０１で選択したオブジェクト情報がグループリストにおいて上からＮ（Ｎは１以上の整数）行目であるとすると、オブジェクトリストの上からＮ行目に、ステップＳ４０１で選択したオブジェクト情報の複製もととなるオブジェクト情報を移動させる。図８の例では、ｒｅｐＯｂｊ  ０３がグループリストにおいて上から３行目であるから、ｒｅｐＯｂｊ  ０３の複製元であるＯｂｊｅｃｔ  ０３をオブジェクトリストにおいて上から３行目に移動させる。
【００６４】
一方、ステップＳ４０６では、ＣＰＵ９０１は、ステップＳ４０１で選択したオブジェクト情報がグループリストにおいて上からＮ（Ｎは１以上の整数）行目であるとすると、オブジェクトリストの上からＮ行目に、ステップＳ４０１で選択したオブジェクト情報を移動させる。
【００６５】
ステップＳ４０４では、ＣＰＵ９０１は、ステップＳ４０１で選択したオブジェクト情報が、グループリストにおいて後端のオブジェクト情報であるのか否かを判断する。この判断の結果、ステップＳ４０１で選択したオブジェクト情報が、グループリストにおいて後端のオブジェクト情報である場合には、処理はステップＳ４０７に進む。一方、ステップＳ４０１で選択したオブジェクト情報が、グループリストにおいて後端のオブジェクト情報ではない場合には、処理はステップＳ４０５に進む。
【００６６】
ステップＳ４０５では、ＣＰＵ９０１は、グループリストにおいて最近選択した行の１つ下の行のオブジェクト情報を選択する。
【００６７】
一方、ステップＳ４０７では、ＣＰＵ９０１は、グループリストを削除する。
【００６８】
次に、オブジェクトリストに登録されている各オブジェクトを描画する処理について、図５のフローチャートに従って説明する。オブジェクトリストに登録されている各オブジェクトを描画する処理は、例えば、ＣＰＵ９０１がレイアウト編集アプリケーションのコンピュータプログラムを実行することで行われる。
【００６９】
ステップＳ５０１では、ＣＰＵ９０１は、オブジェクトリストにおいて最も上の行に登録されている情報を選択する。ステップＳ５０２では、ＣＰＵ９０１は、ステップＳ５０１において選択した情報が、グループリストへのリンク情報であるか否かを判断する。
【００７０】
この判断の結果、ステップＳ５０１において選択した情報が、グループリストへのリンク情報である場合は、処理はステップＳ５０６に進む。一方、ステップＳ５０１において選択した情報が、グループリストへのリンク情報ではない（ステップＳ５０１において選択した情報がオブジェクト情報である）場合には、処理はステップＳ５０３に進む。
【００７１】
ステップＳ５０３では、ＣＰＵ９０１は、ステップＳ５０１において選択したオブジェクト情報に従って、表示部９０７に表示されているページ上にオブジェクトを描画する。例えば、ステップＳ５０１で選択したオブジェクト情報が規定するＩｍａｇｅ、Ｗｉｄｔｈ、Ｈｅｉｇｈｔ、Ｘ、Ｙがそれぞれ、Ａ．ｂｍｐ、ｗ１、ｈ１、ｘ１、ｙ１であるとすると、ページ上の位置（ｘ１，ｙ１）に幅ｗ１，高さｈ１でＡ．ｂｍｐのオブジェクトを描画する。
【００７２】
一方、ステップＳ５０６では、ＣＰＵ９０１は、グループリストにおいて最も上の行に登録されているオブジェクト情報を選択する。
【００７３】
そしてステップＳ５０７では、ＣＰＵ９０１は、グループリストから最近選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報であるか否かを判断する。この判断の結果、グループリストから最近選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報である場合には、処理はステップＳ５１１に進む。一方、グループリストから最近選択したオブジェクト情報が、複製オブジェクトのオブジェクト情報ではない場合には、処理はステップＳ５０８に進む。
【００７４】
ステップＳ５０８では、ＣＰＵ９０１は、上記のステップＳ５０３と同様、グループリストから最近選択したオブジェクト情報に従って、表示部９０７に表示されているページ上に、オブジェクトを描画する。
【００７５】
一方、ステップＳ５１１では、ＣＰＵ９０１は、グループリストから最近選択したオブジェクト情報はリンク情報であるので、このリンク情報が指し示すオブジェクト情報（複製元のオブジェクトのオブジェクト情報）に従って、表示部９０７に表示されているページ上にオブジェクトを描画する。
【００７６】
ステップＳ５０９では、ＣＰＵ９０１は、グループリストにおける全てのオブジェクト情報を選択したか否かを判断する。図８の例では、グループリスト８０５に登録されている全てのオブジェクト情報を選択したか否かを判断する。
【００７７】
この判断の結果、グループリストにおける全てのオブジェクト情報を選択した場合には、処理はステップＳ５０４に進む。一方、グループリストにおいて未だ選択していないオブジェクト情報が残っている場合には、処理はステップＳ５１０に進む。
【００７８】
ステップＳ５１０では、ＣＰＵ９０１は、グループリストから最近選択したオブジェクト情報の１つ下の行に登録されているオブジェクト情報を選択する。そして処理はステップＳ５０７に進む。
【００７９】
ステップＳ５０４では、ＣＰＵ９０１は、オブジェクトリストに登録されている全てのオブジェクト情報を選択したか否かを判断する。この判断の結果、オブジェクトリストに登録されている全てのオブジェクト情報を選択した場合には、図５のフローチャートに従った処理は終了する。一方、オブジェクトリストにおいて未だ選択していないオブジェクト情報が残っている場合には、処理はステップＳ５０５に進む。
【００８０】
ステップＳ５０５では、ＣＰＵ９０１は、オブジェクトリストから最近選択したオブジェクト情報の１つ下の行に登録されている情報を選択する。そして処理はステップＳ５０２に進む。
【００８１】
次に、ユーザが操作部９０５を操作して任意のオブジェクトの前後関係（描画順序）を変更した場合における画像処理装置Ａの動作について、図６のフローチャートに従って説明する。
【００８２】
ステップＳ６０１では、ＣＰＵ９０１は、ユーザが操作部９０５を操作して選択した「前後関係（描画順序）を変更する対象となるオブジェクト」を特定する。
【００８３】
ステップＳ６０２では、ＣＰＵ９０１は、ユーザが操作部９０５を操作して指定した「前後関係の変更内容」（より前面のオブジェクトとするのかより背面のオブジェクトとするのか等）を取得する。
【００８４】
ステップＳ６０３では、ＣＰＵ９０１は、ステップＳ６０２で取得した変更内容が示す「前後関係の変更後のＩｎｄｅｘ」を取得する。
【００８５】
ステップＳ６０４では、ＣＰＵ９０１は、ステップＳ６０１で特定したオブジェクトの複製オブジェクトのオブジェクト情報がグループリストに登録されているか否か（ステップＳ６０１で特定したオブジェクトのオブジェクト情報が、複製オブジェクトのオブジェクト情報から参照される対象となるオブジェクト情報であるのか否か）を判断する。
【００８６】
この判断の結果、ステップＳ６０１で特定したオブジェクトの複製オブジェクトのオブジェクト情報がグループリストに登録されている場合には、処理はステップＳ６０５に進む。一方、ステップＳ６０１で特定したオブジェクトの複製オブジェクトのオブジェクト情報がグループリストに登録されていない場合には、処理はステップＳ６０６に進む。
【００８７】
ステップＳ６０５では、ＣＰＵ９０１は、グループリストに登録されている全ての複製オブジェクトのオブジェクト情報を該グループリストから削除することで、該グループリストを更新する。
【００８８】
ステップＳ６０６では、ＣＰＵ９０１は、ステップＳ６０３で取得したＩｎｄｅｘが登録されている行の１つ下の行に登録されているオブジェクト情報へのリンク情報であるオブジェクト情報がグループリストに登録されているか否かを判断する。
【００８９】
この判断の結果、ステップＳ６０３で取得したＩｎｄｅｘが登録されている行の１つ下の行に登録されているオブジェクト情報へのリンク情報であるオブジェクト情報がグループリストに登録されている場合には、処理はステップＳ６０５に進む。
【００９０】
一方、ステップＳ６０３で取得したＩｎｄｅｘが登録されている行の１つ下の行に登録されているオブジェクト情報へのリンク情報であるオブジェクト情報がグループリストに登録されていない場合には、図６のフローチャートに従った処理は終了する。
【００９１】
このように、本実施形態によれば、従来の一般的なグループ化機能のロジックを大きく変更することなく、オブジェクト同士の前後関係（描画順序）を崩さないグループ化を実施することができる。
【００９２】
つまり、本実施形態に係る画像処理装置Ａは、描画対象となるオブジェクトのオブジェクト情報が描画順に登録されているオブジェクトリストにおいて、グループ化対象のオブジェクトのオブジェクト情報を第１のオブジェクト情報、該第１のオブジェクト情報に挟まれているオブジェクト情報を第２のオブジェクト情報とし、該第２のオブジェクト情報へのリンク情報で構成された複製オブジェクト情報と該第１のオブジェクト情報とを描画順に並べたリストをグループリストとして作成する。そして画像処理装置Ａは、第１のオブジェクト情報の描画順のうち最後の描画順でグループリストが参照されるように、該グループリストをオブジェクトリストに登録し、該オブジェクトリストから第１のオブジェクト情報を削除することで該オブジェクトリストを更新する。該第２のオブジェクト情報へのリンク情報で構成された複製オブジェクト情報を作成することは、一般的な複製技術で作成したオブジェクト情報をリンク情報に置き換えるだけなので、画像処理装置Ａは、従来の一般的なグループ化機能のロジックを大きく変更することなく、オブジェクト同士の前後関係（描画順序）を崩さないグループ化を実施することができる。そしてこのようなオブジェクトリストに従ってオブジェクトを描画する際には、画像処理装置Ａは、該更新されたオブジェクトリストに登録されているオブジェクト情報に従って、対応するオブジェクトを描画順に描画する。
【００９３】
［第２の実施形態］
上記のステップＳ２０４では、ＣＰＵ９０１は、ステップＳ３０１でオブジェクト情報を特定した行に、ステップＳ２０３で作成したグループリストへのリンク情報（例えば、グループリストのアドレス情報）」を登録するようにしたが、ステップＳ３０１でオブジェクト情報を特定した行に、ステップＳ２０３で作成したグループリストそのものを登録するようにしても良い。
【００９４】
また、第１の実施形態では、表示部９０７に表示されているページ上にオブジェクトを描画するものとしたが、ＲＡＭ９０２などのメモリ上のページ上にオブジェクトを描画し、全てのオブジェクトが描画されたページのデータから印刷データを生成してプリンタＢに送信するようにしても良い。つまり、オブジェクトが描画されたページのデータ若しくは該ページのデータに基づいて生成されるデータの出力先については特定の出力先に限らない。
【００９５】
［第３の実施形態］
以上説明した各種のリストの構成、具体的な数値は一例であり、以上説明した各実施形態は、上記の説明に限定することを意図したものではない。また、以上説明した各実施形態の一部若しくは全部は適宜組み合わせて使用しても構わないし、選択的に使用しても構わない。
【００９６】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【００９７】
９０１：ＣＰＵ  ９０２：ＲＡＭ  ９０３：ＲＯＭ  ９０４：通信ＩＦ部  ９０５：操作部  ９０６：外部記憶装置  ９０７：表示部  ９０８：バス
【図１】
2020123241.tif 000003
【図２】
2020123241.tif 000004
【図３】
2020123241.tif 000005
【図４】
2020123241.tif 000006
【図５】
2020123241.tif 000007
【図６】
2020123241.tif 000008
【図７】
2020123241.tif 000009
【図８】
2020123241.tif 000010
【図９】
2020123241.tif 000011