Hi Jay, > For some reason, I didn't need when this last time I was working with ND2 files.
There used to be a runtime formats-gpl dependency, which was removed in this (poorly documented) commit[1]. Anyone consuming scifio-bf-compat after that point would need to specify their own formats-gpl (or other library containing Bio-Formats reader implementations). Best, Mark [1] https://github.com/scifio/scifio-bf-compat/commit/e011263264c120f287f246676884ef8c56ca289b#diff-600376dffeb79835ede4a0b285078036 On Wed, Mar 4, 2015 at 12:02 PM, Jay Warrick <jay.w.warr...@gmail.com> wrote: > 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 > [2] 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> > 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 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 >> 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> 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 >> >> 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> >> 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). >>> 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 >>> 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 > > >
_______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel