Package loci.formats.in
Class OMETiffReader
java.lang.Object
loci.formats.FormatHandler
loci.formats.FormatReader
loci.formats.SubResolutionFormatReader
loci.formats.in.OMETiffReader
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
OMETiffReader is the file format reader for
OME-TIFF
files.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classprivate classStructure containing details on where to find a particular image plane. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final booleanstatic final Stringprivate booleanprotected OMETiffReader.OMETiffPlane[][]Mapping from series and plane numbers to files and IFD entries.private intprotected OMEXMLMetadataRepresents OME-XML stored in the current OME-TIFF file(s).private Stringprivate Stringstatic final String[]protected OMEXMLServiceOMEXMLService that can be used to manipulate OME-XML.protected String[]List of used files.Fields inherited from class loci.formats.SubResolutionFormatReader
coreFields inherited from class loci.formats.FormatReader
coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSIONFields inherited from class loci.formats.FormatHandler
COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixesFields inherited from interface loci.formats.IFormatReader
CAN_GROUP, CANNOT_GROUP, MUST_GROUP -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new OME-TIFF reader.OMETiffReader(String name, String[] suffixes) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidvoidclose(boolean fileOnly) Closes the currently open file.protected voidconvertMetadata(OMEXMLMetadata meta, MetadataStore store) Convert metadata contained within an OMEXMLMetadata object to a separate MetadataStore.booleanintReturns an indication of whether the files in a multi-file dataset can be handled individually.short[][]Gets the 16-bit color lookup table associated with the most recently opened image.byte[][]Gets the 8-bit color lookup table associated with the most recently opened image.Returns the list of available metadata options.String[]Returns the list of domains represented by the current file.private static IFDgetFirstIFD(String fname) Deprecated.Deprecated.Use the generalFormatReader.getMetadataStore()method.intReturns the optimal sub-image height for use with openBytes.intReturns the optimal sub-image width for use with openBytes.intgetRequiredDirectories(String[] files) Returns the number of parent directories that are important when processing the given list of files.String[]getSeriesUsedFiles(boolean noPixels) Returns an array of filenames needed to open the current series.protected voidInitializes the given file (parsing header information, etc.).private voidinitializeReader(IFormatReader r, String file) booleanisSingleFile(String id) Returns true if the named file is expected to be the only file in the dataset.booleanisThisType(String name, boolean open) Checks if a file matches the type of this format reader.booleanisThisType(loci.common.RandomAccessInputStream stream) Checks if the given stream is a valid stream for this file format.private StringnormalizeFilename(String dir, String name) 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 StringExtracts the OME-XML from the currentmetadataFile.private voidvoidReopen any files that were closed, and which are expected to be open while the reader is open.voidsetSeries(int series) Activates the specified series.private voidMethods inherited from class loci.formats.SubResolutionFormatReader
coreIndexToSeries, flattenHashtables, getCoreIndex, getCoreMetadataList, getCurrentCore, getResolution, getResolutionCount, getSeries, getSeriesCount, seriesToCoreIndex, setCoreIndex, setResolutionMethods 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, getAcquisitionMode, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getArcType, getBinning, getBitsPerPixel, getCompression, getContrastMethod, getCorrection, getCurrentFile, getDatasetStructureDescription, getDetectorType, getDimensionOrder, getDimensionOrder, 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, getRGBChannelCount, getRotationTransform, 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, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, readPlane, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, updateMetadataListsMethods inherited from class loci.formats.FormatHandler
checkSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface loci.formats.ICompressedTileReader
getTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytesMethods inherited from interface loci.formats.IFormatHandler
getFormat, getNativeDataType, getSuffixesMethods inherited from interface loci.formats.IMetadataConfigurable
getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions
-
Field Details
-
OME_TIFF_SUFFIXES
-
FAIL_ON_MISSING_KEY
- See Also:
-
FAIL_ON_MISSING_DEFAULT
public static final boolean FAIL_ON_MISSING_DEFAULT- See Also:
-
info
Mapping from series and plane numbers to files and IFD entries. -
used
List of used files. -
lastPlane
private int lastPlane -
hasSPW
private boolean hasSPW -
service
OMEXMLService that can be used to manipulate OME-XML. -
meta
Represents OME-XML stored in the current OME-TIFF file(s). -
metaFile
-
metadataFile
-
-
Constructor Details
-
OMETiffReader
public OMETiffReader()Constructs a new OME-TIFF reader. -
OMETiffReader
-
-
Method Details
-
getAvailableOptions
Description copied from class:FormatReaderReturns the list of available metadata options.- Overrides:
getAvailableOptionsin classFormatReader
-
isSingleFile
Description copied from interface:IFormatReaderReturns true if the named file is expected to be the only file in the dataset. For single-file formats, always returns true.- Specified by:
isSingleFilein interfaceIFormatReader- Overrides:
isSingleFilein classFormatReader- Throws:
FormatExceptionIOException
-
isThisType
Description copied from class:FormatReaderChecks if a file matches the type of this format reader. Checks filename suffixes against those known for this format. If the suffix check is inconclusive and the open parameter is true, the file is opened and tested withFormatReader.isThisType(RandomAccessInputStream).- Specified by:
isThisTypein interfaceIFormatReader- Overrides:
isThisTypein classFormatReader- Parameters:
open- If true, and the file extension is insufficient to determine the file type, the (existing) file is opened for further analysis.
-
isThisType
Description copied from interface:IFormatReaderChecks if the given stream is a valid stream for this file format. The number of bytes read is format-dependent.- Specified by:
isThisTypein interfaceIFormatReader- Overrides:
isThisTypein classFormatReader- 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:
IOException
-
getDomains
Description copied from interface:IFormatReaderReturns the list of domains represented by the current file.- Specified by:
getDomainsin interfaceIFormatReader- Overrides:
getDomainsin classFormatReader
-
setSeries
public void setSeries(int series) Description copied from interface:IFormatReaderActivates the specified series. This also resets the resolution to 0.- Specified by:
setSeriesin interfaceIFormatReader- Overrides:
setSeriesin classSubResolutionFormatReader- See Also:
-
get8BitLookupTable
Description copied from interface:IFormatReaderGets the 8-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or ifIFormatReader.isIndexed()returns false, then this may return null. Also, ifIFormatReader.getPixelType()returns anything other thanFormatTools.INT8orFormatTools.UINT8, this method will return null.- Specified by:
get8BitLookupTablein interfaceIFormatReader- Overrides:
get8BitLookupTablein classFormatReader- Throws:
FormatExceptionIOException
-
get16BitLookupTable
Description copied from interface:IFormatReaderGets the 16-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or ifIFormatReader.isIndexed()returns false, then this may return null. Also, ifIFormatReader.getPixelType()returns anything other thanFormatTools.INT16orFormatTools.UINT16, this method will return null.- Specified by:
get16BitLookupTablein interfaceIFormatReader- Overrides:
get16BitLookupTablein classFormatReader- Throws:
FormatExceptionIOException
-
reopenFile
Description copied from interface:IFormatReaderReopen any files that were closed, and which are expected to be open while the reader is open. This assumes thatIFormatHandler.setId(java.lang.String)has been called, but close(false) has not been called.- Specified by:
reopenFilein interfaceIFormatReader- Overrides:
reopenFilein classFormatReader- Throws:
IOException
-
openBytes
public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException Description copied from interface:IFormatReaderObtains a sub-image of the specified image plane into a pre-allocated byte array.- Specified by:
openBytesin interfaceIFormatReader- Specified by:
openBytesin classFormatReader- 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-imagey- Y coordinate of the upper-left corner of the sub-imagew- width of the sub-imageh- height of the sub-image- Returns:
- the pre-allocated buffer
buffor convenience. - Throws:
FormatException- if there was a problem parsing the metadata of the file.IOException- if there was a problem reading the file.
-
getSeriesUsedFiles
Description copied from interface:IFormatReaderReturns 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 toIFormatHandler.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:
getSeriesUsedFilesin interfaceIFormatReader- Overrides:
getSeriesUsedFilesin classFormatReader
-
fileGroupOption
Description copied from interface:IFormatReaderReturns 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:
fileGroupOptionin interfaceIFormatReader- Overrides:
fileGroupOptionin classFormatReader- 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_GROUPindicates that the files cannot be handled separately; the reader will always detect and read all files in the dataset.FormatTools.CAN_GROUPindicates that the files may be handled separately, but file grouping must then be disabled viaIFormatReader.setGroupFiles(boolean).FormatTools.CANNOT_GROUPindicates that the files must be handled separately; the reader will not attempt to read all files in the dataset (this is rare). - See Also:
-
close
Description copied from interface:IFormatReaderCloses the currently open file. If the flag is set, this is all that happens; if unset, it is equivalent to callingCloseable.close().- Specified by:
closein interfaceIFormatReader- Overrides:
closein classSubResolutionFormatReader- Throws:
IOException
-
getOptimalTileWidth
public int getOptimalTileWidth()Description copied from interface:IFormatReaderReturns the optimal sub-image width for use with openBytes.- Specified by:
getOptimalTileWidthin interfaceIFormatReader- Overrides:
getOptimalTileWidthin classFormatReader
-
getOptimalTileHeight
public int getOptimalTileHeight()Description copied from interface:IFormatReaderReturns the optimal sub-image height for use with openBytes.- Specified by:
getOptimalTileHeightin interfaceIFormatReader- Overrides:
getOptimalTileHeightin classFormatReader
-
getRequiredDirectories
Description copied from interface:IFormatReaderReturns the number of parent directories that are important when processing the given list of files. The number of directories is relative to the common parent. For example, given a list with these two files: /path/to/file/foo /path/to/file/that/is/related A return value of 0 indicates that "/path/to/file/" is irrelevant. A return value of 1 indicates that "/path/to/" is irrelevant. Return values less than 0 are invalid. All listed files are assumed to belong to datasets of the same format.- Specified by:
getRequiredDirectoriesin interfaceIFormatReader- Overrides:
getRequiredDirectoriesin classFormatReader- Throws:
FormatExceptionIOException
-
initFile
Description copied from class:SubResolutionFormatReaderInitializes the given file (parsing header information, etc.). Most subclasses should override this method to perform initialization operations such as parsing metadata.- Overrides:
initFilein classSubResolutionFormatReader- Throws:
FormatException- if a parsing error occurs processing the file.IOException- if an I/O error occurs processing the file
-
getMetadataStoreForDisplay
Deprecated.Use the generalFormatReader.getMetadataStore()method.Get a MetadataStore suitable for display. Note: Historically, this method removed certain elements for display purposes and was not be suitable for use with FormatWriter due to not containing required BinData BigEndian attributes. This is no longer the case; the generalFormatReader.getMetadataStore()method will always create valid metadata which is suitable for both display and use with FormatWriter, and so should be used instead.- Returns:
- the metadata store.
-
getMetadataStoreForConversion
Deprecated.Use the generalFormatReader.getMetadataStore()method.Get a MetadataStore suitable for writing. Note: Historically, this method created metadata suitable for use with FormatWriter, but would possibly not generate valid OME-XML if both BinData and TiffData elements were present. This is no longer the case; the generalFormatReader.getMetadataStore()method will always create valid metadata which is suitable for use with FormatWriter, and so should be used instead.- Returns:
- the metadata store.
-
convertMetadata
Convert metadata contained within an OMEXMLMetadata object to a separate MetadataStore. The OMEXMLMetadata object is expected to represent the original OME-XML stored in this OME-TIFF. The MetadataStore is expected to represent the output metadata; if the MetadataStore is of type OMEXMLMetadata, the output is expected to be valid OME-XML. By default, this simply copies everything from the source OMEXMLMetadata to the destination MetadataStore without modification. Classes that extend OMETiffReader may wish to override this method if the OME-XML stored in the OME-TIFF is expected to be invalid or incorrect.- Parameters:
meta- source representing stored OME-XMLstore- destination representing valid OME metadata
-
normalizeFilename
-
setupService
- Throws:
FormatException
-
addSubResolutions
- Throws:
IOExceptionFormatException
-
readMetadataFile
Extracts the OME-XML from the currentmetadataFile.- Throws:
IOException
-
getFirstIFD
- Throws:
IOException
-
initializeReader
- Throws:
FormatExceptionIOException
-
removeIFDComments
-
failOnMissingTIFF
public boolean failOnMissingTIFF()
-
FormatReader.getMetadataStore()method.