Yay! That solved it. Thanks. I wasn't aware that I needed to specify this third dependency. For some reason, I didn't need when this last time I was working with ND2 files. Just the 1st two dependencies at least appeared to suffice... maybe something else I was doing at the time brought it in without my knowledge.
For documentation's sake for others, this appears to work. Thanks!!! <dependency> <groupId>io.scif</groupId> <artifactId>scifio</artifactId> </dependency> <dependency> <groupId>io.scif</groupId> <artifactId>scifio-bf-compat</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>ome</groupId> <artifactId>formats-gpl</artifactId> </dependency> Best, Jay > On Mar 4, 2015, at 8:45 AM, Mark Hiner <hi...@wisc.edu> wrote: > > Hi Jay, > > >In confirmation of this, when I look in that package within the > >formats-api-5.0.7.jar artifact, none of these readers exist. > > Proprietary readers are in the formats-gpl component[1]. formats-api just > provides base interfaces. For downloads I would recommend looking at the OME > downloads pages[2] or, of course, using Maven to pull in the formats-gpl > dependency. Note that scifio-bf-compat does not pull in formats-gpl itself - > it just provides the framework for adapting Bio-Foramts classes. > > Best, > Mark > > [1] > https://github.com/openmicroscopy/bioformats/tree/develop/components/formats-gpl > > <https://github.com/openmicroscopy/bioformats/tree/develop/components/formats-gpl> > [2] http://downloads.openmicroscopy.org/bio-formats/5.0.7/ > <http://downloads.openmicroscopy.org/bio-formats/5.0.7/> > > On Tue, Mar 3, 2015 at 3:54 PM, Jay Warrick <jay.w.warr...@gmail.com > <mailto:jay.w.warr...@gmail.com>> wrote: > Hi Curtis, > > Super helpful feedback. Thanks for the tips on leveraging the newest OME > stuff. > > Re: Problem 1 - Did some debugging. As you already know, the scifio-bf-compat > dependency is pulling in the formats-api-5.0.7.jar artifact which contains > some crucial classes for all this. Critical to matching a file with an > appropriate reader is the loci.formats.ImageReader class which has a static > method (getDefaultReaderClasses()) that should populate a cache of readers > based on the readers.txt file (short example snippet in listing #1). As you > can see from the snippet, the readers are expected to be contained within the > loci.formats.in <http://loci.formats.in/> package. During population of this > cache, each attempt to load a class listed in the file is met with a > ClassNotFoundException. In confirmation of this, when I look in that package > within the formats-api-5.0.7.jar artifact, none of these readers exist. Thus, > the cache of readers does not get populated and Scifio is not able to match > my file with any reader. Seems like this is the issue, right? However, it > would seem like this would affect almost ANY proprietary format, which tells > me I am likely doing something weird if this hasn't come up yet in feedback > from others. > > Suggestions? I re-downloaded the artifact directly from maven.imagej.net > <http://maven.imagej.net/> again to check. I change the extension to zip and > looked in the corresponding folder and did not find any of the readers I > would expect. > > %%%%%%%%%%%%%% > Listin #1 - short snippet of readers.txt file. > %%%%%%%%%%%%%% > > # standalone readers with unique file extensions > loci.formats.in.PGMReader # pgm > loci.formats.in.FitsReader # fits > loci.formats.in.PCXReader # pcx > > >> On Mar 3, 2015, at 11:28 AM, Curtis Rueden <ctrue...@wisc.edu >> <mailto:ctrue...@wisc.edu>> wrote: >> >> Hi Jay, >> >> > I thought it used to be automatic upon adding the scifio and >> > scifio-bf-compat dependencies. >> >> Yeah, that's correct. >> >> > A "limited" list of 30 formats show up in the DefaultFormatService >> > currently and don't include ND2. >> >> The format that supports ND2 (and all Bio-Formats formats) is the >> "Bio-Formats Compatibility Format" at the front of your list. >> >> You'll need to debug into the code to find out why the BioFormatsFormat is >> not being selected properly for your ND2 file. >> >> > It looks like the parent pom of scifio-bf-compat (pom-scijava) >> > specifies <bio-formats.version>5.0.7</bio-formats.version>. >> > Is it likely to be "risky" to leverage the most recent changes >> > for ND2 compatibility? >> >> Yes, it will not work. The scifio-bf-compat component has not yet been >> updated to use the Bio-Formats 5.1.x codebase. >> >> The good news is: updating it to use the OME 5.1 API was easy. I pushed a >> branch: >> >> https://github.com/scifio/scifio-bf-compat/compare/ome-5.1 >> <https://github.com/scifio/scifio-bf-compat/compare/ome-5.1> >> >> You can use it during development by: >> >> * Cloning scifio-bf-compat. >> * Switching to the ome-5.1 branch. >> * Importing scifio-bf-compat into your Eclipse. >> * Setting your project's bio-formats.version property to 5.1.0-SNAPSHOT. >> * Setting your project's scifio-bf-compat.version property to >> 1.11.1-SNAPSHOT. >> >> And then Eclipse should switch to a project coupling for scifio-bf-compat >> and use the branch. >> >> But you'll want to stay on a corresponding branch of your own project >> development until the OME 5.1.0 release. >> >> Regards, >> Curtis >> >> On Tue, Mar 3, 2015 at 10:42 AM, Jay Warrick <jay.w.warr...@gmail.com >> <mailto:jay.w.warr...@gmail.com>> wrote: >> Hi All, >> >> I have 2 problems you all hopefully have suggestions for... (thanks in >> advance) >> >> Problem 1: >> >> I'm interested in opening ND2 file format programmatically in Java via a >> SCIFIO object used with an ImageJ context but can't seem to get it to work. >> (see listing A) Error message indicates format not found. >> >> Hopefully relevant details of what I am currently doing with maven imports >> are below. (see listing B) >> >> Suggestions? Is there a BioFormats dependency I am not bringing in that is >> necessary to expose/discover all the additional proprietary formats or do I >> have to add the proprietary formats myself using a combination of a >> bioformats artifact I'm not aware of and adding each format using the >> mechanism provided by scifio-bf-compat? I thought it used to be automatic >> upon adding the scifio and scifio-bf-compat dependencies. Any help is >> appreciated. I looked in scifio tutorials but couldn't figure it out. Sorry. >> >> Problem 2: >> >> After resolution of problem 1, I'd like to leverage recent changes to the >> bioformats package that addresses a bug in ND2 metadata handling that was >> affecting me (https://trac.openmicroscopy.org.uk/ome/ticket/12548 >> <https://trac.openmicroscopy.org.uk/ome/ticket/12548>). The link suggests >> using bioformats 5.1.x vs 5.0.x which also requires use a few other updated >> jars (as noted near end of ticket). Suggestions on the best way to do this >> given my use case? It looks like the parent pom of scifio-bf-compat >> (pom-scijava) specifies <bio-formats.version>5.0.7</bio-formats.version>. Is >> it likely to be "risky" to leverage the most recent changes for ND2 >> compatibility? >> >> Thanks, >> >> Jay >> >> %%%%%%%%%%%%% >> Listing A >> %%%%%%%%%%%%% >> >> final SCIFIO scifio = new SCIFIO(ij.getContext()); >> Reader reader; >> try >> { >> reader = scifio.initializer().initializeReader(nd2File, new >> SCIFIOConfig().checkerSetOpen(true)); >> } >> catch (Exception e) >> { >> e.printStackTrace(); >> return false; >> } >> >> >> %%%%%%%%%%%%% >> Listing B >> %%%%%%%%%%%%% >> >> My project parent pom is >> >> <parent> >> <groupId>net.imagej</groupId> >> <artifactId>pom-imagej</artifactId> >> <version>5.12.0</version> >> </parent> >> >> I have the following maven dependencies >> >> <dependency> >> <groupId>io.scif</groupId> >> <artifactId>scifio</artifactId> >> </dependency> >> <dependency> >> <groupId>io.scif</groupId> >> <artifactId>scifio-bf-compat</artifactId> >> <scope>runtime</scope> >> </dependency> >> >> A "limited" list of 30 formats show up in the DefaultFormatService currently >> and don't include ND2. (see Listing C) >> >> >> %%%%%%%%%%%%% >> Listing C >> %%%%%%%%%%%%% >> >> (*) Formats in DefaultFormatService >> >> ImageJ ij = new ImageJ(); >> Set<Format> formats = ij.scifio().format().getAllFormats(); >> >> returns >> >> [Bio-Formats Compatibility Format, Animated PNG, Audio Video Interleave, >> Windows Bitmap, DICOM, Encapsulated PostScript, Flexible Image Transport >> System, Simulated data, Graphics Interchange Format, Image Cytometry >> Standard, JPEG-2000, JPEG, Java source code, Multiple Network Graphics, >> Micro-Manager, NRRD, OBF, PCX, Portable Gray Map, Text, Zip, QuickTime, >> PICT, plugin:class io.scif.ome.formats.OMEXMLFormat, Tile JPEG, QuickTime, >> plugin:class io.scif.ome.formats.OMETIFFFormat, Tagged Image File Format, >> Minimal TIFF, Tagged Image File Format] >> >> >> >> _______________________________________________ >> ImageJ-devel mailing list >> ImageJ-devel@imagej.net <mailto:ImageJ-devel@imagej.net> >> http://imagej.net/mailman/listinfo/imagej-devel >> <http://imagej.net/mailman/listinfo/imagej-devel> >> >> > > > _______________________________________________ > ImageJ-devel mailing list > ImageJ-devel@imagej.net <mailto:ImageJ-devel@imagej.net> > http://imagej.net/mailman/listinfo/imagej-devel > <http://imagej.net/mailman/listinfo/imagej-devel> > > > _______________________________________________ > ImageJ-devel mailing list > ImageJ-devel@imagej.net > http://imagej.net/mailman/listinfo/imagej-devel
_______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel