(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024112608
(43)【公開日】2024-08-21
(54)【発明の名称】画像形成装置、画像処理方法及びプログラム
(51)【国際特許分類】
B41J 21/00 20060101AFI20240814BHJP
H04N 1/409 20060101ALI20240814BHJP
H04N 1/40 20060101ALI20240814BHJP
【FI】
B41J21/00 Z
H04N1/409
H04N1/40 062
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023017764
(22)【出願日】2023-02-08
(71)【出願人】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100112335
【弁理士】
【氏名又は名称】藤本 英介
(74)【代理人】
【識別番号】100101144
【弁理士】
【氏名又は名称】神田 正義
(74)【代理人】
【識別番号】100101694
【弁理士】
【氏名又は名称】宮尾 明茂
(74)【代理人】
【識別番号】100124774
【弁理士】
【氏名又は名称】馬場 信幸
(72)【発明者】
【氏名】浴 耕治
【テーマコード(参考)】
2C187
5C077
【Fターム(参考)】
2C187AC06
2C187AD03
2C187AD04
2C187AD14
2C187AE07
2C187BF08
2C187BG03
2C187BG17
2C187CC04
2C187DB26
5C077LL19
5C077MP07
5C077MP08
5C077PP27
5C077PP28
5C077PP33
5C077PP55
5C077PQ08
5C077TT02
(57)【要約】
【課題】オブジェクトの種類を示す属性を適切に設定した上で、オブジェクトの線幅調整を行う技術を提供すること。
【解決手段】制御部と、画像形成部とを備え、前記制御部は、ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成し、前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行い、線幅調整がされた前記ビットマップデータに基づく画像を、前記画像形成部を介して形成する、画像形成装置。
【選択図】
図2
【特許請求の範囲】
【請求項1】
制御部と、画像形成部とを備え、
前記制御部は、
ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成し、
前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行い、
線幅調整がされた前記ビットマップデータに基づく画像を、前記画像形成部を介して形成する、
画像形成装置。
【請求項2】
前記線幅調整の設定内容は、前記属性に対応して設定可能であることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記制御部は、曲線又は曲線と直線の組み合わせで構成されるオブジェクトの属性を、ベクターグラフィック以外の属性に設定する、請求項1に記載の画像形成装置。
【請求項4】
前記ベクターグラフィック以外の属性は文字であり
前記制御部は、ベクターグラフィックの前記属性が設定されたオブジェクトが線幅調整の対象のオブジェクトである場合、前記文字の前記属性が設定されたオブジェクトを、線幅調整の対象外とする請求項3に記載の画像形成装置。
【請求項5】
曲線又は曲線と直線の組み合わせで構成されるオブジェクトは、ベジェ曲線を描画させるコマンドを用いて描画されることを特徴とする請求項3に記載の画像形成装置。
【請求項6】
前記制御部は、
線幅調整の対象とするオブジェクトの前記属性を選択させる画面を表示し、
ユーザによって選択された前記属性が設定されたオブジェクトを線幅調整の対象とする、
請求項1に記載の画像形成装置。
【請求項7】
前記制御部は、
線幅調整の対象とするオブジェクトを検出するパターンとして用いるマスクパターンと、前記線幅調整の対象とするオブジェクトに対して付加する画素の位置及び付加する画素の色の演算に用いるマスクパターンとを、複数のマスクパターンから選択する画面を表示し、
選択されたマスクパターンを用いて、線幅調整を行う
ことを特徴とする請求項1に記載の画像形成装置。
【請求項8】
前記ベクターグラフィック以外の属性は文字候補であり、
前記制御部は、
前記属性が文字候補であるオブジェクトを表示し、
ユーザの操作に応じて、前記属性が文字候補であるオブジェクトの属性を文字又はベクターグラフィックに変更する
請求項3に記載の画像形成装置。
【請求項9】
ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成し、
前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行う、
画像処理方法。
【請求項10】
コンピュータに、
ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成する機能と、
前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行う機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像形成装置等に関する。
【背景技術】
【0002】
従来より、画像に含まれる特定の図形やオブジェクトを対象に画像処理を行う技術が提案されている。例えば、対象データの中の、基準の画像と一致する画像又は基準の属性情報を有する画像に対して固有の色変換処理を施す技術が提案されている(例えば、特許文献1参照)。また、オブジェクトの属性を画素毎に示す属性ビットマップを生成し、注目画素に隣接する画素の属性が条件に合致した場合、注目画素をエッジの属性に置き換える技術が提案されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-93574号公報
【特許文献2】特開2018-182464号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、例えば、オブジェクトの種類を示す属性を適切に設定した上で、オブジェクトの線幅調整を行う技術を提供することを目的とする。
【0005】
上述した課題を解決するために、本開示の画像形成装置は、制御部と、画像形成部とを備え、前記制御部は、ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成し、前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行い、線幅調整がされた前記ビットマップデータに基づく画像を、前記画像形成部を介して形成することを特徴とする。
【0006】
本開示の画像処理方法は、ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成し、前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行うことを特徴とする。
【0007】
本開示のプログラムは、コンピュータに、ページ記述言語で記述されたデータに含まれるコマンドに基づいて、描画されるオブジェクト毎にオブジェクトの種類を示す属性を設定した中間データを生成する機能と、前記中間データから生成したビットマップデータに対して、前記属性に基づきオブジェクトの線幅調整を行う機能と、を実現させることを特徴とする。
【発明の効果】
【0008】
本開示によれば、オブジェクトの種類を示す属性を適切に設定した上で、オブジェクトの線幅調整を行う技術を提供することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態における画像形成装置の外観斜視図である。
【
図2】第1実施形態における画像形成装置の機能構成を示す図である。
【
図3】第1実施形態におけるマスクパターン情報のデータ構成の例を示す図である。
【
図4】第1実施形態における設定テーブルのデータ構成の例を示す図である。
【
図5】第1実施形態におけるPDLインタプリタ部、画像制御部、印刷制御部の機能構成を示す図である。
【
図6】第1実施形態における中間データの例を示す図である。
【
図7】第1実施形態におけるビットマップデータの例を示す図である。
【
図8】第1実施形態における属性ビットマップデータの例を示す図である。
【
図9】第1実施形態におけるメイン処理の流れを示すフロー図である。
【
図10】第1実施形態における中間データ生成処理の流れを示すフロー図である。
【
図11】第1実施形態におけるオブジェクト検出・画素付加処理の流れを示すフロー図である。
【
図12】第1実施形態におけるオブジェクト検出・画素削除処理の流れを示すフロー図である。
【
図15】第1実施形態における動作例を示す図である。
【
図16】第1実施形態における動作例を示す図である。
【
図17】第1実施形態における動作例を示す図である。
【
図18】第2実施形態における画像形成装置の機能構成を示す図である。
【
図19】第2実施形態におけるメイン処理の流れを示すフロー図である。
【
図20】第2実施形態における動作例を示す図である。
【
図21】第2実施形態における動作例を示す図である。
【
図22】第3実施形態における中間データ生成処理の流れを示すフロー図である。
【
図23】第3実施形態におけるメイン処理の流れを示すフロー図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本開示を実施するための一実施形態について説明する。なお、以下の実施形態は、本開示を説明するための一例であり、特許請求の範囲に記載した発明の技術的範囲が、以下の記載に限定されるものではない。
【0011】
オブジェクト毎に線幅調整が可能なシステムにおいて、ベクターグラフィックのみに線幅調整が行われる場合、原稿データでは文字として識別されているデータを特定のアプリケーションから印刷すると、文字も線幅調整の対象となることがあった。これは、特定のアプリケーションにおいて、文字が文字ではなくベクターグラフィックとして描画されることにより、文字も線幅対象となってしまうことが原因である。
【0012】
例えば、線幅調整として、線幅調整の対象となるオブジェクトの輪郭が検出され、印刷用ビットマップデータに輪郭が付加される処理が実行される。このとき、文字がベクターグラフィックとして描画された場合、印刷システムは、本来は文字のオブジェクトであるオブジェクトを、文字のオブジェクトとして判定できなくなる。その結果、ベクターグラフィックのみに対して線幅調整が行う設定がされても、文字も線幅調整の対象となってしまう。また、文字が線幅調整の対象となることで、文字と図形とが混在する原稿データにおいて文字が太くなり、文字が潰れた画像が印刷される場合があった。
【0013】
上述の課題に鑑み、以下の実施形態では、オブジェクトの種類を示す属性を適切に設定した上で、線幅調整を行う方法の一例について説明する。
【0014】
[1.第1実施形態]
[1.1 機能構成]
第1実施形態は、本開示の画像形成装置を画像形成装置10に適用した実施形態である。画像形成装置10は、例えば、コピー機能、スキャン機能、プリント機能、ファクス機能等を有し、MFP(Multi-Function Printer/Peripheral)とも呼ばれる情報処理装置である。
図1は、画像形成装置10の外観斜視図を模式的に示した図である。
図2は、画像形成装置10の機能構成を示した図である。画像形成装置10は、本開示の画像形成装置を適用した装置である。
【0015】
画像形成装置10は、制御部100、画像形成部110、メモリ120、通信部130、ビデオコントローラ部140、操作表示部インタフェース150、操作表示部155、ストレージインタフェース160、ストレージ165、色判定・圧縮伸張部170、色変換・ハーフトーン処理部180を備えて構成される。
【0016】
制御部100は、画像形成装置10の全体を制御する。制御部100は、メモリ120やストレージ165等の記憶装置に記憶された各種プログラムを読み出して実行することにより各種機能を実現する。制御部100は、例えば、1又は複数の演算装置(CPU(Central Processing Unit))等により構成されてもよい。なお、制御部100は、以下に説明する機能のうち、複数の機能を有するSoC(System on a Chip)として構成されてもよい。
【0017】
制御部100は、メモリ120やストレージ165等の記憶装置に記憶されたプログラムを実行することで、PDLインタプリタ部102、画像制御部104、印刷制御部106として機能する。PDLインタプリタ部102、画像制御部104、印刷制御部106については後述する。
【0018】
画像形成部110は、画像を記録媒体(例えば、記録用紙)に形成する。画像形成部110は、例えば、電子写真方式を利用したレーザプリンタ等の印刷装置により構成されてもよい。画像形成部110は、例えば、
図1の給紙トレイ112から給紙した記録用紙の表面に画像を形成し、記録用紙を
図1の排紙トレイ114から排紙する。
【0019】
メモリ120は、プログラムやデータを記憶する。メモリ120は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)により構成されてもよい。
【0020】
通信部130は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して、他の装置や機器と通信を行う。通信部130は、例えば、有線/無線LANで利用されるNIC(Network Interface Card)等の通信装置や通信モジュールにより構成されてもよい。なお、通信部130は、ネットワークに接続可能なインタフェース(ネットワークI/F)を有してもよい。
【0021】
ビデオコントローラ部140は、画像形成部110から画像データの転送要求が発信されると、所定の同期信号に合わせて、CMYK各色の画像データを、後述する印刷処理部1063へ送信する。ビデオコントローラ部140は、例えば、回路により構成される。
【0022】
操作表示部インタフェース150は、操作表示部155と通信やデータの送受信を行うインタフェースである。操作表示部155は、いわゆる操作パネルであり、画像形成装置10に対する操作の入力を受け付けたり、各種情報を表示したりする。操作表示部155は、表示部156と操作部158とを備えて構成される。表示部156は、各種情報を表示する。表示部156は、例えば、LCD(Liquid crystal display)、有機EL(electro-luminescence)ディスプレイ、マイクロLED(Light Emitting Diode)ディスプレイ等の表示装置により構成されてもよい。操作部158は、画像形成装置10を使用するユーザによる操作指示を受け付ける。操作部158は、キースイッチ(ハードキー)やタッチセンサ等の入力装置により構成されてもよい。タッチセンサにおいて接触(タッチ)による入力を検出する方式は、例えば、抵抗膜方式、赤外線方式、電磁誘導方式、静電容量方式といった、一般的な検出方式であればよい。なお、操作表示部155は、表示部156と、操作部158とが一体に形成されたタッチパネルであってもよい。
【0023】
ストレージインタフェース160は、ストレージ165と通信やデータの送受信を行うインタフェースである。ストレージ165は、プログラムやデータを記憶する。ストレージ165は、例えば、半導体メモリであるSSD(Solid State Drive)や、HDD(Hard Disk Drive)等の記憶装置により構成されてもよい。本実施形態では、ストレージ165は、記憶領域として、マスクパターン情報記憶領域166とデータ記憶領域167とを確保し、さらに、設定テーブル168を記憶する。
【0024】
マスクパターン情報記憶領域166は、後述する線幅調整に用いられるマスクパターンの情報(マスクパターン情報)を記憶する。マスクパターン情報は、例えば、
図3(a)に示すように、マスクパターンを識別するマスクパターンID(例えば、「P001」)と、マスクパターン形状(例えば、「C,R,B」)とを含む。
【0025】
マスクパターン形状は、マスクパターンの形状を示す情報であり、マスクされる画素の位置を示す情報が記憶される。画素の位置を示す情報は、例えば、以下の通りである。
・C:注目画素を意味する。
・T、B、L、R:それぞれ、注目画素の上、下、左、右に隣接する画素を意味する。
・TL、TR、BL、BR:それぞれ、注目画素の左上、右上、左下、右下に隣接する画素を意味する。
【0026】
例えば、マスクパターン形状が「C,R,B」である場合、マスクパターンの具体的な形状は、
図3(b)に示す形状となる。同様に、マスクパターン形状が「C,R,B,RB」である場合、マスクパターンの具体的な形状は、
図3(c)に示す形状となり、マスクパターン形状が「C、T、B、L,R」である場合、マスクパターンの具体的な形状は、
図3(d)に示す形状となる。なお、マスクパターンによってマスクされる画素のうち、注目画素に隣接する画素を隣接画素という。
【0027】
データ記憶領域167は、画像処理の実行時に生成されるデータを記憶する。データ記憶領域167は、例えば、後述する中間データ、ビットマップデータ、属性ビットマップデータを記憶する。
【0028】
設定テーブル168は、画像形成装置10の設定内容を記憶するテーブルである。設定テーブル168は、
図4に示すように、例えば、設定項目名(例えば、「処理内容」)と、当該設定項目名に対する設定内容(例えば、「ベクターグラフィック」)とを対応づけて記憶する。設定テーブル168の設定内容は、予め記憶されてもよいし、ユーザの操作に応じて変更可能であってもよい。
【0029】
本実施形態の設定テーブル168には、後述する線幅調整の設定内容が記憶される。線幅調整の設定内容は以下の通りである。
(1)処理内容
処理内容は、線幅調整の処理の内容を示す。設定内容として、例えば、「輪郭部分に画素を付加」、「輪郭部分の画素を削除」、「処理なし」の何れかが記憶される。
(2)対象属性
対象属性は、線幅調整の対象となるオブジェクトの属性を示す。本実施形態では、属性は、オブジェクトの種類を示す情報であり、オブジェクト毎に「文字」「ベクターグラフィック」「ラスタ」の何れかが設定されるものとする。対象属性の設定内容として、例えば、「ベクターグラフィック」、「文字」、「文字+ベクターグラフィック」等、属性が1以上記憶される。
(3)画素数
画素数は、線幅調整の対象となるオブジェクトの輪郭部分に対して付加又は削除される画素の数を示す。画素数の設定内容として、整数値が記憶される。
(4)オブジェクト検出パターン、位置・色演算パターン
オブジェクト検出パターンは、線幅調整の対象となるオブジェクトの検出に用いるマスクパターンを示す。位置・色演算パターンは、線幅調整の対象となるオブジェクトに対して付加する画素の位置及び付加する画素の色の演算に用いるマスクパターンを示す。オブジェクト検出パターン及び位置・色演算パターンの設定内容として、マスクパターンの形状を特定する情報(例えば、マスクパターンID)が記憶される。
【0030】
図4の例では、線幅調整として、属性が「ベクターグラフィック」のオブジェクトに対して、オブジェクトの輪郭部分に1画素付加する処理を実行することを示す。また、線幅調整の処理において、オブジェクト検出パターンに、マスクパターンIDが「P001」であるマスクパターンが用いられ、位置・色演算パターンに、マスクパターンIDが「P002」であるに対応するマスクパターンが用いられることを示す。
【0031】
なお、線幅調整の設定内容は、対象属性に応じて設定可能であってもよい。例えば、対象属性が「文字」の場合は、処理内容を「処理なし」とし、対象属性が「ベクターグラフィック」の場合は、処理内容を「輪郭部分に画素を付加」とし、対象属性が「ラスタ」の場合は、処理内容を「輪郭部分の画素を削除」とすることが可能であってもよい。また、対象属性毎に、付加又は削除される画素数が異なってもよいし、用いられるマスクパターンが異なってもよい。
【0032】
色判定・圧縮伸張部170は、画像に対する色判定の処理や、圧縮されたビットマップデータや圧縮された属性ビットマップデータを伸張する処理を行う。色変換・ハーフトーン処理部180は、画像に対する色変換処理や、ハーフトーン処理を行う。色判定・圧縮伸張部170や色変換・ハーフトーン処理部180は、例えば、回路により構成される。
【0033】
なお、制御部100、メモリ120、通信部130、ビデオコントローラ部140、操作表示部インタフェース150、ストレージインタフェース160、色判定・圧縮伸張部170、色変換・ハーフトーン処理部180は、画像形成部110の制御を行う機能部であり、プリンタコントローラとも呼ばれる。また、ビデオコントローラ部140、色判定・圧縮伸張部170、色変換・ハーフトーン処理部180の一部又は全ては、制御部100が実行する機能として実現されてもよい。
【0034】
また、画像形成装置10は、通信部130を介して、外部のコンピュータ端末である情報処理装置20から、通信回線であるネットワークNWを介して、印刷データを受信し、当該印刷データに応じた画像を、所定の用紙(記録媒体)上に出力する。なお、ネットワークNWは、例えば、LANである。また、印刷データは、印刷に用いられるデータであり、情報処理装置20で動作するプリンタドライバ等によって、原稿データに基づき生成される。
【0035】
印刷データは、例えば、ページ記述言語(PDL、Page Description Language)で記述されたPDLデータであってもよいし、PDLデータと線幅調整の設定内容とを含むデータであってもよい。PDLデータは、例えば、コマンド(入力描画コマンド)を含む。本実施形態におけるコマンドは、1つのオブジェクトの描画や出力が行われるときに、画像形成装置10によって解釈されるデータである。コマンドには、例えば、描画される図形やパスの座標、描画するテキストのフォント名やフォントサイズといった情報や、図形やパスの描画を実行させる関数等が含まれる。PDLデータには、複数のコマンドが含まれてもよい。また、PDLデータには、コメントやヘッダ等の情報が含まれてもよい。
【0036】
つづいて、
図5を参照して、PDLインタプリタ部102、画像制御部104、印刷制御部106の構成について説明する。画像形成装置10は、受信した印刷データを、PDLインタプリタ部102に出力する。PDLインタプリタ部102は、PDLデータを受け取り、解釈することにより得られる中間データと、印刷用のビットマップデータと、属性ビットマップデータとを生成する。画像制御部104は、PDLインタプリタ部102により生成されたビットマップデータを受け取り、所定の画像処理(色変換処理、ハーフトーン処理等)を行い、画像処理後のビットマップデータを圧縮し、記憶する。印刷制御部106は、記憶されたビットマップデータに基づく画像を、画像形成部110を介して記録用紙に出力(印刷)する。このようにして、PDLデータが印刷されるまでの各種処理が実行される。
【0037】
PDLインタプリタ部102は、入力インタフェース部1020、受信バッファ部1021、コマンド解析部1022、中間データ生成部1023、ビットマップデータ生成部1024及び属性ビットマップデータ生成部1025を有する。
【0038】
入力インタフェース部1020は、印刷データからPDLデータP100を取得し、受信バッファ部1021に出力する。受信バッファ部1021は、PDLデータP100を、一時的に記憶する。PDLデータが一時的に記憶される領域は、受信バッファ部1021に確保されてもよいし、メモリ120やストレージ165に確保されてもよい。
【0039】
コマンド解析部1022は、PDLデータP100に含まれるコマンドを抽出し解析する。中間データ生成部1023は、PDLデータP100に含まれるコマンドに基づき、出力対象ページにおいて描画される各オブジェクトの属性を設定した中間データを生成する。
【0040】
図6は、中間データD100の例を示す図である。中間データは、描画(印刷)されるオブジェクト毎に、属性や、描画に必要な情報(印字位置、フォント、形状等)が対応付けられて構成される。
図6の例では、「オブジェクト1」は、属性=文字であり、印字位置(x,y)、フォント、サイズ、文字コード及び色の情報を有する。同様にして、「オブジェクト2」は、属性=ベクターグラフィック(図形)であり、印字位置(x,y)、形状=円、半径及び色の情報を有する。「オブジェクト3」は、属性=ラスタであり、印字位置(x,y)、イメージの幅と高さ及び画像データを有する。
【0041】
ビットマップデータ生成部1024は、中間データ生成部1023で生成された中間データに基づいて、ビットマップデータ(ビットマップイメージ)を生成する。ビットマップデータ生成部1024で生成されるビットマップデータは、一般的に用いられるデータ形式であることが好ましく、よってRGB形式又はCMYK形式のデータであることが好ましい。例えば、ビットマップデータ生成部1024は、中間データからRGB又はCMYK各色8ビットのビットマップデータを生成する。なお、ビットマップデータには、sRGB、HSV、HLS等の色空間が利用されてもよい。
【0042】
図7は、
図6に示した中間データD100から生成されるビットマップデータD102の例を示す図である。ビットマップデータD102には、オブジェクトとして、文字E102a、ベクターグラフィックE102b、ラスタE102cが含まれる。
【0043】
属性ビットマップデータ生成部1025は、中間データ生成部1023で生成された中間データに基づいて、属性ビットマップデータ(属性ビットマップイメージ)を生成する。属性ビットマップデータは、各画素(ピクセル)がビットマップデータを構成する各画素の位置に対応し、且つ、画素値がその位置に描画されるオブジェクトの属性を示す値となっているデータである。オブジェクトの属性を示す画素値を、属性データともいう。
【0044】
図8(a)は、属性ビットマップのデータ形式を示す表である。
図8(a)に示す例では、描画されるオブジェクトが無い画素には2進数表記で「00」で示される属性データが割り当てられる。同様に、属性が文字であるオブジェクトが描画される画素には「01」が、属性がベクターグラフィックであるオブジェクトが描画される画素には「10」が、属性がラスタであるオブジェクトが描画される画素には「11」が、それぞれ属性データとして割り当てられる。
【0045】
図8(b)は、
図6に示した中間データD100から生成される属性ビットマップデータD104の例を示す図である。
図8(b)において、網点の密度が異なる画素間では、属性データが異なることを示す。
図8(b)に示すように、属性が文字であるオブジェクトが描画される画素群E104aと、属性がベクターグラフィックであるオブジェクトが描画される画素群E104bと、属性がラスタであるオブジェクトが描画される画素群E104cとでは、割り当てられる属性データが異なる。
【0046】
画像制御部104は、オブジェクト検出部1040、画像処理部1041、ビットマップデータ圧縮部1042及び画像記憶処理部1043を有する。
【0047】
オブジェクト検出部1040及び画像処理部1041は、線幅調整の処理を実行する。線幅調整とは、中間データから生成されたビットマップデータに対して、当該ビットマップデータに描画されるオブジェクトの線幅を、当該オブジェクトの属性に基づき変更する画像処理である。線幅調整には、線幅調整の対象となるオブジェクトの輪郭部分に画素を付加する処理と、線幅調整の対象となるオブジェクトの輪郭部分から画素を削除する処理とがある。輪郭部分に画素を付加する処理は、ビットマップデータに対して、線幅調整の対象となるオブジェクトの輪郭部分に隣接して、当該オブジェクトの外側に画素を付加することで、オブジェクトに縁取りを付加する処理(縁取り処理)である。輪郭部分の画素を削除する処理は、ビットマップデータに対して、線幅調整の対象となるオブジェクトの輪郭部分に対応する画素を削除する処理である。
【0048】
オブジェクト検出部1040は、オブジェクトに設定された属性に基づき、線幅調整の対象となるオブジェクトを検出する。画像処理部1041は、ビットマップデータに対して画素の付加又は画素の削除を行う。なお、画像処理部1041は、オブジェクトの輪郭部分の全部(上側部分、下側部分、左側部分、右側部分)に対して画素を付加又は画素を削除してもよいし、上側部分、下側部分、左側部分、右側部分の一部分に対して画素を付加又は画素を削除してもよい。オブジェクト検出部1040及び画像処理部1041が実行する処理については後述する。
【0049】
ビットマップデータ圧縮部1042は、ビットマップデータ及び属性ビットマップデータを、それぞれのビットマップデータに適した圧縮方法で圧縮する。画像記憶処理部1043は、圧縮されたビットマップデータや圧縮された属性ビットマップデータを、データ記憶領域167に記憶する。
【0050】
印刷制御部106は、画像読み出し部1060、ビットマップデータ伸張処理実行部1061、色変換・ハーフトーン処理実行部1062及び印刷処理部1063を有する。
【0051】
画像読み出し部1060は、印刷されるべきページのビットマップデータ及び属性ビットマップデータと、印刷に必要となる各種情報とをストレージ165から読み出す。なお、画像読み出し部1060は、印刷時に、印刷に関する設定をしてもよい。例えば、画像読み出し部1060は、ビデオコントローラ部140に設定された動作モードがカラーモードである場合、画像形成部110に、カラーモードで動作させる信号や情報を送信することで、画像形成部110をカラーモードで動作するように設定してもよい。
【0052】
ビットマップデータ伸張処理実行部1061は、画像読み出し部1060によって読み出された圧縮されたビットマップデータや圧縮された属性ビットマップデータを、色変換・圧縮伸張部170に送信することで個別に伸張する。また、ビットマップデータ伸張処理実行部1061は、入力された画像データによって示される画像がカラーであるかモノクロであるかといった判定(色判定)を行ってもよい。
【0053】
色変換・ハーフトーン処理実行部1062は、ビットマップデータ伸張処理実行部1061によって伸張されたビットマップデータに対する色変換処理やハーフトーン処理を実行する。例えば、色変換・ハーフトーン処理実行部1062は、ビットマップデータ伸張処理実行部1061により伸張されたビットマップデータを、色変換・ハーフトーン処理部180に送信することで、RGB色空間の画像データをCMYK色空間の画像データに変換したり、画像データに対するハーフトーン処理を実行したりする。また、色変換・ハーフトーン処理実行部1062は、色変換処理やハーフトーン処理を実行した後の画像データを、ビデオコントローラ部140に転送する。
【0054】
印刷処理部1063は、印刷処理を実行する。例えば、印刷処理部1063は、印刷処理として、画像形成部110を制御することで、記録用紙に画像を形成して、出力物P102を出力する。
【0055】
なお、本実施形態においては、所定の画像処理が施された画像は、記録用紙に出力されることを例に説明するが、例えば、USB(Universal Serial Bus)メモリに記憶されたり、クラウドサーバに保存されたりしてもよいし、表示装置に表示されてもよい。
【0056】
また、画像形成装置10は、上述した構成に加えて、例えば、原稿の画像を読み取って画像形成装置10に入力するスキャナ装置等が含まれてもよい。スキャナ装置は、例えば、CCD(Charge Coupled Device)やCIS(Contact Image Sensor)等のイメージセンサによって画像を電気信号に変換し、電気信号を量子化及び符号化する装置である。
【0057】
[1.2 処理の流れ]
[1.2.1 メイン処理]
図9は、制御部100が実行する主な処理(メイン処理)の流れを示すフロー図である。はじめに、制御部100は、通信部130を介して、他の装置(例えば、情報処理装置20)から印刷データを受信する(ステップS100)。このとき、入力インタフェース部1020により印刷データからPDLデータが取得され、当該PDLデータが、受信バッファ部1021により記憶される。
【0058】
つづいて、制御部100は、印刷データから1ページ分のPDLデータを取得し(ステップS102)、中間データ生成処理を実行する(ステップS104)。中間データ生成処理は、ステップS102において取得されたPDLデータを解析することにより、描画されるオブジェクトの属性を判定し、判定したオブジェクトの属性を設定した中間データを生成する処理である。中間データ生成処理については後述する。
【0059】
つづいて、ビットマップデータ生成部1024は、ステップS104において生成された中間データに基づきビットマップデータを生成する(ステップS106)。例えば、ビットマップデータ生成部1024は、画像を形成する用紙サイズの大きさに対応し、全ての画素が白の画素で構成されたビットマップデータ(白紙のビットマップデータ)を生成する。また、ビットマップデータ生成部1024は、ステップS104において生成された中間データを参照し、オブジェクト毎に、ビットマップデータに対してオブジェクトのレンダリングを行う。
【0060】
つづいて、属性ビットマップデータ生成部1025は、ステップS104において生成された中間データに基づき属性ビットマップデータを生成する(ステップS108)。例えば、属性ビットマップデータ生成部1025は、ステップS108の処理と同様に、オブジェクトをレンダリングしたビットマップデータを生成する。このとき、属性ビットマップデータ生成部1025は、オブジェクトが描画される画素には、描画されるオブジェクトの属性に対応する属性データを設定する。また、属性ビットマップデータ生成部1025は、オブジェクトが描画されない画素には、「オブジェクト無し」に対応する属性データを設定する。
【0061】
つづいて、制御部100は、線幅調整の処理内容が、輪郭部分に画素を付加する処理である場合、オブジェクト検出・画素付加処理を実行する(ステップS110;Yes→ステップS112)。一方、制御部100は、処理内容が輪郭部分に画素を付加する処理ではない場合、処理内容が輪郭部分の画素を削除する処理であれば、オブジェクト検出・画素削除処理を実行する(ステップS110;No→ステップS114;Yes→ステップS116)。例えば、制御部100は、設定テーブル168に記憶された処理内容の設定内容を参照することで、線幅調整の処理内容を判定する。なお、オブジェクト検出・画素付加処理及びオブジェクト検出・画素削除処理については後述する。また、制御部100は、処理内容が輪郭部分の画素を削除する処理ではない場合、ステップS116の処理を省略する(ステップS114;No)。
【0062】
なお、ビットマップデータ圧縮部1042は、線幅調整が実行された場合は、線幅調整が実行された後のビットマップデータ及び属性ビットマップデータを圧縮してもよい。また、ビットマップデータ圧縮部1042は、線幅調整が実行されなかった場合は、ステップS106において生成されたビットマップデータ及びステップS108において生成された属性ビットマップデータを圧縮してもよい。また、画像記憶処理部1043は、圧縮されたビットマップデータや圧縮された属性ビットマップデータを、データ記憶領域167に記憶してもよい。
【0063】
つづいて、制御部100は、印刷処理を実行する(ステップS118)。このとき、制御部100は、線幅調整が行われている場合、線幅調整がされたビットマップデータに基づく画像を、画像形成部110を介して記録媒体に形成する。
【0064】
例えば、画像読み出し部1060は、データ記憶領域167に記憶されたビットマップデータ及び属性ビットマップデータを読み出す。このとき、ビットマップデータ伸張処理実行部1061は、画像読み出し部1060によって読み出されたビットマップデータや属性ビットマップデータを伸張してもよい。また、色変換・ハーフトーン処理実行部1062は、色変換処理やハーフトーン処理を実行してもよい。これにより、印刷処理部1063は、画像読み出し部1060により読み出されたビットマップデータに基づく画像を、画像形成部110を介して記録媒体に形成することができる。
【0065】
また、制御部100は、ステップS100において受信した印刷データに含まれる全ページのPDLデータの解析が終了した場合は、
図9に示す処理を終了する(ステップS120;Yes)。一方、制御部100は、全ページのPDLデータの解析が終了していない場合は、ステップS102に戻る(ステップS120;No→ステップS102)。これにより、制御部100は、複数のページを構成する印刷データを受信した場合であっても、ページ毎に、印刷を実行することができる。
【0066】
[1.2.2 中間データ生成処理]
図10は、中間データ生成処理の流れを示すフロー図である。コマンド解析部1022は、
図9のステップS102により取得された1ページ分のPDLデータから、1のコマンドを取得する(ステップS130)。なお、以下の説明では、ステップS130において取得されたPDLデータによって描画されるオブジェクトを、対象オブジェクトと記載する。
【0067】
つづいて、コマンド解析部1022は、ステップS130において取得したコマンドを解析する(ステップS132)。例えば、コマンド解析部1022は、コマンドに含まれる情報や関数に応じて、当該コマンドにより描画されるオブジェクトが、テキスト(文字)であるのか、ラスタであるのか、ベクターグラフィックであるのかといったことを判定する。
【0068】
なお、ベクターグラフィックは、座標などの数値データを元にして演算することで描画される、パスや円や矩形といった図形である。パスは、直線や曲線といった線である。曲線は、ベジェ曲線、Bスプライン曲線、円弧の一部等あってもよいが、本実施形態では、曲線はベジェ曲線であるとする。
【0069】
コマンド解析部1022は、ステップS130において取得したコマンドがテキスト(文字)を描画させるテキスト描画コマンドである場合、対象オブジェクトの属性を「文字」にセットする(ステップS134;Yes→ステップS136)。対象オブジェクトの属性をセットするとは、ステップS130において取得したコマンドと、対象オブジェクトの属性とを対応付けることをいう。例えば、コマンド解析部1022は、ステップS130において取得したコマンドと対象オブジェクトの属性とを対応付けて、一時的にストレージ165に記憶する。なお、セットされた属性の情報は、中間データを生成する処理において参照された後、削除されてもよい。
【0070】
コマンド解析部1022は、ステップS130において取得したコマンドがテキスト描画コマンドではない場合、当該コマンドが、ラスタを描画させるラスタ描画コマンドであるか否かを判定する(ステップS134;No→ステップS138)。コマンド解析部1022は、ステップS130において取得したコマンドがラスタ描画コマンドである場合、対象オブジェクトの属性を「ラスタ」にセットする(ステップS138;Yes→ステップS140)。
【0071】
コマンド解析部1022は、ステップS130において取得したコマンドがラスタ描画コマンドではない場合、当該コマンドが、ベクターグラフィックを描画させるベクタ描画コマンドであるか否かを判定する(ステップS138;No→ステップS142)。
【0072】
コマンド解析部1022は、ステップS130において取得したコマンドがベクタ描画コマンドである場合、当該ベクタ描画コマンドが、パスを描画させるコマンドであるか否かを判定する(ステップS142;Yes→ステップS144)。また、コマンド解析部1022は、ベクタ描画コマンドがパスを描画させるコマンドである場合、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドであるか否かを判定する(ステップS144;Yes→ステップS146)。ここでは、コマンド解析部1022は、パスを描画させるコマンドが実行されたとき、ベジェ曲線が1以上描画される場合、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドであると判定する。
【0073】
具体的には、コマンド解析部1022は、以下の場合に、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドであると判定する。
・パスを描画させるコマンドにより描画されるパスが全てベジェ曲線である場合
・パスを描画させるコマンドにより描画されるパスがベジェ曲線及び直線である場合
【0074】
コマンド解析部1022は、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドである場合、対象オブジェクトの属性を「文字」にセットする(ステップS146;Yes→ステップS148)。すなわち、コマンド解析部1022は、ベジェ曲線を描画させるコマンドを用いて描画されるオブジェクトの属性を「文字」にセットする。これにより、コマンド解析部1022は、ベクターグラフィックを描画するベクタ描画コマンドによって描画されるオブジェクトであって、ベジェ曲線又はベジェ曲線と直線の組み合わせで構成されるオブジェクトの属性を「文字」にセットすることができる。
【0075】
一方、コマンド解析部1022は、パスを描画させるコマンドにより描画されるパスが全て直線である場合、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドではないと判定する。コマンド解析部1022は、パスを描画させるコマンドが、ベジェ曲線を描画させるコマンドではない場合、対象オブジェクトの属性を「ベクターグラフィック」にセットする(ステップS146;No→ステップS150)。また、コマンド解析部1022は、ステップS144において、ベクタ描画コマンドがパスを描画させるコマンドではないと判定した場合も、対象オブジェクトの属性を「ベクターグラフィック」にセットする(ステップS144;No→ステップS150)。これにより、コマンド解析部1022は、ベクターグラフィックを描画するベクタ描画コマンドによって描画されるオブジェクトであって、ベジェ曲線又はベジェ曲線と直線の組み合わせで構成されるオブジェクト以外のオブジェクトの属性を、「ベクターグラフィック」にセットすることができる。
【0076】
なお、コマンド解析部1022は、ステップS130において取得したコマンドがベクタ描画コマンドではない場合、ステップS144からステップS150までの処理を省略する(ステップS142;No)。この場合、コマンド解析部1022は、対象オブジェクトの属性をセットしない。
【0077】
つづいて、コマンド解析部1022は、1ページ分のPDLデータの解析が終了したか否か、すなわち、1ページ分のPDLデータに含まれるコマンドを全て取得したか否かを判定する(ステップS152)。1ページ分のPDLデータの解析が終了していない場合は、コマンド解析部1022は、ステップS130に戻る(ステップS152;No→ステップS130)。この場合、コマンド解析部1022は、ステップS130において、未取得のコマンドを取得する。
【0078】
一方、中間データ生成部1023は、1ページ分のPDLデータの解析が終了した場合、中間データを生成する(ステップS152;Yes→ステップS154)。例えば、中間データ生成部1023は、
図9のステップS102により取得された1ページ分のPDLデータにより描画されるオブジェクト毎に、コマンド解析部1022によってセットされた属性を設定した中間データを生成する。さらに、中間データ生成部1023は、生成した中間データに対して、オブジェクト毎に、オブジェクトの描画に必要な情報を含める。これにより、中間データ生成部1023は、ベクタ描画コマンドによって描画されるオブジェクトであって、ベジェ曲線又はベジェ曲線と直線との組み合わせで構成されるオブジェクトの属性を、ベクターグラフィックではなく、文字に設定することができる。一方で、中間データ生成部1023は、ベクタ描画コマンドによって描画されるオブジェクトのうち、ベジェ曲線又はベジェ曲線と直線の組み合わせで構成されるオブジェクト以外のオブジェクトの属性を、ベクターグラフィックに設定することができる。
【0079】
[1.2.3 オブジェクト検出・画素付加処理]
図11は、オブジェクト検出・画素付加処理の流れを示すフロー図である。オブジェクト検出・画素付加処理は、印刷対象となるページ毎に実行される。なお、以下の説明では、ビットマップデータはRGB形式のデータであるとして説明する。
【0080】
はじめに、オブジェクト検出部1040は、
図9のステップS108において生成された属性ビットマップデータから、注目画素を選択し(ステップS160)、オブジェクト検出パターンとして設定されたマスクパターンに、属性データをセットする(ステップS162)。ステップS162の処理は、属性ビットマップデータを、注目画素を基準としてオブジェクト検出パターンとして設定されたマスクパターンによりマスクする処理に対応する。
【0081】
つづいて、オブジェクト検出部1040は、ステップS162においてセットした属性データの中に、対象属性に対応する属性データがあるか否かを判定する(ステップS164)。対象属性に対応する属性データがある場合は、属性ビットマップデータにおいてマスクした位置に、対象属性として指定された属性のオブジェクトが含まれることに対応する。このように、オブジェクト検出部1040は、属性ビットマップデータに対してマスクパターンを用いてパターンマッチングを行うことで、各画素に描画されるオブジェクトの属性が対象属性と一致するか否かを判定し、一致した場合に線幅調整の対象となるオブジェクトを検出する。
【0082】
画像処理部1041は、対象属性に対応する属性データがある場合、位置・色演算パターンとして設定されたマスクパターンに、
図9のステップS106において生成されたビットマップデータの画素値をセットする(ステップS164;Yes→ステップS166)。このとき、画像処理部1041は、ビットマップデータを構成する画素のうち、ステップS162において選択した位置に対応する画素を、位置・色演算パターンとして設定されたマスクパターンにおける注目画素とする。ステップS166の処理は、ビットマップデータを、注目画素の位置で、位置・色演算パターンとして設定されたマスクパターンによりマスクすることに対応する。
【0083】
つづいて、画像処理部1041は、ステップS166においてセットした画素値に基づき、隣接画素の画素値の最小値を算出する(ステップS168)。また、画像処理部1041は、ステップS166においてセットした画素値に基づき、当該注目画素の画素値と、隣接画素の画素値の最小値とを比較する(ステップS170)。画像処理部1041は、注目画素の画素値が、隣接画素の画素値の最小値よりも大きい場合、
図9のステップS106において生成されたビットマップデータにおける注目画素の画素値に、隣接画素の画素値の最小値をセットする(ステップS170;Yes→ステップS172)。これにより、ビットマップデータが更新される。
【0084】
このように、画像処理部1041は、ステップS168からステップS172までの処理を実行することで、位置・色演算パターンとして設定されたマスクパターンにおける隣接画素群の画素値を、追加する画素(縁取り)の色の演算に使用することができる。具体的には、画像処理部1041は、注目画素の画素値と隣接画素群の画素値とを比較し、注目画素の画素値が隣接画素群の画素値よりも大きい場合、注目画素の位置を、画素(縁取り)を追加する位置であると決定することができる。この場合、隣接画素は、線幅調整の対象となるオブジェクトのエッジに対応する。すなわち、画像処理部1041は、注目画素の画素値と隣接画素群の画素値とを比較することで、オブジェクトのエッジを検出し、画素を付加する位置を特定することができる。また、画像処理部1041は、注目画素の位置に追加する画素の色を、周辺画素群の中で、画素値が最小値である画素値の色とすることができる。
【0085】
なお、画素値の最小値の算出方法は、色空間に応じて異なってもよい。例えば、画像処理部1041は、ステップS168において、隣接画素毎に、R、G、Bの色成分の値の合計値を算出し、合計値が最小となる画素値を、隣接画素の画素値の最小値としてもよい。この場合、画像処理部1041は、ステップS170において、注目画素の画素値の各色成分の値の合計値と、隣接画素の画素値の最小値における各色成分の値の合計値とを比較すればよい。また、印刷データがモノクロデータであり、画素値が明度値又は輝度値を示す場合、画像処理部1041は、明度値又は輝度値に応じて、隣接画素の画素値の最小値を算出したり、注目画素の画素値と隣接画素の画素値の最小値とを比較したりすればよい。
【0086】
つづいて、画像処理部1041は、ステップS162においてセットした属性データを参照し、注目画素の属性データが対象属性に対応する属性データであるか否かを判定する(ステップS174)。画像処理部1041は、注目画素の属性データが対象属性に対応する属性データではない場合、
図9のステップS108において生成された属性ビットマップデータにおける注目画素の属性データに、対象属性に対応する属性データをセットする(ステップS174;No→ステップS176)。これにより、属性ビットマップデータが更新される。なお、対象属性が複数ある場合は、例えば、ステップS162においてセットされた周辺画素の属性データのうち、最も多くセットされた属性データが、注目画素にセットされればよい。
【0087】
つづいて、オブジェクト検出部1040は、ステップS160において選択した注目画素が、最後のデータ(注目画素として選択可能な最後の画素)であるか否かを判定する(ステップS178)。注目画素として選択可能な画素とは、当該画素を注目画素として選択した場合に、隣接画素の全てが、属性ビットマップデータの何れかの画素に対応する画素である。オブジェクト検出部1040は、注目画素が最後のデータでなければ、ステップS160に戻る(ステップS178;No→ステップS160)。なお、オブジェクト検出部1040は、ステップS160においては、それまでに注目画素として選択していない画素の中から、注目画素を選択する。例えば、オブジェクト検出部1040は、注目画素として選択可能な画素を、属性ビットマップの左上から右下まで順に選択してもよい。これにより、オブジェクト検出部1040は、マスクパターンを属性ビットマップデータ全面に走査することができ、線幅調整の対象となるオブジェクトを検出することができる。一方、制御部100は、注目画素が、最後のデータである場合、
図11に示す処理を終了する(ステップS178;Yes)。
【0088】
なお、制御部100は、ステップS162においてセットされた属性データの中に、対象属性に対応する属性データがない場合は、ステップS166からステップS176までの処理を省略する(ステップS164;No)。これにより、制御部100は、対象属性とは異なる属性が設定されたオブジェクトを検出しないことで、対象属性とは異なる属性が設定されたオブジェクトを、線幅調整の対象外とする(除外する)ことができる。
【0089】
つまり、制御部100は、オブジェクト検出部1040により、オブジェクトの属性に基づいて線幅調整の対象となるオブジェクトを検出し、画像処理部1041によりビットマップデータに対して画素を付加することで、線幅調整を行う。ここで、中間データにおいて、ベジェ曲線又はベジェ曲線と直線を組み合わせて構成されるオブジェクトは、属性に「文字」が設定されている。そのため、属性ビットマップデータにおいて、文字のオブジェクトが描画される画素は、文字に対応する属性データが設定されている。例えば、対象属性がベクターグラフィックである場合において、属性が文字であるオブジェクトの付近もしくは内部の画素が注目画素として選択された場合、オブジェクト検出部1040によって、ステップS164において、対象属性が無いと判定される。つまり、オブジェクト検出部1040は、対象属性がベクターグラフィックである場合、属性が文字であるオブジェクトを検出しない。これにより、制御部100は、ステップS166からステップS176までの処理を省略する。この結果、制御部100は、ベクターグラフィックの属性が設定されたオブジェクトが線幅調整の対象のオブジェクトである場合、文字の属性が設定されたオブジェクトを線幅調整の対象外とすることができる。
【0090】
また、制御部100は、注目画素の画素値が隣接画素の画素値の最小値以下の場合、ステップS172からステップS176までの処理を省略する(ステップS170;No)。また、制御部100は、注目画素の属性データが対象属性に対応する属性データである場合は、ステップS176の処理を省略する(ステップS174;Yes)。
【0091】
なお、制御部100は、
図11に示された処理を1回行うことで、線幅調整の対象となるオブジェクトの属性の輪郭部分に、1画素付加できる。そのため、制御部100は、付加する画素数が2以上であれば、
図11に示された処理を、画素数の値だけ繰り返し実行すればよい。
【0092】
また、オブジェクト検出部1040は、ステップS164において、注目画素が「オブジェクト無し」の属性データで、隣接画素の何れか1画素が対象属性に対応する属性データであるか否かを判定してもよい。注目画素が「オブジェクト無し」の属性データで、隣接画素の何れか1画素が対象属性に対応する属性データである場合、隣接画素が線幅調整の対象となるオブジェクトの輪郭部分(エッジ)であり、注目画素が画素を付加する位置であることを示す。このようにして、オブジェクト検出部1040は、属性ビットマップデータに対してマスクパターンを用いてパターンマッチングを行うことで、線幅調整の対象となるオブジェクト及び当該オブジェクトの輪郭部分を検出することができる。また、この場合、画像処理部1041は、線幅調整の対象となるオブジェクトの輪郭部分が検出された場合に、ステップS166以降の処理を実行する。
【0093】
[1.2.4 オブジェクト検出・画素削除処理]
図12は、オブジェクト検出・画素削除処理の流れを示すフロー図である。はじめに、制御部100は、
図9のステップS108において生成された属性ビットマップデータから、注目画素を選択し(ステップS180)、オブジェクト検出パターンとして設定されたマスクパターンに、属性データをセットする(ステップS182)。ステップS180及びステップS182の処理は、
図11のステップS160及びステップS162の処理と同様の処理である。
【0094】
つづいて、オブジェクト検出部1040は、ステップS182においてセットした属性データにおいて、注目画素の属性データが対象属性に対応する属性データであるか否かを判定する(ステップS184)。また、オブジェクト検出部1040は、注目画素の属性データが対象属性に対応する属性データである場合、隣接画素の何れかの属性データが、「オブジェクト無し」の属性データであるか否かを判定する(ステップS184;Yes→ステップS186)。ここで、注画画素の属性データが対象属性に対応する属性データであり、隣接画素の属性データが「オブジェクト無し」の属性データである場合は、注目画素が線幅調整の対象となるオブジェクトの輪郭部分(エッジ)であることを示す。すなわち、オブジェクト検出部1040は、属性ビットマップデータに対してマスクパターンを用いてパターンマッチングを行うことで、線幅調整の対象となるオブジェクト及び当該オブジェクトの輪郭部分を検出することができる。
【0095】
制御部100は、隣接画素の何れかの属性データが、オブジェクト無しの属性データである場合、注目画素を削除候補の画素とし、当該削除候補の画素の位置を、ストレージ165やメモリ120に、一時的に記憶する(ステップS188)。なお、制御部100は、注目画素の属性データが対象属性に対応する属性データではない場合(ステップS184;No)又は隣接画素の属性データが全て「オブジェクト無し」の属性データではない場合(ステップS186;No)、ステップS188の処理を省略する。
【0096】
つづいて、制御部100は、最後のデータであるか否かを判定する(ステップS190)。ステップS190の処理は、
図11のステップS178と同様の処理である。オブジェクト検出部1040は、最後のデータでない場合は、ステップS180に戻り、属性ビットマップデータ内の画素のうち、注目画素として選択されていない画素を注目画素として選択する(ステップS190;No→ステップS180)。
【0097】
一方、画像処理部1041は、最後のデータである場合、
図9のステップS106において生成されたビットマップデータに対して、削除候補の画素の位置に対応する画素を、白画素に変更する(ステップS190;Yes→ステップS192)。つまり、画像処理部1041は、削除候補の位置の画素が、印刷時に出力されないようにする。これにより、ビットマップデータが更新される。また、画像処理部1041は、
図9のステップS108において生成された属性ビットマップデータに対して、削除候補の画素の位置に対応する画素の属性データを「オブジェクト無し」に対応する属性データに変更する(ステップS194)。これにより、属性ビットマップデータが更新される。
【0098】
ここで、
図11の処理と同様に、
図12に示す処理が実行される前に生成される中間データにおいて、ベジェ曲線のみにより構成されるオブジェクト及び直線とベジェ曲線とを組み合わせて構成されるオブジェクトの属性は「文字」となっている。そのため、対象属性がベクターグラフィックである場合に、文字と判定されたオブジェクトの画素が注目画素として選択されても、ステップS184において、注目画素の属性データが対象属性に対応する属性データではないと判定される。この結果、属性が「文字」であるオブジェクトの画素は、削除候補の画素とはならず、線幅調整の処理の対象外となる。
【0099】
なお、制御部100は、
図12に示された処理を1回行うことで、線幅調整の対象となるオブジェクトの属性の輪郭部分から、1画素削除できる。そのため、制御部100は、付加する画素数が2以上であれば、
図12に示された処理を、画素数の値だけ繰り返し実行すればよい。
【0100】
[1.3 動作例]
図13は及び
図14は、コマンドの例を示す図である。
図13(a)は、ベジェ曲線を描画させるコマンドD110の例を示す図である。コマンドD110には、ベジェ曲線の座標等を示す情報C110や、パスを描画する関数C112が含まれる。また、
図13(b)は、ベジェ曲線と直線とを描画させるコマンドD120の例を示す図である。コマンドD120は、ベジェ曲線の座標等を示す情報C120や、直線の端点の座標を示す情報C122や、パスを描画する関数C124が含まれる。コマンドD110により描画されるオブジェクトの属性やコマンドD120により描画されるオブジェクトの属性は、通常は「ベクターグラフィック」となる。しかし、画像形成装置10は、コマンドD110により描画されるオブジェクトの属性やコマンドD120により描画されるオブジェクトの属性を「文字」とする。
【0101】
図14は、矩形を描画させるコマンドD130の例を示す図である。コマンドD130には、矩形を描画する関数C130が含まれる。したがって、コマンドD130によって描画されるオブジェクトは、ベジェ曲線のみにより構成されるオブジェクトでもなければ、ベジェ曲線と直線を組み合わせて構成されるオブジェクトでもない。この場合、画像形成装置10は、当該オブジェクトの属性を「ベクターグラフィック」とする。
【0102】
図15及び
図16は、画素を付加する処理の動作例を示す図である。
図15(a)及び
図16(a)は、オブジェクト検出パターンとして用いられるマスクパターンを示す。オブジェクト検出パターンのマスクパターンにおいて、注目画素をC_TAG、注目画素の右に隣接する画素をR_TAG、注目画素の下に隣接する画素をB_TAG、注目画素の上に隣接する画素をT_TAG、注目画素の左に隣接する画素をL_TAGとする。
図15(b)及び
図16(b)は、位置・色演算パターンとして用いられるマスクパターンを示す。位置・色演算パターンのマスクパターンにおいて、注目画素をC_PIX、注目画素の右に隣接する画素をR_PIX、注目画素の下に隣接する画素をB_PIX、注目画素の斜め右下に隣接する画素をRB_PIX、注目画素の上に隣接する画素をT_PIX、注目画素の左に隣接する画素をL_PIXとする。
【0103】
図15(c)及び
図16(c)は、属性ビットマップデータの例である。
図15(d)から
図15(f)及び
図16(d)から
図16(f)は、ビットマップデータの例である。
図15(c)から
図15(f)及び
図16(c)から
図16(f)において、点線により分割された矩形は画素を示し、網点が描画された画素はベクターグラフィックが描画される画素を示す。属性ビットマップデータの画素に記載された値は属性データであり、「0」は「オブジェクト無し」を、「1」は「ベクターグラフィック」を示す。また、ビットマップデータの画素に記載された値は明度値を示し、明度値が0である画素は、明度が最も低い黒画素であり、明度値が255である画素は、明度が最も高い白画素であることを示す。以下、対象属性がベクターグラフィックである場合について説明する。
【0104】
図15(c)は、属性ビットマップデータD150から、注目画素として画素P150及び画素P151が選択され、当該属性ビットマップデータD150に
図15(a)に示すオブジェクト検出パターンのマスクパターンを重ねた場合を模式的に示す図である。
【0105】
画素P150が注目画素である場合、C_TAG及びR_TAGには「0」が、B_TAGには「1」がセットされる。画素P151が注目画素である場合、C_TAG及びB_TAGには「0」が、R_TAGには「1」がセットされる。注目画素として画素P150が選択された場合も、画素P151が選択された場合も、マスクパターンに対象属性に対応する属性データである「1」がセットされている。このため、画素P150及び画素P151において、線幅調整の対象となるオブジェクトが検出される。
【0106】
図15(d)は、ビットマップデータD152に対して、注目画素である画素P150に対応する位置の画素P152と、注目画素である画素P151に対応する位置の画素P153とに、それぞれ位置・色演算パターンのマスクパターンを重ねた場合を模式的に示す図である。
図15(d)に示すように、画素P152が注目画素である場合、C_PIX及びR_PIXには「255」が、B_PIX及びBR_PIXには「0」がセットされる。同様に、画素P153が注目画素である場合、C_PIX及びB_PIXには「255」が、R_PIX及びBR_PIXには「0」がセットされる。
【0107】
図15(d)において、注目画素の画素P152の画素値である255は、隣接画素の最小値である0よりも大きいため、画素P152の画素値は、
図15(e)の画素P152に示すように、隣接画素の最小値である0に置き換わる。同様に、
図15(d)において、注目画素の画素P153の画素値である255は、隣接画素の最小値である0よりも大きいため、画素P153の画素値は、
図15(e)の画素P153に示すように、隣接画素の最小値である0に置き換わる。注目画素の画素値が、小さい値(隣接画素の画素値の最小値)に置き換わることで、線幅調整の対象のオブジェクトの周囲に濃度が濃い画素が多くなり、結果として当該オブジェクトの線幅が膨張する。また、
図15(c)に示すように、画素P150及び画素P151が注目画素として選択されたとき、C_TAGは「0」であり、対象属性に対応する「1」ではない。そのため、属性ビットマップデータの画素P150及び画素P151の属性データは「1」に置き換わる。
【0108】
図15(f)は、選択可能な全ての画素が注目画素として選択された後におけるビットマップデータを示す。
図15(f)に示すように、線幅調整の対象のオブジェクトの輪郭部分の一部(上側部分及び左側部分)に、画素が付加される。
【0109】
図16は、
図15に示した動作例から、オブジェクト検出パターンのマスクパターン及び位置・色演算パターンのマスクパターンを変えた場合の動作例を示す図である。
【0110】
図16(c)は、属性ビットマップデータD160から、注目画素として画素P160から画素P163が選択され、属性ビットマップデータD160に
図16(a)に示したオブジェクト検出パターンのマスクパターンを重ねた場合を模式的に示す図である。例えば、画素P160が注目画素として選択された場合、C_TAG、T_TAG、R_TAG、L_TAGには「0」が、B_TAGには「1」がセットされる。画素P161、画素P162、画素P163が注目画素として選択された場合、
図16(c)に示すように、属性データがセットされる。
【0111】
図16(d)は、ビットマップデータD162に対して、注目画素である画素P160に対応する位置の画素P164と、注目画素である画素P161に対応する位置の画素P165と、注目画素である画素P162に対応する位置の画素P166と、注目画素である画素P163に対応する位置の画素P167とに、それぞれ、
図16(b)に示した位置・色演算パターンのマスクパターンを重ねた場合を模式的に示す図である。例えば、画素P164が注目画素である場合、C_PIX、T_PIX、R_PIX、L_PIXには「255」が、B_PIXには「0」がセットされる。画素P165、画素P166、画素P167が注目画素として選択された場合、
図16(d)に示すように、画素値がセットされる。
【0112】
図16(d)において、注目画素の画素P164、画素P165、画素P166、画素P167の画素値である「255」は、何れも隣接画素の画素値の最小値である「0」よりも大きい。そのため、
図16(e)に示すように、画素P164、画素P165、画素P166、画素P167の画素値は隣接画素の最小値である0に置き換わる。なお、属性ビットマップデータの画素P160、画素P161、画素P162、画素P163の属性データも「1」に置き換わる。
【0113】
図16(f)は、選択可能な全ての画素が注目画素として選択された後におけるビットマップデータを示す。
図16(f)に示すように、線幅調整の対象のオブジェクトの輪郭部分の全部に、画素が付加される。
【0114】
図17は、線幅調整の画像処理の結果を示す図である。
図17(a)は、線幅調整を行わない場合に印刷される画像を示す。ここで、
図17(a)に示す画像に含まれるオブジェクトは、全てベクタ描画コマンドにより描画されるベクターグラフィックとする。
【0115】
ここで、画像形成装置10は、ベクターグラフィックのオブジェクトのうち、ベジェ曲線又は直線とベジェ曲線の組み合わせで構成されるオブジェクトの属性を文字とする。そのため、画像形成装置10、
図17(a)における文字のオブジェクトの属性を「文字」とし、表の罫線のオブジェクトの属性を「ベクターグラフィック」とする。
【0116】
図17(b)は、対象属性が、文字及びベクターグラフィックである場合に印刷される画像を示す。
図17(b)に示すように、文字及びベクターグラフィック(表の罫線部分)に縁取りの画素が付加される。
図17(c)は、対象属性が、ベクターグラフィックのみである場合に印刷される画像を示す。
図17(c)に示すように、ベクターグラフィック(表の罫線部分)に縁取りの画素が付加される。一方、文字は線幅調整の対象外となり、文字に対する線幅調整は行われない。
【0117】
既に説明したように、特定のアプリケーションでは、文字のオブジェクトがベクターグラフィックとして描画されることがある。この場合、従来技術では、コマンドからオブジェクトの属性を推測されたり、属性が変更されたりすることなく、文字のオブジェクトもベクターグラフィックとして扱われる。このため、線幅調整の対象のオブジェクトをベクターグラフィックに限った場合でも、
図17(b)に示すように、文字と罫線との両方が太くなってしまう。この場合、特に小さい文字は、線幅調整により、潰れてしまうことがある。これに対して、画像形成装置10は、文字がベクターグラフィックで描画された場合、当該文字のオブジェクトの属性を、ベクターグラフィックではなく、文字に変更する。これにより、線幅調整の対象のオブジェクトがベクターグラフィックである場合であっても、本実施形態の画像形成装置は、文字を線幅調整の対象外とした上で、線幅調整を行い、
図17(c)に示す画像を印刷することができる。
【0118】
なお、上述した説明は処理の一例であって、ベジェ曲線又は直線とベジェ曲線を組み合わせて構成されるオブジェクトの属性を、ベクターグラフィック以外の属性とした上で、所定の画像処理を実行するものであれば、処理の一部を変更してもよい。
【0119】
例えば、線幅調整の処理に関する設定内容は、1つ記憶されていてもよいし、複数記憶されていてもよい。複数記憶されている場合は、ユーザ設定に対応づけて記憶され、画像形成装置10を使用するユーザに対応するユーザ設定に応じて適切な設定内容が読み出されてもよい。また、線幅調整の処理に関する設定内容は、印刷データに含まれてもよいし、他の装置から、印刷データと共に送信されてもよい。この場合、制御部100は、印刷データに含まれる設定内容又は印刷データと共に送信された設定内容に基づき、線幅調整の処理を実行すればよい。
【0120】
また、上述した説明では、ベジェ曲線又は直線とベジェ曲線を組み合わせて構成されるオブジェクトの属性を「文字」としたが、「文字候補」といった、文字に準じた属性としてもよい。すなわち、ベクターグラフィックのうち、曲線又は曲線と直線を組み合わせて構成されるオブジェクトは、ベクターグラフィック以外の属性にすればよい。このようにすることで、画像形成装置10は、印刷データに属性が文字であるオブジェクトが含まれる場合、属性が文字であるオブジェクトと、ベジェ曲線又はベジェ曲線と直線を組み合わせて構成される、属性が文字候補であるオブジェクトとを区別することが可能となる。この場合、画像形成装置10は、属性が文字であるオブジェクトと、属性が文字候補であるオブジェクトとで、実行する画像処理を異ならせてもよい。
【0121】
また、上述した説明では、ビットマップデータはRGB形式のデータであるとして説明したが、ビットマップデータはRGB形式以外の形式のデータであってもよい。この場合、画像処理部1041は、
図11のオブジェクト検出・画素付加処理において、注目画素の画素値に、隣接画素の画素値の中で、出力時に最も濃度が高くなる画素の画素値をセットする処理を実行すればよい。例えば、ビットマップデータがCMYK形式のデータである場合、画素値が大きいほど、出力時の濃度が高くなる。そのため、
図11のステップS160において、画像処理部1041は、隣接画素の画素値の最大値を算出する。また、
図11のステップS164において、画像処理部1041は、注目画素の画素値が、隣接画素値の最大値よりも小さい場合、注目画素の画素値に、隣接画素の画素値の最大値をセットする。これにより、画像処理部1041は、注目画素の画素値が隣接画素の画素値の最大値よりも小さい場合、注目画素の画素値を隣接画素の画素値の最大値をセットし、印刷時の濃度を高くする。
【0122】
また、ラスタのオブジェクトは、
図8の画素群E104cに示すように、ラスタのオブジェクトが描画される領域に含まれる画素の属性データが「ラスタ」となってしまうため、ラスタのオブジェクト内の画像の輪郭部分が検出できない場合がある。このため、ラスタのオブジェクトに対するオブジェクト検出・画素付加処理及びオブジェクト検出・画素削除処理は変更されてもよい。例えば、オブジェクト検出部1040は、
図11のステップS164において、ステップS162においてセットした属性データが全て「ラスタ」に対応する属性データであるか否かを判定する。また、オブジェクト検出部1040及び画像処理部1041は、属性データが全て「ラスタ」に対応する属性データであるとき、ステップS166以降の処理を実行する。この結果、注目画素の画素値が隣接画素の最小値よりも大きい場合、隣接画素の最小値が注目画素にセットされ、ラスタの画像におけるエッジが膨張される。また、オブジェクト検出部1040は、
図12のステップS184からステップS188の処理を実行する代わりに、ステップS182においてセットした属性データが全て「ラスタ」であり、注目画素の画素値が、隣接画素の画素値の最大値よりも小さい場合、注目画素を削除候補の画素としてもよい。この結果、注目画素の画素値が、隣接画素の最大値よりも小さい場合、注目画素が削除されることで、ラスタの画像におけるエッジが収縮する。
【0123】
また、
図11に示したオブジェクト検出・画素付加処理及び
図12に示したオブジェクト検出・画素削除処理は、線幅調整の処理の一例であって、
図11及び
図12に示した処理以外の処理により、オブジェクトの線幅調整の処理が実行されてもよい。この場合、対象属性と同じ属性が設定されたオブジェクトのみ、線幅調整の対象とする。
【0124】
また、マスクパターンは、注目画素に直接隣接していない画素を含めて構成されてもよく、注目画素から2画素以上離れている画素がマスクされてもよい。
【0125】
また、コマンド解析部1022は、対象属性が「ベクターグラフィック」のみである場合や、対象属性に「ベクターグラフィック」が含まれる場合に、
図10に示す処理を実行してもよい。一方で、コマンド解析部1022は、対象属性が「ベクターグラフィック」を含まない場合、
図10の処理において、ステップS130において取得したコマンドがベクタ描画コマンドである場合、ステップS144からステップS150までの処理を省略し、対象オブジェクトの属性を「ベクターグラフィック」にセットしてもよい。このようにして、コマンド解析部1022は、ベクターグラフィックのオブジェクトが線幅調整の対象とはならない場合に実行する処理を軽減することができる。
【0126】
このように、本実施形態の画像形成装置は、コマンドからオブジェクトの属性を判定することで、曲線又は曲線と直線の組み合わせで構成される図形のオブジェクト(ベクターグラフィック)の属性を、文字又は文字に準じた属性と判定する。これにより、線幅調整の処理の対象がベクターグラフィックのオブジェクトであるとき、原稿データでは文字として識別されているオブジェクトがベクターグラフィックとして描画された場合であっても、線幅調整の処理の対象から除外することが可能となる。すなわち、文字がベクターグラフィックとして描画される特定のアプリケーションから原稿データが印刷される場合であっても、本実施形態の画像形成装置は、文字とベクターグラフィックとを識別でき、適切に線幅調整を実行することができる。これにより、本実施形態の画像形成装置は、例えば、ベクターグラフィックのみが線幅調整の対象のオブジェクトとして指定されている場合、文字のオブジェクトを線幅調整の対象外とすることができる。
【0127】
[2.第2実施形態]
第2実施形態は、第1実施形態において説明した処理に加えて、印刷実行時に、線幅調整の設定を可能とする実施形態である。本実施形態は、第1実施形態の
図2を
図18に、第1実施形態の
図9を
図19にそれぞれ置き換えたものである。なお、同一の機能部及び処理には同一の符号を付し、説明については省略する。
【0128】
[2.1 構成]
図18は、画像形成装置12の機能構成を示した図である。画像形成装置12は、画像形成装置10と異なり、制御部100が、更に、設定変更部108として機能する点が異なる。設定変更部108は、設定テーブル168に記憶された設定内容を変更する処理を実行する。
【0129】
[2.2 処理の流れ]
図19は、制御部100が実行する主な処理の流れを示すフロー図である。本実施形態では、設定変更部108は、印刷データが受信された後、操作表示部155を介して、ユーザによって印刷を開始する操作がされたか否かを判定する(ステップS200)。また、設定変更部108は、印刷を開始する操作がされた場合、表示部156(操作パネル)に、線幅調整の設定画面を表示し、当該設定画面を介してユーザによって入力された設定内容を、設定テーブル168に記憶する(ステップS200;Yes→ステップS202)。
【0130】
例えば、設定変更部108は、線幅調整の設定画面として、対象属性を選択させたり、線幅調整の処理内容や付加又は削除する画素数を選択させたりする画面を表示部156に表示する。また、設定変更部108は、線幅調整の設定画面として、複数のマスクパターンから、オブジェクト検出パターンとして用いられるマスクパターンと、位置・色演算パターンとして用いられるマスクパターンとを選択可能にしたりしてもよい。なお、設定変更部108は、オブジェクト検出パターンとして用いられるマスクパターンと位置・色演算パターンとして用いられるマスクパターンの何れか一方を複数のマスクパターンから選択可能としてもよい。
【0131】
制御部100は、ステップS202の処理の後、ステップS102以降の処理を実行することで、ステップS202においてユーザによって入力された設定内容に基づき、線幅調整の処理を実行する。例えば、制御部100は、線幅調整の設定画面を介してユーザによって選択された対象属性と同じ属性が設定されたオブジェクトを、線幅調整の対象とする。また、制御部100は、線幅調整の設定画面を介してユーザによって選択されたマスクパターンを用いて、線幅調整を行う。なお、入力インタフェース部1020は、ユーザによって印刷を開始する操作がされていない場合は、印刷データを受信する処理を実行する(ステップS200;No→ステップS100)。
【0132】
[2.3 動作例]
図20は、表示部156に表示される画面例を示す図である。
図20(a)は、線幅調整の設定画面W200の画面例である。設定画面W200には、線幅調整の処理内容及び付加又は削除する画素数を選択することが可能なリストL200と、対象属性を選択することが可能なリストL202とが含まれる。また、設定画面W200には、リストL200及びリストL202により選択された設定内容を記憶し元の画面に戻るためのOKボタンB200と、設定内容の変更を行わずに元の画面に戻るためのキャンセルボタンB202と、設定内容の記憶を行った上で設定画面W200を表示させつづけるための適用ボタンB204とが含まれる。
【0133】
図20(b)は、リストL200及びリストL202が選択された場合に表示されるリストの内容の例を示す図である。リストL200は、例えば、-2から+2までの何れかの整数値が選択可能である。+1又は+2は、線幅調整として、線幅調整の対象となるオブジェクトの輪郭部分に、1画素又は2画素付加する処理を実行させることを示す。-1又は-2は、線幅調整として、線幅調整の対象となるオブジェクトの輪郭部分の画素を、1画素又は2画素削除する処理を実行させることを示す。0は、線幅調整を実行させないこと(処理なし)を示す。
【0134】
また、リストL202は、例えば、「なし」、「文字」、「図形(ベクタ)」、「文字+図形(ベクタ)」、「文字+図形(ベクタ)+画像(ラスタ)」の何れかの項目が選択可能である。「なし」は、線幅調整を行わないことを示す。「文字」は、文字を対象属性とすることを示す。「図形(ベクタ)」は、ベクターグラフィックを対象属性とすることを示す。「文字+図形(ベクタ)」は、文字及びベクターグラフィックを対象属性とすることを示す。「文字+図形(ベクタ)+画像(ラスタ)」は、文字とベクターグラフィックとラスタとを対象属性とすることを示す。
【0135】
また、
図21は、オブジェクト検出パターン及び位置・色演算パターンを設定することが可能な設定画面W220の画面例である。設定画面W220は、例えば、複数のマスクパターンからオブジェクト検出パターンとして用いるマスクパターンを選択する領域E220と、複数のマスクパターンから位置・色演算パターンとして用いるマスクパターンを選択する領域E222とを含む。領域E220及び領域E222には、パターンデータに基づくマスクパターンの形状が複数表示され、そのうちの1の形状が選択可能となっている。ユーザは、領域E220及び領域E222から、所望のマスクパターンを選択することができる。
【0136】
なお、
図20及び
図21において示した画面は、情報処理装置20で実行されるプリンタドライバのUI(User Interface)として、情報処理装置20の画面に表示されてもよい。これにより、情報処理装置20は、ユーザに対して、プリンタドライバのUIから、対象属性や線幅調整の処理内容を選択させたり、使用するマスクパターンを選択させたりすることができる。また、この場合、情報処理装置20は、印刷データとともに、線幅調整の設定内容を、画像形成装置12に送信すればよい。画像形成装置12は、受信した線幅調整の設定内容に基づき、線幅調整を行えばよい。
【0137】
このように、本実施形態の画像形成装置は、ユーザに対して、線幅調整の処理の設定を、容易に変更させることが可能となる。
【0138】
[3.第3実施形態]
第3実施形態は、第1実施形態において説明した処理に加えて、曲線又は曲線と直線の組み合わせで構成されるオブジェクトの属性を文字候補とし、文字候補の属性のオブジェクトを文字の属性のオブジェクトとするか否かを選択可能にする実施形態である。本実施形態は、第1実施形態の
図10を
図22に、第1実施形態の
図9を
図23にそれぞれ置き換えたものである。なお、同一の処理には同一の符号を付し、説明については省略する。
【0139】
はじめに、
図22を参照して、本実施形態の中間データ生成処理について説明する。本実施形態では、コマンド解析部1022は、ステップS146においてパス描画コマンドにより描画される少なくとも1つのパスがベジェ曲線であると判定した場合、対象オブジェクトの属性を「文字候補」と判定する(ステップS146;Yes→ステップS300)。これにより、ステップS154において生成される中間データにおいて、ベジェ曲線又はベジェ曲線と直線の組み合わせで構成されるオブジェクトについては、属性が「文字候補」となる。
【0140】
つづいて、
図23を参照して、本実施形態のメイン処理について説明する。本実施形態では、ステップS108において、属性ビットマップデータ生成部1025は、属性が文字候補であるオブジェクトが描画される画素に対しては、文字候補に対応する属性データを割り当てた属性ビットマップデータを生成する。
【0141】
また、制御部100は、属性ビットマップデータが生成された後、表示部156に、属性が文字候補であるオブジェクトを表示する(ステップS330)。このとき、制御部100は、属性が文字候補であるオブジェクトのみを描画した画像を表示してもよいし、全てのオブジェクトを描画した上で属性が文字候補であるオブジェクトを強調させた画像を表示してもよい。また、制御部100は、属性が文字候補であるオブジェクトの属性を文字に変更するか否かをユーザに問い合わせる(ステップS332)。
【0142】
制御部100は、ユーザによって、属性が文字候補であるオブジェクトの属性を文字に変更することを指示する操作がされた場合、属性が文字候補であるオブジェクトの属性を文字に変更する(ステップS332;Yes→ステップS334)。例えば、制御部100は、属性ビットマップデータにおいて、文字候補に対応する属性データが割り当てられた画素に、文字に対応する属性データを割り当てる。一方、制御部100は、ユーザによって、属性が文字候補であるオブジェクトの属性を文字に変更しないことを指示する操作がされた場合、属性が文字候補であるオブジェクトの属性をベクターグラフィックに変更する(ステップS332;No→ステップS336)。例えば、制御部100は、属性ビットマップデータにおいて、文字候補に対応する属性データが割り当てられた画素に、ベクターグラフィックに対応する属性データを割り当てる。また、制御部100は、ステップS110以降の処理を実行することで、線幅調整の処理を実行し、線幅調整がされた画像を印刷する。
【0143】
図24は、属性ビットマップデータが表示された画面W300の画面例である。画面W300には、属性ビットマップデータを表示する領域E300が含まれる。属性ビットマップデータは、
図24に示すように、例えば、文字候補の属性データが設定された画素を強調表示してもよい。また、画面W300には、属性が文字候補であるオブジェクトの属性を文字に変更することを指示するボタンB300と、属性が文字候補であるオブジェクトの属性をベクターグラフィックに変更することを指示するボタンB302とが含まれる。ユーザは、領域E300に表示された、文字候補の属性データが設定された画素を確認した上で、属性が文字候補であるオブジェクトの属性を、文字又はベクターグラフィックの何れかに変更することができる。
【0144】
このように、本実施形態の画像形成装置は、曲線又は直線と曲線との組み合わせで構成されるオブジェクトの属性を文字候補とし、ユーザによって、属性が文字候補であるオブジェクトの属性を文字にするか否かを選択可能にする。これにより、ユーザは、属性が文字候補であるオブジェクトを確認した上で、当該オブジェクトの属性を文字に変更することができる。例えば、ユーザは、文字ではないオブジェクトが文字候補のオブジェクトと認識された場合、当該オブジェクトをベクターグラフィックに変更した上で、線幅調整を実行させることが可能となる。
【0145】
[4.変形例]
本開示は上述した各実施の形態に限定されるものではなく、種々の変更が可能である。すなわち、本開示の要旨を逸脱しない範囲内において適宜変更した技術的手段を組み合わせて得られる実施の形態についても本開示の技術的範囲に含まれる。
【0146】
また、上述した実施形態は、説明の都合上、それぞれ別に説明している部分があるが、技術的に可能な範囲で組み合わせて実行してもよいことは勿論である。例えば、第2実施形態と第3実施形態とを組み合わせてもよい。この場合、ユーザは、線幅調整の設定を行った上で印刷を実行させることができ、また、文字候補として判定されたオブジェクトを確認することができる。
【0147】
また、実施形態において各装置で動作するプログラムは、上述した実施形態の機能を実現するように、CPU等を制御するプログラム(コンピュータを機能させるプログラム)である。そして、これら装置で取り扱われる情報は、その処理時に一時的に一時記憶装置(例えば、RAM)に蓄積され、その後、各種ROM(Read Only Memory)やHDD等の記憶装置に格納され、必要に応じてCPUによって読み出し、修正・書き込みが行なわれる。
【0148】
ここで、プログラムを格納する記録媒体としては、半導体媒体(例えば、ROMや、不揮発性のメモリカード等)、光記録媒体・光磁気記録媒体(例えば、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)、MD(Mini Disc)、CD(Compact Disc)、BD (Blu-ray(登録商標) Disk) 等)、磁気記録媒体(例えば、磁気テープ、フレキシブルディスク等)等の何れであってもよい。また、ロードしたプログラムを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、オペレーティングシステムあるいは他のアプリケーションプログラム等と共同して処理することにより、本発明の機能が実現される場合もある。
【0149】
また、市場に流通させる場合には、可搬型の記録媒体にプログラムを格納して流通させたり、インターネット等のネットワークを介して接続されたサーバコンピュータに転送したりすることができる。この場合、サーバコンピュータの記憶装置も本発明に含まれるのは勿論である。
【0150】
また、上述した実施形態に用いた装置の各機能ブロック、または諸特徴は、電気回路、例えば、集積回路あるいは複数の集積回路で実装または実行され得る。本明細書で述べられた機能を実行するように設計された電気回路は、汎用用途プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはその他のプログラマブル論理デバイス、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェア部品、またはこれらを組み合わせたものを含んでよい。汎用用途プロセッサは、マイクロプロセッサでもよいし、従来型のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。前述した電気回路は、デジタル回路で構成されていてもよいし、アナログ回路で構成されていてもよい。また、半導体技術の進歩により現在の集積回路に代替する集積回路化の技術が出現した場合、本開示の一以上の態様は当該技術による新たな集積回路を用いることも可能である。例えば、本開示における、制御部100であれば、制御部100に含まれる一部又は全部の処理部が電気回路で構成されてもよい。
【符号の説明】
【0151】
10 画像形成装置
100 制御部
102 PDLインタプリタ部
1020 入力インタフェース部
1021 受信バッファ部
1022 コマンド解析部
1023 中間データ生成部
1024 ビットマップデータ生成部
1025 属性ビットマップデータ生成部
104 画像制御部
1040 オブジェクト検出部
1041 画像処理部
1042 ビットマップデータ圧縮部
1043 画像記憶処理部
106 印刷制御部
1060 画像読み出し部
1061 ビットマップデータ伸張処理実行部
1062 色変換・ハーフトーン処理実行部
1063 印刷処理部
108 設定変更部
120 メモリ
130 通信部
140 ビデオコントローラ部
150 操作表示部インタフェース
155 操作表示部
156 表示部
158 操作部
160 ストレージインタフェース
165 ストレージ
166 マスクパターン情報記憶領域
167 データ記憶領域
168 設定テーブル
170 色判定・圧縮伸張部
180 色変換・ハーフトーン処理部