妻のためにソフト開発する毎日です
下記のソフト開発の続きです。
実は、妻から画像を結合するソフトの他、写真データに自動で日付を入れるソフトを作って欲しいと頼まれていました。なんでも子供のミニアルバムをつくるとき、アルバム制作サービスに写真をアップロードすると、時系列がぐちゃぐちゃになってしまい、アルバムの編集が難しいという理由だそうです。妻情報によれば、自動で日付を入れるソフトは無料のものは、手作業で日付を入れるソフトしかないらしいです。有料なんてもってのほか、とのこと。
子供のためともあれば、やるっきゃないですね!
自動で日付を入れるソフト作りました
大量のファイルを一気にコマンドラインで処理したいのと、画像処理のライブラリ豊富、手軽に作れそうという理由でpythonでつくりました。最初は楽勝だろ、とか思っていたのですが、思っていたより時間かかってしまいました。ネットに似たような例があったので、真似すればできるだろうと思ったのですが、よくわからないエラー。画像の型が全然分かっていませんでした。
ソフトの使用例
ちょうどよいフリー素材があったのでこちらを使います
ちょうどよいフリー素材。これが
こうじゃ!
右下の方に日付が入っているのがわかるとおもいます。やったね!あとは、プログラムの使い方です。宇宙語が続くので、気になる人だけ続きを読んで下さい。
ソフトの使い方
GitHubで公開します。画像処理のソフト関係は以下にまとめてどんどん増やしていこうかなと考えています。
事前準備
以下を参考にOpenCV、PILを入れておいてください。
ソフトコピー
写真のあるフォルダで、以下のコマンドでソフトをダウンロードします。
$ curl -OL https://raw.githubusercontent.com/karaage0703/python-image-processing/master/photo_exif_date_print.py
フォントコピー
日付の文字にフォントが必要なので、各自の環境のフォントをコピーしてください。デフォルトはArial Blackになっていますが、使いたいフォントがある人は好きにプログラムをいじって下さい。
フォントのある場所が分からない場合は、LinuxやMacなら以下コマンドで探せます。Windowsの人はグーグル先生に聞いてみて下さい。
$ sudo find / -name "Arial Black.ttf"
Macの場合
上記のコマンドで以下がみつかります。
/Library/Fonts/Arial Black.ttf
場所がわかったので下記コマンドでコピーすればOK。
$ cp /Library/Fonts/Arial\ Black.ttf .
Raspberry Piの場合
Arial Black.ttf
は存在しません。代わりに/usr/share/fonts/truetype/
のフォントを使います。プログラムを修正しないなら、例えばFreeMono.ttf
を以下のようにコピーしてやればよいです。
$ cp /usr/share/fonts/truetype/freefont/FreeMono.ttf ./Arial Black.ttf
1つのファイルに日付挿入
一つのファイル、例えばtest.jpeg
というファイルに日付挿入するなら、以下のようなコマンドでOKです。
$ python photo_exif_date_print.py test.jpeg
元の写真はそのままでexifdata_test.jpeg
という日付挿入された写真ファイルが生成されます。
大量の写真を一括で処理したい場合
たくさんのファイルを処理したいときは、以下のようなスクリプトを作成しましょう。
#!/bin/bash for f in *.jpg do echo $f python photo_exif_date_print.py $f done
例えば、photo-exif-date-print.sh
というファイルで保存した場合は、以下コマンドで一括で処理可能です。
$ chmod 755 photo-exif-date-print.sh $ ./photo-exif-date-print.sh
また、ファイル名に空白が入っていると、プログラムエラーになってしまうので注意して下さい。一括で変換したい場合は、Linuxの場合は、写真ファイルと同じディレクトリで以下のコマンドで変換できます。
$ find . -name "* *" | rename 's/ /_/g'
Macの場合は、renameコマンドが標準だと入ってないのでHomebrewでインストールして下さい。
$ brew install rename
Homebrewに関しては、以下記事参照下さい。
まとめ
これで手軽にExif情報を元に写真に日付を入れられるようになりました。実際日付入れてみると、「あ、この写真この日に撮ったんだっけ」「え?この写真撮ったのこんなに前だっけ?」といったように新たな発見があるので、アルバム作らなくても一度試してみると面白いかもしれません。
自分は実際にしまうまプリントさんでアルバム作ってみたのですが、かなりよい感じでした。詳細は下記記事参照下さい。
ソフトは以下のリポジトリに格納されています。
関連記事
変更履歴
- 2021/11/27 ファイルのダウンロード方法を修正
- 2020/01/01 空白ファイルの変換に関して追記