loci.formats.in

## Class OBFReader

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

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

      public class OBFReader
      extends FormatReader

  OBFReader is the file format reader for Imspector OBF files.
  Author:
    Bjoern Thiel bjoern.thiel at mpibpc.mpg.de
  See Also:
    The OBF File Format

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `OBFReader.Stack`
    `private class` | `OBFReader.State`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static java.lang.String` | `FILE_MAGIC_STRING`
    `private int` | `file_version`
    `private static boolean` | `LITTLE_ENDIAN`
    `private static short` | `MAGIC_NUMBER`
    `private static int` | `MAXIMAL_NUMBER_OF_DIMENSIONS`
    `private OMEXMLMetadata` | `ome_meta_data`
    `private byte[]` | `skipBuffer`
    `private static java.lang.String` | `STACK_MAGIC_STRING`
    `private java.util.List<OBFReader.Stack>` | `stacks`
    `private OBFReader.State` | `state`

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close(boolean fileOnly)` Closes the currently open file.
    `private int` | `getBitsPerPixel(int type)`
    `private java.util.ArrayList<org.w3c.dom.Element>` | `getChildNodes(org.w3c.dom.Element root)`
    `private boolean` | `getCompression(int compression)`
    `private int` | `getFileVersion(loci.common.RandomAccessInputStream stream)`
    `private long` | `getLength(long length)`
    `private int` | `getPixelType(int type)`
    `protected void` | `initFile(java.lang.String id)` Initializes the given file (parsing header information, etc.).
    `private long` | `initStack(long current)`
    `private boolean` | `isFLIMLabel(java.lang.String label)`
    `boolean` | `isThisType(loci.common.RandomAccessInputStream stream)` Checks if the given stream is a valid stream for this file format.
    `byte[]` | `openBytes(int no, byte[] buffer, 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` | `readFlimFrame(OBFReader.Stack stack, int no, byte[] buffer, int x, int y, int w, int h)`
    `private void` | `readFromStack(OBFReader.Stack stack, byte[] buffer, int bufferOffset, int bytes)`
    `private void` | `readFromStackRaw(OBFReader.Stack stack, byte[] buffer, int bufferOffset, int bytes)`
    `private void` | `readStackFrame(OBFReader.Stack stack, long sampleOffset, byte[] buffer, int bufferOffset, int w, int h)`
    `private java.lang.String` | `readString()`
    `private long` | `remainingBytesInChunk(OBFReader.Stack stack)`
    `private void` | `seekToFrameStart(OBFReader.Stack stack, long sampleOffset)`
    `private void` | `skipBytes(OBFReader.Stack stack, long byteCount)`
    `private void` | `switchChunk(OBFReader.Stack stack, int chunkIndex)`

    - ### 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, get8BitLookupTable, 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, getOptimalTileHeight, 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

    - #### LITTLE_ENDIAN

          private static final boolean LITTLE_ENDIAN

      See Also:
        Constant Field Values

    - #### FILE_MAGIC_STRING

          private static final java.lang.String FILE_MAGIC_STRING

      See Also:
        Constant Field Values

    - #### STACK_MAGIC_STRING

          private static final java.lang.String STACK_MAGIC_STRING

      See Also:
        Constant Field Values

    - #### MAGIC_NUMBER

          private static final short MAGIC_NUMBER

      See Also:
        Constant Field Values

    - #### MAXIMAL_NUMBER_OF_DIMENSIONS

          private static final int MAXIMAL_NUMBER_OF_DIMENSIONS

      See Also:
        Constant Field Values

    - #### file_version

          private int file_version

    - #### ome_meta_data

          private transient OMEXMLMetadata ome_meta_data

    - #### state

          private OBFReader.State state

    - #### skipBuffer

          private byte[] skipBuffer

    - #### stacks

          private java.util.List<OBFReader.Stack> stacks

  - ### Constructor Detail

    - #### OBFReader

          public OBFReader()

  - ### Method Detail

    - #### getFileVersion

          private int getFileVersion(loci.common.RandomAccessInputStream stream)
                              throws java.io.IOException

      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`

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

    - #### initStack

          private long initStack(long current)
                          throws FormatException,
                                 java.io.IOException

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

    - #### isFLIMLabel

          private boolean isFLIMLabel(java.lang.String label)

    - #### getPixelType

          private int getPixelType(int type)
                            throws FormatException

      Throws:
        `FormatException`

    - #### getBitsPerPixel

          private int getBitsPerPixel(int type)
                               throws FormatException

      Throws:
        `FormatException`

    - #### getLength

          private long getLength(long length)
                          throws FormatException

      Throws:
        `FormatException`

    - #### getCompression

          private boolean getCompression(int compression)
                                  throws FormatException

      Throws:
        `FormatException`

    - #### readString

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

      Throws:
        `java.io.IOException`

    - #### remainingBytesInChunk

          private long remainingBytesInChunk(OBFReader.Stack stack)
                                      throws java.io.IOException,
                                             FormatException

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

    - #### readFromStackRaw

          private void readFromStackRaw(OBFReader.Stack stack,
                                        byte[] buffer,
                                        int bufferOffset,
                                        int bytes)
                                 throws java.io.IOException,
                                        FormatException

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

    - #### readFromStack

          private void readFromStack(OBFReader.Stack stack,
                                     byte[] buffer,
                                     int bufferOffset,
                                     int bytes)
                              throws java.io.IOException,
                                     FormatException

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

    - #### switchChunk

          private void switchChunk(OBFReader.Stack stack,
                                   int chunkIndex)
                            throws FormatException

      Throws:
        `FormatException`

    - #### seekToFrameStart

          private void seekToFrameStart(OBFReader.Stack stack,
                                        long sampleOffset)
                                 throws java.io.IOException,
                                        FormatException

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

    - #### skipBytes

          private void skipBytes(OBFReader.Stack stack,
                                 long byteCount)
                          throws java.io.IOException,
                                 FormatException

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

    - #### readStackFrame

          private void readStackFrame(OBFReader.Stack stack,
                                      long sampleOffset,
                                      byte[] buffer,
                                      int bufferOffset,
                                      int w,
                                      int h)
                               throws java.io.IOException,
                                      FormatException

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

    - #### readFlimFrame

          private void readFlimFrame(OBFReader.Stack stack,
                                     int no,
                                     byte[] buffer,
                                     int x,
                                     int y,
                                     int w,
                                     int h)
                              throws java.io.IOException,
                                     FormatException

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

    - #### openBytes

          public byte[] openBytes(int no,
                                  byte[] buffer,
                                  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.
        `buffer` - 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.

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

    - #### getChildNodes

          private java.util.ArrayList<org.w3c.dom.Element> getChildNodes(org.w3c.dom.Element root)

Copyright © 2026 Open Microscopy Environment