自炊ZIPをスマホや電子ブックリーダー向けに最適化する

去る2月、楽天の Kobo を中古購入しました。投げ売り価格の2500円でした。私は風呂でよく本を読むので、浴槽に落としてもそんなに凹まない安価な端末を探していました。期待をまるでしていない、という意味では Kobo は最高の端末です。

2500円という価格にしては、Linuxが中で動いているし、電子ブックリーダーでしか触ることのできない電子ペーパーを扱えたり、WiFiに対応していたり、本体を開ければ簡単にカスタマイズできたり、と Raspberry Pi よりも「香ばしい」端末なんですけどね。あんなに薄いのにバッテリーまで搭載しているし。

ソフトウェア面は最悪です。電子ブックリーダーなのに本が読みにくい。本棚の表示が遅かったり、改ページが遅かったり。電子ペーパーの画素書き換えの遅さではなく、それ以上にソフトウェアが下手に組んである遅さが気になりました。20世紀末の Windows 98 全盛期くらいの最新 PC くらいのスペックは持ってるんだし、ブックリーダーに用途は特化されているんだから、「もうちょっとどうにかしてよ」という感じ。サービス面に至っては、今更論評するまでもなしですね。

Kobo は至るところで散々叩かれまくっているので、用途を割り切るつもりで購入しました。割り切って使うと決めて購入したら、現物を触ってみてもそんなに落差がないです。
「ああ、やっぱ遅いな」とかそのくらいの印象でした。同時に、「割り切って使う」という目的はなんとかクリアできそうという実感も。

hangousuihan

hangousuihan は、画像ファイルを含むZIP圧縮ファイルに対し、解凍、画像処理、再圧縮の一連の処理を行うツールです。以前、Windows 向けに書きました。このツールの目的は、スマートフォンやタブレットPC、電子ブックリーダーなどの端末の画面にジャストフィットするサイズに画像を縮小して、圧縮ファイル自体をコンパクトにすることです。超高解像度のマンガファイル、1冊300MBなんていうのは家に保存しておいて、実際に見るのは30MBくらいのファイルで充分ですよね、というアプローチです。私が持っている Kobo も、micro SD カードを差すことができますが、水没を前提と考えているので、あまりお金をかけて拡張する気がありません。内蔵メモリだけで済ませたいところです。

Windows の場合、カチッとしたアプリケーションを拵えない限り使いものにはなりませんが、UNIX 系 OS の場合はスクリプトを書けば事足ります。私は普段、Linux しか使ってませんので、次のシェルスクリプトを用いています。

</p>

<h1>!/bin/bash</h1>

<p>wd=&quot;/tmp/$$&quot;</p>

<p>for target in &quot;$@&quot;
do
    [ ! -d &quot;$wd&quot; ] &amp;&amp; mkdir &quot;$wd&quot;
    unzip -j &quot;$target&quot; -d &quot;$wd&quot;
    [ ! -d &quot;$wd/result&quot; ] &amp;&amp; mkdir &quot;$wd/result&quot;
    tname=<code>basename &amp;quot;$target&amp;quot;</code>
    for item in <code>find &amp;quot;$wd&amp;quot; -type f</code>
    do
        name=<code>basename &amp;quot;$item&amp;quot;</code>
        convert -type grayscale -quality 40 -resize 600x800 &quot;$item&quot; &quot;$wd/result/$name&quot;
        zip -9 &quot;/tmp/$tname&quot;.cbz &quot;$wd/result/$name&quot;
    done
    mv &quot;/tmp/$tname&quot;.cbz /media/$USER/KOBOeReader/
    rm -rf &quot;$wd&quot;
done

Kobo の画面解像度にフィットする 600×800 に画像を圧縮し、グレイスケール化しています。Ubuntu では、Kobo のファイルシステムのマウント場所は /media/$USER/KOBOeReader となるので、そこにダイレクトに CBZ で出力するようにしています。

使い方は、

$ ./hangousuihan.sh comic01.zip comic02.zip comic03.zip

のように、変換したいファイルパスを引数に与えてやればOKです。

投稿者:

dyama

佐世保のシステムエンジニアです。詳しいプロフィールやこのブログについてはこちらをご覧ください。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください