フルスタックエンジニアを目指して

いろいろやってみるブログ

ScanSnap1500をネットワーク越しに利用する(2)

取り込んだTIFF画像を編集する。

はじめに

前回、リモートでScanSnapを操る環境を整えました。

skkskynw.hateblo.jp

今回は、下記の点を実現していきたいと思います。

  • TIFF画像をJPEG圧縮して容量削減
  • 取り込んだ画像を1つのPDFファイルにまとめる

設定

使用するツール

画像変換用に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が生成される⇒TIFFJPEGに変換⇒JPEGからPDFに連結⇒SCPでファイルサーバに転送、という仕組みが実装できました。

課題としては、スキャン開始から転送の完了まで、はがき1枚(表+裏)で1分30秒ほどかかってしまうこと。ラズパイの性能から言って仕方ないかもしれませんが、今後大量のファイルを取り込むことを考えると運用に耐えられるかが心配です。

とりあえずは、これで完成とし運用しながら改良を進めようと思います。

参考

ImageMagickによる基本的な画像処理

スキャンした書籍や書類の余白をImageMagickで除去する | anobota

ShellScript - Imagemagick のconvert で複数のイメージをpdf に - Qiita