diff --git a/src/main/java/bdv/img/n5/N5ImageLoader.java b/src/main/java/bdv/img/n5/N5ImageLoader.java index 3a774d0b1..28e0424f6 100644 --- a/src/main/java/bdv/img/n5/N5ImageLoader.java +++ b/src/main/java/bdv/img/n5/N5ImageLoader.java @@ -102,7 +102,7 @@ public class N5ImageLoader implements ViewerImgLoader, MultiResolutionImgLoader { - private final File n5File; + private final N5Reader n5; // TODO: it would be good if this would not be needed // find available setups from the n5 @@ -113,9 +113,9 @@ public class N5ImageLoader implements ViewerImgLoader, MultiResolutionImgLoader */ private final Map< Integer, SetupImgLoader > setupImgLoaders = new HashMap<>(); - public N5ImageLoader( final File n5File, final AbstractSequenceDescription< ?, ?, ? > sequenceDescription ) + public N5ImageLoader( final N5Reader n5, final AbstractSequenceDescription< ?, ?, ? > sequenceDescription ) { - this.n5File = n5File; + this.n5 = n5; this.seq = sequenceDescription; } @@ -124,10 +124,16 @@ public File getN5File() return n5File; } + public void setN5File( File n5File ) + { + this.n5File = n5File; + } + + private File n5File; private volatile boolean isOpen = false; private FetcherThreads fetchers; private VolatileGlobalCellCache cache; - private N5Reader n5; + private void open() { @@ -140,8 +146,6 @@ private void open() try { - this.n5 = new N5FSReader( n5File.getAbsolutePath() ); - int maxNumLevels = 0; final List< ? extends BasicViewSetup > setups = seq.getViewSetupsOrdered(); for ( final BasicViewSetup setup : setups ) diff --git a/src/main/java/bdv/img/n5/XmlIoN5ImageLoader.java b/src/main/java/bdv/img/n5/XmlIoN5ImageLoader.java index 10e40feb6..c82307c38 100644 --- a/src/main/java/bdv/img/n5/XmlIoN5ImageLoader.java +++ b/src/main/java/bdv/img/n5/XmlIoN5ImageLoader.java @@ -30,10 +30,13 @@ package bdv.img.n5; import java.io.File; +import java.io.IOException; + import mpicbg.spim.data.XmlHelpers; import mpicbg.spim.data.generic.sequence.AbstractSequenceDescription; import mpicbg.spim.data.generic.sequence.ImgLoaderIo; import mpicbg.spim.data.generic.sequence.XmlIoBasicImgLoader; +import org.janelia.saalfeldlab.n5.N5FSReader; import org.jdom2.Element; import static mpicbg.spim.data.XmlHelpers.loadPath; @@ -56,7 +59,18 @@ public Element toXml( final N5ImageLoader imgLoader, final File basePath ) public N5ImageLoader fromXml( final Element elem, final File basePath, final AbstractSequenceDescription< ?, ?, ? > sequenceDescription ) { // final String version = elem.getAttributeValue( "version" ); - final File path = loadPath( elem, "n5", basePath ); - return new N5ImageLoader( path, sequenceDescription ); + + try + { + final File path = loadPath( elem, "n5", basePath ); + final N5FSReader n5FSReader = new N5FSReader( path.getAbsolutePath() ); + final N5ImageLoader n5ImageLoader = new N5ImageLoader( n5FSReader, sequenceDescription ); + n5ImageLoader.setN5File( path ); + return n5ImageLoader; + } + catch ( IOException e ) + { + throw new RuntimeException( e ); + } } }