NOTICE! This is a static HTML version of a legacy LOCI Software ticket.

LOCI projects are now located on GitHub. The Bio-Formats project can be found here.

Ticket #33 (closed defect: fixed)

Opened 2007-03-19T10:45:11-05:00

Last modified 2007-04-23T12:16:24-05:00

16-bit images do not display properly

Reported by: curtis Owned by: curtis
Priority: critical Milestone: visbio4.0
Component: visbio Severity:
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by curtis)

Since switching VisBio over to the ImageFlatField logic, 16-bit images do not display properly.

It is not totally clear what is going on, but the problem seems to be an incompatibility between 16-bit BufferedImage objects and VisAD displays. Whether it is Java3D-specific, or also affects Java2D, is not yet tested due to other VisBio Java2D bugs (see ticket #32).

VisAD needs some retooling to work as efficiently as possible with 8-bit data, especially in certain configurations, in conjunction with Java3D texturing by reference. Various data configurations should be transformed as few times as possible to avoid excessive CPU usage, and 16-bit data is no exception.

More substantial improvements to VisBio's core logic would probably make this bug obsolete (see tickets #34 and #35 for more details).

Change History

comment:1 Changed 2007-03-19T11:02:29-05:00 by curtis

  • Description modified

comment:2 Changed 2007-03-19T11:19:21-05:00 by curtis

  • Description modified

comment:3 Changed 2007-03-19T13:20:03-05:00 by curtis

  • Milestone set to visbio4.0

comment:4 Changed 2007-04-23T12:16:24-05:00 by curtis

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

Fixed in r2654. The problem was that grabBytes really is inappropriate to use with non-8-bit data. Using the default case, 16-bit images display properly now, but may still be inefficient, due to calls to unpackFloats. Adding explicit support for shorts to ImageFlatField and visad.bom.ShadowImageFunctionTypeJ3D in the future should address this issue.