Sha256: d1d52415c100d5b7e141e4122a0c01f4a697e659793ca3e2f4075b40dc3bd67b
Contents?: true
Size: 1.22 KB
Versions: 4
Compression:
Stored size: 1.22 KB
Contents
#! /usr/bin/env ruby # coding: utf-8 class NefParserNotNefError < StandardError; end class NefParserTypeError < StandardError; end # # Nikon NEF ファイルのなんちゃってパーサ。 # class NefParser # def initialize end # 撮影日時を返す(つもり)。 # # 頑張って解析はしてない。 # 日付と思われる部分だけ抽出している。 # 解析には 372+19 = 391 バイトあれば足りる。 # サンプル NEF ファイルに撮影日時と思しき文字列は 4つあるけど、 # 詳細が分かるまではとりあえず最初の1個のみ Time object にして返す。 # a19 の部分が時刻の文字列。 # 4つあるんだけど、それぞれの差異 or 冗長なのかが分からない。 # 引数 data は File.read で読まれるような文字列 def taken_date(data) unless data.is_a?(String) message = "Not string data. Use File#read, not File#readlines." raise NefParserTypeError, message end datetime_str = data.unpack("a372a19a57a19a397a19a1a19")[1] #p datetime_str #p datetime_str.split(/[ :]/) begin @date = Time.mktime( * datetime_str.split(/[ :]/) ) rescue raise NefParserNotNefError, "Cannot find taken time." end return @date end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
imagut-0.0.3 | lib/imagut/nefparser.rb |
imagut-0.0.2 | lib/imagut/nefparser.rb |
imagut-0.0.1 | lib/imagut/nefparser.rb |
imagut-0.0.0 | lib/imagut/nefparser.rb |