38 #ifndef OME_FILES_TIFF_IFD_H
39 #define OME_FILES_TIFF_IFD_H
45 #include <ome/files/CoreMetadata.h>
46 #include <ome/files/TileCoverage.h>
47 #include <ome/files/tiff/TileInfo.h>
48 #include <ome/files/tiff/Types.h>
49 #include <ome/files/VariantPixelBuffer.h>
51 #include <ome/xml/model/enums/PixelType.h>
63 template<
typename Tag>
71 class IFD :
public ome::compat::enable_shared_from_this<IFD>
76 ome::compat::shared_ptr<Impl>
impl;
80 IFD(ome::compat::shared_ptr<TIFF>& tiff,
84 IFD(ome::compat::shared_ptr<TIFF>& tiff);
105 static ome::compat::shared_ptr<IFD>
106 openIndex(ome::compat::shared_ptr<TIFF>& tiff,
116 static ome::compat::shared_ptr<IFD>
117 openOffset(ome::compat::shared_ptr<TIFF>& tiff,
126 static ome::compat::shared_ptr<IFD>
127 current(ome::compat::shared_ptr<TIFF>& tiff);
134 ome::compat::shared_ptr<TIFF>&
189 template<
typename TagCategory>
202 template<
typename TagCategory>
272 std::vector<TileCoverage>&
280 const std::vector<TileCoverage>&
546 ome::compat::shared_ptr<IFD>
562 #endif // OME_FILES_TIFF_IFD_H
TileType
Type of tile.
Definition: Types.h:208
void setPlanarConfiguration(PlanarConfiguration planarconfig)
Set planar configuration.
Definition: IFD.cpp:1159
const Field< TagCategory > getField(TagCategory tag) const
Get a Field by its tag enumeration.
Definition: IFD.h:204
void setTileHeight(uint32_t height)
Set the tile height.
Definition: IFD.cpp:948
ome::compat::shared_ptr< IFD > next() const
Get next directory.
Definition: IFD.cpp:1391
void setSamplesPerPixel(uint16_t samples)
Set samples per pixel.
Definition: IFD.cpp:1140
IFD(ome::compat::shared_ptr< TIFF > &tiff, offset_type offset)
Constructor (not public).
Definition: IFD.cpp:653
void getRawField(tag_type tag,...) const
Get a field by its tag number.
Definition: IFD.cpp:738
std::size_t dimension_size_type
Size type for image dimensions.
Definition: Types.h:59
uint32_t getImageHeight() const
Get the image height.
Definition: IFD.cpp:875
PhotometricInterpretation getPhotometricInterpretation() const
Get photometric interpretation.
Definition: IFD.cpp:1166
void setCurrentTile(dimension_size_type tile)
Set the current tile being written.
Definition: IFD.cpp:826
Tile information for an IFD.
Definition: TileInfo.h:61
void setPixelType(::ome::xml::model::enums::PixelType type)
Set the OME data model PixelType.
Definition: IFD.cpp:1062
PlanarConfiguration
Planar configuration of samples.
Definition: Types.h:167
void setPhotometricInterpretation(PhotometricInterpretation photometric)
Set photometric interpretation.
Definition: IFD.cpp:1178
uint16_t getBitsPerSample() const
Get bits per sample.
Definition: IFD.cpp:1105
unsigned int tag_type
Tag number.
Definition: Types.h:59
static ome::compat::shared_ptr< IFD > openOffset(ome::compat::shared_ptr< TIFF > &tiff, offset_type offset)
Open an IFD.
Definition: IFD.cpp:689
bool last() const
Check if this is the last directory.
Definition: IFD.cpp:1412
dimension_size_type getCurrentTile() const
Get the current tile being written.
Definition: IFD.cpp:820
uint32_t getTileHeight() const
Get the tile height.
Definition: IFD.cpp:927
TileType getTileType() const
Get the tile type.
Definition: IFD.cpp:792
uint64_t offset_type
IFD offset.
Definition: Types.h:56
uint32_t getTileWidth() const
Get the tile width.
Definition: IFD.cpp:894
ome::compat::shared_ptr< TIFF > & getTIFF() const
Get the source TIFF this descriptor belongs to.
Definition: IFD.cpp:726
void setTileType(TileType type)
Set the tile type.
Definition: IFD.cpp:814
std::vector< TileCoverage > & getTileCoverage()
Get tile coverage cache.
Definition: IFD.cpp:844
void writeImage(const VariantPixelBuffer &buf)
Write a whole image plane from a pixel buffer.
Definition: IFD.cpp:1298
virtual ~IFD()
Destructor.
Definition: IFD.cpp:668
void setTileWidth(uint32_t width)
Set the tile width.
Definition: IFD.cpp:913
void setRawField(tag_type tag,...)
Set a field by its tag number.
Definition: IFD.cpp:767
void readImage(VariantPixelBuffer &buf) const
Read a whole image plane into a pixel buffer.
Definition: IFD.cpp:1185
uint32_t getImageWidth() const
Get the image width.
Definition: IFD.cpp:856
::ome::xml::model::enums::PixelType getPixelType() const
Get the OME data model PixelType.
Definition: IFD.cpp:962
PlanarConfiguration getPlanarConfiguration() const
Get planar configuration.
Definition: IFD.cpp:1147
offset_type getOffset() const
Get the directory offset.
Definition: IFD.cpp:732
void makeCurrent() const
Make this IFD the current directory.
Definition: IFD.cpp:706
ome::compat::shared_ptr< Impl > impl
Private implementation details.
Definition: IFD.h:74
Field representing a tag value.
Definition: Field.h:157
void setImageHeight(uint32_t height)
Set the image height.
Definition: IFD.cpp:887
Internal implementation details of OffsetIFD.
Definition: IFD.cpp:582
static ome::compat::shared_ptr< IFD > current(ome::compat::shared_ptr< TIFF > &tiff)
Get the current IFD.
Definition: IFD.cpp:698
void readLookupTable(VariantPixelBuffer &buf) const
Read a lookup table into a pixel buffer.
Definition: IFD.cpp:1252
void setImageWidth(uint32_t width)
Set the image width.
Definition: IFD.cpp:868
void setBitsPerSample(uint16_t samples)
Set bits per sample.
Definition: IFD.cpp:1117
PhotometricInterpretation
Photometric interpretation of pixel data.
Definition: Types.h:149
TileInfo getTileInfo()
Get tiling metadata.
Definition: IFD.cpp:832
uint16_t directory_index_type
IFD index.
Definition: Types.h:53
Image File Directory (IFD).
Definition: IFD.h:71
Field< TagCategory > getField(TagCategory tag)
Get a Field by its tag enumeration.
Definition: IFD.h:191
static ome::compat::shared_ptr< IFD > openIndex(ome::compat::shared_ptr< TIFF > &tiff, directory_index_type index)
Open an IFD by index.
Definition: IFD.cpp:673
uint16_t getSamplesPerPixel() const
Get samples per pixel.
Definition: IFD.cpp:1128
Buffer for all pixel types.
Definition: VariantPixelBuffer.h:75
IFD & operator=(const IFD &)
Assignment operator (deleted).