(57)【要約】【課題】  透過画素を含む描画イメージに対して縮小や拡大などの画像変換を実行する際に、透過画素と不透過画素の境界に、想定外の色の画素が出現してしまうことがある。【解決手段】  本発明によれば、変換前の元のイメージにおける複数の対応画素に、完全透過の画素と完全透過でない画素との両方が含まれていると判断した場合、変換後（縮小変換後または拡大変換後）のイメージにおける画素の色値を、当該対応画素のうちの完全透過でない画素の色値に基づいて求める。このように構成することにより、縮小や拡大などの画像変換を行う際に、完全透過の画素に設定されている色値の悪影響を受けずに済む。【選択図】  図５
2019050489.tif 000002
【特許請求の範囲】
【請求項１】
イメージを画像変換する情報処理装置であって、
変換後のイメージにおける各画素の画素値を求めるために用いる、変換前のイメージにおける複数の対応画素が、完全透過の画素と完全透過でない画素との両方を含むか否か判断する判断手段と、
前記判断手段で、前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素のうちの完全透過でない画素の色値を用いて、変換後のイメージにおける画素の色値を求める第１算出手段と、
前記判断手段で、前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素すべての透過度を用いて、変換後のイメージにおける画素の透過度を求める第２算出手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記判断手段で、前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含まないと判断した場合、前記第１算出手段は、前記複数の対応画素すべての色値を用いて、変換後のイメージにおける画素の色値を求め、前記第２算出手段は、前記複数の対応画素すべての透過度を用いて、変換後のイメージにおける画素の透過度を求める、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判断手段で前記複数の対応画素が完全透過の画素のみであると判断した場合は、前記変換後のイメージにおける画素の色値を所定の値に設定し、かつ、透過度を完全透過に設定する設定手段を更に有する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記画像変換が、前記イメージを縮小する画像変換である場合、
前記判断手段は、前記変換前のイメージにおける前記複数の対応画素で構成される処理対象領域内に、完全透過の画素と完全透過でない画素との両方が含まれるか否か判断し、
前記判断手段で前記処理対象領域内に完全透過の画素と完全透過でない画素との両方が含まれると判断した場合、前記第１算出手段は、前記処理対象領域内の完全透過でない画素の色値を用いて、変換後のイメージにおける画素の色値を求め、
前記判断手段で前記処理対象領域内に完全透過の画素と完全透過でない画素との両方が含まれると判断した場合、前記第２算出手段は、前記処理対象領域内の全ての画素の透過度を用いて、変換後のイメージにおける画素の透過度を求める、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記画像変換が、前記イメージを拡大する画像変換である場合、
前記判断手段は、前記変換後のイメージにおける各画素の画素値を求める際の補間に用いる、変換前のイメージにおける複数の対応画素が、完全透過の画素と完全透過でない画素との両方を含むか否か判断し、
前記判断手段で前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記第１算出手段は、前記複数の対応画素のうちの完全透過でない画素の色値を用いて、変換後のイメージにおける画素の色値を求め、
前記判断手段で前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記第２算出手段は、前記複数の対応画素すべての透過度を用いて、変換後のイメージにおける画素の透過度を求める、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記色値とはＲＧＢの値であり、前記透過度とはアルファ値であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
コンピュータを、請求項１乃至６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項８】
イメージを画像変換するために、情報処理装置が実行する変換方法であって、
変換後のイメージにおける各画素の画素値を求めるために用いる、変換前のイメージにおける複数の対応画素が、完全透過の画素と完全透過でない画素との両方を含むか否か判断する判断ステップと、
前記判断ステップで前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素のうちの完全透過でない画素の色値を用いて、変換後のイメージにおける画素の色値を求める第１算出ステップと、
前記判断ステップで前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素すべての透過度を用いて、変換後のイメージにおける画素の透過度を求める第２算出ステップと、
を有することを特徴とする変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージに対して縮小や拡大などの画像変換を行うための情報処理装置に関するものである。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓオペレーティングシステムにおいて動作するアプリケーションからプリンタードライバーを介して文書をプリンターにて印刷するための処理フローとして、次の２つが存在する。すなわち、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）プリントパス、および、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリントパスである。また、Ｗｉｎｄｏｗｓオペレーティングシステムにおいて動作するアプリケーションには、文書の印刷指示が為された場合に、印刷対象文書の描画命令として、ＧＤＩ形式の描画データを出力するものと、ＸＰＳ形式の描画データを出力するものがある。本明細書では、文書の印刷指示が為された場合に、ＧＤＩ形式の描画データを出力するアプリケーションをＧＤＩアプリケーションと呼び、ＸＰＳ形式の描画データを出力するアプリケーションをＸＰＳアプリケーションと呼ぶこととする。
【０００３】
ＧＤＩプリントパスでは、ＧＤＩプリンタードライバー（Ｖ３プリンタードライバーとも呼ばれる）によって、ＧＤＩ形式の描画データから、プリンターで処理可能なＰＤＬデータ（印刷ジョブ）が作成される。一方、ＸＰＳプリントパスでは、Ｗｉｎｄｏｗｓ８でサポートされるようになったＶｅｒｓｉｏｎ４プリンタードライバー（以下、「Ｖ４プリンタードライバー」と呼ぶ。）によって、ＸＰＳ形式の描画データからプリンター用のＰＤＬデータ（印刷ジョブ）が作成される。このＶ４プリンタードライバーを用いて、ＧＤＩアプリケーションで作成した文書の印刷ジョブを作成する場合、ＧＤＩ形式の描画データをＭｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｖｅｒｔｅｒ（以下、ＭＸＤＣ）によりＸＰＳ形式の描画データに変換する必要が生じる。
【０００４】
印刷対象文書に透過率を色情報として持つ透過オブジェクトがある場合、ＭＸＤＣは、３チャンネルのＲＧＢ画像とマスク画像とを合成して描画するＲＯＰ描画命令を、アルファチャンネル（Ａ）を含む４チャンネルのＲＧＢＡ画像の描画命令に変換する。そして、Ｖ４プリンタードライバーは、アルファチャンネルＡを含む４チャンネルのＲＧＢＡ画像のレンダリング処理を行って、印刷ジョブを作成する。
【０００５】
ところで、プリンタードライバーにおいて画像データをダウンサンプリング（低解像度化）するときに、周期的なパターン描画や細線・小ポイント文字のような細かな表現を守るため、バイリニアやバイキュービックといった計算を用いる場合がある。例えば、６００ｄｐｉのＲＧＢ入力画像を３００ｄｐｉのＲＧＢ出力画像に解像度変換する場合、入力画像における２×２画素を出力画像の１画素に変換する計算を行えばよい。この場合、例えば、入力画像における２×２画素の各画素のＲ、Ｇ、Ｂの値それぞれについて平均値を求め、その値を解像度変換後の画像の１画素のＲ、Ｇ、Ｂの値として用いることになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１５８７４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、入力画像がＲＧＢＡ画像であった場合、上述したようなＲＧＢ画像に対する計算方法と同様な計算方法（Ｒ，Ｇ，Ｂ，Ａそれぞれの値について単純平均を求める方法）で解像度変換すると、変換後の画像において予期しない色が出現することがある。
【０００８】
例えば、入力画像における２×２画素内において、白の背景の上に、完全透過の黒画素と、完全不透過の白画素とが、２画素ずつ存在していたとする。また、Ｒ，Ｇ，Ｂ，Ａの各値を０〜１００％で表した場合、完全透過の黒画素は（Ｒ，Ｇ，Ｂ，Ａ）＝（０，０，０，０）で表現され、完全不透過の白画素は（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）で表現されるものとする。このときダウンサンプリングしなかったとすると、入力画像において、完全透過の黒画素の部分は、背景の白がそのまま透過して見えるので、結果的に２×２画素は全て白画素で描画されることになる。一方、この２×２画素を１画素に縮小するダウンサンプリングを行う際に、２×２画素内のＲ，Ｇ，Ｂ，Ａそれぞれの値について単純平均を求めたとすると、（Ｒ，Ｇ，Ｂ，Ａ）＝（５０，５０，５０，５０）の半透過の灰色の画素となる。したがって、Ｒ，Ｇ，Ｂ，Ａそれぞれの値を単純平均してダウンサンプリングした場合の１画素は、灰色の画素で描画されることになってしまう。すなわち、ダウンサンプリングしなかった場合は白色で描画されていたものが、単純平均によるダウンサンプリングを行った場合は灰色で描画されることになってしまい、ダウンサンプリング後の画像において元の入力画像とは異なる色の画素が描画されてしまう。
【０００９】
特許文献１には、テレビジョン画像に対してデータ放送画像を重畳合成する際に、テレビジョン画像の解像度に応じて、データ放送画像を解像度変換（拡大／縮小）した後に重畳合成する手法が提案されている。特許文献１では、完全透明画素と不透明画素とで構成されるデータ放送画像を１／２倍の解像度に変換する場合、完全透明画素と不透明画素（完全透明でない画素）との境界部分については、不透明画素の値を縮小処理後の画素値として用いることが記載されている。
【００１０】
しかしながら特許文献１では、１／２倍の解像度に変換する時に完全透明画素と不透明画素との境界部分については、不透明画素のＲＧＢＡ値をそのまま用いているので、その境界部分は不透明画素の色が強調されすぎる可能性が生じる。例えば、不透明画素で表現される細線や黒文字の解像度を１／２にした場合、変換後の画像における細線や黒文字の線幅が元の入力画像における線幅より太って見える可能性が生じる。また、白抜き文字が完全透明画素で表現されていた場合は、解像度変換時にそれに隣接する不透明画素の画素値が用いられるので、白抜き部分の一部が潰れてしまう可能性も生じる。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の情報処理装置は、イメージを画像変換する情報処理装置であって、変換後のイメージにおける各画素の画素値を求めるために用いる、変換前のイメージにおける複数の対応画素が、完全透過の画素と完全透過でない画素との両方を含むか否か判断する判断手段と、前記判断手段で、前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素のうちの完全透過でない画素の色値を用いて、変換後のイメージにおける画素の色値を求める第１算出手段と、前記判断手段で、前記複数の対応画素が完全透過の画素と完全透過でない画素との両方を含むと判断した場合、前記複数の対応画素すべての透過度を用いて、変換後のイメージにおける画素の透過度を求める第２算出手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、透過画素を含むイメージに対して縮小や拡大などの画像変換を行う際に、完全透過の画素に設定されている色値の悪影響を受けずに済む。
【図面の簡単な説明】
【００１３】
【図１】本発明の印刷システムが適用可能な装置構成例
【図２】本発明の印刷システムに関わるハードウェア構成を示すブロック図
【図３】本発明の印刷処理に関わるソフトウェアモジュールの構成を示すブロック図
【図４】縮小処理実行判定処理のフローチャート
【図５】実施例１の縮小処理の詳細を示すフローチャート
【図６】処理対象のドキュメントの例
【図７】処理対象領域６０６の周辺の拡大図
【図８】図７に対して、本発明の縮小処理を適用した結果の例（ａ）と、単純平均を適用すると予期しない色が出現してしまう例（ｂ）
【図９】図６のドキュメントに対して、本発明の縮小処理を適用した結果の例
【図１０】図６のドキュメントに対して、単純平均処理を適用した場合の比較例
【図１１】３×３画素サイズの処理対象領域を、１画素に縮小する場合の計算例
【図１２】実施例２における補間処理対象領域と補間結果の画素値の例
【発明を実施するための形態】
【００１４】
［実施例１］
以下、本発明を実施するための第１の実施形態について図面を用いて説明する。
【００１５】
図１は、本発明の印刷システムが適用可能な装置構成例を示す図である。本印刷システムは、情報処理装置（以下「ＰＣ」とする。）１０と、画像形成装置（以下、「プリンター」とする。）２０とから構成される。ＰＣ１０とプリンター２０とはＬＡＮ１を介して接続されており、ＰＣ１０とプリンター２０との間でデータの送受信が可能である。ＬＡＮ１はイーサーネットの通信方式に対応する有線ＬＡＮや無線ＬＡＮを用いて良い。ただし、ＰＣ１０とプリンター２０とを接続する形態はＬＡＮに限定されるものではない。
【００１６】
図２は、ＰＣ１０のハードウェア構成を示すブロック図である。ＣＰＵ１０１は、ＲＡＭ１０２に記憶されているプログラムを実行することにより、システムバス１０４に接続される各デバイスを総括的に制御する。すなわち、コンピュータ（特に、ＣＰＵ１０１）は、コンピュータ読み取り可能な記憶媒体に記憶されているプログラムを実行することにより、後述する各処理を実行するための処理部として機能する。このＲＡＭ１０２は、データを一時的に記憶する記憶媒体であり、ＣＰＵ１０１のメインメモリ、ワークエリア等として機能する。ＲＯＭ１０３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ１０３ａと、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ１０３ｂと、各種データを記憶するデータＲＯＭ１０３ｃとに区分けして構成される。なお本実施例では、ＲＯＭ１０３の領域を内部で区分けして用いるが、フォントＲＯＭ１０３ａ、プログラムＲＯＭ１０３ｂ、及びデータＲＯＭ１０３ｃを物理的に別個の記憶手段として構成しても良い。ネットワークインターフェース（以下、「インターフェース」を「Ｉ／Ｆ」と略記する。）１０５は、ＬＡＮ１に接続され、ＰＣ１０と外部装置との間におけるデータ通信を制御する。キーボードＩ／Ｆ１０６は、キーボード１０９や不図示のポインティングデバイス（例えばマウス）等を用いたユーザからの入力を制御する。ディスプレイＩ／Ｆ１０７は、ディスプレイ１１０への表示などの出力を制御する。外部メモリＩ／Ｆ１０８は、例えばハードディスク（ＨＤ）等の外部メモリ１１１とのアクセスを制御する。外部メモリ１１１は、オペレーティングシステム（以下、「ＯＳ」と略記する。）１１２や、本実施例の印刷システムを担う各種ソフトウェア１１３や、ユーザファイル及び編集ファイル等の各種データ１１４を記憶する記憶媒体である。なお、本実施例では、ＯＳ１１２としてＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）１０を用いるが、用いるＯＳはこれに限定されるものではない。
【００１７】
図３は、本実施例におけるＰＣ１０のソフトウェア構成例を示すブロック図であり、ＰＣ１０が有するソフトウェアモジュールのうちＶ４プリンタードライバーにおけるレンダリング処理に関わるソフトウェアモジュールを示す図である。各ソフトウェアモジュールは、コンピュータを、後述する各処理を実行するための手段として機能させるものである。
【００１８】
ＧＤＩアプリケーション１１は、ユーザが文書を作成し、印刷指示を与えるためのソフトウェアである。印刷指示がユーザによって与えられると、ＧＤＩアプリケーション１１はＧＤＩのＡＰＩを用いて、印刷対象文書の描画命令としてＧＤＩ形式の描画データを、ＭＸＤＣ１２に出力する。ＭＸＤＣ１２はＧＤＩアプリケーション１１から受信したＧＤＩ形式の描画データをＸＰＳ形式の描画データに変換する。そして、変換したＸＰＳ形式の描画データを、Ｖ４プリンタードライバー１３に出力する。
【００１９】
Ｖ４プリンタードライバー１３は、ＸＰＳプリントフィルターパイプラインサービスと呼ばれるプログラミングモデルに従って、印刷ジョブを作成する一連の処理を実行する。具体的には、Ｖ４プリンタードライバー１３は、複数の連結されたフィルターから成るフィルターパイプライン１４を有し、連結された各フィルターによる処理が順に実行される。すなわち、あるフィルターの出力がその次に連結されたフィルターの入力となり、各フィルターが順次処理を実行することで、プリンター２０に出力する印刷ジョブ（ＰＤＬデータ）を作成する仕組みになっている。
【００２０】
本実施例では、フィルターパイプライン１４は、レイアウト処理を行うレイアウトフィルター１５と、レンダリング処理を行うレンダリングフィルター１６との２つのフィルターから構成される。レイアウトフィルター１５は、入力されたＸＰＳ形式の描画データに対して複数ページを１枚にまとめるＮｕｐなどのレイアウト処理を実行し、該実行により得られるレイアウト済みＸＰＳ形式の描画データを、レンダリングフィルター１６に出力する。レンダリングフィルター１６は入力されたレイアウト済みＸＰＳ形式の描画データに対し、エッジ強調、スムージング、拡大縮小処理、回転処理などの画像処理を適用して描画オブジェクトをＰＤＬデータに変換する。イメージの縮小処理については、アプリケーション１１で先に縮小されてからＶ４プリンタードライバーに送られてくる場合と、Ｖ４プリンタードライバー１３で縮小処理を行う場合とがあるが、本発明における縮小処理は、Ｖ４プリンタードライバー１３のレンダリングフィルター１６にある縮小処理部１８にて実行される。つづいて、レンダリングフィルター１６で変換されたＰＤＬデータをポートモニター１７に出力する。ポートモニター１７は、ＰＤＬデータをプリンター２０にＬＡＮ１を通じて送信する。
【００２１】
以下では、ドキュメント内に存在する描画イメージのピクセル寸法を縮小するように画像変換する方法について、図４〜図５のフローチャートを用いて説明する。なお、描画イメージのピクセル寸法と解像度と出力サイズは、（イメージのピクセル寸法）＝（解像度）×（出力サイズ）、という関係にある。描画イメージのピクセル寸法を縮小する画像変換処理は、例えば、ＰＤＬデータのデータ量を減らすために画像を低解像度化（ダウンサンプリング）する場合や、Ｎｕｐ処理を行うときのようにページ画像の印刷出力サイズを小さくする場合などに行われる。以下では、描画イメージを低解像化するために、描画イメージのピクセル寸法を縮小する場合を例にして説明するが、描画イメージの印刷出力サイズを小さくするために描画イメージのピクセル寸法を縮小する場合についても同様に本発明を適用可能である。なお、ここで説明する処理は縮小処理部１７が行う。
【００２２】
図６は、処理対象のドキュメント６００の例であり、ドキュメント６００上に描画イメージ６０２が配置されているものとする。図６（ａ）は、ドキュメント６００の背景６０１の上に、描画イメージ６０２を描画する様子を、上から見た概念図であり、図６（ｂ）は、その様子を斜めから見た概念図である。本実施形態では、（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ，Ａｌｐｈａ）の各値を０〜１００％で示すものとするが、これに限るものではなく、例えば０〜２５５（８ｂｉｔで表現される値）で示すものであっても構わない。本実施形態では、アルファ値（Ａ：透過度）を０〜１００％で表す場合、１００％のときに完全不透過、０％のときに完全透過とする。図６の描画イメージ６０２は、完全不透過の白色（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）の画素で構成される矩形の領域６０４を、完全透過の黒色（Ｒ，Ｇ，Ｂ，Ａ）＝（０，０，０，０）の画素で構成される領域６０５が囲んでいるような描画イメージであったとする。また、ドキュメント６００の背景６０１は、完全不透過の白色（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）の画素で構成されるものであったとする。なお、図６（ａ）に記載した領域６０６は、後述する図７との対応位置を示すものであり、詳細は後述する。
【００２３】
ステップＳ４０１において、縮小処理部１７は、ドキュメント内に存在する描画イメージの１つを処理対象として取得する。図６の例では、描画イメージ６０２を取得する。
【００２４】
ステップＳ４０２において、縮小処理部１７は、当該取得した描画イメージに対して縮小命令（低解像度化命令）があるか確認する。描画イメージのピクセル寸法を縮小する場合は、ステップＳ４０３へ進み、しない場合はステップＳ４０４へ進む。
【００２５】
ステップＳ４０４において縮小処理部１７は、ドキュメント６００内に他に描画イメージが存在するかを確認する。この例では、ドキュメント内に描画イメージ６０２が１つしかないため、この場合は処理を終了するが、他にも描画イメージがある場合はステップＳ４０１へ戻り、処理を続ける。
【００２６】
図５は、ステップＳ４０３の縮小処理を詳細に説明したフローチャートである。ここでは、元の描画イメージにおける２×２画素を１画素に縮小する場合を例にとって説明する。
【００２７】
ステップＳ５０１において、縮小処理部１７は、描画イメージ内の２×２画素サイズの処理対象領域を特定する。処理対象領域内の画素は、縮小変換後の描画イメージにおける１つの画素の画素値を計算するために用いる複数の変換前の画素に相当する。図７は、描画イメージ６０２内の領域６０６を処理対象領域とした時点における領域６０６の周辺を拡大した図である。領域６０６は、完全透過の黒画素（Ｒ，Ｇ，Ｂ，Ａ）＝（０，０，０，０）と、完全不透過の白画素（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）とで構成されており、領域６０６の左側にある２画素（細線の矩形で表した画素７０１及び７０３）が完全透過の黒画素、領域６０６の右側にある２画素（太線の矩形で表した画素７０２及び７０４）が完全不透過の白画素である。
【００２８】
ステップＳ５０２において、縮小処理部１７は、処理対象領域内（すなわち、縮小変換前の複数の対応画素）に、完全透過の画素（Ａ＝０の画素）と完全透過でない画素（Ａ≠０の画素）との両方が含まれているか判断する。領域６０６内には、上述の通り完全透過の画素と完全透過でない画素とがあるため、ステップＳ５０３へ進む。処理対象領域が、完全透過の画素のみで構成されているか、完全透過でない画素のみで構成されている場合は、ステップＳ５０７へ進む。
【００２９】
ステップＳ５０３において、縮小処理部１７は、対象領域内に含まれる画素のうち、完全透過でない画素のＲ，Ｇ，Ｂの各色値の平均を求めることにより、縮小後の画素の色値を算出する。領域６０６では、画素７０２及び７０４が完全透過でない画素に該当するので、縮小後の画素の色値Ｒ’，Ｇ’，Ｂ’は、
Ｒ’＝（１００＋１００）／２＝１００
Ｇ’＝（１００＋１００）／２＝１００
Ｂ’＝（１００＋１００）／２＝１００
となる。
【００３０】
ステップＳ５０４において、縮小処理部１７は、処理対象領域内の全画素のアルファチャンネルの値の平均を求めることにより、縮小後の透過率（アルファチャンネルの値）を算出する。領域６０６の例では、画素７０１〜７０４すべての画素のＡ値を計算対象として平均を求めるので、縮小後の画素のＡ’は、
Ａ’＝（０＋１００＋０＋１００）／４＝５０
となる。
【００３１】
また、ステップＳ５０７において、縮小処理部１７は、処理対象領域内の全ての画素の画素値（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、Ｒ，Ｇ，Ｂ，Ａをそれぞれ個別に平均値を求めることにより、縮小後の画素の画素値（Ｒ’，Ｇ’，Ｂ’，Ａ’）を算出する。
【００３２】
ステップＳ５０５において、縮小処理部１７は、Ｓ５０３〜Ｓ５０４の計算結果またはＳ５０７の計算結果に基づいて、縮小後の画素の画素値（Ｒ’，Ｇ’，Ｂ’，Ａ’）を出力する。これにより、領域６０６の例における縮小後の画素の画素値は、（Ｒ’，Ｇ’，Ｂ’，Ａ’）＝（１００，１００，１００，５０）となる。
【００３３】
ステップＳ５０６において、縮小処理部１７は、現在の処理対象領域が縮小処理を行うべき最終領域かを判定する。最終領域であれば処理を終了し、他に処理するべき領域があればステップＳ５０８へ進み、次の注目領域へと移動する。図７の例では、領域６０６の処理が終了した後、ステップＳ５０８へ進み、画素７０２の右隣の画素を２×２画素サイズの次の処理対象領域の左上画素として、処理対象領域を特定する。
【００３４】
図７で示した部分を、図５の処理によって縮小処理した結果を図８（ａ）に図示する。図７の左側に位置する２×２画素の領域は全て（Ｒ，Ｇ，Ｂ，Ａ）＝（０，０，０，０）であるので、この左側領域を縮小すると、Ｓ５０７の処理により、図８（ａ）の画素８０１のように、（Ｒ，Ｇ，Ｂ，Ａ）＝（０，０，０，０）となる。また、図７の領域６０６を縮小すると、Ｓ５０３〜Ｓ５０４の処理により、縮小後の画素８０２の画素値は（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，５０）となる。また、図７の右側に位置する２×２画素の領域は全て（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）であるので、この右側領域を縮小すると、Ｓ５０７の処理により、図８（ａ）の画素８０３のように、（Ｒ，Ｇ，Ｂ，Ａ）＝（１００，１００，１００，１００）となる。図９は、図６（ａ）で示したようなドキュメント（完全不透過白色の領域６０４と完全透過黒色の領域６０５とで構成される描画イメージが配置されたドキュメント）に対して、図５の処理によって、描画イメージをダウンサンプリングした場合の概念図である。図８（ａ）で示したように、領域６０４と６０５の境界を縮小すると画素８０２のように半透過の白色となる。ドキュメントの背景６０１は完全不透過の白色であるので、この背景６０１の上にダウンサンプリング後の描画イメージを配置した場合、ダウンサンプリング前の状態と同様に、ドキュメント９０１は全て白色で描画されることになる。
【００３５】
もし、上述したステップＳ５０３〜Ｓ５０４の処理を適用せずに、処理対象領域内に完全透過画素と完全透過でない画素との両方が含まれる場合もステップＳ５０７のような単純平均で画素値を求める処理を適用すると、図８（ｂ）のような結果になってしまう。すなわち、課題欄で述べたように、全ての処理対象領域にステップＳ５０７のような単純平均を適用すると、図８（ｂ）の画素８０４のように、（Ｒ，Ｇ，Ｂ，Ａ）＝（５０，５０，５０，５０）となり、半透過の灰色の画素が出現してしまう。すなわち、完全透過の画素を含む場合も全画素の単純平均で縮小後の画素値を求めるようにしてしまうと、図１０に示すように、領域６０４と領域６０５の境界部分をダウンサンプリングした際に半透過の灰色の画素１００２が出現する。このように処理対象領域内の全ての画素を単純平均してダウンサンプリング後の画素値を求めると、ダウンサンプリング前の状態と異なり、ドキュメント１００１の一部が灰色で描画されてしまう。
【００３６】
本発明によれば、図８（ａ）で図示したように、描画イメージを縮小するように画像変換したときに、完全透過画素と完全透過でない画素との境界における変換後の画素８０２は完全透過となる。したがって、図９と図１０を比較すれば明らかなように、本発明によれば、完全透過画素と完全透過でない画素とを含む境界領域を縮小したとしても、本来描画されるべきでない色（図１０の灰色）が出現しないようになる。
【００３７】
なお、上述した例では、２×２画素サイズの処理対象領域を１画素に縮小（ダウンサンプリング）する例を用いて説明したが、処理対象領域のサイズは２×２画素に限るものではない。また、上述した例では、描画イメージ６０２が、完全透過の黒画素と完全不透過の白画素とで構成されるものとしたが、これに限るものではなく、半透過の画素や白黒以外の色を含んでいる場合も、図５のフローチャートと同様の処理を適用できる。
【００３８】
図１１は、３×３画素サイズの処理対象領域１１０１を表した例である。各画素は、それぞれ異なる画素値を持ち、完全透過の画素は（２）、（３）、（４）、（７）、（９）であり、半透過の画素が（１）、（６）、（８）であり、不透過の画素が（５）である。この領域を縮小して１つの画素値１００２を算出する場合、Ｒ’，Ｇ’，Ｂ’は完全透過でない４つの画素（１）、（５）、（６）、（８）の各画素値が計算対象となるので、
Ｒ’＝（１１＋２４＋２７＋３４）／４＝２４
Ｇ’＝（１２＋２５＋２８＋３５）／４＝２５
Ｂ’＝（１３＋２６＋２９＋３６）／４＝２６
となる。一方、Ａ’は９つの画素全てが計算対象となるので、
Ａ’＝（１０＋０＋０＋０＋１００＋３０＋０＋２０＋０）／９＝１８
となる。したがって、縮小後の画素値１１０２は、（Ｒ’，Ｇ’，Ｂ’，Ａ’）＝（２４，２５，２６，１８）となる。
【００３９】
また、上述した図５では、処理対象領域内の全ての画素が完全透過画素である場合も、ステップＳ５０７に進んで、処理対象領域内の全ての画素の画素値に基づき、ＲＧＢＡをそれぞれ個別に平均値を求めることにより、縮小後の画素値を算出した。しかしながら、処理対象領域内の完全透過画素しかないならば、縮小後の画素値（Ａ）も完全透過になるので、Ｒ，Ｇ，Ｂの値は平均値を求めなくてもよい。したがって、処理対象領域内の全ての画素が完全透過画素であった場合は、平均値を求めることなく、予め決めておいた所定の画素値（例えば、（Ｒ’，Ｇ’，Ｂ’，Ａ’）＝（１００，１００，１００，０））に設定するようにしても構わない。
【００４０】
［実施例２］
実施例１では、描画イメージのピクセル寸法を縮小するように画像変換する際の処理について説明した。実施例２では、描画イメージのピクセル寸法を拡大する際に本発明を適用する場合について説明する。
【００４１】
図１２は、描画イメージ内の２×２画素サイズの領域１２０１を３×３画素サイズの領域１２０２に拡大する場合について説明する図である。図に記載の数値は、（Ｒ，Ｇ，Ｂ，Ａ）の値である。
【００４２】
領域１２０１を構成する画素ａ〜ｄの画素値が図示したような値であったとする。そして、拡大後領域１２０２の画素ａ〜ｄの画素値は処理対象領域１２０１の画素ａ〜ｄの値を引き継ぎ、拡大後領域１２０２の画素ａｂ、ｃｄ、ａｃ、ｂｄ、ａｂｃｄの画素値は、画素ａ〜ｄの画素値に基づいて補間計算を行うことに求めるものとする。このとき、補間計算に用いる元の画素に完全透過の画素と完全透過でない画素との両方が含まれているか否かによって、計算方法を変える。すなわち、拡大変換後の各画素の画素値を求める際、図５のステップＳ５０２の処理と同様に、各画素の画素値を補間計算する際に用いる元の画素に、完全透過の画素と完全透過でない画素との両方が含まれているか判断する。そして、両方が含まれていると判断した場合は、Ｓ５０３の処理と同様に、完全透過でない画素のＲＧＢ値に基づいて当該補間計算される画素のＲＧＢ値を求め、更に、Ｓ５０４の処理と同様に、全画素のＡ値に基づいて当該補間計算される画素のＡ値を求める。一方、Ｓ５０２で両方が含まれていないと判断した場合は、Ｓ５０７と同様に、補間計算に用いる元の全画素のＲＧＢＡ値それぞれの平均に基づいて、当該補間計算される画素のＲＧＢＡ値を求める。すなわち、補間計算される各画素の計算方法は以下のようになる。
【００４３】
画素ａｂの画素値は、完全透過の画素ａと、完全透過でない画素ｂとに基づいて計算される。したがって、画素ａｂのＲＧＢ値を補間計算する際は、完全透過でない画素ｂのＲＧＢ値に基づいて計算され、画素ａｂのＡ値を補間計算する際は、画素ａと画素ｂとの両方のＡ値の平均に基づいて計算される。すなわち、画素ａｂのＲＧＢＡ値は、画素ａの画素値が（Ｒａ，Ｇａ，Ｂａ，Ａａ）＝（０，０，０，０）で、画素ｂの画素値が（Ｒｂ，Ｇｂ，Ｂｂ，Ａｂ）＝（１００，１００，１００，１００）であったとすると、補間画素ａｂの画素値は以下のようになる。すなわち、
Ｒａｂ＝Ｒｂ＝１００
Ｇａｂ＝Ｇｂ＝１００
Ｂａｂ＝Ｂｂ＝１００
Ａａｂ＝（Ａａ＋Ａｂ）／２＝（０＋１００）／２＝５０
となる。
【００４４】
もし、画素ａｂのＲＧＢ値も、画素ａと画素ｂの両方のＲＧＢ値の平均に基づいて計算したとすると、半透過の灰色の画素（Ｒａｂ，Ｇａｂ，Ｂａｂ，Ａａｂ）＝（５０，５０，５０，５０）となってしまう。このような計算方法だと、画素ａは完全透過の画素なので背景の白画素が描画され、画素ｂは完全不透過の白画素なので、画素ａおよびｂはどちらも白画素となるが、その間の画素ａｂは灰色の画素が描画されてしまうことになってしまう。これに対し、上述した実施例２の処理では、（Ｒａｂ，Ｇａｂ，Ｂａｂ，Ａａｂ）＝（１００，１００，１００，５０）となり、白画素が描画されることになる。したがって、本実施例によれば、完全透過画素と完全透過でない白画素との間に補間画素を生成する場合に、本来描画されるべきでない灰色の画素が描画されるのを防ぐことができる。
【００４５】
また、画素ａｃの画素値は、完全透過の画素ａと完全透過の画素ｃとに基づいて計算される。よって、画素ａｃのＲＧＢＡ値は、画素ａと画素ｃのＲＧＢＡ値それぞれの平均に基づいて計算される。
【００４６】
また、画素ｂｄの画素値は、完全透過でない画素ｂと完全透過でない画素ｄとに基づいて計算される。よって、画素ｂｄのＲＧＢＡ値は、画素ｂと画素ｄのＲＧＢＡ値それぞれの平均に基づいて計算される。
【００４７】
また、画素ｃｄの画素値は、完全透過の画素ｃと完全透過でない画素ｄとに基づいて計算される。よって、画素ｃｄのＲＧＢ値を補間計算する際は、完全透過でない画素ｄのＲＧＢ値に基づいて計算され、画素ｃｄのＡ値を補間計算する際は、画素ｃと画素ｄとの両方のＡ値の平均に基づいて計算される。
【００４８】
また、画素ａｂｃｄの画素値は、完全透過の画素ａおよびｃと、完全透過でない画素ｂおよびｄとに基づいて計算される。よって、画素ａｂｃｄのＲＧＢ値を補間計算する際は、完全透過でない画素ｂおよびｄのＲＧＢ値に基づいて計算され、画素ａｂｃｄのＡ値を補間計算する際は、画素ａ，ｂ，ｃ，ｄ全てのＡ値の平均に基づいて計算される。
【００４９】
なお、実施例２では、描画イメージを線形に拡大変換する際の処理について述べたが、本発明は非線形な画像変形処理においても適用することが可能である。
【００５０】
以上、実施例１，２で述べたように、本発明では、縮小や拡大等の画像変換を行う場合、変換後のイメージの各画素の画素値を計算する際に用いる元イメージの複数の対応画素に、完全透過の画素と完全透過でない画素との両方が含まれているか判断する。そして、両方含まれていると判断した場合、変換後（縮小変換後または拡大変換後）のイメージにおける画素のＲＧＢ値は、当該対応画素のうちの完全透過でない画素のＲＧＢ値に基づいて求めるようにしている。このように構成することにより、縮小や拡大等の画像変換を行う際に、完全透過（Ａ＝０）の画素に設定されているＲＧＢ値の悪影響を受けずに済むようになる。
【図１】
2019050489.tif 000003
【図２】
2019050489.tif 000004
【図３】
2019050489.tif 000005
【図４】
2019050489.tif 000006
【図５】
2019050489.tif 000007
【図６】
2019050489.tif 000008
【図７】
2019050489.tif 000009
【図８】
2019050489.tif 000010
【図９】
2019050489.tif 000011
【図１０】
2019050489.tif 000012
【図１１】
2019050489.tif 000013
【図１２】
2019050489.tif 000014