code: public BufferedImage read(final String pName, final ImageReadParam pParam) throws IOException {
          initCatalog();
  
          int index = catalog.getIndex(pName);
          if (index < 0) {
              throw new FileNotFoundException("Name not found in \"Catalog\" entry: " + pName);
          }
  
          return read(index, pParam);
      }
docs: Reads the image data from the given input stream, and returns it as a
  {@code BufferedImage}.
  
  @param pName  the name of the image to read
  @param pParam additional parameters used while decoding, may be
  {@code null}, in which case defaults will be used
  @return a {@code BufferedImage}
  @throws java.io.FileNotFoundException if the given file name is not found in the
  "Catalog" entry of the {@code CompoundDocument}
  @throws IllegalStateException if the input source has not been set
  @throws java.io.IOException           if an error occurs during reading