├── doc ├── SaveN5Dialog.png ├── OpenN5DialogWithBrowse.png ├── OpenN5DialogWithCrop.png ├── OpenN5DialogWithTree.png ├── MetadataTranslationDialog.png └── ngffDeveloperExamples.md ├── .github ├── build.sh ├── setup.sh └── workflows │ ├── build-pr.yml │ ├── build-main.yml │ └── platform-test.yml ├── src ├── main │ ├── resources │ │ └── plugins.config │ └── java │ │ └── org │ │ └── janelia │ │ └── saalfeldlab │ │ └── n5 │ │ ├── converters │ │ ├── LabelMultisetLongConverter.java │ │ ├── UnsignedShortLinearConverter.java │ │ └── UnsignedShortLUTConverter.java │ │ ├── ui │ │ ├── N5TreeNodeWrapper.java │ │ ├── DataSelection.java │ │ ├── TranslationResultPanel.java │ │ ├── N5SpatialKeySpecDialog.java │ │ ├── N5MetadataTranslationPanel.java │ │ ├── N5MetadataSpecDialog.java │ │ ├── N5SwingTreeNode.java │ │ ├── NodePopupMenu.java │ │ ├── N5DatasetTreeCellRenderer.java │ │ ├── ImprovedFormattedTextField.java │ │ └── N5DatasetSelectorDialog.java │ │ └── metadata │ │ ├── imagej │ │ ├── SpatialMetadataToImagePlus.java │ │ ├── N5ViewerToImagePlus.java │ │ ├── ImageplusMetadata.java │ │ ├── CosemToImagePlus.java │ │ ├── N5ImagePlusMetadata.java │ │ ├── ImagePlusMetadataTemplate.java │ │ ├── MetadataTemplateMapper.java │ │ ├── ImagePlusLegacyMetadataParser.java │ │ ├── CanonicalMetadataToImagePlus.java │ │ └── NgffToImagePlus.java │ │ └── TranslateN5Tree.java └── test │ ├── resources │ ├── test.n5 │ │ ├── others │ │ │ ├── res │ │ │ │ └── attributes.json │ │ │ └── resOff │ │ │ │ └── attributes.json │ │ ├── n5v_ds │ │ │ └── attributes.json │ │ ├── n5v_pra │ │ │ └── attributes.json │ │ ├── n5v_pr │ │ │ └── attributes.json │ │ ├── n5v_pra-ds │ │ │ └── attributes.json │ │ ├── n5v_pr-ds │ │ │ └── attributes.json │ │ ├── cosem │ │ │ └── attributes.json │ │ ├── cosem_ms │ │ │ ├── s0 │ │ │ │ └── attributes.json │ │ │ ├── s1 │ │ │ │ └── attributes.json │ │ │ └── s2 │ │ │ │ └── attributes.json │ │ └── c0 │ │ │ ├── s0 │ │ │ └── attributes.json │ │ │ └── s1 │ │ │ └── attributes.json │ └── ngff.n5 │ │ └── ngff_grpAttributes │ │ └── attributes.json │ └── java │ └── org │ └── janelia │ └── saalfeldlab │ └── n5 │ ├── MultiThreadedParsingBenchmark.java │ ├── TestTryWith.java │ ├── metadata │ ├── MetadataMapperTest.java │ ├── NgffTests.java │ └── ome │ │ └── ngff │ │ └── v04 │ │ └── AxisPermutationTest.java │ ├── TestRunners.java │ ├── CustomMetadataExamples.java │ ├── converters │ └── UshortConverterTests.java │ ├── exps │ └── GithubActionsIssuesTests.java │ ├── ui │ └── TestUriValidation.java │ ├── ij │ └── MacroTests.java │ ├── RunImportExportTest.java │ └── TestRegionExport.java ├── scripts ├── setOverwriteWarningOption.groovy ├── getOverwriteWarningOption.groovy ├── setDownsamplingPolicy.groovy └── readProcessWriteIJDemo.bsh ├── .gitignore ├── LICENSE ├── CustomMetadata.md └── pom.xml /doc/SaveN5Dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saalfeldlab/n5-ij/HEAD/doc/SaveN5Dialog.png -------------------------------------------------------------------------------- /doc/OpenN5DialogWithBrowse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saalfeldlab/n5-ij/HEAD/doc/OpenN5DialogWithBrowse.png -------------------------------------------------------------------------------- /doc/OpenN5DialogWithCrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saalfeldlab/n5-ij/HEAD/doc/OpenN5DialogWithCrop.png -------------------------------------------------------------------------------- /doc/OpenN5DialogWithTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saalfeldlab/n5-ij/HEAD/doc/OpenN5DialogWithTree.png -------------------------------------------------------------------------------- /doc/MetadataTranslationDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saalfeldlab/n5-ij/HEAD/doc/MetadataTranslationDialog.png -------------------------------------------------------------------------------- /.github/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/master/ci-build.sh 3 | sh ci-build.sh 4 | -------------------------------------------------------------------------------- /src/main/resources/plugins.config: -------------------------------------------------------------------------------- 1 | # Name: N5 ImageJ 2 | 3 | File>Import, "HDF5/N5/Zarr/OME-NGFF ... ", org.janelia.saalfeldlab.n5.ij.N5Importer 4 | -------------------------------------------------------------------------------- /.github/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/master/ci-setup-github-actions.sh 3 | sh ci-setup-github-actions.sh 4 | -------------------------------------------------------------------------------- /scripts/setOverwriteWarningOption.groovy: -------------------------------------------------------------------------------- 1 | #@ PrefService prefs 2 | #@ Boolean skipWarning 3 | 4 | prefs.put(N5ScalePyramidExporter.class, N5ScalePyramidExporter.IJ_PROPERTY_DO_NOT_WARN, skipWarning); 5 | 6 | import org.janelia.saalfeldlab.n5.ij.N5ScalePyramidExporter; -------------------------------------------------------------------------------- /scripts/getOverwriteWarningOption.groovy: -------------------------------------------------------------------------------- 1 | #@ PrefService prefs 2 | #@ UIService ui 3 | #@output skipWarning 4 | 5 | skipWarning = prefs.getBoolean(N5ScalePyramidExporter.class, N5ScalePyramidExporter.IJ_PROPERTY_DO_NOT_WARN, false); 6 | ui.showDialog("The skip warning option is " + skipWarning); 7 | 8 | import org.janelia.saalfeldlab.n5.ij.N5ScalePyramidExporter; -------------------------------------------------------------------------------- /src/test/resources/test.n5/others/res/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "blockSize": [ 7 | 16, 8 | 16, 9 | 16 10 | ], 11 | "dataType": "uint16", 12 | "dimensions": [ 13 | 256, 14 | 256, 15 | 129 16 | ], 17 | "res": [ 18 | 1.5, 19 | 1.5, 20 | 1.5 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/n5v_ds/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "downsamplingFactors": [ 7 | 2, 8 | 2, 9 | 2 10 | ], 11 | "blockSize": [ 12 | 16, 13 | 16, 14 | 16 15 | ], 16 | "dataType": "uint16", 17 | "dimensions": [ 18 | 256, 19 | 256, 20 | 129 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/n5v_pra/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "blockSize": [ 7 | 16, 8 | 16, 9 | 16 10 | ], 11 | "dataType": "uint16", 12 | "dimensions": [ 13 | 256, 14 | 256, 15 | 129 16 | ], 17 | "pixelResolution": [ 18 | 1.5, 19 | 1.5, 20 | 1.5 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/n5v_pr/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "blockSize": [ 7 | 16, 8 | 16, 9 | 16 10 | ], 11 | "dataType": "uint16", 12 | "dimensions": [ 13 | 256, 14 | 256, 15 | 129 16 | ], 17 | "pixelResolution": { 18 | "dimensions": [ 19 | 1.5, 20 | 1.5, 21 | 1.5 22 | ], 23 | "unit": "mm" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/others/resOff/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "blockSize": [ 7 | 16, 8 | 16, 9 | 16 10 | ], 11 | "dataType": "uint16", 12 | "dimensions": [ 13 | 256, 14 | 256, 15 | 129 16 | ], 17 | "res": [ 18 | 1.5, 19 | 1.5, 20 | 1.5 21 | ], 22 | "off": [ 23 | 12.3, 24 | 12.3, 25 | 12.3 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/n5v_pra-ds/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "downsamplingFactors": [ 7 | 2, 8 | 2, 9 | 2 10 | ], 11 | "blockSize": [ 12 | 16, 13 | 16, 14 | 16 15 | ], 16 | "dataType": "uint16", 17 | "dimensions": [ 18 | 256, 19 | 256, 20 | 129 21 | ], 22 | "pixelResolution": [ 23 | 1.5, 24 | 1.5, 25 | 1.5 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /src/test/resources/test.n5/n5v_pr-ds/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "compression": { 3 | "type": "gzip", 4 | "level": -1 5 | }, 6 | "downsamplingFactors": [ 7 | 2, 8 | 2, 9 | 2 10 | ], 11 | "blockSize": [ 12 | 16, 13 | 16, 14 | 16 15 | ], 16 | "dataType": "uint16", 17 | "dimensions": [ 18 | 256, 19 | 256, 20 | 129 21 | ], 22 | "pixelResolution": { 23 | "dimensions": [ 24 | 1.5, 25 | 1.5, 26 | 1.5 27 | ], 28 | "unit": "mm" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scripts/setDownsamplingPolicy.groovy: -------------------------------------------------------------------------------- 1 | #@ String (visibility=MESSAGE, value="Sets the downsampling policy for the N5 scale pyramid exporter