loci.formats.in

## Class SlidebookReader

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

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

      public class SlidebookReader
      extends FormatReader

  SlidebookReader is the file format reader for 3I Slidebook files. The strategies employed by this reader are highly suboptimal, as we have very little information on the Slidebook format.
  Author:
    Melissa Linkert melissa at glencoesoftware.com

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private boolean` | `adjust`
    `private java.util.Map<java.lang.Integer,java.lang.String>` | `imageDescriptions`
    `private boolean` | `isSpool`
    `private java.util.Map<java.lang.Integer,java.lang.Integer>` | `metadataInPlanes`
    `private java.util.List<java.lang.Long>` | `metadataOffsets`
    `private java.util.List<java.lang.Double>` | `ndFilters`
    `private java.util.List<java.lang.Long>` | `pixelLengths`
    `private java.util.List<java.lang.Long>` | `pixelOffsets`
    `private long[][]` | `planeOffset`
    `static int` | `SLD_MAGIC_BYTES_1_0`
    `static int` | `SLD_MAGIC_BYTES_1_1`
    `static int` | `SLD_MAGIC_BYTES_1_2`
    `static int` | `SLD_MAGIC_BYTES_2_0`
    `static int` | `SLD_MAGIC_BYTES_2_1`
    `static long` | `SLD_MAGIC_BYTES_3`

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close(boolean fileOnly)` Closes the currently open file.
    `protected void` | `initFile(java.lang.String id)` Initializes the given file (parsing header information, etc.).
    `private boolean` | `isGreaterThanEpsilon(double v)` Returns true if the given double is greater than epsilon (defined here as 0.000001), i.e.
    `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 java.lang.String` | `readCString()`
    `private boolean` | `withinPixels(long offset)`

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

    - #### SLD_MAGIC_BYTES_1_0

          public static final int SLD_MAGIC_BYTES_1_0

      See Also:
        Constant Field Values

    - #### SLD_MAGIC_BYTES_1_1

          public static final int SLD_MAGIC_BYTES_1_1

      See Also:
        Constant Field Values

    - #### SLD_MAGIC_BYTES_1_2

          public static final int SLD_MAGIC_BYTES_1_2

      See Also:
        Constant Field Values

    - #### SLD_MAGIC_BYTES_2_0

          public static final int SLD_MAGIC_BYTES_2_0

      See Also:
        Constant Field Values

    - #### SLD_MAGIC_BYTES_2_1

          public static final int SLD_MAGIC_BYTES_2_1

      See Also:
        Constant Field Values

    - #### SLD_MAGIC_BYTES_3

          public static final long SLD_MAGIC_BYTES_3

      See Also:
        Constant Field Values

    - #### metadataOffsets

          private java.util.List<java.lang.Long> metadataOffsets

    - #### pixelOffsets

          private java.util.List<java.lang.Long> pixelOffsets

    - #### pixelLengths

          private java.util.List<java.lang.Long> pixelLengths

    - #### ndFilters

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

    - #### imageDescriptions

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

    - #### planeOffset

          private long[][] planeOffset

    - #### adjust

          private boolean adjust

    - #### isSpool

          private boolean isSpool

    - #### metadataInPlanes

          private java.util.Map<java.lang.Integer,java.lang.Integer> metadataInPlanes

  - ### Constructor Detail

    - #### SlidebookReader

          public SlidebookReader()

      Constructs a new Slidebook reader.

  - ### Method Detail

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

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

    - #### withinPixels

          private boolean withinPixels(long offset)

    - #### isGreaterThanEpsilon

          private boolean isGreaterThanEpsilon(double v)

      Returns true if the given double is greater than epsilon (defined here as 0.000001), i.e. positive and not a very, very small number. Returns false if the given double is negative or less than epsilon. See also: http://en.wikipedia.org/wiki/(%CE%B5,_%CE%B4)-definition_of_limit

    - #### readCString

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

      Throws:
        `java.io.IOException`

Copyright © 2026 Open Microscopy Environment