Beispiel #1
0
  /** Constructs a new pattern reader. */
  public FilePatternReader() {
    super("File pattern", new String[] {"pattern"});

    ClassList<IFormatReader> classes = ImageReader.getDefaultReaderClasses();
    Class<? extends IFormatReader>[] classArray = classes.getClasses();
    ClassList<IFormatReader> newClasses = new ClassList<IFormatReader>(IFormatReader.class);
    for (Class<? extends IFormatReader> c : classArray) {
      if (!c.equals(FilePatternReader.class)) {
        newClasses.addClass(c);
      }
    }
    helper = new FileStitcher(new ImageReader(newClasses));

    suffixSufficient = true;
  }
  /**
   * Wrapper for bio-formats
   *
   * @param config - ImportConfit
   */
  public OMEROWrapper(ImportConfig config) {
    if (config == null) {
      throw new IllegalArgumentException(
          "An ImportConfig must be instantitated \n "
              + "in order to properly configure all readers.");
    }

    this.config = config;
    try {
      String readersPath = config.readersPath.get();
      // Since we now use all readers apart from the ZipReader, just
      // initialize in this manner which helps us by not requiring
      // us to keep up with all changes in readers.txt and removes
      // the requirement for importer_readers.txt (See #2859).
      // Chris Allan <*****@*****.**> -- Fri 10 Sep 2010 17:24:49 BST
      ClassList<IFormatReader> readers = ImageReader.getDefaultReaderClasses();
      readers.removeClass(ZipReader.class);
      if (readersPath != null) {
        Class<?> k = getClass();
        if (new File(readersPath).exists()) {
          k = null;
        }
        readers = new ClassList<IFormatReader>(readersPath, IFormatReader.class, k);
      }
      iReader = new ImageReader(readers);
      filler = new ChannelFiller(iReader);
    } catch (IOException e) {
      throw new RuntimeException("Unable to load readers.txt.");
    }
    reader = separator = new ChannelSeparator(filler);

    // Force unreadable characters to be removed from metadata key/value pairs
    iReader.setMetadataFiltered(true);
    filler.setMetadataFiltered(true);
    separator.setMetadataFiltered(true);
  };