Thanks Mark and Curtis for the explanations and updates of the ReadMe. I think 
this is a more explicit and flexible approach. 

Cheers,

Jay

> On Mar 4, 2015, at 12:25 PM, Mark Hiner <hi...@wisc.edu> wrote:
> 
> 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
>  
> <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 
> <mailto: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 
>> <mailto: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 <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

Reply via email to