Adding new formats

Development
Topics
Overview
Philosophy
Architecture
Source code
Project management
Coding style
Debugging
Tools
GitHub
Git
Maven
IDEs
Travis
AppVeyor
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