2010年7月23日金曜日

Perl+ExifTool で写真の日付をいじる

この間,多数の写真をもらったのだが,困ったことに写真の日付がかなり実際からずれていた。1枚や2枚ならいいのだが,100枚程度あり,どうしたものかと困っていた。そこで,PerlExifToolを使って写真の日付を一括して変更するルーチンを書いてみた。と言っても,インターネットで検索して,他の方のルーチンをコピーした,というのが正しいが…

 ExifToolについては,ExifTool by Phil Harveyに英語の文章があり,Perl用のモジュールについてはThe Image::ExifTool Perl Library Moduleに英語の説明がある。また,ExifToolの処理で使われる「Shift」についてはImage::ExifTool::Shift.pl に英語の説明があるので,見てみて欲しい。
 また,以前このblogでthumbnailを作るというのを書いたが,そこでもExifToolについて少し書いている。こちらも見て欲しい。

 やり方としては,(1) 処理するファイルのマスク(*.JPGなど)を引数とする,(2) 日付はShiftを用いてずらす。ずらす量は,2つの日付・時刻を引数として入力させて,その差を取る,(3) バックアップファイルを残す,残さない,を引数で指定する,(4) ファイルの日付を写真のCreateDate タグと一致させるかどうかも引数で指定する,としてみた。

2010年7月1日木曜日

FreeBSD,Perl スクリプトで,GmailのSMTPからメールを送る

 Net::SMTP::TLS は2006年1月以来更新が止まっていて,2016年時点ではすでに非推奨になっている。 そこで,2016年11月に FreeBSD で,Perl で gmail からメールを送る:Net::SMTP::TLS をやめて,Net::SMTP,IO::Socket::SSL,Authen::SASL を使うことにした というのを書いたので,そちらも参照してみて欲しい。
 後日 FreeBSD, Perl の Net::SMTP::TLS ではまるというのを書いた。 そちらも参考にしてみて欲しい。
2009年3月に FreeBSD上でPerlのスクリプトを使ってプロバイダの認証あり587番ポートからメールを送信する,という話を書いた。

今回,似たようなことをしたので,それを記録に残しておこうと思う。やった作戦は何かというと,Gmail(Googleのmail)のSMTPとPerlのスクリプトを組み合わせて,googleのアカウントからメールを送る,という作戦。なんでこんな作戦をしたくなったかというと,同窓会関係のメールの一斉送信のため。個人的に高校の同期の同窓会のサイトを作っているのだが,そのメンバーに一斉にメールをしたいことがあるのだが,メールする先はPCだったり携帯だったりする。それまでは,GmailでBcc: フィールドにアドレスを100以上並べて送信したのだが,この間その方法で送信すると,携帯で受け取った人から「文字化けで全然あかん」というお叱りを多数受け取った。そのうちPCで受け取った友人からも文字化けを指摘された。いろいろ見てみると,携帯によってはBcc:フィールドを他の目的で使うことがあるみたい。また,Bcc:フィールドを長くするとトラブルを生じるみたい。また,文字コードをデフォルトに設定していると,変な文字があるといつものISO-2022-JPではない文字コードにされてしまうみたい。そのため,ひどい文字化けが起こったようである。