Kindle Cloud Reader が使えるようになってからやたらと Kindle でマンガを購入するようになりました。
それまで 2年間で 25冊しか購入していなかったのが、Kindle Cloud Reader を使い始めてから 1カ月半で 27冊を購入。裁断して ScanSnap で読み込んでとか、もうやってられませんわ…。
でもやっぱり Leeyes で読みたい!(操作に慣れてるし部分拡大が出来るし)…ということで、Kindle Cloud Reader から JPEG に変換して ZIP で固める方法です。
目次
作業の流れ
ざっくり以下のような感じで。
- Full HD のモニターに Kindle Cloud Reader を全画面表示。
- UWSC を使って GreenShot で全ページをキャプチャ。
- 表紙ページと奥付ページのキャプチャファイルを a.png と b.png にリネーム。
- 画像切り出し用コマンドを実行(要・Cygwin + ImageMagick)
- キャプチャ画像を全部削除。
- 変換したファイルを ZIP で固める。
切り出す画像サイズの概念図
ざっくりこんな感じ。
Kindle Cloud Reader でダウンロードして保存
ページ繰りの時間を短くして UWSC での自動処理を円滑にするために、Kindle Cloud Reader で「本をダウンロードして保存」を実行しておきます。
ついでに UWSC のスクリプトに入力するためにページ数を覚えておきます。UWSC には「ページ数÷2」を入力します。ページ数が奇数の場合は +1 した数。
ダウンロードが終わったら Full HD のモニターに表紙を表示。Kindle コミックは表紙が 2枚あることがほとんどなので 2枚目の表紙を表示しておきます。
UWSC のスクリプト
ざっくり以下のような感じ。手抜き。
// // Kindle Cloud Reader の画面キャプチャ自動化 // // Full HD 表示 // // 変数の宣言を強制 Option Explicit Dim countCap Dim i // キャプチャする回数を入力 countCap = INPUT("キャプチャする回数を入力", 120) IFB VARTYPE(countCap) = VAR_EMPTY PRINT "キャンセルされました" ELSEIF VAL(countCap) = ERR_VALUE PRINT "無効な値です" ELSE // クリックしてアクティブウィンドウを切替 // このへんの座標は環境に合わせて調整 BTN(LEFT,CLICK,2257,389,200) // 入力された回数だけループ FOR i = 1 TO countCap // 画面キャプチャ Alt+PrtSc // このへんは GreenShot の設定に合わせて変更 KBD(VK_RALT,DOWN,100) KBD(VK_SNAPSHOT,CLICK,100) KBD(VK_RALT,UP,100) // 0.3秒待つ Sleep(0.3) // 次ページへ移動 // このへんの座標は環境に合わせて調整 BTN(LEFT,CLICK,1657,389,200) // ページ移動用の左右矢印を消す // このへんの座標は環境に合わせて調整 MMV(1743,320,100) BTN(LEFT,CLICK,1743,320,100) // 0.5秒待つ Sleep(0.3) NEXT ENDIF
キャプチャ保存ディレクトリを開いて、表紙を a.png、奥付を b.png にリネーム。奥付がない場合は真っ白な 1920×1080ピクセルの PNG ファイルを b.png として用意します。
画像切り出し
画像切り出し用スクリプトは以下。
#!/bin/bash # Kindle Cloud Reader の Full HD キャプチャー画像を切り出す # a.png(表紙)、b.png(奥付) # リネーム後ファイル名のプレフィックス指定が必要 if [ $# -ne 1 ]; then exit 1 fi # リネーム後ファイル名のプレフィックス prefix=$1"_"; # 表紙 if [ -e a.png ]; then convert -crop 736x1080+592+0 a.png "$prefix"000_1.png fi # 奥付 if [ -e b.png ]; then convert -crop 736x1080+592+0 b.png "$prefix"000_2.png fi # カウンタ用整数 declare -i cnt # カウンタ初期化 cnt=1 for i in 2*Reader.png do # 右ページ convert -crop 736x1080+960+0 "$i" $prefix`printf "%03d" $cnt`.png cnt=$cnt+1 # 左ページ convert -crop 736x1080+224+0 "$i" $prefix`printf "%03d" $cnt`.png cnt=$cnt+1 done
上記を例えば kindlecrop というファイル名で保存して、以下のように実行。
$ kindlecrop locke_nirvana_01
引数が変換後の画像ファイル名プレフィックスになります。あとは ZIP で固めて終わり。
いやー、マンガ読むのが捗るわー。