public class LeicaReader extends FormatReader
| Modifier and Type | Class and Description |
|---|---|
(package private) class |
LeicaReader.Detector |
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.lang.Integer> |
activeChannelIndices |
private static java.lang.Integer |
CHANDESC |
private ome.xml.model.primitives.Color[][] |
channelColor |
private java.util.List[] |
channelNames |
private boolean[][] |
cutInPopulated |
private boolean[][] |
cutOutPopulated |
private static java.lang.String |
DATE_FORMAT
Format for dates.
|
private java.util.List<LeicaReader.Detector> |
detectors |
private static java.lang.Integer |
DIMDESCR |
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
DIMENSION_NAMES |
private java.util.List[] |
emWaves |
private static java.lang.Integer |
EXPERIMENT |
private double[] |
exposureTime |
private java.util.List[] |
exWaves |
private int |
fileLength
Length of each file name.
|
protected java.util.List<java.lang.String>[] |
files
Array of image file names.
|
private boolean[][] |
filterRefPopulated |
private static java.lang.Integer |
FILTERSET |
protected IFDList |
headerIFDs
Array of IFD-like structures containing metadata.
|
protected IFDList |
ifds |
private static java.lang.Integer |
IMAGES |
private int |
lastPlane |
static java.lang.String[] |
LEI_SUFFIX |
private static int |
LEICA_MAGIC_TAG
All Leica TIFFs have this tag.
|
private java.lang.String |
leiFilename
Name of current LEI file
|
private static org.slf4j.Logger |
LOGGER |
private static java.lang.Integer |
LUTDESC |
private int |
nameLength |
private int |
nextChannel |
private int |
nextDetector |
private int |
numSeries
Number of series in the file.
|
private double[][] |
physicalSizes |
private double[] |
pinhole |
private static java.lang.Integer |
SCANNERSET |
private static java.lang.Integer |
SEQ_FILTERSET |
private static int |
SEQ_FILTERSET_END |
private static java.lang.Integer |
SEQ_SCANNERSET |
private static int |
SEQ_SCANNERSET_END |
private boolean |
sequential |
private static java.lang.Integer |
SEQUENTIALSET |
private static java.lang.Integer |
SERIES
IFD tags.
|
private java.util.List<java.lang.String> |
seriesDescriptions |
private java.util.List<java.lang.String> |
seriesNames |
protected MinimalTiffReader |
tiff
Helper readers.
|
private int[] |
tileHeight |
private int[] |
tileWidth |
private static java.lang.Integer |
TIMEINFO |
private java.lang.String[][] |
timestamps |
private boolean[] |
valid |
core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSIONCOMPRESSION_SUFFIXES, currentId, format, metadataOptions, suffixesCAN_GROUP, CANNOT_GROUP, MUST_GROUP| Constructor and Description |
|---|
LeicaReader()
Constructs a new Leica reader.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close(boolean fileOnly)
Closes the currently open file.
|
int |
fileGroupOption(java.lang.String id)
Returns an indication of whether the files in a multi-file dataset can
be handled individually.
|
private java.lang.String |
findLEIFile(java.lang.String baseFile)
Find the .lei file that belongs to the same dataset as the given file.
|
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.
|
int |
getOptimalTileHeight()
Returns the optimal sub-image height for use with openBytes.
|
int |
getOptimalTileWidth()
Returns the optimal sub-image width for use with openBytes.
|
java.lang.String[] |
getSeriesUsedFiles(boolean noPixels)
Returns an array of filenames needed to open the current series.
|
private java.lang.String |
getString(boolean doubleLength) |
private java.lang.String |
getString(int len) |
private java.lang.String[] |
getTIFFList() |
protected void |
initFile(java.lang.String id)
Initializes the given file (parsing header information, etc.).
|
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.
|
boolean |
isThisType(java.lang.String name,
boolean open)
Checks if a file matches the type of this format reader.
|
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
makeDimensionTable() |
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 |
parseChannelTag() |
private void |
parseDimensionTag(int seriesIndex) |
private void |
parseExperimentTag() |
private void |
parseFilenames(int seriesIndex) |
private void |
parseImageTag(int seriesIndex) |
private void |
parseInstrumentData(MetadataStore store,
int blockNum) |
private void |
parseLUT(int seriesIndex) |
private void |
parseSeriesTag() |
private void |
parseTimeTag(int seriesIndex) |
private boolean |
usedFile(java.lang.String s) |
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, getPixelType, getPixelType, getPossibleDomains, getPulse, getRequiredDirectories, getResolution, getResolutionCount, getRGBChannelCount, getRotationTransform, getSeries, getSeriesCount, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getThumbSizeX, getThumbSizeY, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, 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, updateMetadataListscheckSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptionsclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFormat, getNativeDataType, getSuffixesgetMetadataOptions, getSupportedMetadataLevels, setMetadataOptionsprivate static final org.slf4j.Logger LOGGER
public static final java.lang.String[] LEI_SUFFIX
private static final int LEICA_MAGIC_TAG
private static final java.lang.String DATE_FORMAT
private static final java.lang.Integer SERIES
private static final java.lang.Integer IMAGES
private static final java.lang.Integer DIMDESCR
private static final java.lang.Integer FILTERSET
private static final java.lang.Integer TIMEINFO
private static final java.lang.Integer SCANNERSET
private static final java.lang.Integer EXPERIMENT
private static final java.lang.Integer LUTDESC
private static final java.lang.Integer CHANDESC
private static final java.lang.Integer SEQUENTIALSET
private static final java.lang.Integer SEQ_SCANNERSET
private static final java.lang.Integer SEQ_FILTERSET
private static final int SEQ_SCANNERSET_END
private static final int SEQ_FILTERSET_END
private static final com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> DIMENSION_NAMES
protected IFDList ifds
protected IFDList headerIFDs
protected MinimalTiffReader tiff
protected java.util.List<java.lang.String>[] files
private int numSeries
private java.lang.String leiFilename
private int fileLength
private boolean[] valid
private java.lang.String[][] timestamps
private java.util.List<java.lang.String> seriesNames
private java.util.List<java.lang.String> seriesDescriptions
private int lastPlane
private int nameLength
private double[][] physicalSizes
private double[] pinhole
private double[] exposureTime
private int nextDetector
private int nextChannel
private java.util.List<java.lang.Integer> activeChannelIndices
private boolean sequential
private java.util.List[] channelNames
private java.util.List[] emWaves
private java.util.List[] exWaves
private boolean[][] cutInPopulated
private boolean[][] cutOutPopulated
private boolean[][] filterRefPopulated
private java.util.List<LeicaReader.Detector> detectors
private int[] tileWidth
private int[] tileHeight
private ome.xml.model.primitives.Color[][] channelColor
public boolean isSingleFile(java.lang.String id)
throws FormatException,
java.io.IOException
IFormatReaderisSingleFile in interface IFormatReaderisSingleFile in class FormatReaderFormatExceptionjava.io.IOExceptionpublic boolean isThisType(java.lang.String name,
boolean open)
FormatReaderFormatReader.isThisType(RandomAccessInputStream).isThisType in interface IFormatReaderisThisType in class FormatReaderopen - If true, and the file extension is insufficient to determine
the file type, the (existing) file is opened for further analysis.public boolean isThisType(loci.common.RandomAccessInputStream stream)
throws java.io.IOException
IFormatReaderisThisType in interface IFormatReaderisThisType in class FormatReaderstream - A RandomAccessInputStream representing the file to check.
The first byte in the stream is assumed to be the first byte
in the file.java.io.IOExceptionpublic byte[][] get8BitLookupTable()
throws FormatException,
java.io.IOException
IFormatReaderIFormatReader.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.get8BitLookupTable in interface IFormatReaderget8BitLookupTable in class FormatReaderFormatExceptionjava.io.IOExceptionpublic short[][] get16BitLookupTable()
throws FormatException,
java.io.IOException
IFormatReaderIFormatReader.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.get16BitLookupTable in interface IFormatReaderget16BitLookupTable in class FormatReaderFormatExceptionjava.io.IOExceptionpublic int fileGroupOption(java.lang.String id)
throws FormatException,
java.io.IOException
IFormatReaderfileGroupOption in interface IFormatReaderfileGroupOption in class FormatReaderid - a file in the multi-file datasetFormatTools.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).FormatExceptionjava.io.IOExceptionFormatTools.MUST_GROUP,
FormatTools.CAN_GROUP,
FormatTools.CANNOT_GROUPpublic byte[] openBytes(int no,
byte[] buf,
int x,
int y,
int w,
int h)
throws FormatException,
java.io.IOException
IFormatReaderopenBytes in interface IFormatReaderopenBytes in class FormatReaderno - the plane index within the current series.buf - a pre-allocated buffer.x - X coordinate of the upper-left corner of the sub-imagey - Y coordinate of the upper-left corner of the sub-imagew - width of the sub-imageh - height of the sub-imagebuf for convenience.FormatException - if there was a problem parsing the metadata of the
file.java.io.IOException - if there was a problem reading the file.IFormatReader.openBytes(int, byte[], int, int, int, int)public java.lang.String[] getSeriesUsedFiles(boolean noPixels)
IFormatReaderIFormatHandler.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.getSeriesUsedFiles in interface IFormatReadergetSeriesUsedFiles in class FormatReaderpublic void close(boolean fileOnly)
throws java.io.IOException
IFormatReaderCloseable.close().close in interface IFormatReaderclose in class FormatReaderjava.io.IOExceptionpublic int getOptimalTileWidth()
IFormatReadergetOptimalTileWidth in interface IFormatReadergetOptimalTileWidth in class FormatReaderpublic int getOptimalTileHeight()
IFormatReadergetOptimalTileHeight in interface IFormatReadergetOptimalTileHeight in class FormatReaderprotected void initFile(java.lang.String id)
throws FormatException,
java.io.IOException
FormatReaderinitFile in class FormatReaderFormatException - if a parsing error occurs processing the file.java.io.IOException - if an I/O error occurs processing the fileprivate java.lang.String findLEIFile(java.lang.String baseFile)
throws FormatException,
java.io.IOException
FormatExceptionjava.io.IOExceptionprivate java.lang.String[] getTIFFList()
private void parseFilenames(int seriesIndex)
throws java.io.IOException
java.io.IOExceptionprivate void parseSeriesTag()
throws java.io.IOException
java.io.IOExceptionprivate void parseImageTag(int seriesIndex)
throws java.io.IOException
java.io.IOExceptionprivate void parseDimensionTag(int seriesIndex)
throws FormatException,
java.io.IOException
FormatExceptionjava.io.IOExceptionprivate void parseTimeTag(int seriesIndex)
throws java.io.IOException
java.io.IOExceptionprivate void parseExperimentTag()
throws java.io.IOException
java.io.IOExceptionprivate void parseLUT(int seriesIndex)
throws java.io.IOException
java.io.IOExceptionprivate void parseChannelTag()
throws java.io.IOException
java.io.IOExceptionprivate void parseInstrumentData(MetadataStore store, int blockNum) throws FormatException, java.io.IOException
FormatExceptionjava.io.IOExceptionprivate boolean usedFile(java.lang.String s)
private java.lang.String getString(int len)
throws java.io.IOException
java.io.IOExceptionprivate java.lang.String getString(boolean doubleLength)
throws java.io.IOException
java.io.IOExceptionprivate static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> makeDimensionTable()
Copyright © 2023 Open Microscopy Environment