月別アーカイブ: 2017年8月

epubメタデータ編集

epubのタイト名などを変更したくなる事があります。
unzipして、編集して、zipで出来ますが数が多いと大変です。
今回は曇天文庫のタイト名に曇天文庫の文字を追加します。
kobo auraを使っていますが、コレクションに追加するのに検索で絞り込めるようにするためです。

#/bin/ls -1 *.epub | xargs -I % ./add.sh %
unzip $1 \*.opf
sed ‘s/<\/dc:title>/(曇天文庫)<\/dc:title>/’ < OPS/package.opf >0.opf
mv 0.opf OPS/package.opf
zip -u $1 OPS/package.opf
rm -rf OPS

上記内容でadd.shを作り1行目のコマンド実行で出来ます。
結果数個変換できないファイルは、

unzip $1 \*.opf
sed ‘s/<\/dc:title>/(曇天文庫)<\/dc:title>/’ < OEBPS/content.opf >0.opf
mv 0.opf OEBPS/content.opf
zip -u $1 OEBPS/content.opf
rm -rf OEBPS

で出来ました。

画像の比較

楽天の間違い探しのクイズが有ったので画像処理を試してみました。

問題のページから画像をコピーして
pngtopam false.png > false.pam
pngtopam true.png > true.pam
でnetpbmで扱うフォーマットに変更します。

pamarith -compare true.pam false.pam > compare.ppm
で画像間の演算をします。
最初は二つの画像の差分をとればいいと思い-subしましたが、
true.pam false.pam
false.pam true.pam
の2回して結果を加算となるので、-compareを使います。
-compareは、出力がpamでなくppmです。

ppmtogif compare.ppm > compare.gif
でプレビューで表示できるフォーマットにします。

open compare.gif
結果を表示して、間違い箇所を数えて終わりです。

他の方法として
pamarith -xor true.pam false.pam > xor.pam
pamtopng xor.pam > xor.png
open xor.png
一致部分が0(黒)になるので、色がつく部分が不一致になります。
この方が演算量が少ないと思います。

追記
画像サイズを変えて出題されました。
[~/tmp]pamfile *.pam
false.pam: PPM raw, 640 by 480 maxval 255
true.pam: PPM raw, 800 by 600 maxval 255

サイズが違うとpamarithが使えないので小さい方を拡大します。
[~/tmp]pnmscale 1.25 false.pam >false1.pam

[~/tmp]pamfile *.pam
false.pam: PPM raw, 640 by 480 maxval 255
false1.pam: PPM raw, 800 by 600 maxval 255
true.pam: PPM raw, 800 by 600 maxval 255

間違い箇所の参考程度にはなりました。