(57)【特許請求の範囲】
【請求項１】
ベクタ画像を記述した構造化文書を処理する情報処理装置であって、
前記構造化文書を解析して得られた前記ベクタ画像を表示部に表示させる表示手段と、
前記表示部においてユーザにより指定された領域を検出する検出手段と、
前記ベクタ画像に含まれる文字オブジェクトの一部が前記指定された領域に含まれるか否かを判定する判定手段と、
前記判定手段によって前記指定された領域に含まれると判定された前記文字オブジェクトと前記指定された領域の外縁との交差点の座標を、前記文字オブジェクトの種類および前記文字オブジェクトの前記ベクタ画像の座標に基づいて決定する決定手段と、
前記決定手段によって決定された前記交差点の座標に基づき前記文字オブジェクトの記述を変更することにより、（ｉ）前記判定手段によって前記指定された領域に含まれないと判定された文字オブジェクトの記述が削除され前記指定された領域内のベクタ画像を記述し且つ（ｉｉ）前記指定された領域内に含まれると判定された文字オブジェクトの少なくとも一部を曲線で近似することによって得られる文字オブジェクトを記述した構造化文書を作成する作成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記作成手段は、前記指定された領域の位置を基準として前記指定された領域内のベクタ画像に含まれる文字オブジェクトの位置を記述した前記構造化文書を作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記作成手段は、前記判定手段によって部分的に前記指定された領域内に含まれると判定された文字オブジェクトの記述を、前記指定された領域内に含まれる部分の文字オブジェクトの記述に変更することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記作成手段は、前記判定手段によって部分的に前記指定された領域内に含まれると判定された文字オブジェクトが、直線的な形状で表現される文字オブジェクトの場合、前記文字オブジェクトの位置情報および前記指定された領域の位置情報に基づいて、前記指定された領域内に含まれる部分の文字オブジェクトの記述に変更することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記作成手段は、前記判定手段によって部分的に前記指定された領域内に含まれると判定された文字オブジェクトが、円、楕円または曲線を含む文字オブジェクトである場合、前記文字オブジェクトの位置情報および前記指定された領域の位置情報に基づいて、前記指定された領域内に含まれる部分の文字オブジェクトをベジェ曲線で近似することによって得られる文字オブジェクトの記述に変更することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記作成手段は、前記文字オブジェクトの記述の変更後のデータ量が変更前のデータ量よりも大きくなる場合には、前記文字オブジェクトの記述の変更を禁止することを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記検出手段によって検出された領域内のベクタ画像を拡大する拡大手段を更に有し、  前記作成手段は、前記拡大手段によって拡大された状態のベクタ画像に含まれる文字オブジェクトを記述した構造化文書を作成することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
ベクタ画像を記述した構造化文書を処理する情報処理装置の情報処理方法であって、
前記構造化文書を解析して得られた前記ベクタ画像を表示部に表示させる表示ステップと、
前記表示部においてユーザにより指定された領域を検出する検出ステップと、
前記ベクタ画像に含まれる文字オブジェクトの一部が前記指定された領域に含まれるか否かを判定する判定ステップと、
前記判定ステップにおいて前記指定された領域に含まれると判定された前記文字オブジェクトと前記指定された領域の外縁との交差点の座標を、前記文字オブジェクトの種類および前記文字オブジェクトの前記ベクタ画像の座標に基づいて決定する決定ステップと、
前記決定ステップにおいて決定された前記交差点の座標に基づき前記文字オブジェクトの記述を変更することにより、（ｉ）前記判定ステップにおいて前記指定された領域に含まれないと判定された文字オブジェクトの記述が削除され前記指定された領域内のベクタ画像を記述し且つ（ｉｉ）前記指定された領域内に含まれると判定された文字オブジェクトの少なくとも一部を曲線で近似することによって得られる文字オブジェクトを記述した構造化文書を作成する作成ステップと、
を有することを特徴とする情報処理装置の情報処理方法。
【請求項９】
前記作成ステップにおいて、前記指定された領域の位置を基準として前記指定された領域内のベクタ画像に含まれる文字オブジェクトの位置を記述した前記構造化文書を作成することを特徴とする請求項８に記載の情報処理装置の情報処理方法。
【請求項１０】
前記作成ステップにおいて、部分的に前記指定された領域内に含まれると判定された文字オブジェクトの記述を、前記指定された領域内に含まれる部分の文字オブジェクトの記述に変更することを特徴とする請求項９に記載の情報処理装置の情報処理方法。
【請求項１１】
前記作成ステップにおいて、部分的に前記指定された領域内に含まれると判定された文字オブジェクトが、直線的な形状で表現される文字オブジェクトの場合、前記文字オブジェクトの位置情報および前記指定された領域の位置情報に基づいて、前記指定された領域内に含まれる部分の文字オブジェクトの記述に変更することを特徴とする請求項１０に記載の情報処理装置の情報処理方法。
【請求項１２】
前記作成ステップにおいて、部分的に前記指定された領域内に含まれると判定された文字オブジェクトが、円、楕円または曲線を含む文字オブジェクトである場合、前記文字オブジェクトの位置情報および前記指定された領域の位置情報に基づいて、前記指定された領域内に含まれる部分の文字オブジェクトをベジェ曲線で近似することによって得られる文字オブジェクトの記述に変更することを特徴とする請求項１０に記載の情報処理装置の情報処理方法。
【請求項１３】
前記作成ステップは、前記文字オブジェクトの記述の変更後のデータ量が変更前のデータ量よりも大きくなる場合には、前記文字オブジェクトの記述の変更を禁止することを特徴とする請求項１０に記載の情報処理装置の情報処理方法。
【請求項１４】
前記検出ステップで検出された領域内のベクタ画像を拡大する拡大ステップを更に有し、前記作成ステップは、前記拡大ステップで拡大された状態のベクタ画像に含まれる文字オブジェクトを記述した構造化文書を作成することを特徴とする請求項８乃至１３のいずれか１項に記載の情報処理装置の情報処理方法。
【請求項１５】
請求項８乃至１４のいずれか１項に記載の情報処理装置の情報処理方法を実行するためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記憶したコンピュータにより読み書き可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書で記述された複数のオブジェクトからなるベクタ画像を処理可能な情報処理装置及びその方法に関するものである。
【背景技術】
【０００２】
ベクタ形式の画像は、解像度によらず高品位な表示が得られる等のメリットがある。このようなベクタ形式の画像を作成、編集するグラフィックス描画アプリケーションソフトとして、例えばAdobe Systems社のイラストレータ（登録商標）が挙げられる。このAdobe Systems社のイラストレータ（登録商標）は、その指定領域内のオブジェクトを移動させて編集することが可能である。例えば、ベクタ画像を高速に描画する技術として、特許文献１がある。
【特許文献１】特開２００４−１６４２０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＸＭＬベースでベクタ画像を表現するための言語として、ＳＶＧが存在する。例えば、図１に示すベクタ画像を記述したＳＶＧファイルを、処理能力の低い機器に通信ネットワークを介して転送した場合を想定する。この場合、本来送信する必要のあるグラフィック領域が領域１００３だとしても、図１のオブジェクト１０００〜１００２のすべてをグラフィック化しなければならず機器に負担がかかってしまう。また、機器のメモリの容量もその分必要となり、転送時間もかかってしまう。特に図２乃至図４のように、指定領域２０００，３０００，４００１に含まれる図形や文字のオブジェクトの部分が少ない場合には、不要なデータで多くの記憶容量を消費する場合が考えられる。
【０００４】
本発明は、上記従来技術の欠点を解決することにある。
【０００５】
また本願発明の特徴は、複数のオブジェクトを含むベクタ画像において、指定領域に含まれるグラフィックスデータだけをベクトルデータとして抽出して保存する情報処理装置及びその方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、ベクタ画像を記述した構造化文書を処理する情報処理装置であって、
前記構造化文書を解析して得られた前記ベクタ画像を表示部に表示させる表示手段と、前記表示部においてユーザにより指定された領域を検出する検出手段と、前記ベクタ画像に含まれる文字オブジェクトの一部が前記指定された領域に含まれるか否かを判定する判定手段と、前記判定手段によって前記指定された領域に含まれると判定された前記文字オブジェクトと前記指定された領域の外縁との交差点の座標を、前記文字オブジェクトの種類および前記文字オブジェクトの前記ベクタ画像の座標に基づいて決定する決定手段と、前記決定手段によって決定された前記交差点の座標に基づき前記文字オブジェクトの記述を変更することにより、（ｉ）前記判定手段によって前記指定された領域に含まれないと判定された文字オブジェクトの記述が削除され前記指定された領域内のベクタ画像を記述し且つ（ｉｉ）前記指定された領域内に含まれると判定された文字オブジェクトの少なくとも一部を曲線で近似することによって得られる文字オブジェクトを記述した構造化文書を作成する作成手段と、を有することを特徴とする。
【０００８】
尚、この課題を解決するための手段は、本願発明の特徴の全てを列挙しているものではなく、特許請求の範囲に記載された他の請求項及びそれら特徴群の組み合わせも発明になり得る。
【発明の効果】
【０００９】
本発明によれば、複数のオブジェクトを含むベクタ画像において、指定領域に含まれるベクタ画像を抽出し、抽出したベクタ画像に対応する構造化文書を作成して保存できるという効果がある。その結果、機器の処理の負担が軽減される。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
図５は、本発明の実施の形態に係るシステムの概要を示した構成図である。
【００１２】
図５において、スキャナ１０１はＬＡＮ１０２に接続されている。ＬＡＮ１０２には、クライアントとしてのＰＣ１０３、ネットワークプリンタ１０４、ファイルサーバ１０５が接続されている。
【００１３】
図６は、本実施の形態に係る情報処理装置（ＰＣ）１０３の構成を示すブロック図である。
【００１４】
図６において、ＣＰＵ２０１はシステム制御部であり、この情報処理装置１０３の全体を制御している。ＲＯＭ２０２は、ＣＰＵ２０１の制御プログラムや各種固定データを格納している。ＲＡＭ２０３は、ＳＲＡＭやＤＲＡＭ等で構成され、ＣＰＵ２０１による制御処理の実行時にプログラム制御変数等を格納する。また各種設定パラメータ、各種ワーク用バッファも、このＲＡＭ２０３に格納される。記憶部２０４はハードディスク（ＨＤ）等で構成され、文書や画像等のスキャン画像を格納する。操作パネル２０６は、キーボード、タッチパネル等で構成され、オペレータが各種入力操作を行うのに使用される。表示部２０７は、液晶等で構成され、オペレータに提示するメッセージやメニューコマンド等を表示する。ＬＡＮｉ／ｆ２０８は、ＬＡＮ２０９に接続するためのインターフェースである。ＵＳＢｉ／ｆ２１０は、ＵＳＢ回線２１１に接続するためのインターフェースである。
【００１５】
以上の構成において、ユーザは、操作パネル２０６を用いて、表示部２０７に表示されているベクタ画像画像内の一部分の範囲を領域指定する。そして、その指定領域の位置に基づいて得られたベクタ画像を、ＬＡＮ１０２を介してプリンタ１０４、ファイルサーバ１０５に転送することができる。
【００１６】
ここでは構造化文書としてＸＭＬベースで記述されたＳＶＧを取り上げ、スキャナ１０１によって読み取った画像をベクトルデータであるＳＶＧ形式で保存し、そのベクタ画像から指定範囲の画像を抽出する例について説明する。
【００１７】
図７（Ａ）（Ｂ）は、本実施の形態に係るベクタ画像（Ａ）とそのＳＶＧ形式の構造化文書（Ｂ）の一例を示す図である。
【００１８】
図７（Ａ）に示すベクタ画像には、図形や文字、イメージのオブジェクトが複数含まれている。例えば、このベクタ画像から図７（Ａ）の点線の矩形７００で示した指定した領域のベクタ画像を記述した構造化文書データを新たに作成する例を説明する。図７（Ａ）のベクタ画像は、オブジェクトとして、図形７０１、文字７０２、ラスタ画像７０３を有している。なお、ラスタ画像７０３はもちろんベクタ画像として直接ＳＶＧ形式で記述することはできないが、ラスタ画像を外部参照する記述を行うことでききるので、１つのオブジェクトとしてラスタ画像を取り上げることとする。
【００１９】
図７（Ｂ）において、構造化文書データ７１０は図形７０１の円を記述したものであり、構造化文書データ７１１は画像７０３を記述したものであり、構造化文書データ７１２は文字７０２を記述したものであり、そして構造化文書データ７１３は図形７０１の矩形を記述したものである。
【００２０】
図８は、例えば図７（Ａ）に示すようなＳＶＧ形式で記述されたベクタ画像から、ユーザによって指定された領域７００の画像を抽出する手順を説明するフローチャートである。
【００２１】
図９は、図８のステップＳ１０４の各オブジェクトの処理手順を説明するフローチャートである。
【００２２】
まず図８において、ステップＳ１０２で、ＣＰＵ２０１は、図７（Ｂ）のベクタ画像の構造化文書データからオブジェクト化した構造化データを生成してＲＡＭ２０３に保存する。この構造化データは図１０に示すＤＯＭ形式のオブジェクトデータである。
【００２３】
図１０は、図７（Ａ）に示すベクタ画像に配置されるオブジェクトをＤＯＭ形式のデータとして構造的に表した図である。
【００２４】
ＤＯＭ形式のデータをメモリに保存する際に、ＣＰＵ２０１は、構造化文書データに記述されているオブジェクトの色や座標のデータも同様にＲＡＭ２０３に保存する。なお、ＣＰＵ２０１は、ＤＯＭ形式のデータを生成しないで、構造化文書データが記述してあるファイルを直接読み込むことで処理する場合も考えられる。尚、図１０において、「ｃｉｒｃｌｅ」は、図７（Ａ）の円に、「ｉｍａｇｅ」は図７（Ａ）の画像７０３に、「ｔｅｘｔ」は文字７０２に、そして「ｇ」に属している「ｒｅｃｔ」はそれぞれ図形７０１の矩形に対応している。
【００２５】
次にステップＳ１０３で、ＣＰＵ２０１は、図７（Ａ）に示す領域７００のように、オペレータが操作パネル２０６を用いて領域を指定したことを検出する。そしてＣＰＵ２０１は、指定された領域のベクタ画像内の座標位置に関する情報（具体的には左上の座標位置情報および領域の高さと幅に関する情報）を取得する。次にステップＳ１０４で、ＣＰＵ２０１は、ＤＯＭ形式のデータとなった各図形に対して図９に示す処理を行う。
【００２６】
図９では、まずステップＳ２０２で、ＣＰＵ２０１は、指定領域７００にオブジェクトの全部又は一部分が含まれるか否かを判定する。この判定は、オペレータが指定した領域７００の座標位置情報とベクタ画像上に配置されているオブジェクトの座標位置情報に基づいて判定される。そのＣＰＵ２０１は、ここで指定された領域７００内に含まれないと判定したオブジェクトを、図１０のＤＯＭ形式のデータから削除する。図１１は、変更後のＤＯＭ形式のデータである（Ｓ２０３）。
【００２７】
図７（Ａ）の例では、図形７０１の円と、一番右上の矩形が領域７００に含まれていない。そのため、図１１では、図形７０１の円に対応する「ｃｉｒｃｌｅ」と右上の矩形に対応する「ｒｅｃｔ」とが図１０から除去されて図１１に示されている。
【００２８】
ステップＳ２０４では、ＣＰＵ２０１は、指定領域内にオブジェクトの全部が含まれていると判定するとそのまま処理を終了する。一方、全部ではなく一部分だけが含まれている場合はステップＳ２０５に処理が進む。ステップＳ２０５では、ＣＰＵ２０１は、そのオブジェクトが図形のオブジェクトか否か判定する。ここで図形のオブジェクトであればステップＳ２０７に処理が進み、ＣＰＵ２０１は、そのオブジェクトの指定領域内に含まれる形状に、そのオブジェクトを加工する。図７（Ａ）の例では、図形７０１の矩形の一部が指定領域７００に含まれている。
【００２９】
図１２（Ａ）（Ｂ）及び図１３（Ａ）（Ｂ）は、本実施の形態に係る図形オブジェクトの加工例を説明する図である。
【００３０】
図１２（Ａ）は、図形オブジェクト１２００と指定領域１２０１との関係を示す図、図１２（Ｂ）は、この図形のオブジェクト１２００を記述した構造化文書データを示している。
【００３１】
ここで、この図形１２００は、座標位置情報として、点（１００，１００）、点（２００，３００）、点（３００，１００）、点（４００，３００）、点（５００，１００）、点（６００，３００）を結ぶ線分で構成されたオブジェクトを示している。
【００３２】
図１３（Ａ）（Ｂ）は、この図形オブジェクト１２００を指定領域１２０１で抽出した例を示している。
【００３３】
図１３（Ｂ）は、指定された領域内に含まれる図形１２０２を記述した構造化文書データを示している。ここでは、指定された領域を基準とした座標位置情報などを用いて、点（０，２００）、点（５０，１００）、そして点（１５０，３００）を結ぶ線で表されている。例えば、図１３（Ａ）における点Ａの座標は、図形オブジェクト１２００と指定領域１２０１の相対関係からそれらの座標位置情報を用いることにより求めることができる。点Ａは指定領域の左上の座標（４５０，０）を基準としているため、点ＡのＸ座標は０となる。なお、点ＡのＹ座標は２００となる。
【００３４】
図１４は、四角形の図形オブジェクトの加工例を示す図である。
【００３５】
図１４に示すように、矩形の図形オブジェクト１４００の内、指定領域１４０１に含まれる図形１４０２が抽出される。ここで、図１４における点Ａと点Ｂの座標は、ベクタ画像内で図形オブジェクト１４００が配置されている座標位置情報と、指定領域１４０１の座標位置情報とを用いることにより求られる。そして、これら点Ａと点Ｃとをつないだ直線と、直線ＣＤと、直線ＤＢの３本の直線を形成することにより、抽出された図形のオブジェクト１４０２の形状を求められる。
【００３６】
なお、図１４に示す図形オブジェクト１４００のＳＶＧ形式の記述は、
＜svg＞
＜rect x=“10”  y=“10”  width=“100”  height=“30”  stroke=“black”
stroke-width=“10”  fill=“none”/＞
＜/svg＞
であり、抽出された図形オブジェクト１４０２のＳＶＧ形式の記述は、
＜svg＞
＜polyline fill=“none”  stroke=“black”  stroke-width=“10”
points=“0,60  30,60  30,90  0,90”/＞
＜/svg＞
となる。
【００３７】
なお、図１４に示す例では、ベクタ画像内における指定領域１４０１の左上の座標位置は（８０，−４０）であり、幅１３０，高さ１３０としている。
【００３８】
図１５は、円の図形オブジェクトの加工例を説明する図である。
【００３９】
図１５のように、円の図形オブジェクト１５００のうち、指定領域１５０１に含まれる形状を部分的に抽出したオブジェクトが作成される。ここで図１５における点Ａと点Ｂの座標は、図形オブジェクト１５００を描画している座標と、指定領域１５０１の座標とを用いることにより求められる。そして、これら点Ａと点Ｂとを端点とし、図１５のように円オブジェクト１５００の中心と反対側の外側方向の方向点をもつ３次のベジェ曲線１５０２が形成される。こうして円オブジェクト１５００の形状の内、指定領域１５０１で抽出された図形の形状を求めることができる。
【００４０】
なお、図１５に示す図形オブジェクト１５００のＳＶＧ形式の記述は、
＜svg＞
＜circle fill=“none”  stroke=“black”  stroke-width=“10”  cx=“144.5”    cy=“147”  r=“144”/＞
＜/svg＞
であり、抽出された図形オブジェクト１５０２のＳＶＧ形式の記述は、
＜svg＞
＜path fill=“none”  stroke=“black”  stroke-width=“10”
d=“M185, 247c0-79.5-64.5-144-144-144c-15.7, 0-30.8, 2.5-45, 7.2”/＞
＜/svg＞
となる。
【００４１】
なお、図１５に示す例では、ベクタ画像内における指定領域１４０１の左上の座標位置は（８０，−１００）であり、幅２００，高さ２００としている。
【００４２】
ステップＳ２０５で、ＣＰＵ２０１は、オブジェクトが図形のオブジェクトではないと判定するとステップＳ２０６に処理が進む。そして、ステップＳ２０６において、ＣＰＵ２０１は、文字のオブジェクトを含むか否か判定する。ここでもしＣＰＵ２０１は、文字のオブジェクトを含むと判定した場合ステップＳ２０９に処理が進む。ステップＳ２０９において、ＣＰＵ２０１は、そのオブジェクトの指定領域内に含まれる形状にオブジェクトを加工する。
【００４３】
図１６は、文字オブジェクト加工を説明する図である。
【００４４】
図１６において、ＳＶＧフォントで描かれた文字オブジェクト１６００の内、指定領域１６０１に含まれる文字部分のオブジェクトを抽出する。
【００４５】
なお、図１６に示す文字オブジェクト１６００のＳＶＧ形式の記述は、
＜svg＞
＜path  fill=“none”  stroke=“black”  stroke−width＝“10”
d=“M93, 137C189 95, 155, 3.5, 78, 8C18, 12-17.5, 83, 30, 119.5
c11, 8, 33-6, 43-47.5c10-42, 6-60, 6-60”/＞
＜／svg＞
である。
【００４６】
図１７は、この文字部分の抽出処理を説明する図である。
【００４７】
ここで文字は複数のベジェ曲線で構成されている。従って、前述した図形の場合と同様に、文字を描画している線と指定領域との交点を求め、それら交点との間をベジェ曲線で近似することにより、指定領域１６０１の含まれる文字の一部分が、近似ベジェ曲線した新しいオブジェクトとして生成される。また文字のオブジェクトは、文字コードも含んでいる。ここでオブジェクトの抽出後も文字コードを保持したいならば、ユーザは、文字オブジェクトの加工を行わないという選択もできる。
このようにして抽出された文字部分のオブジェクトのＳＶＧ形式の記述は、
＜svg＞
＜path  fill=“none”  stroke=“black”  stroke-width=“10”
d=“M0, 58c69, 4.5, 95, 89, 4, 129.5C94.2, 147, 69, 63, -1, 58”/＞
＜／svg＞
となる。
【００４８】
なお、指定領域の左上の座標位置は（８９，−５０）であり、幅３００，高さ３００である。
【００４９】
また文字のオブジェクトが文字列の場合であれば、ＣＰＵ２０１は、その文字列に含まれる１つ１つの文字を描画している座標を用いて指定領域に含まれるか否か判定して、指定領域内に入る文字列を抽出する。例えば図７（Ａ）の文字列「ＡＢＣＤＥＦ」において、文字列「ＤＥＦ」が指定領域７００の外になる場合は、構造化文書データの「＜text＞ABCDEF＜／text＞」は、「＜text＞ABC＜/text＞」に変換される。
【００５０】
ステップＳ２０６で、ＣＰＵ２０１は、オブジェクトが文字のオブジェクトではないと判定するとステップＳ２０８に処理が進む。ステップＳ２０８において、ＣＰＵ２０１は、ラスタ形式の画像オブジェクトか否か判定する。ここでＣＰＵ２０１が、ラスタ形式の画像オブジェクトでないと判定下場合、処理が終了する。ラスタ形式の画像オブジェクトが存在するとＣＰＵ２０１によって判定された場合、ステップＳ２１０に処理が進む。ステップＳ２１０において、ＣＰＵ２０１は、そのオブジェクトの指定領域内に含まれる形状にオブジェクトを加工する。このイメージデータの加工処理において、例えば後述する図１９に示すように、ＣＰＵ２０１は、図７のイメージ７０３のラスタ形式の画像オブジェクトに対応するイメージファイル「ｉｍａｇｅ．ｐｎｇ」のデータの内、指定領域７００に含まれる右半分の幅「５０」の画像オブジェクトに対応する画像データを抽出する。そして、ＣＰＵ２０１は、新たなイメージファイルを作成して別ディレクトリに保存する処理を行う。このとき、元のイメージファイルと同じディレクトリに新たなイメージファイルを保存する場合、新たなイメージファイルのファイル名称が「ｉｍａｇｅ１．ｐｎｇ」などと変更される必要がある。
【００５１】
このようにして、指定した領域内のイメージのみを切り出すことにより、本実施の形態における処理は、その指定領域内のオブジェクトを記憶する記憶容量を削減できる。また画像データのビットマップ等データ量が大きい場合には、解像度変換を行うことによりデータ量を小さくすることもできる。
【００５２】
尚、上述した図形、文字，およびイメージのオブジェクト加工処理において、オブジェクトを加工する前の各オブジェクトのデータ量がＲＡＭ２０３に保存しておいてもよい。そして、この各オブジェクトのデータ量を参照し、オブジェクトの種類によって加工前よりも加工後の方が構造化文書のデータ量が増加する場合には、ユーザがそのオブジェクトの加工を行わないように選択できる設定画面を設けることができる。
【００５３】
また、オブジェクトの加工処理に時間がかかる場合には、ユーザは、そのオブジェクトの加工を行わないように選択できるようにしても良い。
【００５４】
図１８は、他のオブジェクトの加工例を説明する図である。
【００５５】
加工前よりも加工後のオブジェクトのデータ量が増加してしまう例として、３次ベジェ曲線のオブジェクトが考えられる。ＣＰＵ２０１は、前述のような指定された領域内のみを残したオブジェクトの加工処理を行なうことにより、ベジェ曲線のオブジェクトの一部分として、点Ｃ，Ｄの区間のベジェ曲線のオブジェクトを生成する。この場合、データ量が増えてしまい、加工処理においても時間がかかる場合があると考えられる。そこで、ＣＰＵ２０１は、点Ｂ，Ｄ，Ｃの区間のベジェ曲線のオブジェクトを生成する。この処理によって、少ないデータ量でオブジェクトの一部分の抽出が可能となる。
【００５６】
こうして図８のステップＳ１０４における処理が完了すると、ステップＳ１０５に進み、ＣＰＵ２０１は、ＤＯＭが所定の仕様を満たしているか否か判定する。ここでもしＤＯＭが所定の仕様を満たしていないと判定するとステップＳ１０７に進み、仕様を満たすように不足している記述や不要な記述を編集する。またステップＳ１０５で、ＤＯＭが所定の仕様を満たしている場合、或はステップＳ１０７を実行するとステップＳ１０６に進み、ＣＰＵ２０１は、その編集した構造化文書データを書き出す。
【００５７】
図１９は、元のベクタ画像から一部のベクタ画像を抽出した構造化文書データの一例を示す図である。
【００５８】
図１９における１９００は、図７（Ａ）に示すオブジェクトに対応する構造化文書データである。
【００５９】
ここでは図７（Ａ）に示すように、指定領域７００でイメージ７０３の一部（右半分：座標（１５０，５００）から幅５０、高さ１００のイメージ）と文字列の「ＡＢＣ」が抽出されたオブジェクトデータとして、図１９の構造化文書データ１９０１が示される。このオブジェクト抽出後の構造化文書データ１９０１において、オブジェクトをグループ化する機能をもつグループ要素＜g fill=“blue”＞は１つも子要素を持っていない。すなわち、グループ要素の子要素が存在しなくなった場合、グループ要素の記述が不要となるため、削除する処理を実行してもよい。
【００６０】
そしてステップＳ１０８で、ＣＰＵ２０１は、その構造化文書データを外部機器（プリンタ等）に転送して処理を終了する。ここでＬＡＮ１０２に接続されているネットワークプリンタ１０４、ファイルサーバ１０５等の外部機器に対して、その抽出したベクタ画像を転送する。プリンタやスキャナの処理能力により１ページ全体の画像の転送が不可能なときには、転送可能なデータ容量となるように範囲を決め順次抽出して転送することにより、画像の全体の転送が可能となる。
【００６１】
尚、本実施の形態では、ＰＣ１０３を用いて処理を実行する例を示したが、スキャナ１０１における処理においても本実施の形態を適用することができる。この場合、スキャナ１０１に読み込まれた画像をベクタ画像化する。その後上述した処理を同様に行うことになる。
【００６２】
また、オペレータが操作パネルで指定する領域は、矩形に限らず円やフリーハンドで描いた領域であっても良い。またタッチパネルにより領域を指定しても良い。
【００６３】
また、プリンタやコピー機、ＦＡＸ等の機器に転送する際には、それら機器の処理能力に応じた指定領域の選択を、オペレータ又は機器の制御部が行う場合が考えられる。
【００６４】
以上説明した処理によって以下に示すような効果が得られる。例えば、ＳＶＧなどのベクタ画像で描画された地図において、ユーザが必要とする地域のみを範囲指定して切り出すことによって、ユーザが必要としない地域の地図情報を削除する。その後、ユーザは切り出した地図に対応する構造化文書データをリソースの少ない携帯電話などに転送しても描画することが可能となり、その描画処理もより短い時間で可能になる。
【００６５】
［実施の形態２］
図２３は、小さくて見づらい文字や図形、画像を拡大表示し、その拡大状態を保持してデータの複製を行う手順を説明するフローチャートである。
【００６６】
例えば、図２０（Ａ）に示すウィンドウ内の描画領域のうち所望の矩形領域を指定すると、図２０（Ｂ）に示すように、その指定された矩形領域内のオブジェクトを拡大表示する処理が知られている。この場合、前述の実施の形態１に係る処理を実行すると、図２１に示すような描画処理が実行される構造化文書データが得られる。本実施の形態２は、この実施の形態１の発展形として、図２０（Ｂ）に示すように、指定された矩形領域内のオブジェクトの拡大を維持した構造化文書に変換するものである。このような処理を用いることによって、あるユーザが友人に画像の一部を電子メールなどで知らせたい場合、拡大画像を適切に提示することができる。
【００６７】
まず、図２２（Ａ）のように、ユーザがマウスを用いることによって、拡大表示したい領域を指定する。ＣＰＵ２０１は、この指定された領域を検出する（Ｓ３０１）。次に、ＣＰＵ２０１は、この指定を検出し、図２２（Ｂ）に示すようにウィンドウ上で指定された領域を拡大表示する（Ｓ３０２）。図２２（Ｂ）は、図２２（Ａ）を部分的に拡大表示した地図である。拡大表示される地図情報の領域には、文字データや図形データ、画像データなどが含まれる。
【００６８】
次にＣＰＵ２０１は、ユーザがマウスを用いてその拡大された矩形領域内の描画データの保存の指示を実行したことを検出する（Ｓ３０３）。この操作の検出に応じて、ＣＰＵ２０１は、ウィンドウ上で拡大表示している矩形領域の情報として、図２２（Ａ）の領域を基準とした左上の座標（３４０，５９４）と、幅２３０ｐｘ、高さ２３０ｐｘをＲＡＭ２０３に保存する（Ｓ３０４）。また、ユーザが指定した拡大表示倍率に関する情報（２倍）をＲＡＭ２０３に保存する（Ｓ３０５）。尚、実際には、図２２（Ｂ）に示す地図の図２２（Ａ）に示す地図の表示倍率の２倍ではないが、本実施の形態２では、２倍であるものとして説明する。
【００６９】
次に、ユーザがマウスなどのポインティングデバイスを用いることによって、選択したデータをＲＡＭ２０３に保存する方法について説明する。
【００７０】
図２５は、図２２（Ａ）に示すオブジェクトを記述した構造化文書データを示す図である。図２５の構造化文書データは、標準化団体Ｗ３Ｃで仕様が策定されているScalable Vector Graphics（SVG）を用いて記述したものである。
【００７１】
図２５に示す構造化文書データは、各都道府県に関する地図情報を有する。具体的には、都道府県名や市町村名を表す文字オブジェクトや、都道府県や市町村の形状を表すパスオブジェクトデータ（輪郭データ）を含む。なお、画像データに関するイメージオブジェクトを用いることによって、都道府県や市町村の形状を表す場合も考えられる。更に、幹線道路や鉄道の路線などの情報を示すパスオブジェクトデータを有してもよい。
【００７２】
そして、図２２（Ａ）に示す地図を描画するにあたり、図２５の構造化文書データに対応するＷ３Ｃで仕様が定められたＤＯＭツリーがＲＡＭ２０３に記憶されているが、ＣＰＵ２０１は、このＤＯＭのツリーを参照する（Ｓ３０６）。
【００７３】
図２６は、図２５の構造化文書データから生成されたＤＯＭツリーを示す図である。
【００７４】
そして、ＣＰＵ２０１は、図２６の日本全体の地図に関するＤＯＭツリーと同じものをＲＡＭ２０３の内部に複製する（Ｓ３０７）。次にＣＰＵ２０１は、その複製して得られたＤＯＭツリーから、ユーザが指定した領域である東京都に関する地図データのノードを抽出するとともに、その他の全ての都道府県に関する地図データのノードを削除する（Ｓ３０８）。更にＣＰＵ２０１は、その複製して得られたＤＯＭツリーにおいて、拡大表示の矩形領域に一部分が含まれる文字や図形、画像の各オブジェクトのノードを抽出して、抽出されたノードに対応するオブジェクトの加工を行う（Ｓ３０９）。
【００７５】
図２４は、図２３のステップＳ３０９の処理の詳細な処理手順を示すフローチャートである。図２５の構造化文書データ内の＜ｇ＞要素の各子要素のオブジェクトについて、それぞれ以下の処理を実行する。
【００７６】
まずＣＰＵ２０１は、あるオブジェクトに対して、ユーザが設定した矩形領域内に全部含まれるかどうか判断する（Ｓ４０１）。もし、矩形領域に全部のオブジェクトが含まれていると判断したならば、ＣＰＵ２０１は、すべてのオブジェクトを削除せずに処理を終了する。もし、矩形領域に全部含まれないと判断したならば、ＣＰＵ２０１は、対象のオブジェクトが文字のオブジェクトであるかどうか判断する（Ｓ４０２）。ここでもし、文字のオブジェクトであると判断したならば、ＣＰＵ２０１は、その文字のオブジェクトのうち矩形領域に入らない文字列を削除して、文字オブジェクトの加工を行う（Ｓ４０５）。一方、ステップＳ４０２で、文字のオブジェクトでないと判断した場合はステップＳ４０３に進み、ＣＰＵ２０１は、図形のオブジェクトであるかどうか判断する。ここで図形のオブジェクトであると判断するとステップＳ４０６で、ＣＰＵ２０１は、その図形オブジェクトのうち矩形領域に含まれる部分を抽出してＲＡＭ２０３に保存し、図形オブジェクトを更新することによって加工を行う。
【００７７】
またステップＳ４０３で、図形のオブジェクトでないと判断した場合はステップＳ４０４に進み、ＣＰＵ２０１は、画像のオブジェクトであるかどうか判断する。ここで画像のオブジェクトであると判断するとステップＳ４０７で、ＣＰＵ２０１は、加工処理として、その画像オブジェクトのうち矩形領域に含まれる画像データを抽出してＲＡＭ２０３に保存する。そしてＣＰＵ２０１は、画像オブジェクトを更新する。
【００７８】
これらステップＳ４０１〜Ｓ４０７の処理をＣＰＵ２０１は、各オブジェクトについて実行する。
【００７９】
図２７は、ユーザが指定した矩形領域に含まれるオブジェクトの加工を行うことによって得られた構造化文書データで表した図である。また、図２８は、図２７の東京都のみの地図データを含む構造化文書データをＤＯＭツリーで表した図である。
【００８０】
この一連の構造化文書データ（ＤＯＭツリー）に含まれるオブジェクトの加工処理によって、ユーザが選択した東京都以外に関するオブジェクトは削除される。そして、矩形領域からはみ出していた文字や図形、画像オブジェクトの部分が除かれるように更新される。尚、携帯機器などリソースが限られる機器においては、図２３のステップＳ３０９の処理の変形例として、オブジェクトの加工を行わずに、矩形領域に一部分でも含まれている場合には、複製したＤＯＭから削除しない処理を実行してもよい。
【００８１】
尚、図２４のステップＳ４０１における矩形領域と各文字オブジェクトとの内外判定は、以下の通りである。即ち、図２５に示される文字オブジェクトの座標位置およびフォントのサイズ（および種類）より画素単位で決定される各描画位置が矩形領域に含まれるかどうかを判定することにより決定される。同様に、図形のオブジェクト，画像のオブジェクトに関しても、構造化文書データ内のオブジェクトデータに基づいて決定される画素単位で決定される描画位置が矩形領域に含まれるかどうかを判定することにより決定される。
【００８２】
再び、図２３に示す処理の説明に戻る。前述のステップＳ３０９に続いてＣＰＵ２０１は、図２７に示す東京都の地図データが図２２（Ｂ）に示す拡大表示時の地図データとして描画される構造化文書データを取得するための処理を行う。ＣＰＵ２０１は、図２７の構造化文書データを、図２２（Ｂ）の拡大表示倍率に関する情報を含む構造化文書データに変換する（Ｓ３１０）。この１つ目の方法として、アフィン変換を行うことによって前記構造化文書データを更新する方法が考えられる。
【００８３】
まず、ＲＡＭ２０３に保存された拡大表示の矩形領域の左上の座標（３４０，５９４）と幅２３０ｐｘ、高さ２３０ｐｘに基づいて、その矩形領域の中心位置を原点座標（０，０）に重なるように平行移動する。そして、内部メモリに保存している拡大倍率２倍に基づいて拡大し、拡大した矩形領域の左上の座標が原点（０，０）になるように平行移動する。
【００８４】
以上の一連の手続きを示す属性値は、
「transform=“translate(230, 230), scale(2, 2), translate(-455, -709)”」
である。このtranform属性をsvg要素の子要素であるｇ要素の属性として追加する。
【００８５】
この属性値を一般化すると、拡大表示の際に地図の領域内においてユーザが指定した矩形領域の左上の座標を（ｘ，ｙ）、幅をｗ、高さをｈとし、拡大倍率をｖとすると、trasform属性の属性値は、
「translate(w/2＊v, h/2＊v), scale(v,v), translate(-x-w/2, -y-h/2)」
となる。そして、このtransform属性をｇ要素に付加することによって、図２７に示す構造化文書データが図２９に示す構造化文書データに変換される。
【００８６】
また、第２の方法として、地図データが描画される初期の中心位置を、拡大表示領域に合わせるアフィン変換を用いた方法が考えられる。具体的には、ＳＶＧにおけるsvg要素に、空白又はコンマで区切られた４個の数値のリストの属性値を有するviewBox属性データを追加する処理が実行される。
【００８７】
まず、ＣＰＵ２０１は、地図領域に対する、ＲＡＭ２０３に保存された拡大表示される矩形領域の左上の座標（３４０，５９４）をviewBox属性の属性値における最初の２つの数値として指定する。そして、拡大表示領域の幅２３０ｐｘと高さ２３０ｐｘに対して、ＲＡＭ２０３に保存している拡大倍率２を掛けることによって求めたものを、残り２つの数値リストとして指定する。即ち、「viewBox=“340 594 460 460”」のviewBox属性をsvg要素に追加することになる。
【００８８】
一般的には、拡大表示の際にユーザの設定した矩形領域の左上の座標を（ｘ，ｙ）、幅をｗ、高さをｈとし、拡大倍率をｖとすると、viewBox属性の属性値は
「x  y  w＊v  h＊v」
となる。そして、このviewBox属性をsvg要素に付け加えることによって、図３０のような構造化文書データとなる。
【００８９】
第３の方法として、文字オブジェクトのフォントサイズと位置座標、また、パスオブジェクト（輪郭オブジェクト）のｘ，ｙ座標に関するｄ属性の属性値を更新する方法が考えられる。
【００９０】
まず、文字オブジェクトの更新方法について説明する。フォントサイズは、ＲＡＭ２０３に保存された拡大表示倍率２倍に基づいて、フォントサイズが２倍とされる。また、文字オブジェクトの位置座標は、地図領域を基準とした拡大表示される矩形領域の左上の座標（３４０，５９４）から地図領域を基準とした文字オブジェクトの位置情報の差分によって求められる。すなわち、文字オブジェクトについては、
＜text x=“113” y=“126”  font-size=“20”＞Tokyo＜/text＞
となる。
【００９１】
次に、東京都の輪郭を表すパスオブジェクトの更新方法について説明する。まず、東京都の形状を表すパスオブジェクトを含む拡大表示枠の矩形領域の中心位置を原点座標（０，０）に重なるように並行移動する。そして、ＲＡＭ２０３に保存された拡大倍率２倍に基づいて拡大し、拡大した矩形領域の左上の座標が原点（０，０）になるように平行移動する。即ち、東京都の輪郭を表すｄ属性の属性値については、前記アフィン変換を用いた手段におけるｔｒａｎｓｆｏｒｍ属性を用いた手段と同様の変換を用いた計算が行われる。また、パスオブジェクトの線の太さに関する属性stroke−widthの属性値については、拡大倍率２倍に基づいて求めることができる。よって、パスオブジェクトは、
＜path  fill=“none”  stroke=“black”  stroke−width=“4.0”
d=“M  118.1902  206.2466  C  71.6528  206.2466  …（略）…”/＞
となる。このようにして図２７の構造化文書データから変換された構造化文書データを図３１に示す。
【００９２】
以上の操作によって、予め拡大表示された小さくて見づらい地図や図面などの描画データを保存操作する際に、拡大表示状態を保持した構造化文書データを変換しているので、拡大表示状態を維持した描画データの保存を行うことが可能となる。
【００９３】
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９４】
プログラムを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００９５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９６】
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９８】
【図１】図形、文字、イメージデータのオブジェクトを含むベクタ画像画像の一例を示す図である。
【図２】領域を指定して図形オブジェクトの一部を抽出する例を示す図である。
【図３】領域を指定して文字オブジェクトの一部を抽出する例を示す図である。
【図４】領域を指定してイメージオブジェクトの一部を抽出する例を示す図である。
【図５】本発明の実施の形態に係るシステムの概要を示した構成図である。
【図６】本実施の形態に係るＰＣ１０３の構成を示すブロック図である。
【図７】本実施の形態に係るベクタ画像（Ａ）とその構造化文書データ（Ｂ）の一例を示す図である。
【図８】本実施の形態において、ベクタ画像から、指定した領域の画像を抽出する手順を説明するフローチャートである。
【図９】図８のステップＳ１０４の各オブジェクトの処理手順を説明するフローチャートである。
【図１０】図７（Ａ）に示す画像をＤＯＭ形式で表した図である。
【図１１】図１０のＤＯＭから指定領域に含まれないオブジェクトを削除した例を示す図である。
【図１２】、
【図１３】本実施の形態に係る図形オブジェクトの加工例を説明する図である。
【図１４】四角形の図形オブジェクトの加工例を説明する図である。
【図１５】円の図形オブジェクトの加工例を説明する図である。
【図１６】文字オブジェクト加工を説明する図である。
【図１７】文字オブジェクトの抽出処理を説明する図である。
【図１８】他のオブジェクトの加工例を説明する図である。
【図１９】元のベクタ画像から一部のベクタ画像を抽出した構造化文書データの一例を示す図である。
【図２０】描画データの拡大表示処理を説明するための図である。
【図２１】描画データの表示処理を説明するための図である。
【図２２】描画データの拡大表示処理を説明するための図である。
【図２３】本発明の実施の形態２に係る矩形領域内の描画データを拡大表示させるための構造化文書データの変換処理を示すフローチャートである。
【図２４】図２３のステップＳ３０９の処理の詳細な処理手順を示すフローチャートである。
【図２５】図２２（Ａ）に示すオブジェクトを記述した構造化文書データを示す図である。
【図２６】図２５の構造化文書データから生成されたＤＯＭツリーを説明する図である。
【図２７】実施の形態２において、ユーザが指定した矩形領域に含まれるオブジェクトの加工を行うことによって得られた構造化文書データで表した図である。
【図２８】図２７の構造化文書データをＤＯＭツリーで表した図である。
【図２９】実施の形態２に係る変換処理によって得られた構造化文書データの一例を示す図である。
【図３０】実施の形態２に係る変換処理によって得られた構造化文書データの一例を示す図である。
【図３１】図２７の構造化文書データから変換された構造化文書データの一例を示す図である。
【符号の説明】
【００９９】
２０１  ＣＰＵ（処理ユニット）
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記憶部
２０６  操作パネル
２０７  表示部
【図１】
0005339667.tif 000002
【図２】
0005339667.tif 000003
【図３】
0005339667.tif 000004
【図４】
0005339667.tif 000005
【図５】
0005339667.tif 000006
【図６】
0005339667.tif 000007
【図７】
0005339667.tif 000008
【図８】
0005339667.tif 000009
【図９】
0005339667.tif 000010
【図１０】
0005339667.tif 000011
【図１１】
0005339667.tif 000012
【図１２】
0005339667.tif 000013
【図１３】
0005339667.tif 000014
【図１４】
0005339667.tif 000015
【図１５】
0005339667.tif 000016
【図１６】
0005339667.tif 000017
【図１７】
0005339667.tif 000018
【図１８】
0005339667.tif 000019
【図１９】
0005339667.tif 000020
【図２０】
0005339667.tif 000021
【図２１】
0005339667.tif 000022
【図２２】
0005339667.tif 000023
【図２３】
0005339667.tif 000024
【図２４】
0005339667.tif 000025
【図２５】
0005339667.tif 000026
【図２６】
0005339667.tif 000027
【図２７】
0005339667.tif 000028
【図２８】
0005339667.tif 000029
【図２９】
0005339667.tif 000030
【図３０】
0005339667.tif 000031
【図３１】
0005339667.tif 000032