(57)【要約】【課題】  描画されるオブジェクトの見た目とオブジェクトに付加された属性情報を一致させる。【解決手段】  フィルオブジェクトを比較する際に、フィルオブジェクトの実際の領域を示す線分ではなく、その領域に接するバウンディングボックスを比較対象にする。又、文字に対しても有効であるように、フォントオブジェクトを比較する際に、そのバウンディングボックスを比較対象にする。【選択図】  図１
2006171872.tif 000002
【特許請求の範囲】
【請求項１】
描画コマンドに従って描画オブジェクトを生成する描画オブジェクト生成手段と、
生成したオブジェクトに属性を与えるオブジェクト属性付加手段と、
描画コマンドを記憶する描画コマンド記憶手段と、
描画コマンドから生成される描画オブジェクト同士を比較する描画オブジェクト比較手段とを備え、
描画オブジェクト比較手段の比較結果によって、描画オブジェクトの属性を変更することを特徴とする画像形成装置。
【請求項２】
描画オブジェクト比較手段は、閉領域を塗りつぶすフィルオブジェクトを生成する描画コマンドから、フィル情報とその閉領域に接する矩形のバウンディングボックス情報を獲得することを特徴とする請求項１の画像形成装置。
【請求項３】
描画オブジェクト比較手段は、フィルオブジェクトを生成する描画コマンドが連続する場合、第一のフィルオブジェクトのフィル情報、バウンディングボックス情報と、第二のフィルオブジェクトのフィル情報、バウンディングボックス情報を獲得し、それらの差分が予め設定された閾値以下の場合、描画部分のオブジェクト属性を変更することを特徴とする請求項２の画像形成装置。
【請求項４】
描画オブジェクト比較手段は、文字を描画するフォントオブジェクトを生成する描画コマンドから、フォント情報とその文字領域に接する矩形のバウンディングボックスの情報を獲得することを特徴とする請求項１の画像形成装置。
【請求項５】
描画オブジェクト比較手段は、フォントオブジェクトを生成する描画コマンドが連続する場合、第一のフォントオブジェクトのフォント情報、バウンディングボックス情報と、第二のフォントオブジェクトのフォント情報、バウンディングボックス情報を獲得し、それらの差分が予め設定された閾値以下の場合、描画部分のオブジェクト属性を変更することを特徴とする請求項４の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像形成装置および制御方法に関するものである。
【背景技術】
【０００２】
レンダリングされる各オブジェクトには、画処理のために文字、グラフィック、イメージ、細線といった属性情報が付加される。しかし、最終的に描画される（実際に用紙に出力される）オブジェクトの見た目とその属性情報が一致しない場合がある。図２にその例を示す。オブジェクト１３は描画コマンドに従い最終的に描画されるオブジェクトである。
【０００３】
一見、このオブジェクトは矩形の線で構成されているが、実際には次のように２つの描画コマンドを実行して生成されることがある。
【０００４】
（１）オブジェクト１１に示す黒塗りの矩形を描画。
【０００５】
左上座標が（０，０）、右下座標が（８０，２０）である矩形の中を黒色で塗る。
【０００６】
（２）オブジェクト１２に示す白塗りの矩形を描画。
【０００７】
左上座標が（１，１）、右下座標が（７９，１９）である矩形の中を白色で塗る。
【０００８】
（オブジェクト１２のサイズがオブジェクト１１よりごく僅かだけ小さい。）
つまり、オブジェクト１１の矩形からオブジェクト１２の矩形をくりぬくことで、オブジェクト１３を生成している。この時、オブジェクト１３の属性がオブジェクトの見た目通りに細線であれば良いが、実際にはオブジェクト１１、１２の属性が共にグラフィックであるため、オブジェクト１３の属性もグラフィックとなってしまう。
【０００９】
又、別の従来例としては、特許文献１及び特許文献２をあげることが出来る。
【特許文献１】特開平１０−０４４５２６号公報
【特許文献２】特開２００２−２９７１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このように、描画コマンドによっては、描画されるオブジェクトの見た目とオブジェクトに付加された属性情報が一致しないことがあり、そのようなオブジェクトに対して適切な画処理が行なえないという問題がある。
【課題を解決するための手段】
【００１１】
描画コマンドに従い描画するオブジェクトを生成するオブジェクト生成手段と、生成したオブジェクトに属性を与えるオブジェクト属性付加手段と、特定の描画コマンドを記憶する描画コマンド記憶手段と、記憶された描画コマンドを比較することが可能な描画コマンド比較手段とを備え、描画コマンド比較手段の比較結果によって、オブジェクトの属性を変更することを特徴とする画像形成装置。
【発明の効果】
【００１２】
実施例１で示したように、描画されるオブジェクトの見た目とオブジェクトに付加された属性情報が一致しないという課題は、本発明によって解決される。
【００１３】
また本発明では、フィルオブジェクトを比較する際に、フィルオブジェクトの実際の領域を示す線分ではなく、その領域に接するバウンディングボックスを比較対象にしている。そのため、比較処理は単純な計算によって実現され、高速な描画処理を期待できる。
【００１４】
実施例２で示したように、オブジェクトの見た目とオブジェクトに付加された属性情報が一致しないという課題は、本発明によって解決でき、それは文字に対しても有効である。また実施例１と同じく、フォントオブジェクトを比較する際に、そのバウンディングボックスを比較対象にしているため、高速な描画処理を期待できる。
【発明を実施するための最良の形態】
【００１５】
（実施例１）
まず本実施例では、描画コマンドに従って生成されるオブジェクトの属性として、図８に示す５つの属性を用意する。属性値８１はイメージ、属性値８２はグラフィック、属性値８３はテキスト、属性値８４は細線、属性値８５は細文字である。オブジェクトに付加する属性値は、イメージ、グラフィック、テキストの３種類だけでもある程度の画像処理を行なうことは可能である。しかし、ＣＡＤなどの高品質の出力を求められる場合、より細かい属性値を設定する必要がある。本実施例では、そのような細かい属性値として、細い線を示す属性値８４細線と、文字の輪郭が細いことを示す属性値８５「細文字」を用意した。
【００１６】
本実施例において、閉領域を塗りつぶす描画コマンドに対して行なわれる処理手順を図１のフローチャートを用いて説明する。Ｓ２０１からＳ２１０は各ステップを示す。
【００１７】
ステップＳ２０１において、描画コマンドを読み込む。
【００１８】
ステップＳ２０２において、読み込んだ描画コマンドを記憶する。
【００１９】
ステップＳ２０３において、描画コマンドのうち、閉領域を塗りつぶすフィルオブジェクトを生成するコマンドが連続したかどうかをチェックする。フィルオブジェクトを生成する描画コマンドが連続した場合はステップＳ２０４へ、連続しない場合はステップＳ２０９へ進む。
【００２０】
ステップＳ２０４において、連続するフィルオブジェクトのうち、第一の描画コマンドによって生成されるオブジェクトのフィル情報と、そのバウンディングボックス情報を獲得する。
【００２１】
本ステップにて獲得するオブジェクトのフィル情報とバウンディングボックス情報について、その具体例を図３に示す。
【００２２】
図形３１がフィル情報である。６辺で囲まれた閉領域が黒色で塗りつぶされている。
【００２３】
枠線３２がバウンディングボックス情報である。バウンディングボックス情報はフィル情報に接する矩形である。座標３５は、バウンディングボックスの左上を示し、その座標値(ｘ，ｙ)は（ｍｘ１，ｍｙ１）で表される。座標３６はバウンディングボックスの右下を示し、その座標値（ｘ，ｙ）は（ｍｘ２、ｍｙ２）で表される。
【００２４】
ステップＳ２０５において、連続するフィルオブジェクトのうち、第二の描画コマンドによって生成されるオブジェクトのフィル情報と、そのバウンディングボックス情報を獲得する。
【００２５】
本ステップにて獲得するオブジェクトのフィル情報とバウンディングボックス情報について、その具体例を図３に示す。
【００２６】
図形３３がフィル情報である。６辺で囲まれた閉領域が白色で塗りつぶされている。
【００２７】
枠線３４がバウンディングボックス情報である。バウンディングボックス情報はフィル情報に接する矩形である。座標３７は、バウンディングボックスの左上を示し、その座標値(ｘ，ｙ)は（ｎｘ１，ｎｙ１）で表される。座標３８はバウンディングボックスの右下を示し、その座標値（ｘ，ｙ）は（ｎｘ２、ｎｙ２）で表される。
【００２８】
ステップＳ２０６において、第一の描画コマンドによって生成されるフィルオブジェクトと第二の描画コマンドによって生成されるフィルオブジェクトを比較する。
【００２９】
本ステップにおける処理について、その具体例を図３を用いて説明する。
【００３０】
このステップでは第一の描画コマンドによって生成されるフィルオブジェクト３１が、第二の描画コマンドによって生成されるフィルオブジェクト３３を内包しているかどうかをチェックする。
【００３１】
各バウンディングボックスの座標３５、３６、３７、３８が以下の条件を満たすとき、フィルオブジェクト３１がフィルオブジェクト３３を内包していると判断できる。
【００３２】
ｍｘ１＜ｎｘ１かつ
ｍｘ２＞ｎｘ２かつ
ｍｙ１＞ｎｙ１かつ
ｍｙ２＜ｎｙ２
ステップＳ２０７において、第一の描画コマンドによって生成されるフィルオブジェクトのバウンディングボックスと第二の描画コマンドによって生成されるフィルオブジェクトのバウンディングボックスの差分をとり、その差があらかじめ設定された規定値以下の場合はステップＳ２０８へ、規定値より大きい場合はステップＳ２０９へ進む。
【００３３】
本ステップにおける処理について、その具体例を図４を用いて説明する。
【００３４】
図４は、図３で示したフィルオブジェクト３１が、実際にフィルオブジェクト３３を内包した状態を表している。
【００３５】
この時、バウンディングボックスの差分４１、４２、４３、４４は、以下のようにして求めることができる。
【００３６】
差分４１＝ｎｘ１−ｍｘ１  
差分４２＝ｍｘ２−ｎｘ２
差分４３＝ｎｙ１−ｍｙ１
差分４４＝ｍｙ２−ｎｙ２
このとき、例えば各差分に対する閾値が２に規定されているとする。その時、以下のような条件を満たす場合はステップ２０８へ進み、条件を満たさない場合はステップＳ２０９へ進むことになる。
【００３７】
差分４１＜２
差分４２＜２
差分４３＜２
差分４４＜２
ステップＳ２０８において、描画オブジェクトの属性値を細線に変更する。
【００３８】
本ステップにおいて、図４のフィルオブジェクト３１のうち、フィルオブジェクト３３に覆われずに残された部分の属性値が細線に変更される。
【００３９】
ステップＳ２０９において、描画コマンドに従ったオブジェクトの描画処理を行う。
【００４０】
ステップＳ２１０において、描画コマンドが終了したかどうかをチェックする。
【００４１】
終了した場合は描画処理を終了し、終了していない場合は次の描画コマンドを読み込むためにステップＳ２０１へ戻る。
【００４２】
（実施例２）
本実施例においても、実施例１と同様に描画コマンドに従って生成されるオブジェクトの属性として、図８に示す５つの属性を用意する。属性値８１はイメージ、属性値８２はグラフィック、属性値８３はテキスト、属性値８４は細線、属性値８５は細文字である。
【００４３】
本実施例において、文字を描画する描画コマンドに対して行なわれる処理手順を図７のフローチャートを用いて説明する。Ｓ７０１からＳ７１０は各ステップを示す。
【００４４】
ステップＳ７０１において、描画コマンドを読み込む。
【００４５】
ステップＳ７０２において、読み込んだ描画コマンドを記憶する。
【００４６】
ステップＳ７０３において、描画コマンドのうち文字を描画するためのフォントオブジェクトを生成するコマンドが連続したかどうかをチェックする。フォントオブジェクトを生成する描画コマンドが連続した場合はステップＳ７０４へ、連続しない場合はステップＳ７１０へ進む。
【００４７】
ステップＳ７０４において、連続するフォントオブジェクトのうち、第一の描画コマンドによって生成されるオブジェクトのフォント情報と、そのバウンディングボックス情報を獲得する。
【００４８】
本ステップにて獲得するオブジェクトのフォント情報とバウンディングボックス情報について、その具体例を図５に示す。
【００４９】
図形５１がフォント情報である。「Ａ」という文字が黒色で塗りつぶされている。
【００５０】
枠線５２がバウンディングボックス情報である。バウンディングボックス情報はフォント情報に接する矩形である。座標５５は、バウンディングボックスの左上を示し、その座標値(ｘ，ｙ)は（ｍｘ１，ｍｙ１）で表される。座標５６はバウンディングボックスの右下を示し、その座標値（ｘ，ｙ）は（ｍｘ２、ｍｙ２）で表される。
【００５１】
ステップＳ７０５において、連続するフォントオブジェクトのうち、第二の描画コマンドによって生成されるオブジェクトのフォント情報と、そのバウンディングボックス情報を獲得する。
【００５２】
本ステップにて獲得するオブジェクトのフォント情報とバウンディングボックス情報について、その具体例を図５に示す。
【００５３】
図形５３がフォント情報である。「Ａ」という文字が白色で塗りつぶされている。
【００５４】
枠線５４がバウンディングボックス情報である。バウンディングボックス情報はフォント情報に接する矩形である。座標５７は、バウンディングボックスの左上を示し、その座標値(ｘ，ｙ)は（ｎｘ１，ｎｙ１）で表される。座標５８はバウンディングボックスの右下を示し、その座標値（ｘ，ｙ）は（ｎｘ２、ｎｙ２）で表される。
【００５５】
ステップＳ７０６において、第一、第二の描画コマンドでフォントオブジェクトを生成する際に使用する文字コードの比較を行う。文字コード自体はステップＳ７０４、Ｓ７０５で獲得しているフォント情報に含まれているものとする。文字コードが同じ場合はステップＳ７０７へ進み、文字コードが違う場合はステップＳ７０９へ進む。
【００５６】
ステップＳ７０７において、第一の描画コマンドによって生成されるフィルオブジェクトと第二の描画コマンドによって生成されるフィルオブジェクトを比較する。
【００５７】
本ステップにおける処理について、その具体例を図６を用いて説明する。
【００５８】
このステップでは第一の描画コマンドによって生成されるフォントブジェクト５１が、第二の描画コマンドによって生成されるフォントオブジェクト５３を内包しているかどうかをチェックする。
【００５９】
各バウンディングボックスの座標５５、５６、５７、５８が以下の条件を満たすとき、フォント５１がフォントブジェクト５３を内包していると判断できる。
【００６０】
ｍｘ１＜ｎｘ１かつ
ｍｘ２＞ｎｘ２かつ
ｍｙ１＞ｎｙ１かつ
ｍｙ２＜ｎｙ２
ステップＳ７０８において、第一の描画コマンドによって生成されるフォントオブジェクトのバウンディングボックスと第二の描画コマンドによって生成されるフォントオブジェクトのバウンディングボックスの差分をとり、その差があらかじめ設定された規定値以下の場合はステップＳ７０９へ、規定値より大きい場合はステップＳ７１０へ進む。
【００６１】
本ステップにおける処理について、その具体例を図６を用いて説明する。
【００６２】
図６は、図５で示したフォントオブジェクト５１が、実際にフォントオブジェクト５３を内包した状態を表している。
【００６３】
この時、バウンディングボックスの差分６１、６２、６３、６４は、以下のようにして求めることができる。
【００６４】
差分６１＝ｎｘ１−ｍｘ１
差分６２＝ｍｘ２−ｎｘ２
差分６３＝ｎｙ１−ｍｙ１
差分６４＝ｍｙ２−ｎｙ２
このとき、例えば各差分に対する閾値が２に規定されているとする。その時、以下のような条件を満たす場合はステップＳ７０９へ進み、条件を満たさない場合はステップＳ７１０へ進むことになる。
【００６５】
差分６１＜２
差分６２＜２
差分６３＜２
差分６４＜２
ステップＳ７０９において、描画オブジェクトの属性値を細文字に変更する。
【００６６】
本ステップにおいて、図６のフィルオブジェクト５１のうち、フィルオブジェクト５３に覆われずに残された部分の属性値が細文字に変更される。
【００６７】
ステップＳ７１０において、描画コマンドに従ったオブジェクトの描画処理を行う。
【００６８】
ステップＳ７１１において、描画コマンドが終了したかどうかをチェックする。
【００６９】
終了した場合は描画処理を終了し、終了していない場合は次の描画コマンドを読み込むためにステップＳ７０１へ戻る。
【図面の簡単な説明】
【００７０】
【図１】実施例１の処理を示すフローチャート図。
【図２】発明が解決しようとする課題。
【図３】連続する２つのフィルオブジェクト。
【図４】連続する２つのフィルオブジェクトの比較。
【図５】連続する２つのフォントオブジェクト。
【図６】連続する２つのフィルオブジェクトの比較。
【図７】実施例２の処理を示すフローチャート図。
【図８】実施例１、２で使用したオブジェクトの属性値。
【図１】
2006171872.tif 000003
【図２】
2006171872.tif 000004
【図３】
2006171872.tif 000005
【図４】
2006171872.tif 000006
【図５】
2006171872.tif 000007
【図６】
2006171872.tif 000008
【図７】
2006171872.tif 000009
【図８】
2006171872.tif 000010