ome-files
0.5.0
|
Image File Directory (IFD). More...
#include <ome/files/tiff/IFD.h>
Classes | |
class | Impl |
Internal implementation details of OffsetIFD. More... | |
Public Member Functions | |
virtual | ~IFD () |
Destructor. | |
std::shared_ptr< TIFF > & | getTIFF () const |
Get the source TIFF this descriptor belongs to. More... | |
void | makeCurrent () const |
Make this IFD the current directory. More... | |
offset_type | getOffset () const |
Get the directory offset. More... | |
void | getRawField (tag_type tag,...) const |
Get a field by its tag number. More... | |
void | getRawFieldDefaulted (tag_type tag,...) const |
Get a field by its tag number, falling back to default if unset. More... | |
void | setRawField (tag_type tag,...) |
Set a field by its tag number. More... | |
template<typename TagCategory > | |
Field< TagCategory > | getField (TagCategory tag) |
Get a Field by its tag enumeration. More... | |
template<typename TagCategory > | |
const Field< TagCategory > | getField (TagCategory tag) const |
Get a Field by its tag enumeration. More... | |
TileType | getTileType () const |
Get the tile type. More... | |
void | setTileType (TileType type) |
Set the tile type. More... | |
dimension_size_type | getCurrentTile () const |
Get the current tile being written. More... | |
void | setCurrentTile (dimension_size_type tile) |
Set the current tile being written. More... | |
TileInfo | getTileInfo () |
Get tiling metadata. More... | |
const TileInfo | getTileInfo () const |
Get tiling metadata. More... | |
std::vector< TileCoverage > & | getTileCoverage () |
Get tile coverage cache. More... | |
const std::vector< TileCoverage > & | getTileCoverage () const |
Get tile coverage cache. More... | |
uint32_t | getImageWidth () const |
Get the image width. More... | |
void | setImageWidth (uint32_t width) |
Set the image width. More... | |
uint32_t | getImageHeight () const |
Get the image height. More... | |
void | setImageHeight (uint32_t height) |
Set the image height. More... | |
uint32_t | getTileWidth () const |
Get the tile width. More... | |
void | setTileWidth (uint32_t width) |
Set the tile width. More... | |
uint32_t | getTileHeight () const |
Get the tile height. More... | |
void | setTileHeight (uint32_t height) |
Set the tile height. More... | |
::ome::xml::model::enums::PixelType | getPixelType () const |
Get the OME data model PixelType. More... | |
void | setPixelType (::ome::xml::model::enums::PixelType type) |
Set the OME data model PixelType. More... | |
uint16_t | getBitsPerSample () const |
Get bits per sample. More... | |
void | setBitsPerSample (uint16_t samples) |
Set bits per sample. More... | |
uint16_t | getSamplesPerPixel () const |
Get samples per pixel. More... | |
void | setSamplesPerPixel (uint16_t samples) |
Set samples per pixel. More... | |
PlanarConfiguration | getPlanarConfiguration () const |
Get planar configuration. More... | |
void | setPlanarConfiguration (PlanarConfiguration planarconfig) |
Set planar configuration. More... | |
PhotometricInterpretation | getPhotometricInterpretation () const |
Get photometric interpretation. More... | |
void | setPhotometricInterpretation (PhotometricInterpretation photometric) |
Set photometric interpretation. More... | |
Compression | getCompression () const |
Get compression scheme. More... | |
void | setCompression (Compression compression) |
Set compression scheme. More... | |
void | readImage (VariantPixelBuffer &buf) const |
Read a whole image plane into a pixel buffer. More... | |
void | readImage (VariantPixelBuffer &buf, dimension_size_type subC) const |
Read a whole image plane into a pixel buffer. More... | |
void | readImage (VariantPixelBuffer &dest, dimension_size_type x, dimension_size_type y, dimension_size_type w, dimension_size_type h) const |
Read a region of an image plane into a pixel buffer. More... | |
void | readImage (VariantPixelBuffer &dest, dimension_size_type x, dimension_size_type y, dimension_size_type w, dimension_size_type h, dimension_size_type subC) const |
Read a region of an image plane into a pixel buffer. More... | |
void | readLookupTable (VariantPixelBuffer &buf) const |
Read a lookup table into a pixel buffer. More... | |
void | writeImage (const VariantPixelBuffer &buf) |
Write a whole image plane from a pixel buffer. More... | |
void | writeImage (const VariantPixelBuffer &buf, dimension_size_type subC) |
Write a whole image plane from a pixel buffer. More... | |
void | writeImage (const VariantPixelBuffer &source, dimension_size_type x, dimension_size_type y, dimension_size_type w, dimension_size_type h) |
Write a whole image plane from a pixel buffer. More... | |
void | writeImage (const VariantPixelBuffer &source, dimension_size_type x, dimension_size_type y, dimension_size_type w, dimension_size_type h, dimension_size_type subC) |
Write a whole image plane from a pixel buffer. More... | |
std::shared_ptr< IFD > | next () const |
Get next directory. More... | |
bool | last () const |
Check if this is the last directory. More... | |
Static Public Member Functions | |
static std::shared_ptr< IFD > | openIndex (std::shared_ptr< TIFF > &tiff, directory_index_type index) |
Open an IFD by index. More... | |
static std::shared_ptr< IFD > | openOffset (std::shared_ptr< TIFF > &tiff, offset_type offset) |
Open an IFD. More... | |
static std::shared_ptr< IFD > | current (std::shared_ptr< TIFF > &tiff) |
Get the current IFD. More... | |
Protected Member Functions | |
IFD (std::shared_ptr< TIFF > &tiff, offset_type offset) | |
Constructor (not public). More... | |
IFD (std::shared_ptr< TIFF > &tiff) | |
Constructor (not public). More... | |
Private Attributes | |
std::shared_ptr< Impl > | impl |
Private implementation details. | |
|
protected |
|
protected |
Get the current IFD.
tiff | the source TIFF. |
Referenced by ome::files::tiff::TIFF::getCurrentDirectory().
uint16_t ome::files::tiff::IFD::getBitsPerSample | ( | ) | const |
Get bits per sample.
References ome::files::tiff::BITSPERSAMPLE, getField(), and impl.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), and getPixelType().
Compression ome::files::tiff::IFD::getCompression | ( | ) | const |
Get compression scheme.
References ome::files::tiff::COMPRESSION, getField(), and impl.
Referenced by getField().
dimension_size_type ome::files::tiff::IFD::getCurrentTile | ( | ) | const |
Get the current tile being written.
This is the tile currently being modified pending flush.
References impl.
Referenced by getField().
|
inline |
Get a Field by its tag enumeration.
tag | the field identifier. |
Referenced by getBitsPerSample(), getCompression(), ome::files::tiff::getCoreMetadata(), getImageHeight(), getImageWidth(), getPhotometricInterpretation(), getPixelType(), getPlanarConfiguration(), getSamplesPerPixel(), getTileHeight(), getTileType(), getTileWidth(), ome::files::tiff::ImageJMetadata::ImageJMetadata(), readLookupTable(), setBitsPerSample(), setCompression(), setImageHeight(), setImageWidth(), setPhotometricInterpretation(), setPixelType(), setPlanarConfiguration(), setSamplesPerPixel(), setTileHeight(), and setTileWidth().
|
inline |
Get a Field by its tag enumeration.
tag | the field identifier. |
References getBitsPerSample(), getCompression(), getCurrentTile(), getImageHeight(), getImageWidth(), getPhotometricInterpretation(), getPixelType(), getPlanarConfiguration(), getSamplesPerPixel(), getTileCoverage(), getTileHeight(), getTileInfo(), getTileType(), getTileWidth(), last(), next(), readImage(), readLookupTable(), setBitsPerSample(), setCompression(), setCurrentTile(), setImageHeight(), setImageWidth(), setPhotometricInterpretation(), setPixelType(), setPlanarConfiguration(), setSamplesPerPixel(), setTileHeight(), setTileType(), setTileWidth(), and writeImage().
uint32_t ome::files::tiff::IFD::getImageHeight | ( | ) | const |
Get the image height.
References getField(), ome::files::tiff::IMAGELENGTH, and impl.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), ome::files::in::MinimalTIFFReader::initFile(), readImage(), and writeImage().
uint32_t ome::files::tiff::IFD::getImageWidth | ( | ) | const |
Get the image width.
References getField(), ome::files::tiff::IMAGEWIDTH, and impl.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), getTileWidth(), ome::files::in::MinimalTIFFReader::initFile(), readImage(), and writeImage().
offset_type ome::files::tiff::IFD::getOffset | ( | ) | const |
Get the directory offset.
Internally this is simply a call to TIFFCurrentDirOffset.
References impl.
PhotometricInterpretation ome::files::tiff::IFD::getPhotometricInterpretation | ( | ) | const |
Get photometric interpretation.
References getField(), impl, and ome::files::tiff::PHOTOMETRIC.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), and ome::files::in::MinimalTIFFReader::initFile().
ome::xml::model::enums::PixelType ome::files::tiff::IFD::getPixelType | ( | ) | const |
Get the OME data model PixelType.
This is computed based upon the SampleFormat and BitsPerSample tags for this IFD.
an | Exception if there is no corresponding PixelType for the SampleFormat and BitsPerSample in use. |
References ome::files::tiff::COMPLEX_FLOAT, ome::files::tiff::FLOAT, getBitsPerSample(), getField(), impl, ome::files::tiff::SAMPLEFORMAT, ome::files::tiff::SIGNED_INT, and ome::files::tiff::UNSIGNED_INT.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), ome::files::in::MinimalTIFFReader::initFile(), readImage(), setBitsPerSample(), and writeImage().
PlanarConfiguration ome::files::tiff::IFD::getPlanarConfiguration | ( | ) | const |
Get planar configuration.
References getField(), impl, and ome::files::tiff::PLANARCONFIG.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), ome::files::in::MinimalTIFFReader::initFile(), readImage(), and writeImage().
void ome::files::tiff::IFD::getRawField | ( | tag_type | tag, |
... | |||
) | const |
Get a field by its tag number.
tag | the tag number. |
... | pointers to variables to store the value(s) in. |
References ome::files::tiff::Sentry::error(), getTIFF(), and makeCurrent().
void ome::files::tiff::IFD::getRawFieldDefaulted | ( | tag_type | tag, |
... | |||
) | const |
Get a field by its tag number, falling back to default if unset.
tag | the tag number. |
... | pointers to variables to store the value(s) in. |
References ome::files::tiff::Sentry::error(), getTIFF(), and makeCurrent().
uint16_t ome::files::tiff::IFD::getSamplesPerPixel | ( | ) | const |
Get samples per pixel.
References getField(), impl, and ome::files::tiff::SAMPLESPERPIXEL.
Referenced by ome::files::tiff::getCoreMetadata(), getField(), ome::files::in::MinimalTIFFReader::initFile(), readImage(), and writeImage().
std::shared_ptr< TIFF > & ome::files::tiff::IFD::getTIFF | ( | ) | const |
Get the source TIFF this descriptor belongs to.
References impl.
Referenced by getRawField(), getRawFieldDefaulted(), last(), makeCurrent(), next(), and setRawField().
std::vector< TileCoverage > & ome::files::tiff::IFD::getTileCoverage | ( | ) |
Get tile coverage cache.
References impl.
Referenced by getField().
const std::vector< TileCoverage > & ome::files::tiff::IFD::getTileCoverage | ( | ) | const |
uint32_t ome::files::tiff::IFD::getTileHeight | ( | ) | const |
Get the tile height.
References getField(), getTileType(), impl, ome::files::tiff::ROWSPERSTRIP, ome::files::tiff::TILE, and ome::files::tiff::TILELENGTH.
Referenced by getField().
TileInfo ome::files::tiff::IFD::getTileInfo | ( | ) |
Get tiling metadata.
an | Exception if tiles are not supported. |
Referenced by getField(), readImage(), and writeImage().
const TileInfo ome::files::tiff::IFD::getTileInfo | ( | ) | const |
TileType ome::files::tiff::IFD::getTileType | ( | ) | const |
Get the tile type.
References getField(), impl, ome::files::tiff::ROWSPERSTRIP, ome::files::tiff::STRIP, ome::files::tiff::TILE, ome::files::tiff::TILELENGTH, and ome::files::tiff::TILEWIDTH.
Referenced by getField(), getTileHeight(), getTileWidth(), setTileHeight(), and setTileWidth().
uint32_t ome::files::tiff::IFD::getTileWidth | ( | ) | const |
Get the tile width.
References getField(), getImageWidth(), getTileType(), impl, ome::files::tiff::TILE, and ome::files::tiff::TILEWIDTH.
Referenced by getField().
bool ome::files::tiff::IFD::last | ( | ) | const |
Check if this is the last directory.
true
if last, false
otherwise. References getTIFF(), and makeCurrent().
Referenced by getField().
void ome::files::tiff::IFD::makeCurrent | ( | ) | const |
Make this IFD the current directory.
Internally this is simply a call to TIFFSetDirectory.
References ome::files::tiff::Sentry::error(), getTIFF(), and impl.
Referenced by getRawField(), getRawFieldDefaulted(), last(), next(), and setRawField().
std::shared_ptr< IFD > ome::files::tiff::IFD::next | ( | ) | const |
Get next directory.
References getTIFF(), makeCurrent(), and openOffset().
Referenced by getField().
|
static |
Open an IFD by index.
tiff | the source TIFF. |
index | the directory index. |
References ome::files::tiff::Sentry::error(), and openOffset().
|
static |
Open an IFD.
tiff | the source TIFF. |
offset | the directory offset. |
Referenced by ome::files::tiff::TIFF::getDirectoryByOffset(), next(), and openIndex().
void ome::files::tiff::IFD::readImage | ( | VariantPixelBuffer & | buf | ) | const |
Read a whole image plane into a pixel buffer.
buf | the destination pixel buffer. |
References getImageHeight(), and getImageWidth().
Referenced by getField(), and readImage().
void ome::files::tiff::IFD::readImage | ( | VariantPixelBuffer & | buf, |
dimension_size_type | subC | ||
) | const |
Read a whole image plane into a pixel buffer.
buf | the destination pixel buffer. |
subC | the subchannel to read. |
References getImageHeight(), getImageWidth(), and readImage().
void ome::files::tiff::IFD::readImage | ( | VariantPixelBuffer & | dest, |
dimension_size_type | x, | ||
dimension_size_type | y, | ||
dimension_size_type | w, | ||
dimension_size_type | h | ||
) | const |
Read a region of an image plane into a pixel buffer.
If the destination pixel buffer is of a different size to the region being read, or is of the incorrect pixel type, or has a different storage order, it will be resized using the correct pixel type and storage order.
dest | the destination pixel buffer. |
x | the X coordinate of the upper-left corner of the sub-image. |
y | the Y coordinate of the upper-left corner of the sub-image. |
w | the width of the sub-image. |
h | the height of the sub-image. |
References ome::files::DIM_CHANNEL, ome::files::DIM_MODULO_C, ome::files::DIM_MODULO_T, ome::files::DIM_MODULO_Z, ome::files::DIM_SPATIAL_X, ome::files::DIM_SPATIAL_Y, ome::files::DIM_SPATIAL_Z, ome::files::DIM_SUBCHANNEL, ome::files::DIM_TEMPORAL_T, ome::files::PixelBufferBase::dimensions, getPixelType(), getPlanarConfiguration(), getSamplesPerPixel(), getTileInfo(), ome::files::PixelBufferBase::make_storage_order(), ome::files::VariantPixelBuffer::pixelType(), ome::files::tiff::SEPARATE, ome::files::VariantPixelBuffer::setBuffer(), ome::files::VariantPixelBuffer::shape(), ome::files::VariantPixelBuffer::storage_order(), ome::files::tiff::TileInfo::tileCoverage(), ome::files::VariantPixelBuffer::vbuffer(), and ome::xml::model::enums::DimensionOrder::XYZTC.
void ome::files::tiff::IFD::readImage | ( | VariantPixelBuffer & | dest, |
dimension_size_type | x, | ||
dimension_size_type | y, | ||
dimension_size_type | w, | ||
dimension_size_type | h, | ||
dimension_size_type | subC | ||
) | const |
Read a region of an image plane into a pixel buffer.
If the destination pixel buffer is of a different size to the region being read, or is of the incorrect pixel type, or has a different storage order, it will be resized using the correct pixel type and storage order.
dest | the destination pixel buffer. |
x | the X coordinate of the upper-left corner of the sub-image. |
y | the Y coordinate of the upper-left corner of the sub-image. |
w | the width of the sub-image. |
h | the height of the sub-image. |
subC | the subchannel to read. |
References readImage(), and ome::files::VariantPixelBuffer::vbuffer().
void ome::files::tiff::IFD::readLookupTable | ( | VariantPixelBuffer & | buf | ) | const |
Read a lookup table into a pixel buffer.
buf | the destination pixel buffer. |
References ome::files::tiff::COLORMAP, ome::files::DIM_CHANNEL, ome::files::DIM_MODULO_C, ome::files::DIM_MODULO_T, ome::files::DIM_MODULO_Z, ome::files::DIM_SPATIAL_X, ome::files::DIM_SPATIAL_Y, ome::files::DIM_SPATIAL_Z, ome::files::DIM_SUBCHANNEL, ome::files::DIM_TEMPORAL_T, getField(), ome::files::PixelBufferBase::make_storage_order(), ome::files::VariantPixelBuffer::setBuffer(), ome::files::VariantPixelBuffer::vbuffer(), and ome::xml::model::enums::DimensionOrder::XYZTC.
Referenced by getField().
void ome::files::tiff::IFD::setBitsPerSample | ( | uint16_t | samples | ) |
Set bits per sample.
samples | the number of bits per sample. |
References ome::files::tiff::BITSPERSAMPLE, getField(), getPixelType(), impl, and ome::files::significantBitsPerPixel().
Referenced by getField().
void ome::files::tiff::IFD::setCompression | ( | Compression | compression | ) |
Set compression scheme.
compression | the compression scheme. |
References ome::files::tiff::COMPRESSION, getField(), and impl.
Referenced by getField().
void ome::files::tiff::IFD::setCurrentTile | ( | dimension_size_type | tile | ) |
Set the current tile being written.
This is the tile currently being modified pending flush.
tile | the current tile. |
References impl.
Referenced by getField().
void ome::files::tiff::IFD::setImageHeight | ( | uint32_t | height | ) |
Set the image height.
height | the image height. |
References getField(), ome::files::tiff::IMAGELENGTH, and impl.
Referenced by getField().
void ome::files::tiff::IFD::setImageWidth | ( | uint32_t | width | ) |
Set the image width.
width | the image width. |
References getField(), ome::files::tiff::IMAGEWIDTH, and impl.
Referenced by getField().
void ome::files::tiff::IFD::setPhotometricInterpretation | ( | PhotometricInterpretation | photometric | ) |
Set photometric interpretation.
photometric | the photometric interpretation of sample values. |
References getField(), impl, and ome::files::tiff::PHOTOMETRIC.
Referenced by getField().
void ome::files::tiff::IFD::setPixelType | ( | ::ome::xml::model::enums::PixelType | type | ) |
Set the OME data model PixelType.
This sets the SampleFormat and BitsPerSample tags for this IFD which correspond to the PixelType in use.
type | the PixelType to set. |
an | Exception if the PixelType is invalid. |
References ome::files::tiff::COMPLEX_FLOAT, ome::files::tiff::FLOAT, getField(), impl, ome::files::tiff::SAMPLEFORMAT, ome::files::tiff::SIGNED_INT, and ome::files::tiff::UNSIGNED_INT.
Referenced by getField().
void ome::files::tiff::IFD::setPlanarConfiguration | ( | PlanarConfiguration | planarconfig | ) |
Set planar configuration.
planarconfig | the number of planar configuration. |
References getField(), impl, and ome::files::tiff::PLANARCONFIG.
Referenced by getField().
void ome::files::tiff::IFD::setRawField | ( | tag_type | tag, |
... | |||
) |
Set a field by its tag number.
tag | the tag number. |
... | variables containing the value(s) to set. |
References ome::files::tiff::Sentry::error(), getTIFF(), and makeCurrent().
void ome::files::tiff::IFD::setSamplesPerPixel | ( | uint16_t | samples | ) |
Set samples per pixel.
samples | the number of samples per pixel. |
References getField(), impl, and ome::files::tiff::SAMPLESPERPIXEL.
Referenced by getField().
void ome::files::tiff::IFD::setTileHeight | ( | uint32_t | height | ) |
Set the tile height.
height | the tile height. |
References getField(), getTileType(), impl, ome::files::tiff::ROWSPERSTRIP, ome::files::tiff::TILE, and ome::files::tiff::TILELENGTH.
Referenced by getField().
void ome::files::tiff::IFD::setTileType | ( | TileType | type | ) |
Set the tile type.
type | the tile type. |
References impl.
Referenced by getField().
void ome::files::tiff::IFD::setTileWidth | ( | uint32_t | width | ) |
Set the tile width.
width | the tile width. |
References getField(), getTileType(), impl, ome::files::tiff::TILE, and ome::files::tiff::TILEWIDTH.
Referenced by getField().
void ome::files::tiff::IFD::writeImage | ( | const VariantPixelBuffer & | buf | ) |
Write a whole image plane from a pixel buffer.
buf | the source pixel buffer. |
References getImageHeight(), and getImageWidth().
Referenced by getField(), and writeImage().
void ome::files::tiff::IFD::writeImage | ( | const VariantPixelBuffer & | buf, |
dimension_size_type | subC | ||
) |
Write a whole image plane from a pixel buffer.
buf | the source pixel buffer. |
subC | the subchannel to write. |
References getImageHeight(), getImageWidth(), and writeImage().
void ome::files::tiff::IFD::writeImage | ( | const VariantPixelBuffer & | source, |
dimension_size_type | x, | ||
dimension_size_type | y, | ||
dimension_size_type | w, | ||
dimension_size_type | h | ||
) |
Write a whole image plane from a pixel buffer.
The source pixel buffer must match the size of the region being written, and must also the same pixel type and storage ordering as the TIFF image.
source | the source pixel buffer. |
x | the X coordinate of the upper-left corner of the sub-image. |
y | the Y coordinate of the upper-left corner of the sub-image. |
w | the width of the sub-image. |
h | the height of the sub-image. |
References ome::files::DIM_CHANNEL, ome::files::DIM_MODULO_C, ome::files::DIM_MODULO_T, ome::files::DIM_MODULO_Z, ome::files::DIM_SPATIAL_X, ome::files::DIM_SPATIAL_Y, ome::files::DIM_SPATIAL_Z, ome::files::DIM_SUBCHANNEL, ome::files::DIM_TEMPORAL_T, ome::files::PixelBufferBase::dimensions, getPixelType(), getPlanarConfiguration(), getSamplesPerPixel(), getTileInfo(), impl, ome::files::PixelBufferBase::make_storage_order(), ome::files::VariantPixelBuffer::pixelType(), ome::files::tiff::SEPARATE, ome::files::VariantPixelBuffer::shape(), ome::files::VariantPixelBuffer::storage_order(), ome::files::VariantPixelBuffer::vbuffer(), and ome::xml::model::enums::DimensionOrder::XYZTC.
void ome::files::tiff::IFD::writeImage | ( | const VariantPixelBuffer & | source, |
dimension_size_type | x, | ||
dimension_size_type | y, | ||
dimension_size_type | w, | ||
dimension_size_type | h, | ||
dimension_size_type | subC | ||
) |
Write a whole image plane from a pixel buffer.
The source pixel buffer must match the size of the region being written, and must also the same pixel type and storage ordering as the TIFF image.
source | the source pixel buffer. |
x | the X coordinate of the upper-left corner of the sub-image. |
y | the Y coordinate of the upper-left corner of the sub-image. |
w | the width of the sub-image. |
h | the height of the sub-image. |
subC | the subchannel to write. |