18 #ifndef itkTIFFImageIO_h
19 #define itkTIFFImageIO_h
20 #include "ITKIOTIFFExport.h"
28 class TIFFReaderInternal;
72 CanReadFile(
const char *)
override;
76 ReadImageInformation()
override;
80 Read(
void * buffer)
override;
84 ReadVolume(
void * buffer);
91 CanWriteFile(
const char *)
override;
96 WriteImageInformation()
override;
101 Write(
const void * buffer)
override;
131 this->UseCompressionOff();
132 this->SetCompressor(
"NoCompression");
137 this->UseCompressionOn();
138 this->SetCompressor(
"PackBits");
143 this->UseCompressionOn();
144 this->SetCompressor(
"JPEG");
149 this->UseCompressionOn();
150 this->SetCompressor(
"Deflate");
155 this->UseCompressionOn();
156 this->SetCompressor(
"LZW");
166 this->SetCompressionLevel(_JPEGQuality);
171 return this->GetCompressionLevel();
180 itkGetConstReferenceMacro(ColorPalette, PaletteType);
187 if (this->m_ColorPalette != _arg)
189 this->m_ColorPalette = _arg;
199 PrintSelf(std::ostream & os,
Indent indent)
const override;
202 InternalSetCompressor(
const std::string & _compressor)
override;
209 m_Compression = compression;
213 InternalWrite(
const void * buffer);
219 ReadGenericImage(
void * out,
unsigned int width,
unsigned int height);
223 ReadTwoSamplesPerPixelImage(
void * out,
unsigned int width,
unsigned int height);
229 GetColor(uint64_t index, uint16_t * red, uint16_t * green, uint16_t * blue);
233 CanFindTIFFTag(
unsigned int t);
237 ReadRawByteFromTag(
unsigned int t,
unsigned int & value_count);
242 PopulateColorPalette();
244 TIFFReaderInternal * m_InternalImage{};
255 AllocateTiffPalette(uint16_t bps);
258 ReadCurrentPage(
void * buffer,
size_t pixelOffset);
260 template <
typename TComponent>
262 ReadGenericImage(
void * _out,
unsigned int width,
unsigned int height);
264 template <
typename TComponent>
266 RGBAImageToBuffer(
void * out,
const uint32_t * tempImage);
268 template <
typename TType>
270 PutGrayscale(TType * to,
275 unsigned int fromskew);
277 template <
typename TType>
279 PutRGB_(TType * to, TType * from,
unsigned int xsize,
unsigned int ysize,
unsigned int toskew,
unsigned int fromskew);
282 template <
typename TType,
typename TFromType>
284 PutPaletteGrayscale(TType * to,
289 unsigned int fromskew);
291 template <
typename TType,
typename TFromType>
293 PutPaletteRGB(TType * to,
298 unsigned int fromskew);
300 template <
typename TType,
typename TFromType>
302 PutPaletteScalar(TType * to,
307 unsigned int fromskew);
309 uint16_t * m_ColorRed{};
310 uint16_t * m_ColorGreen{};
311 uint16_t * m_ColorBlue{};
312 uint64_t m_TotalColors{ 0 };
317 #endif // itkTIFFImageIO_h