以下、本発明の好ましい実施形態について添付図面を参照して説明する。図1は、本実施形態の印刷制御プログラムとしてのプリンタドライバ14aを搭載したパーソナルコンピュータ(以下「PC」と称す)10を有する印刷システム100の電気的な構成を示したブロック図である。図1に示すように、印刷システム100は、PC10と、PC10に接続されるプリンタ20とを備えている。
PC10は、文書作成アプリケーションプログラムや画像作成アプリケーションプログラムなどにより画像データを作成し、その画像データをプリンタドライバ14aを介して出力先のプリンタ20に出力する装置である。
本実施形態のプリンタドライバ14aは、アプリケーションプログラムからの画像データを出力先のプリンタ20に対応した印刷データ(印刷命令)に変換してから、プリンタ20に出力するものである。本プリンタドライバ14aには、プリンタ20へ印刷データを出力する前に、その印刷結果をLCD16に前もって表示することができるプレビュー機能が備えられている。また、プリンタドライバ14aは、プレビュー機能によって表示されたプレビュー画像を編集可能に設計されており、操作者の編集操作に基づいた編集をプレビュー画像に対して行うと共に、編集後のプレビュー画像をLCD16に再表示するように構成されている。
このPC10は、図1に示すように、CPU11と、ROM12と、RAM13と、HDD14と、操作部15と、LCD16と、PC10をプリンタ20に接続するプリンタ用インターフェース(プリンタ用I/F)18と、PC10を周辺機器に接続するためのユニバーサルシリアルバスインターフェース(USBI/F)19とを備えている。
CPU11は、ROM12に記憶されるプログラムや、HDD14に記憶されるオペレーティングシステム(OS)及び各種のアプリケーションプログラムに基づいて動作する演算装置であり、各種の情報処理を行うものである。ROM12は、CPU11を動作させる基本プログラムの他、各種のデータを記憶する書き換え不能なメモリである。
RAM13は、CPU11により実行される各種処理に必要なデータやプログラムを一時的に記憶するための書き換え可能なメモリであり、プレビュー管理メモリ13aと、描画ファイルメモリ13bと、標識マスクファイルメモリ13cと、プレビュー画像メモリ13dと、オブジェクトカウンタ13eとを備えている。
本PC10のアプリケーションプログラムでは、画像データの内の画像を形成する情報(オブジェクトデータ)は、ベクタグラフィックスの形式で作成される。ベクタグラフィックスとは、画像を、点の座標とそれを結ぶ線や面の方程式のパラメータ、および、塗りつぶしや特殊効果などの情報の集合として表現するものである。一般にコンピュータの画面表示やプリンタの印刷方法は、あらゆる画像に対応できるようにビットマップ方式とされているため、ベクタグラフィックスの画像データをそのまま扱うことはできず、その印刷や表示に際しては計算を行なってドットデータ(ビットマップデータ)に変換する処理、いわゆるドット展開を行う必要がある。つまり、アプリケーションプログラムで作成された画像データに従ってオブジェクトが形成されるので、アプリケーションプログラムからの画像データは、ビットマップデータを生成する描画命令30となる。この描画命令30について、図2を参照して説明する。
図2は、描画命令30の構成を模式的に示した図である。描画命令30は、アプリケーションプログラムから送出された順に、CPU11によって取得され、順次認識される。図2には、かかる描画命令30の一例として、(1ページの画像において)4つのオブジェクトを形成するべく生成された4つの描画命令30a〜30dを示しており、各描画命令30a〜30dを上段から下段に向かってその取得順に表示している。図2において同行に表示される一連の情報が1の描画命令30に対応している。
図2に示すように、描画命令30は、その描画するオブジェクトの種類に応じて形成される一連の情報群であり、オブジェクトの種類に対応して異なる種類(態様)の描画命令がアプリケーションプログラムにて作成される。具体的には、パスによって図形を生成する図形描画命令(例えば描画命令30a,30c,30d)、テキストデータによって文字を生成する文字描画命令(例えば描画命令30b)に加え、ビットマップデータによって画像を生成するビットマップ描画命令のいずれかが作成される。
CPU11は、最初のプレビュー画像の生成に際して、アプリケーションプログラムからの描画命令30の取得順に描画を実行する。故に、図2に示した例においては、描画命令30a,30b,30c,30dの順に描画が実行される。これにより、かかる描画命
令30a,30b,30c,30dのそれぞれに対応したオブジェクトA,B,C,Dが
それぞれ生成される(図5および図7参照)。かかる1ページのプレビュー画像において複数のオブジェクトを重ねて配置する場合、いずれのオブジェクトを背面側(前面側)に配置するかは、描画命令の取得順によって規定される。
本実施形態では、各描画命令30には、態様情報31、オブジェクトデータ32、色数情報33、マスクタイプ情報34、位置座標35が含まれている。態様情報31は、描画命令30によって描画されるオブジェクトの態様を示す情報であり、パスによってオブジェクトを描画する図形描画命令である場合には「パス」が態様情報として含まれる(描画命令30a,30b,30d)。また、テキストデータによってオブジェクトを描画する
文字描画命令である場合には「文字」が態様情報として含まれ(描画命令30c)。尚、ビットマップデータによってオブジェクトを描画するビットマップ描画命令である場合には「ビットマップ」が態様情報として含まれる。
オブジェクトデータ32は、画像を形成する情報即ち、オブジェクトの態様を表現する表現情報であって、オブジェクトの形状や色を規定する情報である。本実施形態のアプリケーションプログラムは、ベクタグラフィックスの形式で画像を形成するものであるので、オブジェクトデータ32は、点の座標とそれを結ぶ線や面の方程式のパラメータ、および、塗りつぶし(べた)や色、特殊効果の情報などのデータが羅列された一群の情報で構成されている。図2においては、各描画命令30が有するオブジェクトデータ32を、それぞれ、「星の画像」、「球の画像」、「ABC」、「家の画像」として、模式的に表示している。また、描画命令30cについては、文字の背面に塗りつぶし(背景色、べた)を現出させないべた無しの画像であることが指定されている。
色数情報33は、オブジェクトに対し適用される色表現系における表現可能な最大の色数を示す情報である。形成されるオブジェクトが図形である場合に、例えば、モノトーンなどと称される白と黒との2色だけの色表現系が適用されていれば、色数情報33は「2」とされる。また、3色以上のカラーの色表現系には、表現可能な最大の色数が16色、256色、16777216色(フルカラー)の3つの形式があり、16色の形式が採用されたオブジェクトでは色数情報33は「16」、256色の形式が採用されたオブジェクトでは色数情報33は「256」、16777216色の形式が採用されたオブジェクトでは色数情報33は「フルカラー」となる。尚、色数情報33が「2」である場合には、1ビットで色を表現する全てのデータを網羅できるので、色を表現するデータは、1ピクセルに対し1ビット(2値データ)で構成されている。また、色数情報33が「16」である場合には、色を表現するデータは、1ピクセルに対し4ビットで構成され、色数情報33が「256」である場合には、色を表現するデータは、1ピクセルに対し8ビットで構成され、色数情報33が「フルカラー」である場合には、色を表現するデータは、1ピクセルに対し24ビットで構成されている。
図2においては、描画命令30aには色数情報33として「2」が備えられ、描画命令30bには色数情報33として「フルカラー」が備えられ、描画命令30dには色数情報33として「256」が設定されていることが示されている。
また、描画命令30cには色数情報33として「1」が備えられている。ここで、描画命令30cは、文字描画命令である。形成されるオブジェクトが文字である場合には、色数情報33は文字のオブジェクトに対し実際に使用された色数で示される。描画命令30cにて形成される文字のオブジェクトは単色であるので色数情報33は「1」とされている。一般に、文字のオブジェクトは、文字列の周囲を囲う矩形状(正方形または長方形)の範囲(枠)で生成するものとされている。この枠内の文字でない部分については背景色を設定することができ、例えば、背景色(1の背景色)が設定された場合には、色数情報33は「2」となる。
マスクタイプ情報34は、オブジェクトに対しマスクM1が設定されているか否かを示す情報である。本実施形態において、マスクM1は、オブジェクトの画像に重ねられるデータであり、アプリケーションプログラムによってオブジェクトに対応して生成される。
尚、マスクM1は、オブジェクトデータ32で規定されるオブジェクトの表示部分と非表示部分とを区画するためのものであり、マスクM1により被覆された部分は表示され、マスクM1により被覆されなかった部分は非表示とされる。
マスクタイプ情報34は、描画するオブジェクトの外形形状に応じて異なるマスクタイプ情報34が付与されるようになっており、各描画命令30には、マスクタイプ情報34として、「矩形」情報、「パス」情報、「マスク無し」情報のいずれか1の情報が含まれる。
「矩形」情報は、オブジェクトに対してマスクM1が設定されていることを示す情報であって、更に、そのマスクM1も、また、マスクM1により設定されるオブジェクトの表示部分も、矩形状であることを示すものである。図2に示す描画命令30aには、マスクタイプ情報34として、この「矩形」情報が含まれている。
「パス」情報および「マスク無し」情報は、共に、マスクM1が描画命令30に備えられていないことを示す情報であって、更に「パス」情報は、形成されるオブジェクトの外形形状が矩形状でないことを示すものであり、曲線形状や不定形のオブジェクトを形成する描画命令30に含まれる。図2に示す描画命令30bには、マスクタイプ情報34として、この「パス」情報が含まれている。
一方、「マスク無し」情報は、オブジェクトの外形形状が矩形状であることを示すものであり、矩形状のオブジェクトを形成する描画命令30c,30dには、この「マスク無し」情報が含まれている。形成されるオブジェクトが文字である場合には、上記したように文字列を含む矩形の範囲が1のオブジェクトとされる。このため、文字の描画命令30が、マスクタイプ情報34として「パス」情報を有することはない。
位置座標35は、位置を示す情報であって、オブジェクトの位置(描画領域)を示す描画領域情報35aと、マスクの位置(マスク領域)を示すマスク領域情報35bとを含む情報である。
この位置座標35は、X軸上の位置を示すX座標と、そのX軸に直交するY軸上の位置を示すY座標とにより位置を示す情報である。画像左上端の画素(ドット)の位置座標35がX座標(0)Y座標(0)とされており、画像が、例えば、960×680画素で構成される場合には、X座標の最終座標は959、Y座標の最終座標は679となる。
描画領域情報35aは、1頁の画像中でのオブジェクトの位置、即ちオブジェクトの描画される範囲を示すものであり、オブジェクトのX軸方向およびY軸方向の両端部の座標をそれぞれ通過する4辺で囲まれた矩形状(正方形または長方形)の範囲における最小座標と最大座標とにて示される。最小座標と最大座標とはかかる矩形範囲の2の頂点となっている。矩形範囲(正方形または長方形)は、対角の2の頂点の位置座標35(最小座標および最大座標)により規定できるので、この描画領域情報35aにてオブジェクトの描画される矩形範囲を示すことができる。ここで、オブジェクトが矩形状である場合には、描画領域情報35aにて規定される範囲は、オブジェクトが実際に描画される描画領域に一致することとなる。
例えば、図2に示すように、描画命令30aが有する描画領域情報35aは、最小座標(330,590)最大座標(730,990)であるので、その描画領域は(330,590)、(730,590)、(330,990)、(730,990)の4つの座標を頂点とする矩形状の範囲となる。
描画命令30c、描画命令30dに基づいて形成されるオブジェクトは、いずれも矩形状のオブジェクトであり、その描画領域情報35aが、それぞれ、最小座標(110,860)最大座標(620,1040)と、最小座標(360,140)最大座標(760,440)とで付与されている。このため、実際に描画されるオブジェクトの描画領域も、この描画領域情報35aに一致する。
一方、描画命令30bの有する描画領域情報35aは、最小座標(80,280)最大座標(480,700)で示されている。この描画命令30bが有するマスクタイプ情報34は「パス」情報であり、形成されるオブジェクトは矩形状でない。描画領域情報35aは、オブジェクトのX軸方向およびY軸方向の両端部の座標をそれぞれ通過する4辺で囲まれた矩形状(正方形または長方形)の範囲における最小座標と最大座標とにて示されているので、オブジェクトが矩形状でない場合には、この描画領域情報35aは、オブジェクトが含まれる最も小さな矩形状の範囲を示す情報となる。つまり、オブジェクトの描画領域を直接示すものではなく、その描画領域情報35aの最小座標および最大座標から規定される4つの位置座標(80,280)、(480,280)、(80,700)、(480,700)で囲まれる矩形状の範囲にオブジェクトが含まれることを示すものとなる。
マスク領域情報35bは、オブジェクトに対しマスクM1が設定されている場合に備えられる情報であって、マスクM1の展開される範囲(マスク領域)を示すものである。本実施形態では、マスクM1は矩形とされており、矩形の頂点を示す4つの座標の内の最小座標と最大座標とがマスク領域情報35bとして記憶されている。マスクM1が展開される場合には、このマスク領域情報35bに基づき、最小座標を通過するX軸方向およびY軸方向の直線と、最大座標を通過するX軸方向およびY軸方向の直線とに囲まれる矩形の範囲が規定され、規定された範囲(マスク領域)にマスクM1が展開される。
描画命令30aには、かかるマスク領域情報35bとして最小座標(0,0)、最大座標(530,1100)が備えられており、そのマスク領域は、(0,0)、(530,0)、(0,1100)、(530,1100)の4つの座標(矩形形状の頂点)を直線で結ぶ範囲となる。
PC10のアプリケーションプログラムで作成された画像データの印刷が要求されるとプリンタドライバ14aが起動される。ここで、プリンタドライバ14aに対してプレビュー画像の出力が要求されると、上述した構成を有する描画命令30がアプリケーションプログラムから呼び出され(描画命令の取得)、取得した描画命令30に基づいて各オブジェクトが描画されて、ビットマップデータが作成される(図4及び図5参照)。
図1に戻って説明する。
プレビュー管理メモリ13aは、プレビュー画像に表示される各オブジェクト(1ページの画像に属する全てのオブジェクト)のビットマップデータを管理するメモリである。PC10は、プリンタドライバ14aのプレビュー機能により、アプリケーションプログラムから呼ばれた描画命令30をドット展開してドットデータを生成し、生成されたドットデータから各オブジェクトのビットマップデータを作成する。プレビュー管理メモリ13aには、この作成されたビットマップデータの管理を行うために、各描画命令(各オブジェクト)のそれぞれに対応してビットマップデータに関する情報が記憶される。このプレビュー管理メモリ13aについて図3を参照して説明する。
図3は、プレビュー管理メモリ13aの構成を模式的に示したものである。ビットマップデータに関する情報は、ビットマップデータ(オブジェクト)の位置座標(描画領域情報45)、描画ファイル名46、マスクタイプ情報44、標識マスクファイル名47を備えており、プレビュー管理メモリ13aには、かかるビットマップデータに関する各情報をそれぞれ記憶するためのエリア13a1〜13a4が設けられている。
図3(a)は、プレビュー画像の表示要求に応じて最初のプレビュー画像が生成された場合のプレビュー管理メモリ13aの内容を示したものであって、図2に示した描画命令30にてオブジェクトが生成される場合のプレビュー管理メモリ13aを示したものである。
従って、プレビュー管理メモリ13aには、描画命令30a〜30dから生成された各
オブジェクトのビットマップデータに関する情報30a’〜30d’が、生成された順、即ちアプリケーションプログラムからの描画命令30の取得順に従って記憶されている。図3においては、その生成順にビットマップデータに関する情報が表示されており、最上段には描画命令30aに対応するビットマップデータに関する情報30a‘が表示され、以下順に、下方に向かって、描画命令30b,30c,30dの順で対応するビットマップデータに関する情報30b’,30c‘,30d’が表示されている。
位置座標エリア13a1は、位置座標(描画領域情報45)を記憶するエリアであり、図3(a)においては、最初のプレビュー画像における描画領域情報45が記憶されている。ここで、描画命令30の有するマスクタイプ情報34が「矩形」情報であって、描画命令30にマスク領域情報35bが含まれている場合には、オブジェクトの描画領域とマスク領域との共通領域(実際に表示されるオブジェクトの部分)が抽出され、その共通領域がオブジェクトの描画領域情報45として、この位置座標エリア13a1に記憶されている。このため、描画命令30の描画領域情報35bとは異なる値で描画領域情報45が記憶されることとなる。
例えば、上記したように、描画命令30aの描画領域情報35aは、最小座標(330,590)、最大座標(730,990)である(図2参照)。描画領域情報35aは、オブジェクトデータ32によって形成される本来の態様のオブジェクトの描画領域を示す情報である。ここで、描画命令30aには、最小座標(0,0)最大座標(530,1100)のマスク領域情報35bが備えられている。このため、上記した共通領域の抽出が実行されて、その共通領域(330,590)、(530,590)、(330,990)、(530,990)が抽出され、かかる矩形領域の最小座標(330,590)最大座標(530,990)が描画領域情報45として、位置座標エリア13a1に記憶されている。
描画命令30に、マスク領域情報35bが含まれていない場合、例えば、描画命令30b〜30dの場合には、描画命令30の有する描画領域情報35aがそのままこの位置座標エリア13a1に描画領域情報45として記憶されている。
描画ファイル名エリア13a2は、描画ファイル名46を記憶するエリアである。描画ファイル名46は、作成されたオブジェクトのビットマップデータのファイル(描画ファイル)を指定する情報である。生成されたオブジェクトのビットマップデータは、ビットマップファイル形式の描画ファイルとして記憶される。記憶された描画ファイルには、他のファイルと重複しない唯一のファイル名が付与され、付与された描画ファイル名46が、この描画ファイル名エリア13a2に書き込まれている。
マスクタイプエリア13a3は、マスクタイプ情報を記憶するエリアである。上記したように描画命令30は、マスクタイプ情報34として、「矩形」情報、「パス」情報、「マスク無し」情報のいずれか1を有している。かかる描画命令30の有するマスクタイプ情報34に基づいたマスクタイプ情報44がこのマスクタイプエリア13a3に記憶される。
具体的には、描画命令30で付与されたマスクタイプ情報34が「パス」情報、「マスク無し」情報であれば、そのまま「パス」情報、「マスク無し」情報がマスクタイプ情報44として、このマスクタイプエリア13a3に記憶される。また、描画命令30の有するマスクタイプ情報34が、「矩形」情報である場合(描画命令30a)、オブジェクトの描画領域(描画領域情報45)はマスクM1を反映した値に変更されているので、マスク領域の情報は不要となり、マスクタイプエリア13a3に記憶されるマスクタイプ情報44は「マスク無し」情報とされる。
また、このマスクタイプエリア13a3に記憶されるマスクタイプ情報44は、オブジェクトに対応する標識マスクM2の有無を示す情報となっており、マスクタイプ情報44が「マスク無し」情報であれば、標識マスクM2の無いことを示し、マスクタイプ情報44が「パス」情報であれば、標識マスクM2があることを示している。
更には、べた無しの文字のビットマップデータが生成された場合には、マスクタイプエリア13a3には、マスクタイプ情報44として「文字」情報が記憶される。オブジェクトがべた有りの文字である場合には、矩形の図形と同様に扱うことができるので、生成されたビットマップデータが文字のものであっても、マスクタイプ情報44は、「マスク無し」情報でマスクタイプエリア13a3に記憶される。
標識マスクファイルエリア13a4は、標識マスクM2のファイル名(標識マスクファイル名47)を記憶するメモリである。描画命令30のマスクタイプ情報34が「パス」情報である場合、オブジェクトのビットマップデータと共に標識マスクM2が生成され、標識マスクファイルとして記憶されている。従って、描画命令30の有するマスクタイプ情報34が「パス」情報である場合(描画命令30b)、対応する標識マスクファイルエリア13a4には標識マスクファイル名47が記憶されることとなる。
CPU11は、プレビュー画像を表示する場合、この標識マスクファイルエリア13a4に記憶される標識マスクファイル名47を参照して、対応する標識マスクを選定し、マスク対象のオブジェクトのビットマップデータとの合成を行って、オブジェクトをLCD16に表示する。
上記したように、プレビュー管理メモリ13aには、オブジェクトのビットマップデータに関する情報が描画順に従って記憶されるように構成されている。ここで、各描画命令と各ビットマップデータに関する情報と各オブジェクト(例えば描画命令30aとビットマップデータに関する情報30a’とオブジェクトAなど)とは互いに対応しており、図3(a)に示したプレビュー管理メモリ13aにおいては、オブジェクトA,B,C,Dとなる順番で、各オブジェクトのビットマップデータに関する情報30a’〜30d’が
記憶されていることが示されている。従って、かかる場合には、各オブジェクトは、オブジェクトA,B,C,Dの順で表示されることとなる。
図3(b)は、図3(a)のプレビュー管理メモリ13aの内容で表示されたプレビュー画像に対し編集が行われた場合のプレビュー管理メモリ13aを示したものである。本実施形態のプリンタドライバ14aにはプレビュー画像の編集機能が備えられており、操作者による操作部15(キーボードおよびマウス)の操作に基づいて、プレビュー画像の表示画面上からオブジェクトの移動、拡大及び縮小、削除、描画順の変更を実行することができるようになっている。オブジェクトの移動、拡大及び縮小が行われた場合には、移動量、拡大倍率、縮小倍率に応じて、描画領域情報45が変更され、位置座標エリア13a1の描画領域情報45は、変更後の値に更新される。また、オブジェクトの削除が実行された場合には、プレビュー管理メモリ13aから、削除されたオブジェクトに対応する各情報は消去される。描画順の変更が実行された場合には、プレビュー管理メモリ13aにおけるビットマップデータに関する情報の記憶順(記憶位置、データの並び)が変更される。
図3(b)においては、プレビュー画像の編集により描画順が変更され、オブジェクトA,B,C,Dの順で記憶されていたビットマップデータに関する情報30a’〜30d’が、オブジェクトC,A,D,Bに対応する順に記憶順が変更されたことが示されている。更に、オブジェクトA,C,Dのオブジェクトの位置を移動する編集が実行されたことが、そのビットマップデータに関する情報に対応する位置座標エリア13a1の描画領域情報45にて示されている。
図1に戻って説明する。
描画ファイルメモリ13bは、プレビュー画像に表示される各オブジェクトのビットマップデータを記憶するメモリである。各ビットマップデータは、それぞれ1の描画ファイルとしてファイル名が付与され描画ファイルとして個別に管理される。また、付与された描画ファイル名46は、上記したようにプレビュー管理メモリ13aに書き込まれる。CPU11は、プレビュー画像の表示(再表示を含む)に際して、プレビュー管理メモリ13aに記憶される描画ファイル名46から対応する描画ファイル(1のビットマップデータ)を選定し、そのビットマップデータに基づいてオブジェクトを表示する。
ビットマップデータは、矩形状で作成されるデータであり、また、色の点(ドット、画素)の集合体であって、各画素がRGB値などの色の値で示されたものである。このため、ビットマップデータ化されるオブジェクトが矩形状でない場合、そのオブジェクトのビットマップデータは、オブジェクト以外の部分を含んで生成される。
かかるビットマップデータのオブジェクトの部分は、そのオブジェクトに属する各画素が描画命令30に応じた色の値(RGB値など)で形成される。ところが、オブジェクト以外の余白部分は、本来のデータが無いので、新規に何らかのデータを生成しなくてはならない。一般的には、かかるビットマップデータの余白部分の各画素には、白色の値が付与される。
ここで、文字描画命令は、図形描画命令とは異なり、文字の形状を示すグラフィックのデータとは別で、文字色(および背景色)のデータが示されている。言い換えれば、描画領域内において形成するドットであるか否かを示すグラフィックのデータは、色のデータとは別の独立したデータとなっている。
文字のオブジェクトがべた無しである場合、不定形の図形と同様、文字そのものは不定形であり、更に、描画領域内の文字以外の部分は無色である。かかる態様は、矩形状でない画像データと一見同じではあるが、データ構造そのものが異なっており、余白部分は余白であることが明確化(ドットを形成しない部分として指定する情報が付与)されている。従って、標識マスクM2を作成せずとも、オブジェクト(文字)の部分だけを示すことができる。このため、本実施形態では、オブジェクトが文字である場合は(描画命令30に基づくことにより)、各画素の表示または非表示を示す2値データで表されたビットマップデータが生成される。尚、文字の描画命令30(文字描画命令)において背景色が指定されている場合(べた有り)は、その文字のオブジェクトのビットマップデータは、余白部分が白色であるのか無色(非表示部分)であるかを判別する必要がないので、矩形状の図形と同様に、(各画素が色の値で表現された)通常のビットマップデータで生成される。
標識マスクファイルメモリ13cは、標識マスクM2を記憶するメモリである。標識マスクM2は、描画命令30のマスクタイプ情報34が「パス」情報である場合、即ち、生成されるオブジェクトの外形形状が矩形状でない場合に作成されるものである。標識マスクM2は、それぞれ1の標識マスクファイルとしてファイル名が付与され標識マスクファイルとして個別に管理される。また、付与された標識マスクファイル名47は、上記したようにプレビュー管理メモリ13aに書き込まれる。CPU11は、プレビュー画像の表示に際して、プレビュー管理メモリ13aに記憶される標識マスクファイル名47から対応する標識マスクファイルを選定し、オブジェクトのビットマップデータと、標識マスクM2とに基づいてオブジェクトをLCD16に表示する。
標識マスクM2は、オブジェクトのビットマップデータ中における実際のオブジェクト部分を判別するために、オブジェクトのビットマップデータの内の、オブジェクトに対応する部分を黒色の値とし、オブジェクト以外の部分を白色の値として形成されたデータである。尚、この標識マスクM2は、オブジェクトのビットマップデータ中における実際のオブジェクト部分を判別するために生成されるものであり、オブジェクトが矩形状である場合およびオブジェクトが文字である場合には不要である。従ってかかる場合には標識マスクM2は生成されない。これにより、標識マスクM2を作成するための処理を必要最小限にすることができ、プレビュー画像作成の処理時間を高速化することができる。
矩形状でない(図形の)オブジェクトのビットマップデータは、本来のオブジェクトの周辺部に白い余白部分が付加されて矩形状とされている。このため、そのままプレビュー画像に表示した場合、オブジェクトの配置(位置座標や描画順)によっては、白い周辺部が他のオブジェクトに重なってしまうことがある。本来のオブジェクトの画像ではない部分によって、他方のオブジェクト(その一部)が非表示とされてしまうのである。かかる場合には、印刷結果のイメージをその印刷前にプレビュー画像によって操作者に提供するというプレビューの役割を十分に果たせないばかりか、このまま印刷が実行されてしまうと非表示の部分は印刷されず、本来表示されるべき画像の一部が欠落した状態となって、操作者が望む印刷結果が得られない。
これを解決するべく、白色の値の画素を単純に非表示としてしまうと、本来表示されるべき白の画像部分まで欠落してしまう。また、ビットマップデータのオブジェクト以外の余白部分に白色以外の値を適用しても、適用された色を表示不能な色とせねばならず、色表現が制約されてしまう。しかし、本実施形態では、標識マスクファイルメモリ13cに標識マスクM2が記憶されており、かかる標識マスクM2を参照してオブジェクトのビットマップデータ中における実際のオブジェクト部分を判別することができるので、オブジェクトの部分だけを選択的に表示することができる。故に、プレビュー画像をビットマップデータで表示しても、ビットマップデータの重なりによる操作者の意図しない表示態様への変更や、色表現の制約などが発生することがない。
尚、オブジェクトに対して移動、拡大、縮小などの編集が実行されても、描画ファイルメモリ13bに記憶される描画ファイルの内容も、標識マスクファイルメモリ13cに記憶される標識マスクM2の内容も変更されることなく、初期値が保持される。従って、移動、拡大、縮小などの編集が行われた場合には、プレビュー管理メモリ13aの描画領域情報45のみ更新される。そして、描画ファイルメモリ13bおよび標識マスクファイルメモリ13cからそれぞれ読み出された描画ファイル(オブジェクトのビットマップデータ)や標識マスクから、更新後の描画領域情報45に応じたビットマップデータが生成されてオブジェクトがLCD16へ表示される。
プレビュー画像メモリ13dは、実際にLCD16に表示されるプレビュー画像のビットマップデータを記憶するメモリである。プレビュー管理メモリ13aに記憶されるビットマップデータに関する情報に基づいて作成された各オブジェクトは、このプレビュー画像メモリ13dに書き込まれた後、LCD16に出力される。また、印刷要求がなされると、このプレビュー画像メモリ13dに記憶されるビットマップデータが、印刷データに変換され、プリンタ20に出力される。
オブジェクトカウンタ13eは、プレビュー画像を生成する後述のプレビュー画面生成処理(図11参照)において、描画対象のオブジェクトを指定すると共に、描画されたオブジェクトの数を数える(全てのオブジェクトの描画終了かを判断するための)カウンタである。オブジェクトカウンタ13eのカウント値には、プレビュー画面生成処理が開始されたタイミングで「1」がセットされ、そのカウント値が、プレビュー管理メモリ13aに記憶されるビットマップデータに関する情報の数、即ち、1ページの画像に属する全オブジェクトの数をこえるまで、オブジェクトの描画が終了する毎に1ずつ加算される。
HDD14は、ハードディスクを含むハードディスク読取装置であり、プリンタドライバ14aを備えている。尚、このHDD14には、プリンタドライバ14aの他に、図示を省略しているが、アプリケーションプログラムやOSのプログラムなど、各種の制御プログラムが記憶されており、CPU11は、これらの各種制御プログラムに従って処理を実行する。また、PC10における色表現系(RGB値)をプリンタ20に応じた色表現系(CMYK値)へと変換するルックアップテーブルなども記憶されている。
プリンタドライバ14aは、文書作成アプリケーションや画像作成アプリケーションなど、各種アプリケーションで作成された文書データや画像データを、プリンタ20において処理可能な印刷データに変換し、プリンタ20へ出力するためのプログラムである。図8から図12のフローチャートに示すプログラムは、このプリンタドライバ14aの一部として記憶されている。
PC10は、プリンタドライバ14aに従って、アプリケーションプログラムで作成された描画命令30に対して描画処理を行い、RGB値のドットデータ(印刷画像データ)を生成する。その後、原画像データに対して、RGB値をCMYK値に変換する色変換処理や、二値化処理など各種処理を施すことにより、印刷データに変換する。
また、プリンタドライバ14aは、上記したように印刷データをプリンタ20へ出力する前に、印刷結果をLCD16に表示するプレビューの機能を備えており、更に、表示されたプレビュー画像を、表示画面上から編集することができる編集機能を備えている。このプリンタドライバ14aで実行されるプレビュー機能に関する処理の詳細については、図8から図12のフローチャートを参照して後述する。
操作部15は、PC10へデータ又はコマンドを入力するものであり、キーボード、マウスなどにより構成されている。LCD16は、PC10で実行される処理内容や入力されたデータなどを視覚的に確認するために、文字や画像などを表示するものである。上記したように、プリンタドライバ14aで作成されるプレビュー画像は、このLCD16に表示される。
I/F18は、PC10とプリンタ20とを接続するものであり、PC10は、このI/F18を介することにより、プリントコマンドや、印刷データをプリンタ20に送信し、プリンタ20に記録用紙への印刷を実行させることができる。USBI/F19は、USB規格で周辺装置をPC10に接続するものであり、接続された周辺機器とPC10とのデータの送受信は、このUSBI/F19を介して実行される。
図1に示すように、上述したCPU11と、ROM12と、RAM13と、HDD14と、操作部15と、LCD16と、I/F18と、USBI/F19とは、バスライン17を介して互いに接続されている。
また、図1に示すように、PC10には、印刷データの出力先としてのプリンタ20が接続されている。かかるプリンタ20は、演算装置であるCPU、そのCPUによって実行される制御プログラムなどを記憶した書き換え不能な不揮発性のメモリであるROM、CPUによる制御プログラムの実行時に各種のデータ等が一時的に記憶される書き換え可能な揮発性のメモリであるRAM、に加え、記録媒体を搬送するためのモータと、記録媒体に対してインクを吐出して画像を形成する印字ヘッドと、印字ヘッドを駆動(移動)させるキャリッジモータと、PC10に接続するインターフェースとを備え、インターフェースを介してPC10から受信した印刷データを記録媒体に印刷する一般的なインクジェットプリンタで構成されている。
尚、プリンタ20は、必ずしも、インクジェットプリンタで構成される必要はなく、トナーによって印刷を行うレーザープリンタであっても良い。また、PC10に接続される装置はプリンタに限られるものではなく、プリンタの機能を備えたファクシミリ装置やコピー機、更には、これらの複合機であってもよい。
次に、図4から図7を参照して、プリンタドライバ14aによって実行されるプレビュー画像の生成過程を説明する。
図4は、アプリケーションプログラムからの描画命令30に基づいて作成されたビットマップデータを示した図である。具体的には、図4(a)には、図2に示した描画命令30a〜30dに基づいて生成されたオブジェクトA〜Dのビットマップデータを示している。尚、図4において、各オブジェクトA〜Dのそれぞれに対応するビットマップデータにそれぞれA’〜D’を付している。
描画命令30に基づいて描画された各オブジェクトは、矩形状に区画され、その矩形状の範囲のドットデータを該オブジェクトのビットマップデータとする描画ファイルが生成される。ここで、区画される矩形状の範囲は、その描画命令30の有する描画領域情報35aにて規定される範囲とされている。詳細には、描画されたオブジェクトが矩形状であり、且つ、その描画領域が、描画命令30に含まれる描画領域情報35aにて示される描画領域に一致する場合(描画命令30c,30d、即ちオブジェクトC,D)には、その描画命令30の有する描画領域情報35aにて指定される描画領域に展開されているドットデータが、そのままオブジェクトのビットマップデータ(図4中、C’,D’)として描画ファイルメモリ13bに記憶される。上記したように、文字のオブジェクトは矩形状のオブジェクトであるので、ビットマップデータは、必ず、描画命令30に含まれる描画領域情報35aにて示される描画領域で生成される。
また、描画されたオブジェクトが矩形状であり、且つ、描画命令30にマスク領域情報35bが含まれる場合(描画命令30a、オブジェクトA)、マスク領域に属する部分のみのビットマップデータ(図4中、A’)が生成される。つまり、ビットマップデータは、描画命令30に含まれる描画領域情報35aにて指定された描画領域ではなく、描画領域情報35aで規定される描画領域とマスク領域情報35bで規定されるマスク領域との共通領域の範囲で生成される。
更に、描画されたオブジェクトが矩形状でない場合(描画命令30b、オブジェクトB)では、描画されたオブジェクトの周辺を含む矩形範囲でビットマップデータ(図4中、B’)が生成される。ビットマップデータは矩形状のデータであるからである。かかる場合、展開されたドットデータに対し、X軸方向およびY軸方向の両端部の位置座標をそれぞれ通過する4辺で囲まれた矩形状(正方形または長方形)の範囲(描画領域情報にて規定される矩形範囲)でビットマップデータは生成される。このため、かかるビットマップデータ(B’)には、オブジェクトと、オブジェクト以外の余白部分が含まれている。
尚、生成されるビットマップデータは、描画されたオブジェクトの各ドットが有する色の値で記憶され、余白部分のビットマップデータは、白色の値で記憶されるものとしたが、余白部分の色の値は白色の値に限られず他の色を適用しても良い。更に、ビットマップデータは、各ドット毎の透明度のデータを色の値と共に有するものであっても良い。
図4(b)は、プレビュー画像の生成時において、矩形状でないオブジェクトに対して生成される標識マスクM2のビットマップデータを示したものである。矩形状でないオブジェクトである場合、描画命令30bに対応したオブジェクトBなどでは、オブジェクトBのビットマップデータ(B’)に対する標識マスクM2が生成される。上記した標識マスクファイルメモリ13cには、生成された標識マスクM2のビットマップデータが、標識マスクファイルとして記憶される。
この標識マスクM2の生成においては、まず、対応するオブジェクトが描画命令30に従って描画されたドットデータが、黒色の値のドットデータとして記憶される、描画命令30に従って描画が行われると、オブジェクトの部分だけが描画されることとなるので、この黒色の値を備えたドットデータは、オブジェクトの描画部分を標識する情報となる(図4(b)において黒の塗りつぶしで表示)。その後、描画されたオブジェクトの描画命令30に含まれる描画領域情報35aから、該オブジェクトに対する矩形範囲を規定する。描画領域情報35aにて規定される矩形範囲は、ビットマップデータの生成範囲に一致しているので、かかる矩形範囲内で、黒色の値が付与されていない部分を白色の値のドットデータとして記録する。つまり、この白色の値のドットデータは、ビットマップデータ中のオブジェクトの余白部分(オブジェクトでない部分)を標識する情報となる(図4(b)において斜線部で表示)。そして、この描画部分を標識する黒の値と、余白部分(オブジェクトでない部分)を標識する白の値とを合成することにより、ビットマップデータ中のオブジェクトの部分と否である部分とを区別する標識マスクM2のビットマップデータが生成される。
図5は、プレビュー画像の表示が要求された場合にLCD16に表示されるプレビュー画像、即ち、表示要求に応じて最初に表示されるプレビュー画像と、その生成過程とを示した図である。尚、図5には図2の描画命令30および図3のビットマップデータに関する情報に基づいて生成されるプレビュー画像を示している。プリンタドライバ14aに対し、アプリケーションプログラムから印刷処理が要求されると、アプリケーションプログラムが呼び出した描画命令30に従って、プレビュー画像に属する各オブジェクト(オブジェクトA〜D)が生成される。
各オブジェクトを形成するデータ(オブジェクトデータ32)がベクタグラフィックス形式であるものは、計算によってドットデータに変換(ドット展開、描画)された後、そのドットデータから各オブジェクトのビットマップデータが作成される。また、ビットマップデータに対応する標識マスクM2の生成や、各ビットマップデータに関する情報のプレビュー管理メモリ13aへの書き込みが実行される。そして、1ページの画像の全ての描画命令30に対するビットマップデータの生成が終了した後、プレビュー管理メモリ13aを参照し、作成された各ビットマップデータに対応して記憶される描画領域情報45にて指定される描画位置(領域)に、順次、各オブジェクトが表示される。
ここで図3に示したようにプレビュー管理メモリ13aに、1ページの画像に属する4つのオブジェクトA〜Dに対応する4つのビットマップデータに関する情報30a’〜30d’が記憶されていると、かかる情報の内、まず、プレビュー管理メモリ13aの先頭アドレスに記憶された(描画順が1番目である)オブジェクトAに対応する情報30a’が読み出される。また、順次、プレビュー管理メモリ13aに記憶される情報30b’〜30d’が読み出される。
その後、第1番目に、情報30a’に対応するビットマップデータ(A’、図4参照)に基づいたオブジェクトAが、描画領域情報45の示す位置でLCD16に表示される。尚、オブジェクトAに対応する描画命令30aには、マスクM1の情報が含まれているので、本来のオブジェクトA0の一部がオブジェクトAとして表示されている(図5(a))。ここで、図6を参照して、描画命令30にマスクM1の情報が含まれている場合のオブジェクトのビットマップデータの生成過程について説明する。
図6は、マスクM1が設定されているオブジェクトのビットマップデータ生成のイメージを示した図である。オブジェクトに対しマスクM1が設定されている場合、オブジェクトデータ32で定義されている本来のオブジェクトがそのまま表示されるのではなく、その一部が非表示となる。故に、非表示とする部分を表示画像から除外する必要がある。
このため、描画命令30aのオブジェクトデータ32に従って描画が実行されると、本来のオブジェクトA0に対応したビットマップデータA0’が生成される(図6(a))。そしてこのビットマップデータA0’とマスクM1との共通領域は表示部分としてCPU11に認識され、他方、ビットマップデータA0’とマスクM1との非共通領域は、表示を行わない非表示部分としてCPU11に認識される(図6(b))。その結果、本来のオブジェクトの一部に対応したビットマップデータ(A’)が、描画命令30aにて形成されるビットマップデータとして描画ファイルに記憶される(図6(c))。これにより、本来のオブジェクトA0の一部であるオブジェクトAが、ビットマップデータ(A’)によって、LCD16に表示されることとなる。
図5に戻って説明する。オブジェクトAの表示が終了した後は、プレビュー管理メモリ13aに描画順が2番目で記憶されている情報30b’に対応するビットマップデータ(B’、図4参照)に基づいたオブジェクトBが、その描画領域情報45の示す位置でLCD16に表示される。オブジェクトBの描画領域の一部は、Aの描画領域に重なっているので、先に表示されたオブジェクトAの一部は、オブジェクトBで被覆されて非表示となる(図5(b))。
次いで、プレビュー管理メモリ13aに描画順が3番目で記憶されている情報30c’に対応するビットマップデータ(C’、図4参照)に基づいたオブジェクトCが、その描画領域情報45の示す位置でLCD16に表示される。オブジェクトCの描画領域は、オブジェクトAの描画領域の下方に設定されているので、オブジェクトCは、オブジェクトAの下方において、オブジェクトAの前面に表示される(図5(c))。そして、最後に、プレビュー管理メモリ13aに描画順が4番目で記憶されている情報30d’に対応するビットマップデータ(D’、図4参照)に基づいたオブジェクトDが、その描画領域情報45の示す位置でLCD16に表示される。オブジェクトDの表示により、プレビュー画像が完成する(図5(d))。
ここで、オブジェクトBは、そのビットマップデータ(B’)の内、標識マスクM2によってオブジェクトとして指定(標識)されている部分のみが表示されており、ビットマップデータの余白部分が非表示とされた本来表示されるべき正しい態様のオブジェクトが表示されている。
図7は、図5のプレビュー画像に対して編集が実行された後のプレビュー画像を示した図である。編集が実行されると、プレビュー管理メモリ13aの内容が更新され、更新後の内容に基づいて、プレビュー画像がLCD16に再表示される。編集された内容は、プレビュー管理メモリ13aに記憶されるので、編集後のプレビュー画像についても、プレビュー管理メモリ13aの内容に従って作成される。また、プレビュー画像に表示される各オブジェクトも、描画ファイルメモリ13bに記憶される描画ファイルから読み出されるビットマップデータ(A’,B’,C’,D’)に基づいて表示される。このため、編集後、迅速にプレビュー画像が再表示される。尚、図7の再表示されたプレビュー画像は、図3(b)に示したプレビュー管理メモリ13aの内容に従って生成されたものである。
具体的には、オブジェクトAは、最初のプレビュー画像において、最小座標(330,590)最大座標(530,990)であった描画領域情報45が、最小座標(130,590)最大座標(330,990)に変更されている。従って、編集後には、オブジェクトAの表示位置が、画面左側へとシフトされている。オブジェクトCは、最初のプレビュー画像において、最小座標(110,860)最大座標(620,1040)であった描画領域情報45が、編集後には、最小座標(210,160)最大座標(720,340)に変更されている。従って、オブジェクトCの表示位置は、画面右側上方へとシフトされている。オブジェクDは、最初のプレビュー画像において、最小座標(360,140)最大座標(760,440)であった描画領域情報45が、最小座標(360,340)最大座標(760,640)に変更されている。従って、オブジェクトDの表示位置は、画面下方へとシフトされている。
また、初期(最初のプレビュー画像生成時)において、プレビュー管理メモリ13aには、オブジェクトA,B,C,Dの順で、ビットマップデータに関する情報30a’〜30d’が記憶されていたが、編集によって、オブジェクトC,A,D,Bの順に記憶順が変更されているため、オブジェクトCを最背面とし、オブジェクトA,D,Bの順で前面側(最前面がオブジェクトB)となるように各オブジェクトは、再配置されている。
次に、図8から図12のフローチャートを参照して、上記のように構成されたPC10により実行されるプリンタドライバ14aの各処理について説明する。図8は、画像データのプレビューと印刷処理とを行うプレビュー処理のフローチャートである。このプレビュー処理は、プリンタドライバ14aが起動されると実行される。プリンタドライバ14aの起動は、アプリケーションプログラムから印刷が要求されることを契機として実行される。
このプレビュー処理では、まず、アプリケーションプログラムから呼ばれた描画命令30からオブジェクトのビットマップデータと、標識マスクM2のビットマップデータとを作成するビットマップ生成処理(S101)を実行し、次いで、作成したビットマップデータにてプレビュー画像を表示するプレビュー画面生成処理を実行し(S102)、その後、操作者の操作に基づいてプレビュー画像を編集する編集処理を実行する(S103)。
この編集処理では、表示されたプレビュー画像の各オブジェクトに対し、操作者による操作部(キーボードおよびマウス)の操作に基づいて、指定されたオブジェクトの移動や、拡大、縮小、削除、更には、描画順の変更を実行するものであり、編集操作による変更に応じて、プレビュー管理メモリ13aの位置座標エリア13a1の描画領域情報45を更新する。また、描画順(プレビュー管理メモリ13aのデータ順)を入れ替える。
その後、編集処理(S103)において、プレビュー画像に対する編集が実行されたか否かを確認し(S104)、編集が実行されていなければ(S104:No)、編集終了が要求されたか否かを確認する(S105)。この編集終了要求は、操作者の操作により編集終了コマンドが入力されることによりCPU11に認識される。確認の結果、編集終了が要求されていれば(S105:Yes)、プレビュー画像メモリ13dに記憶される画像データ(ビットマップデータ)を印刷データに変換し(S106)、印刷データをプリンタ20に送信して(S107)、このプレビュー処理を終了する。
一方、S104の処理で確認した結果、編集が実行されていた場合(S104:Yes)、プレビュー画像メモリ13dをクリアして(S108)、新たなビットマップデータの描画を開始できる状態とし、その処理をS102の処理に移行する。
また、S105の処理で確認した結果、編集終了が要求されていなければ(S105:No)、その処理を編集処理(S103)に移行して、編集の実行または編集の終了を待機する。
図9は、図8のプレビュー処理の中で実行されるビットマップ生成処理(S101)のフローチャートである。このビットマップ生成処理(S101)では、まず、アプリケーションプログラムから送出される描画命令30を取得する(S201)。本ビットマップ生成処理(S101)では、1の描画命令30の取得毎に(取得した描画命令30に対して)S202以降の処理を実行する。
次に、取得した描画命令30に従いオブジェクトを描画する、即ち描画エリア(RAMの動作エリアの一部、描画命令30をドット展開する領域)にオブジェクトデータ32をドット展開するビットマップ描画処理を実行してから(S202)、取得した描画命令30に含まれるマスクタイプ情報34が、「矩形」情報であるか否かを確認する(S203)。その結果、その描画命令30のマスクタイプ情報34が「矩形」情報であれば(S203:Yes)、その描画命令30におけるオブジェクトの描画領域とマスク領域とから共通領域を抽出し、抽出された共通領域を描画領域情報45として、描画命令に対応つけて(当該描画命令に対応する)プレビュー管理メモリ13aの位置座標エリア13a1に書き込む(S204)。一方、描画命令30のマスクタイプ情報34が「矩形」情報でなければ(S203:No)、取得した描画命令30の描画領域情報35aをそのまま描画命令に対応つけて(当該描画命令に対応する)プレビュー管理メモリ13aの対応する位置座標エリア13a1に(描画領域情報45として)書き込む(S205)。
S204またはS205の処理の後は、描画命令30に含まれる色数情報を確認し(S206)、S202の処理で描画命令30からドット展開して形成したオブジェクトのビットマップデータについて、プレビュー管理メモリ13aに記憶される描画領域情報45にて指定される描画領域の範囲を、確認した色数情報に対応したビットマップファイル形式の描画ファイルで、描画ファイルメモリ13bに記憶する(S207)。これにより、オブジェクトのビットマップデータが形成されることとなる(図4参照)。
色数情報は、オブジェクトに適用された色表現系における表現可能な最大の色数を示す情報である。ビットマップデータは表現可能な色数に応じて異なるビット数でデータが生成される。従って、色数情報を確認し、その確認した色数情報に対応したビットマップファイル形式とすることにより、色数に応じた的確なビット数でビットマップデータを記憶することができる。
その後、新たなファイル名(唯一のファイル名)を取得し、描画ファイルメモリ13bに記憶した描画ファイルに付与する(S208)。次いで、取得したファイル名(描画ファイル名46)をS204またはS205の処理において記憶した描画領域情報45に対応させてプレビュー管理メモリ13aに書き込む(S209)。続いて、標識マスクM2を生成するマスク生成処理を実行してから(S210)、全描画エリア(前述の描画エリアの全領域)をクリアする(S211)。そして、描画命令終了か、即ち、アプリケーションプログラムからの描画命令30の送出が終了であるか否かを確認し(S212)、送出終了であれば(S212:Yes)、このビットマップ生成処理(S101)を終了する。一方、送出終了でなければ(S212:No)、その処理をS201の処理に移行して、アプリケーションプログラムから送出される描画命令30が終了するまでS201〜S212の処理を繰り返す。
図10は、図9のビットマップ生成処理(S101)の中で実行されるマスク生成処理(S210)のフローチャートである。このマスク生成処理(S210)では、まず、S201の処理で取得した描画命令30が文字描画命令であって且つべた無しが指定されているかを確認し(S301)、文字描画命令でない場合および文字描画命令であってもべた有りが指定されている(べた無しが指定されていない)場合には(S301:No)、その描画命令30に含まれるマスクタイプ情報34が「パス」情報であるか否かを確認する(S302)。
「パス」情報であれば(S302:Yes)、描画命令30によって描画されるオブジェクトは、矩形状でない図形のオブジェクトであるので、全描画エリアをクリアしてから(S303)、マスクのパス領域内を黒色で塗りつぶす(S304)。かかるS303とS304とのマスク描画処理により標識マスクM2が作成される。
そして、作成された標識マスクM2を標識マスクファイルメモリ13cに1の標識マスクファイルとして記憶し(S305)、更に、標識マスクファイルメモリ13cに記憶された標識マスクファイルに対し、ファイル名を付与する(S306)。このファイル名は、他のファイル名と重複しない唯一のファイル名とされる。その後、付与されたファイル名(標識マスクファイル名47)とマスクタイプ情報44(「パス」情報)とを、S204またはS205の処理において記憶した描画領域情報45に対応させてプレビュー管理メモリ13aに書込み(S307)、このマスク生成処理(S210)を終了する。
また、S301の処理で確認した結果、文字描画命令であり且つべた無しが指定されている場合には(S301:Yes)、マスクタイプ情報44(「文字」情報)を、S204またはS205の処理において記憶した描画領域情報45に対応させてプレビュー管理メモリ13aに書込み(S308)、このマスク生成処理(S210)を終了する。
更に、S302の処理で確認した結果、描画命令30のマスクタイプ情報34が「パス」情報でなければ(S302:No)、描画命令30に従って描画されたオブジェクトは、矩形状のオブジェクトであるので、マスクタイプ情報44(「マスク無し」情報)をS204またはS205の処理において記憶した描画領域情報45に対応させてプレビュー管理メモリ13aに書込み(S309)、このマスク生成処理(S210)を終了する。
図11は、図8のプレビュー処理の中で実行されるプレビュー画面生成処理(S102)のフローチャートである。このプレビュー画面生成処理(S102)の実行前に、1のプレビュー画像に表示される各オブジェクトのビットマップデータと、その対応する標識マスクM2とは既に生成され、各々描画ファイルメモリ13bと標識マスクファイルメモリ13cとに記憶されている。また、プレビュー管理メモリ13aには、各ビットマップデータに関する情報がオブジェクト毎に記憶されている。このため、プレビュー画面生成処理(S102)においては、プレビュー管理メモリ13aを参照することにより、各オブジェクトのビットマップデータや標識マスクM2などが、対応する描画ファイルや標識マスクファイルから的確に読み出されて、プレビュー画像を形成することができる。つまり、予め記憶されたビットマップデータに基づいてプレビュー画像が形成されるので、特に、編集処理の実行後において迅速にプレビュー画像をLCD16に表示することができる。
このプレビュー画面生成処理(S102)では、まず、オブジェクトカウンタ13eのカウント値(i)を1にセットし(S401)、そのカウント値(i)が、プレビュー管
理メモリ13aに記憶されるオブジェクトの数を越えているか否かを確認し(S402)、オブジェクトカウンタ13eのカウント値(i)がオブジェクトの数を越えていれば(S402:Yes)、全てのオブジェクトの描画(プレビュー画像メモリ13dへの書込み)が終了しているので、プレビュー画像メモリ13eに記憶される画像データをLCD16に出力(表示)して(S403)、このプレビュー画面生成処理(S102)を終了する。
また、S402の処理で確認した結果、オブジェクトカウンタ13eのカウント値(i)がオブジェクトの数を越えていなければ(S402:No)、全てのオブジェクトの描画が終了していないことが示されているので、プレビュー管理メモリ13aを参照して描画順がi番目のオブジェクトの描画処理を実行する(S404)。i番目のオブジェクトの描画処理の実行後は、オブジェクトカウンタ13eのカウント値(i)に1加算して(S405)、その処理をS402の処理に移行する。
図12は、図11のプレビュー画面生成処理(S102)の中で実行されるi番目のオブジェクトの描画処理(S404)のフローチャートである。この描画処理(S404)は、描画ファイルのビットマップデータを、標識マスクM2を参照しつつ描画して実際に表示するプレビュー画像を生成する処理である。
この描画処理(S404)では、まず、プレビュー管理メモリ13aに描画順がi番目で記憶されているマスクタイプ情報44が、「パス」情報であるかを確認し(S501)、「パス」情報でなければ(S501:No)、オブジェクトは矩形状であることが示されているので、その矩形状のオブジェクトが文字であるか図形であるかを確認するために、マスクタイプ情報44が「文字」情報であるかを確認する(S502)。その結果、マスクタイプ情報44が「文字」情報でなければ(S502:No)、i番目に描画されるオブジェクトは、文字ではない矩形状の図形である。故に、描画ファイルメモリ13bに記憶される対応する描画ファイルのビットマップデータを、プレビュー管理メモリ13aに記憶される対応する描画領域情報45によって規定される描画領域に対応させてプレビュー画像メモリ13dに書き込んで(S503)、この描画処理(S404)を終了する。
一方、S501の処理で確認した結果、マスクタイプ情報44が「パス」情報であれば(S501:Yes)、描画するオブジェクトは矩形状ではないことを示しており、そのオブジェクトのビットマップデータに対応する標識マスクM2が標識マスクファイルメモリ13cに記憶されている。従って、対応する描画ファイルのビットマップデータと標識マスクM2とを、描画ファイルメモリ13bと標識マスクファイルメモリ13cとからそれぞれ読み出す(S506)。
そして、読み出した描画ファイルのビットマップデータの内、標識マスクM2にてオブジェクトであることが示されている部分を抽出し、プレビュー管理メモリ13aに記憶されている対応する描画領域情報45によって規定される描画領域に対応させてプレビュー画像メモリ13dに書き込む(S507)。これにより、ビットマップデータのオブジェクトでない余白部分は、LCD16には出力されず、非表示となる。
また、S502の処理で確認した結果、マスクタイプ情報44が「文字」情報であれば(S502:Yes)、描画ファイルメモリ13bに記憶される対応する描画ファイルのビットマップデータをプレビュー管理メモリ13aに記憶されている対応する描画領域情報45によって規定される描画領域に対応させてプレビュー画像メモリ13dに書き込む(S505)。
S505の処理では、オブジェクトは文字であるので矩形状ではあるが、文字と文字以外の余白部分が混在する。しかし、描画命令30に従って、表示するドットと非表示のドットとをそれぞれ示す2値データで形成されたビットマップデータが、描画ファイルには記憶されているので、かかる2値データに応じたデータの書込みがプレビュー画像メモリ13dに行われるので、文字以外の余白部分がLCD16に表示されることはない。
また、描画命令30によってべた有りが指定されている文字であると、文字の部分以外には塗りつぶしが指定されており、生成されたビットマップデータによって、文字部分と文字以外の部分とがそのまま通常のビットマップデータで表現されているので、矩形状の図形と同様に取り扱うことができる。このため、プレビュー管理メモリ13aにおいてマ
スクタイプ情報44は「マスク無し」情報で記憶されており、S501の処理でYesに分岐する。
尚、上記の描画処理(S404)では、描画順が指定されることにより、プレビュー管理メモリ13aにおいて記憶されるドットデータに関する一連の情報が特定される。従って、1のオブジェクトの描画ファイル名46が認識されて対応する描画ファイルが選定され、同様に、標識マスクファイル名47から標識マスクM2が選定される。また、対応する描画領域情報45が選定される。
編集によって、オブジェクトの拡大や縮小が行われた場合は、描画領域情報45は、先に記憶されていたデータよりも拡大または縮小された描画領域を規定するように変更されている。このため、描画ファイルメモリ13bおよび標識マスクファイルメモリ13cから読み出されたビットマップデータに対しては、その描画領域情報45にて示される範囲にデータが展開されるように、データの伸張または圧縮が行われる。そして、伸張または圧縮後のビットマップデータが、プレビュー画像メモリ13dに書き込まれる。
以上説明したように、PC10に搭載されたプリンタドライバ14aによれば、プレビュー画像を形成する各オブジェクトのビットマップデータを作成し、そのビットマップデータでプレビュー画像を表示することができる。また、オブジェクトが矩形状でない場合には、ビットマップデータの内のオブジェクト部分を識別するための標識マスクM2が生成され、その標識マスクM2に基づいて、ビットマップデータ内のオブジェクトの部分だけを表示することができる。このため、編集後のプレビュー画像を迅速に表示できると共に、ビットマップデータの余白部分によって他のオブジェクトが操作者の意図とは無関係に非表示とされることがなく、本来表示されるべき態様で正しく表示することができる。
以上実施形態に基づき本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、プリンタドライバ14aにより描画命令30から描画することによってビットマップデータを生成したが、ビットマップデータは、オペレーションプログラムにて生成されるものとし、プリンタドライバ14aは、既にオペレーションプログラムにて生成されたビットマップデータを描画ファイルとして描画ファイルメモリ13bに記憶すると共に、その描画ファイルメモリ13bに記憶されたビットマップデータから標識マスクM2を生成するように構成しても良い。
また、上記実施形態においては、プレビュー画像の各オブジェクトのドットデータは、ビットマップデータ(ビットマップ形式)にて生成したが、これに代えて、生成するドットデータに、GIF形式、JPEG形式などの他のラスタグラフィックスの形式を適用しても良い。
更に、上記実施形態では、マスクM1は矩形状に限定され、また、マスクM1にてマスクされたオブジェクト形状についても矩形状となるように限定するものとしたが、これに代えて、マスクM1には各種の形状を適用できるものとし、また、マスクされた後のオブジェクトの形状も各種形状を採用できるものとしても良い。マスク後のオブジェクトの形状が矩形状にならない場合には、マスクタイプ情報34,44は「パス」情報で設定されるものとする。
また、上記実施形態では、オブジェクトが文字である場合および矩形状である場合には標識マスクM2の生成を非実行とし、それ以外の場合に標識マスクM2を生成するように構成された。これに代えて、或いはこれに加えて、操作者により標識マスクM2の生成を選択可能に構成し、操作者が指定したオブジェクトについて標識マスクM2を生成するように構成しても良い。更には、標識マスクM2は、ビットマップデータに限られるものではなく、ビットマップデータ以外のドットデータにて形成されても良く、ベクタグラフィックスのデータで形成されてもよい。
加えて、上記実施形態では、プレビュー画面生成処理(S102)は、新たな編集が実行されると、全てのオブジェクトを再描画するように構成されたが、これに代えて、新たな編集が実行された場合、編集されたオブジェクトに対応する部分のみ描画処理を行う構成としても良い。かかる場合には、プレビュー処理において編集が認識された場合(S104:Yes)、プレビュー画像メモリ13dに記憶されるデータの内、編集されたオブジェクトに対応する部分のみ消去するようにプレビュー処理は構成される。これによれば、編集後のプレビュー画像の表示を迅速に実行することができる。
また、上記実施形態では、プレビュー処理において、最初のプレビュー画像を表示する際にビットマップデータを作成し、ビットマップデータによってプレビュー画像を表示するように構成した。これに代えて、少なくとも、最初のプレビュー画像については、描画命令30から描画された描画データをプレビュー画像メモリ13dに書込み、(ビットマップデータを生成せずに)描画命令30から生成された画像をLCD16に表示するようにプレビュー処理を構成しても良い。
編集は、操作者の操作によって任意に実行されるものであるので、編集が実行されないことも往々にしてある。ビットマップデータによるプレビュー画像の表示は、繰り返してプレビュー画像を表示する場合に、その都度、描画命令30からプレビュー画像が描画されることを回避して、プレビュー画像の再表示にかかる時間を短縮することを目的とするものである。一方、編集が実行されない場合には、描画命令30から描画された描画データを単純にLCD16に表示するほうが、プレビュー画像を迅速に表示できる。描画されたドットデータから更にオブジェクトのビットマップデータや標識マスクM2を生成する処理を省略できるからである。そこで、編集が行われた場合に、描画データからオブジェクトのビットマップデータや標識マスクM2を生成することとし、編集が行われる前に表示される最初のプレビュー画像については、描画データをLCD16に出力することにより、プレビュー画像を表示する処理全体の効率化を実行することができる。