class Exif::Tag::MakerNote::Tag0x0001

0x0001 - Tag0x0001

Public Instance Methods

processData() click to toggle source
# File lib/exifparser/makernote/canon.rb, line 27
def processData
  @formatted = []
  partition_data(@count) do |part|
    @formatted.push _formatData(part)
  end
end
value() click to toggle source
# File lib/exifparser/makernote/canon.rb, line 34
def value
  numTags = @formatted[0] / 2
  ret = {}

  return ret if numTags < 2
  #
  # offset 1 : Macro mode
  #
  ret["Macro mode"] =
  case @formatted[1]
  when 1
    "Macro"
  when 2
    "Normal"
  else
    "Unknown"
  end

  return ret if numTags < 3
  #
  # offset 2 : if nonzero, length of self-timer in 10ths of a second.
  #
  selftimer_length = @formatted[2]

  return ret if numTags < 5
  #
  # offset 4 : Flash mode
  #
  ret["Flash mode"] =
  case @formatted[4]
  when 0
    "flash not fired"
  when 1
    "auto"
  when 2
    "on"
  when 3
    "red-eye reduction"
  when 4
    "slow synchro"
  when 5
    "auto + redeye reduction"
  when 6
    "on + redeye reduction"
  when 16
    "external flash"
  else
    "unknown"
  end

  return ret if numTags < 6
  #
  # offset 5: Contiuous drive mode
  #
  ret["Continuous drive mode"] =
  case @formatted[5]
  when 0
    if selftimer_length != 0
      "Timer = #{selftimer_length/10.0}sec."
    else
      "Single"
    end
  when 1
    "Continuous"
  end

  return ret if numTags < 8
  #
  # offset 7: Focus Mode
  #
  ret["Focus Mode"] =
  case @formatted[7]
  when 0
    "One-Shot"
  when 1
    "AI Servo"
  when 2
    "AI Focus"
  when 3
    "MF"
  when 4
    "Single"
  when 5
    "Continuous"
  when 6
    "MF"
  else
    "Unknown"
  end

  return ret if numTags < 11
  #
  # offset 10: Image size
  #
  ret["Image Size"] =
  case @formatted[10]
  when 0
    "Large"
  when 1
    "Medium"
  when
    "Small"
  else
    "Unknown"
  end

  return ret if numTags < 12
  #
  # offset 11: "Easy shooting" mode
  #
  ret["Easy shooting mode"] =
  case @formatted[11]
  when 0
    "Full auto"
  when 1
    "Manual"
  when 2
    "Landscape"
  when 3
    "Fast Shutter"
  when 4
    "Slow Shutter"
  when 5
    "Night"
  when 6
    "B&W"
  when 7
    "Sepia"
  when 8
    "Portrait"
  when 9
    "Sports"
  when 10
    "Macro / Close-Up"
  when 11
    "Pan Focus"
  else
    "Unknown"
  end

  return ret if numTags < 14
  #
  # offset 13: Contrast
  #
  ret["Contrast"] =
  case @formatted[13]
  when 0xffff
    "Low"
  when 0x0000
    "Normal"
  when 0x0001
    "High"
  else
    "Unknown"
  end

  return ret if numTags < 15
  #
  # offset 14: Saturation
  #
  ret["Saturation"] =
  case @formatted[14]
  when 0xffff
    "Low"
  when 0x0000
    "Normal"
  when 0x0001
    "High"
  else
    "Unknown"
  end

  return ret if numTags < 16
  #
  # offset 15: Contrast
  #
  ret["Sharpness"] =
  case @formatted[15]
  when 0xffff
    "Low"
  when 0x0000
    "Normal"
  when 0x0001
    "High"
  else
    "Unknown"
  end

  return ret if numTags < 17
  #
  # offset 16: ISO
  #
  ret["ISO"] =
  case @formatted[16]
  when 0
    "ISOSpeedRatings"
  when 15
    "Auto"
  when 16
    50
  when 17
    100
  when 18
    200
  when 19
    400
  else
    "Unknown"
  end

  return ret if numTags < 18
  #
  # offset 17: Metering mode
  #
  ret['Metering mode'] =
  case @formatted[17]
  when 3
    "Evaluative"
  when 4
    "Partial"
  when 5
    "Center-weighted"
  else
    "Unknown"
  end
  ret
end