デジカメから取り込んだ画像のファイル名を日時ベースに変えてサイズも縮小させる

自分のブログに載せている写真はfreetelが出してる格安スマフォのpriori2で撮っています。それをアップするまでの手順はけっこう面倒で、まずPCに取り込み、ファイル名が気に喰わないので変更し、サイズがでかいので縮小し、やっとアップする、ッて感じになっています。自動化するのは簡単なんだけど、当面はこれでやると思います。

なのでメモがてら便利なコマンドを書いておきます。

まずPCに取り込むのですが、USBケーブルでつないでデジカメ扱いにして取り込んでいます。するとファイル名が『<取り込み日> <取り込み順>.jpg』みたいな感じになります。半角スペースは気持ちが悪いし、撮影日が入っていないのが扱いにくいので、これを『<撮影日>-<撮影時刻>.jpg』みたいな感じに変えます。

 $ php -r '$list = glob("* *.*"); foreach($list as $file) { $new = date("Ymd-His", filemtime($file)) .".". pathinfo($file, PATHINFO_EXTENSION); rename($file, $new); }'

この一行でカレントディレクトリのファイルが処理されます。意味が分からない人は使わない方がいいですね。pathinfo() で拡張子を取ってるのが味噌かな。動画もあると .3gp みたいのが出来るので、それも一括処理です。

ちなみに実行環境はLinux風に見せておいて、Windows 7にCygwinとPHPです。

次に画像たちを縮小します。こっちは簡単。

for f in *.jpg; do /usr/bin/convert.exe $f -resize 25% $f; done

カレントディレクトリの .jpg なファイルを全てImageMagickの convert コマンドで25%にリサイズしてます。ImageMagickパッケージはCygwinのインストーラでインストール可能です。

以上です。

でも本当は写真撮ったら勝手にアップして変換、がいいよね。分かってる。分かってるけど、なかなかねー。