def process(image)
      raise ArgumentError, "process() operates only on ZBar::Image objects" unless image.kind_of?(ZBar::Image)
      image = image.instance_variable_get(:@img)
  
      if ZBar.zbar_process_image(@processor, image) != 0
        raise ArgumentError, "processing failed"
      end
  
      out = []
  
      sym = ZBar.zbar_image_first_symbol(image)
      until sym.null?
        out << Symbol.new(sym)
        sym = ZBar.zbar_symbol_next(sym)
      end
  
      out
    end
def process(image)
      raise ArgumentError, "process() operates only on ZBar::Image objects" unless image.kind_of?(ZBar::Image)
      image = image.instance_variable_get(:@img)
  
      if ZBar.zbar_process_image(@processor, image) != 0
        raise ArgumentError, "processing failed"
      end
  
      out = []
  
      sym = ZBar.zbar_image_first_symbol(image)
      until sym.null?
        out << Symbol.new(sym)
        sym = ZBar.zbar_symbol_next(sym)
      end
  
      out
    end
Attempt to recognize barcodes in this image. Raises an exception if ZBar
 signals an error, otherwise returns an array of ZBar::Symbol objects.