Package loci.formats
Class DimensionSwapper
java.lang.Object
loci.formats.ReaderWrapper
loci.formats.DimensionSwapper
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
Handles swapping the dimension order of an image series. This class is
useful for both reassigning ZCT sizes (the input dimension order), and
shuffling around the resultant planar order (the output dimension order).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<CoreMetadata> Core metadata associated with this dimension swapper.Fields inherited from class loci.formats.ReaderWrapper
readerFields inherited from interface loci.formats.IFormatReader
CAN_GROUP, CANNOT_GROUP, MUST_GROUP -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a DimensionSwapper around a new image reader.Constructs a DimensionSwapper with the given reader. -
Method Summary
Modifier and TypeMethodDescriptionObtains the core metadata values for the current file.Gets a five-character string representing the dimension order in which planes will be returned.intgetIndex(int z, int c, int t) Gets the rasterized index corresponding to the given Z, C and T coordinates (real sizes).intgetIndex(int z, int c, int t, int moduloZ, int moduloC, int moduloT) Gets the rasterized index corresponding to the given Z, C, T, moduloZ, moduloC and moduloT coordinates (effective sizes).intgetSizeC()Gets the size of the C dimension.intgetSizeT()Gets the size of the T dimension.intgetSizeX()Gets the size of the X dimension.intgetSizeY()Gets the size of the Y dimension.intgetSizeZ()Gets the size of the Z dimension.getTileCodec(int no) Retrieve a codec that can be used to decompress compressed tiles.getTileCodecOptions(int no, int x, int y) Retrieve codec options that can be used to decompressed the specified tile.int[]getZCTCoords(int no) Gets the Z, C and T coordinates (real sizes) corresponding to the given rasterized index value.int[]getZCTModuloCoords(int index) Gets the Z, C, T, moduloZ, moduloC and moduloT coordinates (effective sizes) corresponding to the given rasterized index value.static DimensionSwapperConverts the given reader into a DimensionSwapper, wrapping if needed.byte[]openBytes(int no) Obtains the specified image plane from the current file as a byte array.byte[]openBytes(int no, byte[] buf) Obtains the specified image plane from the current file into a pre-allocated byte array of (sizeX * sizeY * bytesPerPixel * RGB channel count).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[]openBytes(int no, int x, int y, int w, int h) Obtains a sub-image of the specified image plane, whose upper-left corner is given by (x, y).byte[]openCompressedBytes(int no, byte[] buf, int x, int y) Retrieve the specified tile without performing any decompression.byte[]openCompressedBytes(int no, int x, int y) Retrieve the specified tile without performing any decompression.byte[]openThumbBytes(int no) Obtains a thumbnail for the specified image plane from the current file, as a byte array.protected intreorder(int no) voidSets the current file name.voidsetOutputOrder(String outputOrder) Sets the output dimension order according to the given string (e.g., "XYZCT").voidswapDimensions(String order) Sets the input dimension order according to the given string (e.g., "XYZCT").Methods inherited from class loci.formats.ReaderWrapper
close, close, coreIndexToSeries, duplicate, fileGroupOption, get16BitLookupTable, get8BitLookupTable, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getBitsPerPixel, getCoreIndex, getCurrentFile, getDatasetStructureDescription, getDomains, getEffectiveSizeC, getFillColor, getFormat, getGlobalMetadata, getImageCount, getMetadataOptions, getMetadataStore, getMetadataStoreRoot, getMetadataValue, getModuloC, getModuloT, getModuloZ, getNativeDataType, getOptimalTileHeight, getOptimalTileWidth, getPixelType, getPossibleDomains, getReader, getRequiredDirectories, getResolution, getResolutionCount, getRGBChannelCount, getSeries, getSeriesCount, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSeriesUsedFiles, getSuffixes, getSupportedMetadataLevels, getThumbSizeX, getThumbSizeY, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isSingleFile, isThisType, isThisType, isThisType, isThisType, isThumbnailSeries, openPlane, reopenFile, seriesToCoreIndex, setCoreIndex, setFillColor, setFlattenedResolutions, setGroupFiles, setMetadataFiltered, setMetadataOptions, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, setSeries, unwrap, unwrap, unwrap
-
Field Details
-
core
Core metadata associated with this dimension swapper.
-
-
Constructor Details
-
DimensionSwapper
public DimensionSwapper()Constructs a DimensionSwapper around a new image reader. -
DimensionSwapper
Constructs a DimensionSwapper with the given reader.
-
-
Method Details
-
makeDimensionSwapper
Converts the given reader into a DimensionSwapper, wrapping if needed. -
swapDimensions
Sets the input dimension order according to the given string (e.g., "XYZCT"). This string indicates the planar rasterization order from the source, overriding the detected order. It may result in the dimensional axis sizes changing. If the given order is identical to the file's native order, then nothing happens. Note that this method will throw an exception if X and Y do not appear in positions 0 and 1 (although X and Y can be reversed). -
setOutputOrder
Sets the output dimension order according to the given string (e.g., "XYZCT"). This string indicates the final planar rasterization order—i.e., the mapping from 1D plane number to 3D (Z, C, T) tuple. Changing it will not affect the Z, C or T sizes but will alter the order in which planes are returned when iterating. This method is useful when your application requires a particular output dimension order; e.g., ImageJ virtual stacks must be in XYCZT order. -
getInputOrder
-
getSizeX
public int getSizeX()Description copied from interface:IFormatReaderGets the size of the X dimension.- Specified by:
getSizeXin interfaceIFormatReader- Overrides:
getSizeXin classReaderWrapper
-
getSizeY
public int getSizeY()Description copied from interface:IFormatReaderGets the size of the Y dimension.- Specified by:
getSizeYin interfaceIFormatReader- Overrides:
getSizeYin classReaderWrapper
-
getSizeZ
public int getSizeZ()Description copied from interface:IFormatReaderGets the size of the Z dimension.- Specified by:
getSizeZin interfaceIFormatReader- Overrides:
getSizeZin classReaderWrapper
-
getSizeC
public int getSizeC()Description copied from interface:IFormatReaderGets the size of the C dimension.- Specified by:
getSizeCin interfaceIFormatReader- Overrides:
getSizeCin classReaderWrapper
-
getSizeT
public int getSizeT()Description copied from interface:IFormatReaderGets the size of the T dimension.- Specified by:
getSizeTin interfaceIFormatReader- Overrides:
getSizeTin classReaderWrapper
-
getDimensionOrder
Description copied from interface:IFormatReaderGets a five-character string representing the dimension order in which planes will be returned. Valid orders are:- XYCTZ
- XYCZT
- XYTCZ
- XYTZC
- XYZCT
- XYZTC
IFormatReader.isInterleaved()method will return true.- Specified by:
getDimensionOrderin interfaceIFormatReader- Overrides:
getDimensionOrderin classReaderWrapper
-
openBytes
Description copied from interface:IFormatReaderObtains the specified image plane from the current file as a byte array.- Specified by:
openBytesin interfaceIFormatReader- Overrides:
openBytesin classReaderWrapper- Throws:
FormatExceptionIOException- See Also:
-
openBytes
Description copied from interface:IFormatReaderObtains a sub-image of the specified image plane, whose upper-left corner is given by (x, y).- Specified by:
openBytesin interfaceIFormatReader- Overrides:
openBytesin classReaderWrapper- Throws:
FormatExceptionIOException
-
openBytes
Description copied from interface:IFormatReaderObtains the specified image plane from the current file into a pre-allocated byte array of (sizeX * sizeY * bytesPerPixel * RGB channel count).- Specified by:
openBytesin interfaceIFormatReader- Overrides:
openBytesin classReaderWrapper- Parameters:
no- the plane index within the current series.buf- a pre-allocated buffer.- 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.
-
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 classReaderWrapper- 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.
-
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 classReaderWrapper- Throws:
FormatExceptionIOException
-
getZCTCoords
public int[] getZCTCoords(int no) Description copied from interface:IFormatReaderGets the Z, C and T coordinates (real sizes) corresponding to the given rasterized index value.- Specified by:
getZCTCoordsin interfaceIFormatReader- Overrides:
getZCTCoordsin classReaderWrapper
-
getZCTModuloCoords
public int[] getZCTModuloCoords(int index) Description copied from interface:IFormatReaderGets the Z, C, T, moduloZ, moduloC and moduloT coordinates (effective sizes) corresponding to the given rasterized index value. Note that the Z, C and T coordinates are not the same as those returned by getZCTCoords(int) because the size of the modulo dimensions is taken into account. The effective size for each of these dimensions is limited to the total size of the dimension divided by the modulo size.- Specified by:
getZCTModuloCoordsin interfaceIFormatReader- Overrides:
getZCTModuloCoordsin classReaderWrapper
-
getIndex
public int getIndex(int z, int c, int t) Description copied from interface:IFormatReaderGets the rasterized index corresponding to the given Z, C and T coordinates (real sizes).- Specified by:
getIndexin interfaceIFormatReader- Overrides:
getIndexin classReaderWrapper
-
getIndex
public int getIndex(int z, int c, int t, int moduloZ, int moduloC, int moduloT) Description copied from interface:IFormatReaderGets the rasterized index corresponding to the given Z, C, T, moduloZ, moduloC and moduloT coordinates (effective sizes). Note that the Z, C and T coordinates take the modulo dimension sizes into account. The effective size for each of these dimensions is limited to the total size of the dimension divided by the modulo size.- Specified by:
getIndexin interfaceIFormatReader- Overrides:
getIndexin classReaderWrapper
-
getCoreMetadataList
Description copied from interface:IFormatReaderObtains the core metadata values for the current file.- Specified by:
getCoreMetadataListin interfaceIFormatReader- Overrides:
getCoreMetadataListin classReaderWrapper
-
setId
Description copied from interface:IFormatHandlerSets the current file name.- Specified by:
setIdin interfaceIFormatHandler- Overrides:
setIdin classReaderWrapper- Throws:
FormatExceptionIOException
-
openCompressedBytes
Description copied from interface:ICompressedTileReaderRetrieve the specified tile without performing any decompression.- Specified by:
openCompressedBytesin interfaceICompressedTileReader- Overrides:
openCompressedBytesin classReaderWrapper- Parameters:
no- plane indexx- tile X index (indexed from 0, @see getTileColumns(int))y- tile Y index (indexed from 0, @see getTileRows(int))- Returns:
- compressed tile bytes
- Throws:
FormatExceptionIOException
-
openCompressedBytes
public byte[] openCompressedBytes(int no, byte[] buf, int x, int y) throws FormatException, IOException Description copied from interface:ICompressedTileReaderRetrieve the specified tile without performing any decompression.- Specified by:
openCompressedBytesin interfaceICompressedTileReader- Overrides:
openCompressedBytesin classReaderWrapper- Parameters:
no- plane indexbuf- pre-allocated buffer in which to store compressed bytesx- tile X index (indexed from 0, @see getTileColumns(int))y- tile Y index (indexed from 0, @see getTileRows(int))- Returns:
- compressed tile bytes
- Throws:
FormatExceptionIOException
-
getTileCodec
Description copied from interface:ICompressedTileReaderRetrieve a codec that can be used to decompress compressed tiles.- Specified by:
getTileCodecin interfaceICompressedTileReader- Overrides:
getTileCodecin classReaderWrapper- Parameters:
no- plane index- Returns:
- codec that can be used for compressed tiles in the specified plane
- Throws:
FormatExceptionIOException- See Also:
-
getTileCodecOptions
Description copied from interface:ICompressedTileReaderRetrieve codec options that can be used to decompressed the specified tile.- Specified by:
getTileCodecOptionsin interfaceICompressedTileReader- Overrides:
getTileCodecOptionsin classReaderWrapper- Parameters:
no- plane indexx- tile X index (indexed from 0, @see getTileColumns(int))y- tile Y index (indexed from 0, @see getTileRows(int))- Returns:
- codec options
- Throws:
FormatExceptionIOException- See Also:
-
reorder
protected int reorder(int no)
-