code: public static Iterator<ImageReader> getImageReaders(Object input) {
  		if (input == null) {
  			throw new IllegalArgumentException("input == null!");
  		}
  		Iterator iter;
  		// Ensure category is present
  		try {
  			iter = theRegistry.getServiceProviders(ImageReaderSpi.class, new CanDecodeInputFilter(input), true);
  		} catch (IllegalArgumentException e) {
  			return new HashSet().iterator();
  		}
  
  		return new ImageReaderIterator(iter);
  	}
docs: Returns an <code>Iterator</code> containing all currently registered <code>ImageReader</code>s that
  claim to be able to decode the supplied <code>Object</code>, typically an <code>ImageInputStream</code>
  .
  
  <p>
  The stream position is left at its prior position upon exit from this method.
  
  @param input
  an <code>ImageInputStream</code> or other <code>Object</code> containing encoded image data.
  
  @return an <code>Iterator</code> containing <code>ImageReader</code>s.
  
  @exception IllegalArgumentException
  if <code>input</code> is <code>null</code>.
  
  @see javax.imageio.spi.ImageReaderSpi#canDecodeInput