loci.formats.in

## Class ZeissLSMReader

- java.lang.Object
- - loci.formats.FormatHandler
  - - loci.formats.FormatReader
    - - loci.formats.in.ZeissLSMReader

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ICompressedTileReader, IFormatHandler, IFormatReader, IMetadataConfigurable, IPyramidHandler

      public class ZeissLSMReader
      extends FormatReader

  ZeissLSMReader is the file format reader for Zeiss LSM files.
  Author:
    Eric Kjellman egkjellman at wisc.edu, Melissa Linkert melissa at glencoesoftware.com, Curtis Rueden ctrueden at wisc.edu

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `ZeissLSMReader.BeamSplitter`
    `(package private) class` | `ZeissLSMReader.DataChannel`
    `(package private) class` | `ZeissLSMReader.DetectionChannel`
    `(package private) class` | `ZeissLSMReader.IlluminationChannel`
    `(package private) class` | `ZeissLSMReader.Laser`
    `(package private) class` | `ZeissLSMReader.Marker`
    `(package private) class` | `ZeissLSMReader.Recording`
    `(package private) class` | `ZeissLSMReader.SubBlock`
    `(package private) class` | `ZeissLSMReader.Timer`
    `(package private) class` | `ZeissLSMReader.Track`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.util.Map<java.lang.Integer,java.lang.String>` | `acquiredDate`
    `private static int` | `ANGLE`
    `private static int` | `BEAM_SPLITTER_FILTER`
    `private static int` | `BEAM_SPLITTER_FILTER_SET`
    `private static int` | `BEZIER_WITH_ARROW`
    `private java.lang.String` | `binning`
    `private static int` | `CHANNEL_ACQUIRE`
    `private static int` | `CHANNEL_AMPLIFIER_GAIN`
    `private static int` | `CHANNEL_DETECTOR_GAIN`
    `private static int` | `CHANNEL_FILTER`
    `private static int` | `CHANNEL_FILTER_SET`
    `private static int` | `CHANNEL_NAME`
    `private static int` | `CHANNEL_PINHOLE_DIAMETER`
    `private ome.xml.model.primitives.Color[]` | `channelColor`
    `private java.lang.String[][]` | `channelNames`
    `private static int` | `CIRCLE`
    `private static int` | `CIRCLE_3POINT`
    `private static int` | `CLOSED_ARROW`
    `private static int` | `CLOSED_BEZIER`
    `private static int` | `CLOSED_POLYLINE`
    `private static int` | `DATA_CHANNEL_ACQUIRE`
    `private static int` | `DATA_CHANNEL_NAME`
    `private int` | `dimensionM`
    `private int` | `dimensionP`
    `private static int` | `ELLIPSE`
    `private java.util.List<IFDList>` | `ifdsList`
    `private static int` | `ILLUM_CHANNEL_ACQUIRE`
    `private static int` | `ILLUM_CHANNEL_ATTENUATION`
    `private static int` | `ILLUM_CHANNEL_NAME`
    `private static int` | `ILLUM_CHANNEL_WAVELENGTH`
    `private int` | `illuminations`
    `private java.util.List<java.lang.String>` | `imageNames`
    `private boolean` | `isSIM`
    `private static int` | `LASER_ACQUIRE`
    `private static int` | `LASER_NAME`
    `private static int` | `LASER_POWER`
    `private static int` | `LINE`
    `private java.lang.String[]` | `lsmFilenames`
    `private byte[][][]` | `lut`
    `static java.lang.String[]` | `MDB_SUFFIX`
    `private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String>` | `METADATA_KEYS`
    `private int` | `nextDetectChannel`
    `private int` | `nextDetector`
    `private int` | `nextDichroic`
    `private int` | `nextDichroicChannel`
    `private int` | `nextFilter`
    `private int` | `nextIllumChannel`
    `private int` | `nextLaser`
    `private static int` | `OPEN_ARROW`
    `private static int` | `OPEN_BEZIER`
    `private static int` | `OPEN_POLYLINE`
    `private double` | `originX`
    `private double` | `originY`
    `private double` | `originZ`
    `private static int` | `PALETTE`
    `private int` | `phases`
    `private double` | `pixelSizeX`
    `private double` | `pixelSizeY`
    `private double` | `pixelSizeZ`
    `private static int` | `POLYLINE_ARROW`
    `private byte[]` | `prevBuf`
    `private int` | `prevChannel`
    `private int` | `prevPlane`
    `private loci.common.Region` | `prevRegion`
    `private static int` | `RECORDING_CAMERA_BINNING`
    `private static int` | `RECORDING_DESCRIPTION`
    `private static int` | `RECORDING_NAME` Data types.
    `private static int` | `RECORDING_OBJECTIVE`
    `private static int` | `RECORDING_SAMPLE_0TIME`
    `private static int` | `RECORDING_ZOOM`
    `private static int` | `RECTANGLE`
    `private int` | `rotations`
    `private static int` | `SCALE_BAR`
    `private java.util.Map<java.lang.String,java.lang.Integer>` | `seriesCounts`
    `private boolean` | `splitPlanes`
    `private static int` | `START_TIME`
    `private static int` | `SUBBLOCK_BEAM_SPLITTER`
    `private static int` | `SUBBLOCK_DATA_CHANNEL`
    `private static int` | `SUBBLOCK_DETECTION_CHANNEL`
    `private static int` | `SUBBLOCK_END`
    `private static int` | `SUBBLOCK_ILLUMINATION_CHANNEL`
    `private static int` | `SUBBLOCK_LASER`
    `private static int` | `SUBBLOCK_MARKER`
    `private static int` | `SUBBLOCK_RECORDING` Subblock types.
    `private static int` | `SUBBLOCK_TIMER`
    `private static int` | `SUBBLOCK_TRACK`
    `private static int` | `TEXT` Drawing element types.
    `private TiffParser` | `tiffParser`
    `private java.util.List<java.lang.Double>` | `timestamps`
    `private int` | `totalROIs`
    `private static int` | `TRACK_ACQUIRE`
    `private static int` | `TRACK_TIME_BETWEEN_STACKS`
    `private static int` | `TYPE_ASCII`
    `private static int` | `TYPE_BOOLEAN`
    `private static int` | `TYPE_DATE`
    `private static int` | `TYPE_LONG`
    `private static int` | `TYPE_RATIONAL`
    `private static int` | `TYPE_SUBBLOCK` Data types.
    `private java.lang.String` | `userName`
    `private java.util.List<java.lang.Double>` | `xCoordinates`
    `private java.util.List<java.lang.Double>` | `yCoordinates`
    `private java.util.List<java.lang.Double>` | `zCoordinates`
    `private static int` | `ZEISS_ID` Tag identifying a Zeiss LSM file.
    `private double` | `zoom`

    - ### Fields inherited from class loci.formats.FormatReader

      `core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSION`

    - ### Fields inherited from class loci.formats.FormatHandler

      `COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixes`

    - ### Fields inherited from interface loci.formats.IFormatReader

      `CAN_GROUP, CANNOT_GROUP, MUST_GROUP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ZeissLSMReader()` Constructs a new Zeiss LSM reader.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close(boolean fileOnly)` Closes the currently open file.
    `private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String>` | `createKeys()`
    `int` | `fileGroupOption(java.lang.String id)` Returns an indication of whether the files in a multi-file dataset can be handled individually.
    `short[][]` | `get16BitLookupTable()` Gets the 16-bit color lookup table associated with the most recently opened image.
    `byte[][]` | `get8BitLookupTable()` Gets the 8-bit color lookup table associated with the most recently opened image.
    `private loci.common.RandomAccessInputStream` | `getCZTag(IFD ifd)`
    `private int` | `getEffectiveSeries(int currentSeries)`
    `private int` | `getExtraSeries(java.lang.String file)`
    `private java.lang.String` | `getLSMFileFromSeries(int currentSeries)`
    `private java.lang.String` | `getMDBFile(java.lang.String id)`
    `int` | `getOptimalTileHeight()` Returns the optimal sub-image height for use with openBytes.
    `int` | `getOptimalWidth()`
    `private int` | `getPosition(int currentSeries)`
    `java.lang.String[]` | `getSeriesUsedFiles(boolean noPixels)` Returns an array of filenames needed to open the current series.
    `protected void` | `initFile(java.lang.String id)` Initializes the given file (parsing header information, etc.).
    `protected void` | `initMetadata(int series)`
    `boolean` | `isSingleFile(java.lang.String id)` Returns true if the named file is expected to be the only file in the dataset.
    `boolean` | `isThisType(loci.common.RandomAccessInputStream stream)` Checks if the given stream is a valid stream for this file format.
    `byte[]` | `openBytes(int no, byte[] buf, int x, int y, int w, int h)` Obtains a sub-image of the specified image plane into a pre-allocated byte array.
    `private void` | `parseApplicationTags()`
    `private java.lang.String[]` | `parseMDB(java.lang.String mdbFile)` Parse a .mdb file and return a list of referenced .lsm files.
    `protected void` | `parseOverlays(int series, long data, java.lang.String suffix, MetadataStore store)` Parses overlay-related fields.
    `protected void` | `populateMetadataStore(ZeissLSMReader.SubBlock block, MetadataStore store, int series)`
    `private java.lang.Integer` | `readEntry()`
    `private java.lang.Object` | `readValue()`
    `void` | `setCoreIndex(int coreIndex)` Set the current resolution/series (ignores subresolutions).
    `void` | `setSeries(int series)` Activates the specified series.

    - ### Methods inherited from class loci.formats.FormatReader

      `addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMetaList, addMeta, addMetaList, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMetaList, close, coreIndexToSeries, flattenHashtables, getAcquisitionMode, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getArcType, getAvailableOptions, getBinning, getBitsPerPixel, getCompression, getContrastMethod, getCoreIndex, getCoreMetadataList, getCorrection, getCurrentCore, getCurrentFile, getDatasetStructureDescription, getDetectorType, getDimensionOrder, getDimensionOrder, getDomains, getEffectiveSizeC, getExperimentType, getFilamentType, getFillColor, getFillRule, getFilterType, getFontFamily, getFontStyle, getGlobalMeta, getGlobalMetadata, getIlluminationType, getImageCount, getImmersion, getIndex, getIndex, getLaserMedium, getLaserType, getMarker, getMedium, getMetadataStore, getMetadataStoreRoot, getMetadataValue, getMicrobeamManipulationType, getMicroscopeType, getModuloC, getModuloT, getModuloZ, getNamingConvention, getOptimalTileWidth, getPixelType, getPixelType, getPossibleDomains, getPulse, getRequiredDirectories, getResolution, getResolutionCount, getRGBChannelCount, getRotationTransform, getSeries, getSeriesCount, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getThumbSizeX, getThumbSizeY, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isThisType, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, readPlane, reopenFile, seriesToCoreIndex, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, updateMetadataLists`

    - ### Methods inherited from class loci.formats.FormatHandler

      `checkSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptions`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface loci.formats.IFormatHandler

      `getFormat, getNativeDataType, getSuffixes`

    - ### Methods inherited from interface loci.formats.IMetadataConfigurable

      `getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions`

    - ### Methods inherited from interface loci.formats.ICompressedTileReader

      `getTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytes`

- - ### Field Detail

    - #### MDB_SUFFIX

          public static final java.lang.String[] MDB_SUFFIX

    - #### ZEISS_ID

          private static final int ZEISS_ID

      Tag identifying a Zeiss LSM file.
      See Also:
        Constant Field Values

    - #### TYPE_SUBBLOCK

          private static final int TYPE_SUBBLOCK

      Data types.
      See Also:
        Constant Field Values

    - #### TYPE_ASCII

          private static final int TYPE_ASCII

      See Also:
        Constant Field Values

    - #### TYPE_LONG

          private static final int TYPE_LONG

      See Also:
        Constant Field Values

    - #### TYPE_RATIONAL

          private static final int TYPE_RATIONAL

      See Also:
        Constant Field Values

    - #### TYPE_DATE

          private static final int TYPE_DATE

      See Also:
        Constant Field Values

    - #### TYPE_BOOLEAN

          private static final int TYPE_BOOLEAN

      See Also:
        Constant Field Values

    - #### SUBBLOCK_RECORDING

          private static final int SUBBLOCK_RECORDING

      Subblock types.
      See Also:
        Constant Field Values

    - #### SUBBLOCK_LASER

          private static final int SUBBLOCK_LASER

      See Also:
        Constant Field Values

    - #### SUBBLOCK_TRACK

          private static final int SUBBLOCK_TRACK

      See Also:
        Constant Field Values

    - #### SUBBLOCK_DETECTION_CHANNEL

          private static final int SUBBLOCK_DETECTION_CHANNEL

      See Also:
        Constant Field Values

    - #### SUBBLOCK_ILLUMINATION_CHANNEL

          private static final int SUBBLOCK_ILLUMINATION_CHANNEL

      See Also:
        Constant Field Values

    - #### SUBBLOCK_BEAM_SPLITTER

          private static final int SUBBLOCK_BEAM_SPLITTER

      See Also:
        Constant Field Values

    - #### SUBBLOCK_DATA_CHANNEL

          private static final int SUBBLOCK_DATA_CHANNEL

      See Also:
        Constant Field Values

    - #### SUBBLOCK_TIMER

          private static final int SUBBLOCK_TIMER

      See Also:
        Constant Field Values

    - #### SUBBLOCK_MARKER

          private static final int SUBBLOCK_MARKER

      See Also:
        Constant Field Values

    - #### SUBBLOCK_END

          private static final int SUBBLOCK_END

      See Also:
        Constant Field Values

    - #### RECORDING_NAME

          private static final int RECORDING_NAME

      Data types.
      See Also:
        Constant Field Values

    - #### RECORDING_DESCRIPTION

          private static final int RECORDING_DESCRIPTION

      See Also:
        Constant Field Values

    - #### RECORDING_OBJECTIVE

          private static final int RECORDING_OBJECTIVE

      See Also:
        Constant Field Values

    - #### RECORDING_ZOOM

          private static final int RECORDING_ZOOM

      See Also:
        Constant Field Values

    - #### RECORDING_SAMPLE_0TIME

          private static final int RECORDING_SAMPLE_0TIME

      See Also:
        Constant Field Values

    - #### RECORDING_CAMERA_BINNING

          private static final int RECORDING_CAMERA_BINNING

      See Also:
        Constant Field Values

    - #### TRACK_ACQUIRE

          private static final int TRACK_ACQUIRE

      See Also:
        Constant Field Values

    - #### TRACK_TIME_BETWEEN_STACKS

          private static final int TRACK_TIME_BETWEEN_STACKS

      See Also:
        Constant Field Values

    - #### LASER_NAME

          private static final int LASER_NAME

      See Also:
        Constant Field Values

    - #### LASER_ACQUIRE

          private static final int LASER_ACQUIRE

      See Also:
        Constant Field Values

    - #### LASER_POWER

          private static final int LASER_POWER

      See Also:
        Constant Field Values

    - #### CHANNEL_DETECTOR_GAIN

          private static final int CHANNEL_DETECTOR_GAIN

      See Also:
        Constant Field Values

    - #### CHANNEL_PINHOLE_DIAMETER

          private static final int CHANNEL_PINHOLE_DIAMETER

      See Also:
        Constant Field Values

    - #### CHANNEL_AMPLIFIER_GAIN

          private static final int CHANNEL_AMPLIFIER_GAIN

      See Also:
        Constant Field Values

    - #### CHANNEL_FILTER_SET

          private static final int CHANNEL_FILTER_SET

      See Also:
        Constant Field Values

    - #### CHANNEL_FILTER

          private static final int CHANNEL_FILTER

      See Also:
        Constant Field Values

    - #### CHANNEL_ACQUIRE

          private static final int CHANNEL_ACQUIRE

      See Also:
        Constant Field Values

    - #### CHANNEL_NAME

          private static final int CHANNEL_NAME

      See Also:
        Constant Field Values

    - #### ILLUM_CHANNEL_NAME

          private static final int ILLUM_CHANNEL_NAME

      See Also:
        Constant Field Values

    - #### ILLUM_CHANNEL_ATTENUATION

          private static final int ILLUM_CHANNEL_ATTENUATION

      See Also:
        Constant Field Values

    - #### ILLUM_CHANNEL_WAVELENGTH

          private static final int ILLUM_CHANNEL_WAVELENGTH

      See Also:
        Constant Field Values

    - #### ILLUM_CHANNEL_ACQUIRE

          private static final int ILLUM_CHANNEL_ACQUIRE

      See Also:
        Constant Field Values

    - #### START_TIME

          private static final int START_TIME

      See Also:
        Constant Field Values

    - #### DATA_CHANNEL_NAME

          private static final int DATA_CHANNEL_NAME

      See Also:
        Constant Field Values

    - #### DATA_CHANNEL_ACQUIRE

          private static final int DATA_CHANNEL_ACQUIRE

      See Also:
        Constant Field Values

    - #### BEAM_SPLITTER_FILTER

          private static final int BEAM_SPLITTER_FILTER

      See Also:
        Constant Field Values

    - #### BEAM_SPLITTER_FILTER_SET

          private static final int BEAM_SPLITTER_FILTER_SET

      See Also:
        Constant Field Values

    - #### TEXT

          private static final int TEXT

      Drawing element types.
      See Also:
        Constant Field Values

    - #### LINE

          private static final int LINE

      See Also:
        Constant Field Values

    - #### SCALE_BAR

          private static final int SCALE_BAR

      See Also:
        Constant Field Values

    - #### OPEN_ARROW

          private static final int OPEN_ARROW

      See Also:
        Constant Field Values

    - #### CLOSED_ARROW

          private static final int CLOSED_ARROW

      See Also:
        Constant Field Values

    - #### RECTANGLE

          private static final int RECTANGLE

      See Also:
        Constant Field Values

    - #### ELLIPSE

          private static final int ELLIPSE

      See Also:
        Constant Field Values

    - #### CLOSED_POLYLINE

          private static final int CLOSED_POLYLINE

      See Also:
        Constant Field Values

    - #### OPEN_POLYLINE

          private static final int OPEN_POLYLINE

      See Also:
        Constant Field Values

    - #### CLOSED_BEZIER

          private static final int CLOSED_BEZIER

      See Also:
        Constant Field Values

    - #### OPEN_BEZIER

          private static final int OPEN_BEZIER

      See Also:
        Constant Field Values

    - #### CIRCLE

          private static final int CIRCLE

      See Also:
        Constant Field Values

    - #### PALETTE

          private static final int PALETTE

      See Also:
        Constant Field Values

    - #### POLYLINE_ARROW

          private static final int POLYLINE_ARROW

      See Also:
        Constant Field Values

    - #### BEZIER_WITH_ARROW

          private static final int BEZIER_WITH_ARROW

      See Also:
        Constant Field Values

    - #### ANGLE

          private static final int ANGLE

      See Also:
        Constant Field Values

    - #### CIRCLE_3POINT

          private static final int CIRCLE_3POINT

      See Also:
        Constant Field Values

    - #### METADATA_KEYS

          private static final com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> METADATA_KEYS

    - #### pixelSizeX

          private double pixelSizeX

    - #### pixelSizeY

          private double pixelSizeY

    - #### pixelSizeZ

          private double pixelSizeZ

    - #### lut

          private byte[][][] lut

    - #### timestamps

          private java.util.List<java.lang.Double> timestamps

    - #### lsmFilenames

          private java.lang.String[] lsmFilenames

    - #### ifdsList

          private java.util.List<IFDList> ifdsList

    - #### tiffParser

          private transient TiffParser tiffParser

    - #### nextLaser

          private int nextLaser

    - #### nextDetector

          private int nextDetector

    - #### nextFilter

          private int nextFilter

    - #### nextDichroicChannel

          private int nextDichroicChannel

    - #### nextDichroic

          private int nextDichroic

    - #### nextIllumChannel

          private int nextIllumChannel

    - #### nextDetectChannel

          private int nextDetectChannel

    - #### splitPlanes

          private boolean splitPlanes

    - #### zoom

          private double zoom

    - #### imageNames

          private java.util.List<java.lang.String> imageNames

    - #### binning

          private java.lang.String binning

    - #### xCoordinates

          private java.util.List<java.lang.Double> xCoordinates

    - #### yCoordinates

          private java.util.List<java.lang.Double> yCoordinates

    - #### zCoordinates

          private java.util.List<java.lang.Double> zCoordinates

    - #### dimensionM

          private int dimensionM

    - #### dimensionP

          private int dimensionP

    - #### rotations

          private int rotations

    - #### phases

          private int phases

    - #### illuminations

          private int illuminations

    - #### seriesCounts

          private java.util.Map<java.lang.String,java.lang.Integer> seriesCounts

    - #### userName

          private java.lang.String userName

    - #### channelNames

          private java.lang.String[][] channelNames

    - #### originX

          private double originX

    - #### originY

          private double originY

    - #### originZ

          private double originZ

    - #### totalROIs

          private int totalROIs

    - #### prevPlane

          private int prevPlane

    - #### prevChannel

          private int prevChannel

    - #### prevBuf

          private byte[] prevBuf

    - #### prevRegion

          private loci.common.Region prevRegion

    - #### acquiredDate

          private java.util.Map<java.lang.Integer,java.lang.String> acquiredDate

    - #### channelColor

          private ome.xml.model.primitives.Color[] channelColor

    - #### isSIM

          private transient boolean isSIM

  - ### Constructor Detail

    - #### ZeissLSMReader

          public ZeissLSMReader()

      Constructs a new Zeiss LSM reader.

  - ### Method Detail

    - #### getOptimalWidth

          public int getOptimalWidth()

    - #### getOptimalTileHeight

          public int getOptimalTileHeight()

      Description copied from interface: `IFormatReader`
      Returns the optimal sub-image height for use with openBytes.
      Specified by:
        `getOptimalTileHeight` in interface `IFormatReader`
      Overrides:
        `getOptimalTileHeight` in class `FormatReader`

    - #### isSingleFile

          public boolean isSingleFile(java.lang.String id)
                               throws FormatException,
                                      java.io.IOException

      Description copied from interface: `IFormatReader`
      Returns true if the named file is expected to be the only file in the dataset. For single-file formats, always returns true.
      Specified by:
        `isSingleFile` in interface `IFormatReader`
      Overrides:
        `isSingleFile` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### close

          public void close(boolean fileOnly)
                     throws java.io.IOException

      Description copied from interface: `IFormatReader`
      Closes the currently open file. If the flag is set, this is all that happens; if unset, it is equivalent to calling `Closeable.close()`.
      Specified by:
        `close` in interface `IFormatReader`
      Overrides:
        `close` in class `FormatReader`
      Throws:
        `java.io.IOException`

    - #### isThisType

          public boolean isThisType(loci.common.RandomAccessInputStream stream)
                             throws java.io.IOException

      Description copied from interface: `IFormatReader`
      Checks if the given stream is a valid stream for this file format. The number of bytes read is format-dependent.
      Specified by:
        `isThisType` in interface `IFormatReader`
      Overrides:
        `isThisType` in class `FormatReader`
      Parameters:
        `stream` - A RandomAccessInputStream representing the file to check. The first byte in the stream is assumed to be the first byte in the file.
      Returns:
        true if the file represented by the stream can be read by this reader; false otherwise.
      Throws:
        `java.io.IOException`

    - #### fileGroupOption

          public int fileGroupOption(java.lang.String id)
                              throws FormatException,
                                     java.io.IOException

      Description copied from interface: `IFormatReader`
      Returns an indication of whether the files in a multi-file dataset can be handled individually. This method is only useful for formats and datasets which contain multiple files.
      Specified by:
        `fileGroupOption` in interface `IFormatReader`
      Overrides:
        `fileGroupOption` in class `FormatReader`
      Parameters:
        `id` - a file in the multi-file dataset
      Returns:
        an int indicating that we cannot, must, or might group the files. A return value of `FormatTools.MUST_GROUP` indicates that the files cannot be handled separately; the reader will always detect and read all files in the dataset. `FormatTools.CAN_GROUP` indicates that the files may be handled separately, but file grouping must then be disabled via `IFormatReader.setGroupFiles(boolean)`. `FormatTools.CANNOT_GROUP` indicates that the files must be handled separately; the reader will not attempt to read all files in the dataset (this is rare).
      Throws:
        `FormatException`
        `java.io.IOException`
      See Also:
        `FormatTools.MUST_GROUP`, `FormatTools.CAN_GROUP`, `FormatTools.CANNOT_GROUP`

    - #### getSeriesUsedFiles

          public java.lang.String[] getSeriesUsedFiles(boolean noPixels)

      Description copied from interface: `IFormatReader`
      Returns an array of filenames needed to open the current series. If the 'noPixels' flag is set, then only files that do not contain pixel data will be returned. The first element in the array is expected to be the path passed to `IFormatHandler.setId(String)`, if appropriate based upon 'noPixels'. The remaining elements are expected to be in a consistent order; if a directory listing is necessary to build the list then it should be sorted first.
      Specified by:
        `getSeriesUsedFiles` in interface `IFormatReader`
      Overrides:
        `getSeriesUsedFiles` in class `FormatReader`

    - #### get8BitLookupTable

          public byte[][] get8BitLookupTable()
                                      throws FormatException,
                                             java.io.IOException

      Description copied from interface: `IFormatReader`
      Gets the 8-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or if `IFormatReader.isIndexed()` returns false, then this may return null. Also, if `IFormatReader.getPixelType()` returns anything other than `FormatTools.INT8` or `FormatTools.UINT8`, this method will return null.
      Specified by:
        `get8BitLookupTable` in interface `IFormatReader`
      Overrides:
        `get8BitLookupTable` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### get16BitLookupTable

          public short[][] get16BitLookupTable()
                                        throws FormatException,
                                               java.io.IOException

      Description copied from interface: `IFormatReader`
      Gets the 16-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or if `IFormatReader.isIndexed()` returns false, then this may return null. Also, if `IFormatReader.getPixelType()` returns anything other than `FormatTools.INT16` or `FormatTools.UINT16`, this method will return null.
      Specified by:
        `get16BitLookupTable` in interface `IFormatReader`
      Overrides:
        `get16BitLookupTable` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### setCoreIndex

          public void setCoreIndex(int coreIndex)

      Description copied from interface: `IFormatReader`
      Set the current resolution/series (ignores subresolutions). Equivalent to setSeries, but with flattened resolutions always set to false.
      Specified by:
        `setCoreIndex` in interface `IFormatReader`
      Overrides:
        `setCoreIndex` in class `FormatReader`

    - #### setSeries

          public void setSeries(int series)

      Description copied from interface: `IFormatReader`
      Activates the specified series. This also resets the resolution to 0.
      Specified by:
        `setSeries` in interface `IFormatReader`
      Overrides:
        `setSeries` in class `FormatReader`

    - #### openBytes

          public byte[] openBytes(int no,
                                  byte[] buf,
                                  int x,
                                  int y,
                                  int w,
                                  int h)
                           throws FormatException,
                                  java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains a sub-image of the specified image plane into a pre-allocated byte array.
      Specified by:
        `openBytes` in interface `IFormatReader`
      Specified by:
        `openBytes` in class `FormatReader`
      Parameters:
        `no` - the plane index within the current series.
        `buf` - a pre-allocated buffer.
        `x` - X coordinate of the upper-left corner of the sub-image
        `y` - Y coordinate of the upper-left corner of the sub-image
        `w` - width of the sub-image
        `h` - height of the sub-image
      Returns:
        the pre-allocated buffer `buf` for convenience.
      Throws:
        `FormatException` - if there was a problem parsing the metadata of the file.
        `java.io.IOException` - if there was a problem reading the file.
      See Also:
        `IFormatReader.openBytes(int, byte[], int, int, int, int)`

    - #### initFile

          protected void initFile(java.lang.String id)
                           throws FormatException,
                                  java.io.IOException

      Description copied from class: `FormatReader`
      Initializes the given file (parsing header information, etc.). Most subclasses should override this method to perform initialization operations such as parsing metadata.
      Overrides:
        `initFile` in class `FormatReader`
      Throws:
        `FormatException` - if a parsing error occurs processing the file.
        `java.io.IOException` - if an I/O error occurs processing the file

    - #### getMDBFile

          private java.lang.String getMDBFile(java.lang.String id)
                                       throws FormatException,
                                              java.io.IOException

      Throws:
        `FormatException`
        `java.io.IOException`

    - #### getEffectiveSeries

          private int getEffectiveSeries(int currentSeries)

    - #### getLSMFileFromSeries

          private java.lang.String getLSMFileFromSeries(int currentSeries)

    - #### getExtraSeries

          private int getExtraSeries(java.lang.String file)
                              throws FormatException,
                                     java.io.IOException

      Throws:
        `FormatException`
        `java.io.IOException`

    - #### getPosition

          private int getPosition(int currentSeries)

    - #### getCZTag

          private loci.common.RandomAccessInputStream getCZTag(IFD ifd)
                                                        throws FormatException,
                                                               java.io.IOException

      Throws:
        `FormatException`
        `java.io.IOException`

    - #### initMetadata

          protected void initMetadata(int series)
                               throws FormatException,
                                      java.io.IOException

      Throws:
        `FormatException`
        `java.io.IOException`

    - #### populateMetadataStore

          protected void populateMetadataStore(ZeissLSMReader.SubBlock block,
                                               MetadataStore store,
                                               int series)
                                        throws FormatException

      Throws:
        `FormatException`

    - #### parseOverlays

          protected void parseOverlays(int series,
                                       long data,
                                       java.lang.String suffix,
                                       MetadataStore store)
                                throws java.io.IOException

      Parses overlay-related fields.
      Throws:
        `java.io.IOException`

    - #### parseMDB

          private java.lang.String[] parseMDB(java.lang.String mdbFile)
                                       throws FormatException,
                                              java.io.IOException

      Parse a .mdb file and return a list of referenced .lsm files.
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### createKeys

          private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> createKeys()

    - #### readEntry

          private java.lang.Integer readEntry()
                                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### readValue

          private java.lang.Object readValue()
                                      throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### parseApplicationTags

          private void parseApplicationTags()
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

Copyright © 2026 Open Microscopy Environment