取り込んだTIFF画像を編集する。
はじめに
前回、リモートでScanSnapを操る環境を整えました。
今回は、下記の点を実現していきたいと思います。
設定
使用するツール
- mogrify
- ImageMagick
画像変換用にmognifyを使用します。Imagemagickでもできるのですが、複数の画像を変換したい場合にはmognifyを使った方が楽です。※Imagemagickだとforなどで繰り返し処理しなければならない。
mognify -format jog *.tiff
また、トリミングをするためにImagemagickを使います。揺らぎ値のようなものである程度調整することができます。%値が大きくなるほど、強く描画が除去されます。
convert -fuzz 50% -trim input.jpg output.jpg
最後に、ImagemagickでPDFを作成します。
convert *jpg all.pdf
これらを前回作ったシェルスクリプトに実装してみました。
#!/bin/bash
date=$(date "+%Y%m%d-%H%M%S")
output=/home/pi/scripts/
destdir=/mnt/share/disk1/ドキュメント/スキャン
sudo scanimage --batch=${output}/${date}-%d.tiff --format=tiff --mode Color --source "ADF Duplex"
mogrify -format jpg *.tiff
for i in *.jpg ; do
convert -fuzz 50% -trim ${i} trim_${i}
done
convert trim*.jpg ${date}.pdf
expect -c "
spawn scp -r ${date}.pdf ユーザ名@192.168.10.10:${destdir}/
expect {
\"Are you sure you want to continue connecting (yes/no)?\" {
send \"yes\r\"
expect \"password:\"
send \"パスワード\r\"
} \"password:\" {
send \"パスワード\r\"
}
}
interact
"
rm -f *.tiff *.jpg *.pdf
exit 0
赤字以外にも変数等を見直しました。
これで、スキャンを実行⇒TIFFが生成される⇒TIFFをJPEGに変換⇒JPEGからPDFに連結⇒SCPでファイルサーバに転送、という仕組みが実装できました。
課題としては、スキャン開始から転送の完了まで、はがき1枚(表+裏)で1分30秒ほどかかってしまうこと。ラズパイの性能から言って仕方ないかもしれませんが、今後大量のファイルを取り込むことを考えると運用に耐えられるかが心配です。
とりあえずは、これで完成とし運用しながら改良を進めようと思います。