自炊スキャンデータをKobo Gloに最適化

Kobo Glo 買いました。Kindle Paperwhite と比較したんですが、やっぱり microSD が挿せないのは不便ですから。あと Kindle のコンテンツそんなに持ってませんし。

で、自炊した小説(JPEGファイルをZIPでかためたもの)を Kobo Glo で表示してみたんですが、文字がかすれ気味でちょっと読み辛いです。

そこで電子ペーパーに最適化する方法を検索。見つけたのは以下の記事。

Kindle Paperwhiteで自炊した本を読む手順と便利なツール | ごりゅご.com

calibre というオープンソースのアプリがあるんですね。WindowsでもMacでもLinuxでも動くそうです。

という訳で早速Macにインストールして変換してみたんですが……、あんまり綺麗じゃないですね。原稿とディスプレイの縦横比が違うと悲惨なことに。それにも増して厭だったのが、日本語ファイル名がアルファベットになることです。設定で変えられるとは思うんですが。

他の手は無いかと更に検索。

ScanSnap後の画像処理 – \ay diary

なるほど、ImageMagick の convert コマンドでトリミング出来るんですね。私はZIPを展開したあと、以下のようにターミナルで実行しました。

for i in *.jpg; do
    convert ${i} -type grayscale -sharpen 5 -fuzz 50% -trim -linear-stretch 2%x2% -bordercolor white -border 2%x2% png:- | convert - -depth 4 -resize 758x1024 ${i%.jpg}.png
done

"-type grayscale" でグレースケールに、
"-sharpen 5" で鮮鋭化、
"-fuzz 50% -trim" でファジーにトリミング、
"-linear-stretch 2%x2%" でヒストグラムを引き伸ばしてコントラストを上げ、
"-bordercolor white -border 2%x2%" で白枠を付け(ギリギリにトリミングすると読み辛いので)、
"-depth 4" で 4-bit 化(ファイルサイズが小さくなりますが、ImageMagickのバージョンによっては対応してないかも)、
"-resize 758x1024" で Kobo Glo 用に解像度変換しています。

ライトノベル一冊当たり6分程度かかります。GNU Parallel が使えるようでしたら、

ls *.jpg | parallel -j4 "convert {} -type grayscale -sharpen 5 -fuzz 50% -trim -linear-stretch 2%x2% -bordercolor white -border 2%x2% png:- | convert - -depth 4 -resize 758x1024 {.}.png"

みたいにすると速くなるかも知れません。更にファイルサイズを小さくしたい場合は、以下のように OptiPNG を実行すると5%くらい小さくなるでしょう。

optipng *.png

元ファイルが PDF の場合は kindlizer を使うといいかも。ImageMagick の他に Poppler, sam2p, PDFtk, Rake が必要になります。

Kindlizerの使い方 – はてなの鴨澤

あ、ImageMagick も Parallel も OptiPNG も Homebrew で一発インストールしました。


追記

シェルスクリプトにしてみました。ZIPでかためたJPEGファイルをKobo Gloに最適なCBZファイルにします。→ Zipped jpeg files to CBZ file for Kobo Glo.