VTK  9.7.1
vtkTIFFWriter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
18 #ifndef vtkTIFFWriter_h
19 #define vtkTIFFWriter_h
20 
21 #include "vtkIOImageModule.h" // For export macro
22 #include "vtkImageWriter.h"
23 
24 VTK_ABI_NAMESPACE_BEGIN
25 struct vtkTIFFWriterWriteVolumeFunctor;
26 
27 class VTKIOIMAGE_EXPORT vtkTIFFWriter : public vtkImageWriter
28 {
29 public:
30  static vtkTIFFWriter* New();
31  vtkTypeMacro(vtkTIFFWriter, vtkImageWriter);
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
37  void Write() override;
38 
39  enum
40  { // Compression types
45  LZW
46  };
47 
49 
53  vtkSetClampMacro(Compression, int, NoCompression, LZW);
54  vtkGetMacro(Compression, int);
55  void SetCompressionToNoCompression() { this->SetCompression(NoCompression); }
56  void SetCompressionToPackBits() { this->SetCompression(PackBits); }
57  void SetCompressionToJPEG() { this->SetCompression(JPEG); }
58  void SetCompressionToDeflate() { this->SetCompression(Deflate); }
59  void SetCompressionToLZW() { this->SetCompression(LZW); }
61 
62 protected:
63  vtkTIFFWriter();
64  ~vtkTIFFWriter() override = default;
65 
66  void WriteFile(ostream* file, vtkImageData* data, VTK_FUTURE_CONST int ext[6],
67  VTK_FUTURE_CONST int wExt[6]) override;
68  void WriteFileHeader(ostream*, vtkImageData*, VTK_FUTURE_CONST int wExt[6]) override;
69  void WriteFileTrailer(ostream*, vtkImageData*) override;
70 
71  void* TIFFPtr;
73  int Width;
74  int Height;
75  int Pages;
76  double XResolution;
77  double YResolution;
78 
79 private:
80  vtkTIFFWriter(const vtkTIFFWriter&) = delete;
81  void operator=(const vtkTIFFWriter&) = delete;
82 
83  friend struct vtkTIFFWriterWriteVolumeFunctor;
84 };
85 
86 VTK_ABI_NAMESPACE_END
87 #endif
void SetCompressionToDeflate()
Set compression type.
Definition: vtkTIFFWriter.h:58
write out image data as a TIFF file
Definition: vtkTIFFWriter.h:27
virtual void WriteFile(ostream *file, vtkImageData *data, VTK_FUTURE_CONST int extent[6], VTK_FUTURE_CONST int wExtent[6])
void SetCompressionToLZW()
Set compression type.
Definition: vtkTIFFWriter.h:59
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:28
void SetCompressionToNoCompression()
Set compression type.
Definition: vtkTIFFWriter.h:55
void SetCompressionToJPEG()
Set compression type.
Definition: vtkTIFFWriter.h:57
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
virtual void Write()
The main interface which triggers the writer to start.
void SetCompressionToPackBits()
Set compression type.
Definition: vtkTIFFWriter.h:56
double XResolution
Definition: vtkTIFFWriter.h:76
Writes images to files.
static vtkImageWriter * New()
double YResolution
Definition: vtkTIFFWriter.h:77
virtual void WriteFileHeader(ostream *, vtkImageData *, VTK_FUTURE_CONST int[6])
virtual void WriteFileTrailer(ostream *, vtkImageData *)