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 #1974 (closed defect: wontfix)

Opened 2013-08-01T11:02:57-05:00

Last modified 2014-08-19T11:16:56-05:00

Legacy layer limitation

Reported by: bdezonia Owned by: bdezonia
Priority: major Milestone: imagej2-b10-compatibility
Component: Legacy Compatibility Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking: #1968


As designed there is a annoying assumption in the legacy layer. When a ImagePlus is created by a legacy plugin a display is created and the two are registered together in the legacy image map. From then on they are considered married.

Imagine you have a legacy plugin or macro that makes a CompositeImage from an existing mapped ImagePlus. As designed now the CompositeImage should open a new Display. And that may be okay. But there might be times where it makes more sense to update the mapping in legacy image map instead.

If we wanted to update then the Harmonizer has to change so that current ImagePlus of subharmonizers (like ColorTableHarmonizer, CompositeHarmonizer, etc.) is returned and passed to next step in the chain. This allows one subharmonizer to make a CompositeImage if needed and others to work upon it.

This issue came to light because I wanted to always make CompositeImages for ImagePluses with channels <= 7 and just set ColorMode. This would simplify the maintenance of color tables across the legacy layer.

Change History

comment:1 Changed 2013-08-01T11:20:09-05:00 by bdezonia

In my case the issue became apparent opening clown sample image. It is a basic ImagePlus from IJ1's point of view. And IJ2 makes a display associated with it. However it's rgb and thus has 3 color tables implicitly. If IJ1 returns a CompositeImage from a plugin things should work. Its just this case of RGB images where color tables get messed up. Maybe this isn't such a big problem.

See also #1946

comment:2 Changed 2014-08-19T11:16:56-05:00 by curtis

  • Status changed from new to closed
  • Resolution set to wontfix

Synchronization of ImageJ1 and ImageJ2 data structures is on hold until the ImageJ2 data structures can benefit from another design iteration. See for a (non-comprehensive) list.