# File image.rb, line 56
    def initialize filename, quick=true
      @logger = Logger.new(STDOUT)
      @logger.datetime_format = "%H:%M:%S"
      @logger.level = $DEBUG?(Logger::DEBUG):(Logger::INFO)
      
      @filename = filename
      @position = 0
      @content = File.open(@filename).binmode.read
      
      
      if MARKERS[read(2)]!="SOI"
        raise  NotJPEGFileException.new("Not a JPEG file: #{@filename}")
      end
      
      @markers = Array.new()
      
      begin
      
        catch(:end_of_metadata) do
          while true
            @markers << read_marker
          end
        end
        
      rescue Exception=>e
        @logger.info "Exception in file #{@filename}:\n"+e.to_s
        raise e
      end
      # Markers all read
      # move back
      seek(-2)
      
      # in full mode, read the rest
      if !quick
        @data = read_rest
      end
      
      @values = MultipleHash.new
      
      @markers.each do |marker|
        marker.parse
        @values.add(marker, marker.values)
        
      end        
    end