セサミン
一昨日だったか、テレビ見てたら、何故か買ってみようかなという気になり、ネットから注文したのが、これ。いましがた届いた。
いつもならテレビの通販番組なんて無視するところだが、このところ、老いを(笑)感じることが多々有り、そこを突かれた格好。ま、しばらく飲んでみますか。
一昨日だったか、テレビ見てたら、何故か買ってみようかなという気になり、ネットから注文したのが、これ。いましがた届いた。
いつもならテレビの通販番組なんて無視するところだが、このところ、老いを(笑)感じることが多々有り、そこを突かれた格好。ま、しばらく飲んでみますか。
[備忘録] 自炊PDFの後処理関係のメモ。
XnConvertのバージョンが1.51に上がり,従来のBrightness, Contrast以外にも,白黒のレベル指定が出来るようになった。これで,ImageMagickでの -level high, low, gamma と同じ(多分ね)パラメーターの指定が可能となった。速度的にはLanczosでの拡大処理を含めてXnConvertの方が速いので,こちらをメインにしようかと思う。
ただ,XnConvertでは,モノクロ2値への変換で threshold値を選ぶことが出来ない。また,ImageMagickの shave (上下左右を切り取る),border (逆に上下左右を塗る) などの処理が出来ないみたいだ。shaveに関しては,cropとrotateを組み合わせれば良いようにも思うが,よく分からない。一番の問題点は,thresholdの値(閾値)を選べないということなので,この部分はImageMagickを使う方が良いだろう。
ということで,試しに一冊処理してみた。hoge.pdfをpdfimagesを使って,hoge_000.jpgからhoge_124.jpgにバラす処理は済んでいるものとする。そこの階層に行って,次のようにする。
nconvert -extract 0 -ratio -rtype lanczos -resize 200% 200% -levels 60 255 -gamma 0.7 -posterize 64 -posterize 32 -posterize 16 -posterize 8 -posterize 4 -out png -o nc_% -overwrite *.jpg
コマンドの意味は次の通り。-extract 0 で赤チャンネル抽出。-ratio 以下は,lanczosアルゴリズムによる200%拡大。-levels 60 255 と -gamma 0.7 は ImageMagickでの level 60,255,0.7 と同じ。今回の本は,スキャンの具合が良くなくて,全体的に文字が薄くてボケた感じなので,白飛びさせると文字が消えてしまいそうだったので,high=255とマックスのままにした。
-posterize は減色(ポスタリゼーション)処理。64色から順に半分ずつにして,4色まで減色している。-out png は出力ファイル形式をPNGにするということ。-o nc_% は出力ファイルの名前の設定。これだと,元ファイルがhoge002.jpgの場合,nc_hoge002.png となる。-overwrite は出力ファイルと同じ名前があった場合に上書きするということ。nconvert による処理は以上で終了。
次は,ImageMagickを使う。mogrifyコマンドを使って,上下左右を削除して白で元にもどす。それから,閾値を80%にして,モノクロ2値化する。出力ファイルはtiffにして,FAX Group4で圧縮する。
mogrify -shave 40x40 -border 40x40 -bordercolor "#FFFFFF" -threshold 80% -format tiff -compress Group4 nc_*.png
続いて,tiffをpdfに変換。
mogrify -format pdf nc_*.tiff
最後に,pdfファイルをまとめて,hoge-mono.pdf にする。
pdftk nc_*.pdf cat output hoge-mono.pdf
こんな手順で,モノクロ2値化が完了。一冊毎にパラメーター変えるのなら,この程度の入力を毎回行なっても,それほど面倒ではない。パラメーター固定で複数の書籍を変換するのなら,やはりバッチ処理用のスクリプトを書いた方が良いだろうなあ,やはり。
[備忘録] 以前 The Internet Archive からダウンロードしておいた E. Cahen の Theorie des nombre, tome 2 (整数論,第2巻)。サイズも小さくで良いのだが,何故かMacのプレビュー.appで見ると,ものすごく動作が遅くてスクロールもままならないという状況だった。それで,放っておいたのだった。そのときは対処法など分からなかったのだが,業者に依頼した自炊(?)PDFが時々同じようにスクロールが重たいという経験を経て,どうすれば良いかが自分なりに少し分かってきたので,それを試してみることにした。
処理対象は,thoriedesnombr02caheuoft_bw.pdf というファイル。サイズは27.2MBほど。このままでも良いが,これを cahen2.pdf として保存。Acrobatで開き,jpegにバラして保存。cahen2_Page_001.jpg から cahen2_Page_762.jpg までの762個のjpegファイルが出来る。これらはモノクロの画像なのだが,サイズは500KBないし900KBもあり,かなり大きい。762個で520MBくらいになっている。グレースケールなのかもだが,拡大した様子では,文字部分は2値のようにも感じる。ともかく,これが27MBに圧縮されていたのだから,すごい圧縮率ではある。
さて,これを ImageMagick で白黒2値のtiffに変換して,CCITT Group4の圧縮をかけることにする。ついでに,広すぎる余白を少し削ってみた。iPhoneで見るときは余白ないほうが見やすいから。
ImageMagickのconvertでは多数のファイルを処理させると,ウソみたいに大量のメモリーを消費してしまうので,今回は mogrify というコマンドを使ってみた。convertとほとんど同じ処理が出来る。
mogrify -shave 100x200 -threshold 80% -compress Group4 -format tiff cahen*.jpg
mogrify -format pdf cahen*.tiff
pdftk cahen*.pdf cat output cahen2mono.pdf
作業内容は次の通り。mogrify コマンドで,まず, -shave 100×200 として,左右100ピクセル,上下200ピクセルずつを削除。次に,-threshold 80% で2値化。さらに, -compress Group4 でFAX G4での圧縮,最後に -format tiff でファイル・フォーマットをTIFFにする。これらを cahen*.jpg すべてに適用する。次に,生成されたtiffファイルをpdfに変換し,pdftkによって,これらのpdfを結合して,cahen2mono.pdf にする。最終的なファイルサイズは,25MBくらいになり,Macのプレビューでも,iPhone4Sの i文庫S でも,スムーズにスクロールして,すこぶる快適になった。
最初のページは次のような感じ。
iPhone 4Sでのスクリーンショットは大体こんな感じ。
iPhoneではさすがに文字が小さく,老眼にはつらいのだが,メガネ外すと,それでも何とか読める。何よりも,750ページもあるのに25MBに収まり,動作も軽くなったので,大満足である。