Package loci.formats.in
Class VentanaReader
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
VentanaReader is the file format reader for Ventana .bif files.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) class(package private) class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<VentanaReader.AreaOfInterest> private static final intprivate static final intprivate static final org.slf4j.LoggerLogger for this class.private Doubleprivate Doubleprivate intstatic final booleanDefault value ofSPLIT_TILES_KEYstatic final StringMetadataOptions key for determining whether to report each tile as a separate series.private intprivate VentanaReader.TIFFTile[]private intprivate static final intprivate static final intFields inherited from class loci.formats.in.BaseTiffReader
DATE_FORMATSFields inherited from class loci.formats.in.MinimalTiffReader
canSeparateSeries, equalStrips, ifds, lastPlane, mergeSubIFDs, noSubresolutions, seriesToIFD, subResolutionIFDs, thumbnailIFDs, tiffParser, use64BitFields 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, metadataOptions, suffixesFields inherited from interface loci.formats.IFormatReader
CAN_GROUP, CANNOT_GROUP, MUST_GROUP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose(boolean fileOnly) Closes the currently open file.intReturns 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.private intgetIFDIndex(int coreIndex) Note that all planes for a particular resolution or extra image are packed into a single IFD, so the IFD index does not depend upon the plane (e.g.intReturns the optimal sub-image height for use with openBytes.intReturns the optimal sub-image width for use with openBytes.private intgetScale(int resolution) intGet the size of the X dimension for the thumbnail.intGet the size of the Y dimension for the thumbnail.private intgetTileColumn(int index, int rows, int cols) protected voidPopulates the metadata store using the data parsed inBaseTiffReader.initStandardMetadata()along with some further parsing done in the method itself.protected voidParses standard metadata.booleanisThisType(String name, boolean open) Checks if a file matches the type of this format reader.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.byte[]openThumbBytes(int no) Obtains a thumbnail for the specified image plane from the current file, as a byte array.private voidprivate intscaleCoordinate(int v, int resolution) private IFDTake the real IFD on disk and reshape it into something that represents only the given plane.booleanMethods inherited from class loci.formats.in.BaseTiffReader
getExifTagName, getImageCreationDate, initFile, initMetadata, put, put, put, put, put, put, put, put, put, put, putDouble, putInt, putStringMethods inherited from class loci.formats.in.MinimalTiffReader
copyTile, getCompressedByteCount, getIFDs, getThumbnailIFDs, getTileIndex, initTiffParser, isThisType, reopenFile, setResolutionLevelMethods inherited from class loci.formats.SubResolutionFormatReader
coreIndexToSeries, flattenHashtables, getCoreIndex, getCoreMetadataList, getCurrentCore, getResolution, getResolutionCount, getSeries, getSeriesCount, seriesToCoreIndex, setCoreIndex, setResolution, setSeriesMethods 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, 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, getRGBChannelCount, getRotationTransform, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isSingleFile, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, 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
-
SPLIT_TILES_KEY
MetadataOptions key for determining whether to report each tile as a separate series.- See Also:
-
SPLIT_TILES_DEFAULT
public static final boolean SPLIT_TILES_DEFAULTDefault value ofSPLIT_TILES_KEY- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGERLogger for this class. -
XML_TAG
private static final int XML_TAG- See Also:
-
Z_TAG
private static final int Z_TAG- See Also:
-
EXTRA_TAG_1
private static final int EXTRA_TAG_1- See Also:
-
EXTRA_TAG_2
private static final int EXTRA_TAG_2- See Also:
-
magnification
-
areas
-
tileWidth
private int tileWidth -
tileHeight
private int tileHeight -
tiles
-
resolutions
private int resolutions -
physicalPixelSize
-
-
Constructor Details
-
VentanaReader
public VentanaReader()Constructs a new Ventana reader.
-
-
Method Details
-
splitTiles
public boolean splitTiles()- Returns:
- true if MetadataOptions are set so that each tile in the full resolution image will be returned as a separate series
-
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). - Throws:
FormatExceptionIOException- See Also:
-
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.
-
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 classMinimalTiffReader- 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 classMinimalTiffReader- Throws:
FormatExceptionIOException
-
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- Overrides:
openBytesin classMinimalTiffReader- 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.- See Also:
-
openThumbBytes
Description copied from interface:IFormatReaderObtains a thumbnail for the specified image plane from the current file, as a byte array.- Specified by:
openThumbBytesin interfaceIFormatReader- Overrides:
openThumbBytesin classMinimalTiffReader- Throws:
FormatExceptionIOException
-
getThumbSizeX
public int getThumbSizeX()Description copied from interface:IFormatReaderGet the size of the X dimension for the thumbnail.- Specified by:
getThumbSizeXin interfaceIFormatReader- Overrides:
getThumbSizeXin classMinimalTiffReader
-
getThumbSizeY
public int getThumbSizeY()Description copied from interface:IFormatReaderGet the size of the Y dimension for the thumbnail.- Specified by:
getThumbSizeYin interfaceIFormatReader- Overrides:
getThumbSizeYin classMinimalTiffReader
-
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 classMinimalTiffReader- 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 classMinimalTiffReader
-
getOptimalTileHeight
public int getOptimalTileHeight()Description copied from interface:IFormatReaderReturns the optimal sub-image height for use with openBytes.- Specified by:
getOptimalTileHeightin interfaceIFormatReader- Overrides:
getOptimalTileHeightin classMinimalTiffReader
-
getAvailableOptions
Description copied from class:FormatReaderReturns the list of available metadata options.- Overrides:
getAvailableOptionsin classFormatReader
-
initStandardMetadata
Description copied from class:BaseTiffReaderParses standard metadata. NOTE: Absolutely no calls to the metadata store should be made in this method or methods that override this method. Data will be overwritten if you do so.- Overrides:
initStandardMetadatain classBaseTiffReader- Throws:
FormatExceptionIOException
-
getScale
private int getScale(int resolution) - Parameters:
resolution- the resolution for which to calculate a scale factor- Returns:
- the scale factor between the full resolution image and the specified resolution
-
scaleCoordinate
private int scaleCoordinate(int v, int resolution) - Parameters:
v- the coordinate in the full resolutionresolution- the resolution for which to calculate a scale factor- Returns:
- the scaled coordinate for the target resolution
-
getTileColumn
private int getTileColumn(int index, int rows, int cols) - Parameters:
index- the tile index as stored in TileJointInfo nodesrows- the number of tile rows in an area of interestcols- the number of tile columns in an area of interest- Returns:
- the tile column in grid order (corrects for snake ordering)
-
initMetadataStore
Description copied from class:BaseTiffReaderPopulates the metadata store using the data parsed inBaseTiffReader.initStandardMetadata()along with some further parsing done in the method itself. All calls to the activeMetadataStoreshould be made in this method and only in this method. This is especially important for sub-classes that override the getters for pixel set array size, etc.- Overrides:
initMetadataStorein classBaseTiffReader- Throws:
FormatException
-
getIFDIndex
private int getIFDIndex(int coreIndex) Note that all planes for a particular resolution or extra image are packed into a single IFD, so the IFD index does not depend upon the plane (e.g. Z section) needed.- Parameters:
coreIndex- the series or resolution for which to find an IFD- Returns:
- the index into
MinimalTiffReader.ifdsfor the given series and plane
-
splitIFD
Take the real IFD on disk and reshape it into something that represents only the given plane. This should preserve all tags except Z_TAG, and crop the tile byte count and offset arrays to match only the tiles for the given plane. This is necessary because the tile count in the real IFD is X * Y * Z.- Throws:
FormatExceptionIOException
-
parseXML
- Throws:
IOException
-