2012年9月11日火曜日

ghostscript の dithering がひどい件

gs で pdf => 白黒tiff に変換すると、文字部分は問題ないが画像部分に dithering が発生してかなりひどいクオリティとなる。細かい文書だと読むのは不可能になってしまう。

gs -dBATCH  -sDEVICE=tiffg3  -dNOPAUSE  -sOutputFile=output.tiff -r200 -f input.pdf

これを回避するために gs のオプションを設定して何とかしようと試みたが、どれもあまりうまくいかない。というかどうやっても無理だった。なのでもうあきらめて imagemagick を使うことで回避する。ただ、imagemagick は imagemagick で PDF のフォントの扱いに難があって文字が異様に小さくなったりしてこれも調整が面倒になる。

ということで、以下のような2段階の方法を取ることにする。まず gs で PDF => カラー画像(jpg, png など)に変換し、その後 convert を使って tiff に変換する。


gs -dBATCH  -sDEVICE=jpeg  -dNOPAUSE  -sOutputFile=output$04d.jpg -r200 -f input.pdf
convert -page A4 -density 200 output*.jpg -compress Group4 -colorspace GRAY -colors 2 -normalize output.tiff


こうすることでまともな tiff が得られる。ただしこれも少し難点がある。JPG にしたときに若干モアレが発生してしまい、それが最終的な白黒画像に若干のノイズドットとして残ってしまう。

中間のフォーマットを png にすればこれは解決するのだが、png はtiffと同様にそのフォーマットに pixel 数だけでなく resolution(dpi) を持っており、同じpixel数でも dpi が異なれば印刷したときなど違う用紙サイズとなる。これは tiff にしたときにも引き継がれてしまい、最終的なoutputが通常の1/3サイズの紙になってしまう。これはまだ解決できていない。jpgには resolution という概念はなく pixel のみなのでこのような問題は起きない。

0 件のコメント:

コメントを投稿