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 で固めて終わり。
いやー、マンガ読むのが捗るわー。


