Adding new file formats

Development
Topics
Overview
Philosophy
Architecture
Source code
Project management
Coding style
Debugging
Tools
GitHub
Git
Maven
IDEs
Jenkins
Travis
Dotfiles
Guides
Writing plugins
ImageJ Ops
Contributing to a plugin
Distributing your plugins
Development lifecycle
Building a POM
Developing with Eclipse
Hands-on debugging
Adding new ops
Adding new formats
Using native libraries
Tips for developers
Tips for C++ developers
ImageJ 1.x plugins
Versioning
Logging
Uber-JARs


Before an image can be analyzed, it needs to be opened properly. The way scientific image data can be stored varies wildly - with custom formats as numerous as the different brands and models of instruments used in their acquisition. Therefore, supporting a wide variety of formats is critical to the success of an image analysis platform like ImageJ.
Imagej1-icon.png
With ImageJ 1.x, a special HandleExtraFileTypes plugin exists that can be modified to support new data formats—but it has some significant disadvantages:
  • It only provides limited extensibility: there can only be one HandleExtraFileTypes installed into ImageJ at a time, so all desired modifications to the plugin must be somehow combined. This makes it impossible to, for example, ship a different HandleExtraFileTypes on two different ImageJ Update Sites and have both additions be available in the same installation.
  • Data formats added in this manner cannot override or extend ImageJ1's built in support for certain file formats. In particular, ImageJ1 supports only a subset of the TIFF specification, and this issue cannot be circumvented via HandleExtraFileTypes modifications.

ImageJ2 provides a comprehensive solution to the issue of data formats in the form of SCIFIO data format plugins. SCIFIO, the SCientific Image Format Input and Output library, is a flexible framework for image format support. To get started writing SCIFIO formats:

See also