loci.formats.in

## Class OpenlabReader

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

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

      public class OpenlabReader
      extends FormatReader

  OpenlabReader is the file format reader for Openlab LIFF files.
  Author:
    Melissa Linkert melissa at glencoesoftware.com, Eric Kjellman egkjellman at wisc.edu, Curtis Rueden ctrueden at wisc.edu, Jim Paris jim at jtan.com

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `OpenlabReader.PlaneInfo` Helper class for storing plane info.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static int` | `CALIBRATION`
    `private static int` | `DEEP_GREY_10`
    `private static int` | `DEEP_GREY_11`
    `private static int` | `DEEP_GREY_12`
    `private static int` | `DEEP_GREY_13`
    `private static int` | `DEEP_GREY_14`
    `private static int` | `DEEP_GREY_15`
    `private static int` | `DEEP_GREY_16`
    `private static int` | `DEEP_GREY_9`
    `private java.lang.String` | `detectorOffset`
    `private java.lang.String` | `fmt`
    `private java.lang.String` | `gain`
    `private static int` | `IMAGE_TYPE_1` Tag types.
    `private static int` | `IMAGE_TYPE_2`
    `private int` | `lastPlane`
    `static long` | `LIFF_MAGIC_BYTES`
    `private java.util.List<byte[][]>` | `luts`
    `private static int` | `MAC_1_BIT` Image types.
    `private static int` | `MAC_16_BIT_COLOR`
    `private static int` | `MAC_16_COLORS`
    `private static int` | `MAC_16_GREYS`
    `private static int` | `MAC_24_BIT_COLOR`
    `private static int` | `MAC_256_COLORS`
    `private static int` | `MAC_256_GREYS`
    `private static int` | `MAC_4_GREYS`
    `private long` | `nextTag`
    `private PictReader` | `pict` Helper reader to read PICT data.
    `private int[][]` | `planeOffsets`
    `private OpenlabReader.PlaneInfo[]` | `planes`
    `private boolean` | `specialPlateNames`
    `private int` | `subTag`
    `private int` | `tag`
    `private static int` | `USER`
    `private int` | `version` LIFF version (should be 2 or 5).
    `private float` | `xcal`
    `private java.lang.String` | `xPos`
    `private float` | `ycal`
    `private java.lang.String` | `yPos`
    `private java.lang.String` | `zPos`

    - ### 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
    `OpenlabReader()` Constructs a new OpenlabReader.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close(boolean fileOnly)` Closes the currently open file.
    `private void` | `findNextBlock()`
    `byte[][]` | `get8BitLookupTable()` Gets the 8-bit color lookup table associated with the most recently opened image.
    `int` | `getOptimalTileHeight()` Returns the optimal sub-image height for use with openBytes.
    `private OpenlabReader.PlaneInfo` | `getPlane(int[] zct)`
    `protected void` | `initFile(java.lang.String id)` Initializes the given file (parsing header information, etc.).
    `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` | `parseImageNames(int s)`
    `private java.lang.String` | `readCString()`
    `private void` | `readTagHeader()` Read the next tag.
    `private void` | `readVariable()`

    - ### 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, fileGroupOption, flattenHashtables, get16BitLookupTable, 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, 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, isSingleFile, isThisType, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, readPlane, reopenFile, seriesToCoreIndex, setCoreIndex, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, setSeries, 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

    - #### LIFF_MAGIC_BYTES

          public static final long LIFF_MAGIC_BYTES

      See Also:
        Constant Field Values

    - #### MAC_1_BIT

          private static final int MAC_1_BIT

      Image types.
      See Also:
        Constant Field Values

    - #### MAC_4_GREYS

          private static final int MAC_4_GREYS

      See Also:
        Constant Field Values

    - #### MAC_16_GREYS

          private static final int MAC_16_GREYS

      See Also:
        Constant Field Values

    - #### MAC_16_COLORS

          private static final int MAC_16_COLORS

      See Also:
        Constant Field Values

    - #### MAC_256_GREYS

          private static final int MAC_256_GREYS

      See Also:
        Constant Field Values

    - #### MAC_256_COLORS

          private static final int MAC_256_COLORS

      See Also:
        Constant Field Values

    - #### MAC_16_BIT_COLOR

          private static final int MAC_16_BIT_COLOR

      See Also:
        Constant Field Values

    - #### MAC_24_BIT_COLOR

          private static final int MAC_24_BIT_COLOR

      See Also:
        Constant Field Values

    - #### DEEP_GREY_9

          private static final int DEEP_GREY_9

      See Also:
        Constant Field Values

    - #### DEEP_GREY_10

          private static final int DEEP_GREY_10

      See Also:
        Constant Field Values

    - #### DEEP_GREY_11

          private static final int DEEP_GREY_11

      See Also:
        Constant Field Values

    - #### DEEP_GREY_12

          private static final int DEEP_GREY_12

      See Also:
        Constant Field Values

    - #### DEEP_GREY_13

          private static final int DEEP_GREY_13

      See Also:
        Constant Field Values

    - #### DEEP_GREY_14

          private static final int DEEP_GREY_14

      See Also:
        Constant Field Values

    - #### DEEP_GREY_15

          private static final int DEEP_GREY_15

      See Also:
        Constant Field Values

    - #### DEEP_GREY_16

          private static final int DEEP_GREY_16

      See Also:
        Constant Field Values

    - #### IMAGE_TYPE_1

          private static final int IMAGE_TYPE_1

      Tag types.
      See Also:
        Constant Field Values

    - #### IMAGE_TYPE_2

          private static final int IMAGE_TYPE_2

      See Also:
        Constant Field Values

    - #### CALIBRATION

          private static final int CALIBRATION

      See Also:
        Constant Field Values

    - #### USER

          private static final int USER

      See Also:
        Constant Field Values

    - #### pict

          private PictReader pict

      Helper reader to read PICT data.

    - #### version

          private int version

      LIFF version (should be 2 or 5).

    - #### planes

          private OpenlabReader.PlaneInfo[] planes

    - #### xcal

          private float xcal

    - #### ycal

          private float ycal

    - #### nextTag

          private long nextTag

    - #### tag

          private int tag

    - #### subTag

          private int subTag

    - #### fmt

          private java.lang.String fmt

    - #### planeOffsets

          private int[][] planeOffsets

    - #### luts

          private java.util.List<byte[][]> luts

    - #### lastPlane

          private int lastPlane

    - #### gain

          private java.lang.String gain

    - #### detectorOffset

          private java.lang.String detectorOffset

    - #### xPos

          private java.lang.String xPos

    - #### yPos

          private java.lang.String yPos

    - #### zPos

          private java.lang.String zPos

    - #### specialPlateNames

          private boolean specialPlateNames

  - ### Constructor Detail

    - #### OpenlabReader

          public OpenlabReader()

      Constructs a new OpenlabReader.

  - ### Method Detail

    - #### 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`

    - #### 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`

    - #### get8BitLookupTable

          public byte[][] get8BitLookupTable()

      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`

    - #### 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)`

    - #### 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`

    - #### 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

    - #### readTagHeader

          private void readTagHeader()
                              throws java.io.IOException

      Read the next tag.
      Throws:
        `java.io.IOException`

    - #### readVariable

          private void readVariable()
                             throws FormatException,
                                    java.io.IOException

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

    - #### parseImageNames

          private void parseImageNames(int s)

    - #### getPlane

          private OpenlabReader.PlaneInfo getPlane(int[] zct)

    - #### findNextBlock

          private void findNextBlock()
                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### readCString

          private java.lang.String readCString()
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

Copyright © 2026 Open Microscopy Environment