NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Ticket #9 (closed feature: fixed)

Opened 2010-02-15T14:03:47-06:00

Last modified 2013-06-07T15:57:40-05:00

Redesign core I/O infrastructure

Reported by: curtis Owned by: hinerm
Priority: major Milestone: imagej2-b7-ndim-data
Component: I/O Version:
Severity: non-issue Keywords:
Cc: Blocked By: #47, #100, #215, #327, #649, #850, #860, #1013


ImageJ's current I/O infrastructure is largely built around the class. It generally assumes it is reading from a file, has many specialized considerations for TIFF and other formats, and is generally not modular in its design. There is also no real way to extend ImageJ's core I/O support other than to hack a special plugin called HandleExtraFileTypes, which has a number of limitations and disadvantages.

In contrast, the Bio-Formats library was designed with extensibility in mind. We propose a core ImageJ I/O package, similar to loci.formats, with IFormatReader- and IFormatWriter-like interfaces, to make it easier to extend ImageJ's file format support in a general way. Plugins implementing the correct interface would be automatically detected as new supported file types, and work out of the box with the ImageJ "Open" command.

Change History

comment:1 Changed 2011-02-15T10:28:11-06:00 by curtis

  • Milestone changed from progress-report to imagej-2.0-beta

comment:2 Changed 2011-03-13T22:22:08-05:00 by curtis

By the alpha1 release, we want File > Open to work extensibly, as well as File > Save. Both should have file filters based on the discovered I/O plugins.

comment:3 Changed 2011-03-31T11:55:27-05:00 by curtis

  • Milestone changed from imagej-2.0-alpha1 to imagej-2.0-alpha2

comment:4 Changed 2011-04-25T11:48:24-05:00 by curtis

  • Milestone changed from imagej-2.0-alpha2 to imagej-2.0-alpha3

This is not going to make it into 2.0-alpha2. Will shoot for 2.0-alpha3.

comment:5 Changed 2011-05-23T10:27:27-05:00 by curtis

  • Milestone changed from imagej-2.0-alpha3 to imagej-2.0-beta1

comment:6 Changed 2011-10-18T14:43:33-05:00 by curtis

See also ticket #100.

comment:7 Changed 2011-11-01T10:47:47-05:00 by curtis

  • Milestone changed from imagej-2.0-beta1 to imagej-2.0-beta2

comment:8 Changed 2012-02-23T11:09:43-06:00 by curtis

  • Type changed from task to story

comment:9 Changed 2012-02-23T11:18:53-06:00 by curtis

  • Blocking 6 added

comment:10 Changed 2012-02-23T14:43:51-06:00 by curtis

  • Blocked By 100 added

comment:11 Changed 2012-02-24T13:32:03-06:00 by curtis

  • Blocked By 1013 added

comment:12 Changed 2012-02-24T13:59:34-06:00 by curtis

  • Blocked By 215 added

comment:13 Changed 2012-02-24T14:00:06-06:00 by curtis

  • Blocked By 216 added

comment:14 Changed 2012-02-24T15:51:34-06:00 by curtis

  • Blocked By 47 added

comment:15 Changed 2012-02-24T16:17:58-06:00 by curtis

  • Blocked By 327 added

comment:16 Changed 2012-02-26T21:25:46-06:00 by curtis

  • Blocked By 846 added

comment:17 Changed 2012-02-26T21:49:51-06:00 by curtis

  • Blocked By 860 added

comment:18 Changed 2012-02-26T21:50:37-06:00 by curtis

  • Blocked By 846 removed

comment:19 Changed 2012-02-26T22:26:20-06:00 by curtis

  • Blocked By 850 added

comment:20 Changed 2012-02-26T22:55:58-06:00 by curtis

  • Blocked By 649 added

comment:21 Changed 2012-03-05T14:33:36-06:00 by curtis

  • Blocking 6 removed

comment:22 Changed 2012-05-15T09:37:13-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta3 to imagej-2.0.0-beta4

comment:23 Changed 2012-05-15T10:36:34-05:00 by curtis

  • Blocked By 1083 added

comment:24 Changed 2012-05-15T10:52:16-05:00 by curtis

  • Blocked By 1081 added

(In #1081) See also #516.

comment:25 Changed 2012-05-15T10:53:17-05:00 by curtis

  • Blocked By 1082 added

comment:26 Changed 2012-08-03T14:02:55-05:00 by curtis

  • Priority changed from critical to minor

comment:27 Changed 2012-08-14T10:44:16-05:00 by curtis

  • Priority changed from minor to major

comment:28 Changed 2012-08-14T13:03:51-05:00 by bdezonia

  • Blocked By 216 removed

comment:29 Changed 2012-09-06T14:27:55-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta5

comment:30 Changed 2012-09-06T14:29:48-05:00 by curtis

  • Blocked By 516 added

comment:31 Changed 2012-09-06T14:30:31-05:00 by curtis

  • Blocked By 445 added

comment:32 Changed 2012-12-06T12:05:54-06:00 by bdezonia

  • Blocked By 1406 added

comment:33 Changed 2013-02-19T11:51:01-06:00 by curtis

In the past week, we made big progress on  SCIFIO and ImageJ2 sharing a common service framework: in the form of the  SciJava Common library (refactored and generalized from ImageJ2).

This is a big step toward the resolution of this ticket, since it will help cement SCIFIO as the library for writing I/O plugins compatible with ImageJ2, ImgLib2 and more.

comment:34 Changed 2013-03-07T12:51:06-06:00 by bdezonia

  • Blocked By 445 removed

comment:35 Changed 2013-04-03T12:44:14-05:00 by curtis

  • Status changed from new to reviewing

comment:36 Changed 2013-04-15T10:35:34-05:00 by curtis

  • Status changed from reviewing to accepted

comment:37 Changed 2013-04-15T10:36:59-05:00 by curtis

  • Owner changed from curtis to hinerm
  • Status changed from accepted to assigned

Assigning to hinerm, because it is increasingly clear that this ticket is really about getting SCIFIO to a beta release point that can be integrated with the ImageJ2 beta7 release. Of course, I will still be very involved, but hinerm is essentially already taking point on this work.

comment:38 Changed 2013-05-28T10:38:25-05:00 by bdezonia

  • Blocked By 1704 added

comment:39 Changed 2013-06-05T15:09:57-05:00 by bdezonia

  • Blocked By 47 removed

comment:40 Changed 2013-06-05T15:10:38-05:00 by bdezonia

  • Blocked By 100 removed

comment:41 Changed 2013-06-05T15:11:00-05:00 by bdezonia

  • Blocked By 215 removed

comment:42 Changed 2013-06-05T15:11:17-05:00 by bdezonia

  • Blocked By 327 removed

comment:43 Changed 2013-06-05T15:11:35-05:00 by bdezonia

  • Blocked By 649 removed

comment:44 Changed 2013-06-05T15:11:52-05:00 by bdezonia

  • Blocked By 850 removed

comment:45 Changed 2013-06-05T15:12:09-05:00 by bdezonia

  • Blocked By 860 removed

comment:46 Changed 2013-06-05T15:12:26-05:00 by bdezonia

  • Blocked By 1013 removed

comment:47 Changed 2013-06-05T15:12:54-05:00 by bdezonia

  • Milestone changed from imagej2-b7-ndim-data to imagej2-b8-analysis

comment:48 Changed 2013-06-05T15:15:44-05:00 by bdezonia

  • Summary changed from Redesign core I/O infrastructure to Redesign core I/O infrastructure [analysis]

comment:49 Changed 2013-06-07T15:37:54-05:00 by curtis

  • Blocked By 47, 100, 215, 327, 649, 850, 860, 1013 added; 516, 1081, 1082, 1083, 1406, 1704 removed

This ticket is really about improving the infrastructure if I/O for ImageJ2. With SCIFIO, we have now done that. The 2.0.0-beta-7 release is using SCIFIO 0.1.0—File Open and File Save are now extensible—so this ticket is complete.

Remaining tickets about improving the existing I/O mechanism have been migrated to ticket #1920.

comment:50 Changed 2013-06-07T15:38:10-05:00 by curtis

  • Status changed from assigned to closed
  • Resolution set to fixed

comment:51 Changed 2013-06-07T15:39:10-05:00 by curtis

  • Summary changed from Redesign core I/O infrastructure [analysis] to Redesign core I/O infrastructure

comment:52 Changed 2013-06-07T15:57:40-05:00 by curtis

  • Milestone changed from imagej2-b8-analysis to imagej2-b7-ndim-data