Ticket #444 (closed task: moved)

Opened 8 years ago

Last modified 6 years ago

Improve how the Display framework handles large images

Reported by: bdezonia Owned by: bdezonia
Priority: major Milestone: imagej-2.5.0
Component: Display API Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking: #19


Currently AWTDisplayController is responsible for creating BufferedImages that are displayed in an ImageCanvas. The call to AWTDisplayController::update() creates a BufferedImage from the Dataset that is 1:1 scale in X & Y. For large Datasets this will be a problem.

Barry and Aivar discussed this some and noted some possible design changes.

We'd like to support the ability of the ImageCanvas to just display a BufferedImage that is made by AWTDisplayController. The ImageCanvas would pan and zoom on the given BufferedImage. The AWTDisplayController could make a BufferedImage from a number of tiles (allowing much less memory use).

After a certain zoom level is reached (1:1) then any zoom within ImageCanvas would just scale and pan on the last BufferedImage it was given. If panning or zooming out would cause a boundary of the current BufferedImage to become visible the ImageCanvas could say "hey, display controller, now I need to see region (x1,y1,x2,y2) of the image". The AWTDisplayController could then recalculate a new BufferedImage that represents that region of the Dataset building from some tiles as needed. ImageCanvas would display the new BufferedImage.

Change History

comment:1 Changed 7 years ago by bdezonia

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

comment:2 Changed 7 years ago by curtis

  • Blocking 19 added

comment:3 Changed 7 years ago by bdezonia

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

comment:4 Changed 7 years ago by bdezonia

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

Handling large data is slated for beta 5

comment:5 Changed 6 years ago by bdezonia

  • Milestone changed from imagej2-b7-ndim-data to imagej-2.5.0

comment:6 Changed 5 years ago by curtis

  • Status changed from new to closed
  • Resolution set to moved
Note: See TracTickets for help on using tickets.