文庫本のトリミング
[戻る]
はじめに
本 (主に文庫本) の増殖に耐えかね, とうとう先日 sony reader と
scansnap を買いました. 俗に言う自炊をするためです.
早速, 何冊か裁断して scansnap で pdf 化して,
sony reader で読んでみると字が細かすぎます.
余白が多いのです.
余白カット (トリミング) が必要ということが分かりました.
早速
PDFDiet
というツールをダウンして使ってみたのですが,
読みやすさという観点からは改善されましたが美しさの観点からは不満です.
ページ毎に字の大きさが異なったり,
端に書かれたものが真ん中に移動したりするのです.
ChainLP
というのも試したみましたが, 似たような感じです.
正直, これらのソフトのように凝った結果でなくてもかまいません.
全ページに渡って同じ縮尺率であること, 右寄りに書かれたものは右寄りに
左寄りに書かれたものは左寄りに配置されること,
それらの制約の中できるだけ文字エリアを多く取りたいだけです.
プログラム
いろいろオプションをいじったのですが, どうしてもそういったことができません.
そこで自分で作ってしまうことにしました.
こちらです.
コマンドラインのプログラムで動作は引数で渡します.
パラメータは
- -i [入力ディレクトリ]
入力となる画像ファイル (jpeg) の置き場を指定します
- -o [出力ディレクトリ]
画像ファイルの出力先を指定します. 省略すると計算だけして結果を出力しません.
- -b [数値]
黒を黒と判定する値 (0〜255) を指定します. 省略すると標準値 (120) が指定されます.
- -w [数値]
灰色部分を白に漂白するスイッチです. 全体を省略すると漂白を行いません. その分速くなります. 一方数値のみを省略すると標準値 (200) が指定されます. なお, 数値は -b で指定された数値以上 255 以下での必要があります.
- -n [数値]
ノイズ除去をするスイッチです. 数値はノイズとみなす大きさです.
この数値が大きいほどノイズを取りますが, 文字をノイズとみなす可能性も高まります.
数値を省略した場合 10 が入ります.
- -z
各パラメータが最大の画像のみを出力します. -o オプションが指定されている必要があります.
- -v
現在のバージョンを表示して終了します. 現段階では 0.03 になってます.
作業の流れ
既に Scansnap 等で取り込み, スキャン抜けが無いことが確認された pdf ファイルがあることを前提に話を進めます. なお私は....
- PDFDiet を開いて, pdf ファイルを jpeg 化します. ここでは e:\org に出力されたとして話を進めます.
もちろん最初から jpeg でスキャンしてもかまいません.
- コマンドラインから "jpegtrim -i e:\org -n" と打ち込みます. 各ページを検査して黒領域 (文字がある領域) が一番右から始まる画像, 一番上から始まる画像, 一番幅のある画像, 一番高さのある画像の 4 つのファイル名が出力されます.
- 表示された 4 つのファイルを開いてみて,
ゴマ状のノイズを拾ったかどうかを確認します.
-n オプションでノイズは除去しているはずですが,
あまりにも大きいと文字かもしれないと除去しないためです.
ノイズだった場合, ペイントブラシ等でノイズを白く消してしまいます.
- ノイズを手作業で消した場合, もう一度 2 から作業を行います.
- 一通りノイズを拾わなくなったら, "jpegtrim -i e:\org -o e:\out -z -n"
と打ち込みます.
e:\out に 4 つのファイル (重複していた場合それ以下) ができるので,
開いてみてそれぞれ右端から/上の端から文字領域が始まっているか, 幅いっぱい/高さいっぱい文字領域が使われているか確認します.
ノイズを見落としていた場合はノイズを消してやり直してください.
- 5 の結果が満足ならば今度は "jpegtrim -i e:\org -o:e:\out -w -n"
と打ち込みます.
しばらくすると e:\out にトリミングされた画像ファイル群が出来上がります.
- 後は ChainLP で PDF 化します. 余計な処理はされたくないので,
縦横比チェックとかページ補正等のチェックははずします.
ガンマ補正は必要に応じてやってもいいでしょう.
なお, サイズは 584x754 だと Sony Reader
上で表示がおかしくなるときがありました.
560 x 750 がいいのではないでしょうか.
またタイトルは Sony Reader 上の一覧に表示されますから書名を入れておくといいでしょう. 日本語は通ります.
このようにそこそこ満足するプログラムが出来た後で
知った情報ですが,
ChainLP で「偏心補正」あたりをいじってもこういった問題は解決されるという話です.
確認はしていません.
裁断機
本当は裁断機も買いたかったのですが, 予算の都合上断念し, 手作りしました.
製作費は2000 円くらいです (木材含まず, ローラカッター含む).
2011.9