Tatsuya Saito
saito****@mxd*****
2007年 9月 4日 (火) 18:51:31 JST
TO:大谷殿 齋藤@NECソフト新潟支社第五SIグループです。 いつもお世話になっております。 対応ありがとうございました。 2007/09/04 18:16:27 +0900にKoji Otani <sho****@bbr*****>さんに頂いた 「Re: indexed color -> RGB の変換問題」への返事です。 >斉藤さん。 >大谷です。 >ありがとうございます。 > >SVNのリポジトリを修正しました。 > >From: Tatsuya Saito <saito****@mxd*****> >Subject: indexed color -> RGB の変換問題 >Date: Mon, 3 Sep 2007 12:22:42 +0900 >Message-ID: <20070****@mail*****> > >saitou-t> TO:大谷殿 >saitou-t> >saitou-t> 齋藤@NECソフト新潟支社第五SIグループです。 >saitou-t> いつもお世話になっております。 >saitou-t> >saitou-t> OPVP1.0のテスト中にindexed colorのビットマップデータで印刷不正が発生しました。 >saitou-t> 原因はopvpStartDrawImage()のsourcePitchに渡される値と、実際に送られてくる >saitou-t> データのサイズに不整合があることのようです。 >saitou-t> >saitou-t> 印刷不正が発生したデータは、opvp_image_plane_data():L4014にきた段階で、 >saitou-t> vinfo->width = 577 >saitou-t> vinfo->height = 555 >saitou-t> color_index == gs_color_space_index_Indexed >saitou-t> bits_per_pixel = 1 >saitou-t> となっています。 >saitou-t> L3816、3817で計算している、opvpStartDrawImage()のsourcePitchへ渡すadj_raster >saitou-t> の計算結果は1732になります。 >saitou-t> adj_raster = (((24 * 577) + 31) >> 5) << 2 >saitou-t> = 1732 >saitou-t> 一方、L4014で計算しているopvpTransferDrawImage()で渡すデータのサイズは、 >saitou-t> data_bytes=73で来るため1752となります。 >saitou-t> data_bytes = (1 * 577 + 7) >> 3 >saitou-t> = 73 >saitou-t> dst_length = ((73 * 3 * 8) + 3) >> 2 << 2 >saitou-t> = 1752 >saitou-t> このため、sourcePitchを元にopvpTransferDrawImage()で転送されたデータを >saitou-t> 処理すると不正になります。 >saitou-t> 本来は、L4073同様各ピクセルあたり3バイトとしてdata_bytesを計算するべき >saitou-t> だと思います。 >saitou-t> >saitou-t> 修正パッチを作成して添付しましたので、お忙しいところ申し訳ありませんが、 >saitou-t> ご確認をお願いいたします。 >saitou-t> ESP GS8.15+修正したGluecodeで、NPDLドライバのOPVP1.0RC4対応版、OPVP0.2 >saitou-t> 対応版、Canonさんのドライバ(WEBアップされているもの)で正しく印刷できることを >saitou-t> 確認しています。 >saitou-t> #修正前は、NPDLドライバのOPVP1.0RC4対応版、Canonさんのドライバで >saitou-t> #不正な印刷となりました。 >saitou-t> >saitou-t> 以上、よろしくお願いいたします。 >saitou-t> >saitou-t> ------------------------------------------------ >saitou-t> 齋藤 達也 >saitou-t> NECソフト株式会社 新潟支社 第五SIグループ >saitou-t> ------------------------------------------------