面倒だなーとおもうことをプログラムで解決するのがプログラマーだよなーと思っているピノンです。

自分はXperia Z1 を使っています。来月で2年になります。
友達のたっつんは僕よりも後にZ1を購入したのに、バッテリーが膨らんでいて、爆死機種Z4に買い換えたようです。本人はすごく落ち込んでいました。煽ってごめんなさい……

悩み

前使っていたARROWS X LTEから機種変更をして、ああ素晴らしい…とても良い機種だ…と褒めまくってました。

ですが、このZ1。 付属のカメラで撮影をすると、DSC_0001.JPG , DSC_0002.JPG , DSC_0003.JPG ...... と連番で保存されてしまいます。
で、携帯の容量を圧迫しないようにある程度貯まった所でPCにちまちま移動させると、これがまた1からカウントされてしまいます。

これ…なんとか対処できないか…とググっていたのですが、設定では出来ないらしい。

各イベント事やカテゴリごとに写真を保存してましたが、やっぱりファイル名がかぶってしまったりして面倒なので
自動でリネームする奴を作ってみました。

こういうのはAndroid上で行ってファイルをパソコンに移動させるのがいいんだろうかって考えたのですが
Javaが書けないのでRubyで書いてみました。

コード

# encoding: utf-8
require 'exifr'
require 'fileutils'
require 'date'

Dir.glob('./*.JPG') do |imagefile|
  @tags = EXIFR::JPEG.new(imagefile)
  date =  @tags.date_time
  new_name = "#{date.year}-#{date.month}-#{date.day} #{date.hour}:#{date.min}:#{date.sec}.jpg"
  FileUtils.mv(imagefile, new_name)
end

実行するとディレクトリにあるJPGファイルを書き換えます。
ついでに拡張子を小文字にしてます。

exifrというgemを使うと画像ファイルのexifを読み込むことが出来ます。
ファイル名にexifから読み取った撮影した日付を使います。

感想

思ったより簡単に簡単に出来た
他の言語でも試してみようかな