18 #ifndef itkImageFileWriter_h
19 #define itkImageFileWriter_h
20 #include "ITKIOImageBaseExport.h"
43 const char * message =
"Error in IO",
44 const char * loc =
"Unknown")
45 : ExceptionObject(file, line, message, loc)
51 const char * message =
"Error in IO",
52 const char * loc =
"Unknown")
53 : ExceptionObject(file, line, message, loc)
93 template <typename TInputImage>
118 using Superclass::SetInput;
126 GetInput(
unsigned int idx);
129 itkSetStringMacro(FileName);
130 itkGetStringMacro(FileName);
146 if (this->m_ImageIO != io)
149 this->m_ImageIO = io;
151 m_FactorySpecifiedImageIO =
false;
174 return m_PasteIORegion;
179 itkSetMacro(NumberOfStreamDivisions,
unsigned int);
180 itkGetConstReferenceMacro(NumberOfStreamDivisions,
unsigned int);
199 m_PasteIORegion =
ImageIORegion(TInputImage::ImageDimension);
200 m_UserSpecifiedIORegion =
false;
205 itkSetMacro(UseCompression,
bool);
206 itkGetConstReferenceMacro(UseCompression,
bool);
207 itkBooleanMacro(UseCompression);
212 itkSetMacro(CompressionLevel,
int);
213 itkGetConstReferenceMacro(CompressionLevel,
int);
222 itkSetMacro(UseInputMetaDataDictionary,
bool);
223 itkGetConstReferenceMacro(UseInputMetaDataDictionary,
bool);
224 itkBooleanMacro(UseInputMetaDataDictionary);
231 PrintSelf(std::ostream & os,
Indent indent)
const override;
235 GenerateData()
override;
238 std::string m_FileName{};
241 bool m_UserSpecifiedImageIO{
false };
244 unsigned int m_NumberOfStreamDivisions{ 1 };
245 bool m_UserSpecifiedIORegion{
false };
247 bool m_FactorySpecifiedImageIO{
false };
248 bool m_UseCompression{
false };
249 int m_CompressionLevel{ -1 };
250 bool m_UseInputMetaDataDictionary{
true };
258 template <
typename TImagePo
inter>
259 ITK_TEMPLATE_EXPORT
void
260 WriteImage(TImagePointer && image,
const std::string & filename,
bool compress =
false)
262 using NonReferenceImagePointer = std::remove_reference_t<TImagePointer>;
263 static_assert(std::is_pointer_v<NonReferenceImagePointer> || mpl::IsSmartPointer<NonReferenceImagePointer>::Value,
264 "WriteImage requires a raw pointer or SmartPointer.");
267 using ImageType = std::remove_const_t<std::remove_reference_t<decltype(*image)>>;
269 writer->SetInput(image);
270 writer->SetFileName(filename);
271 writer->SetUseCompression(compress);
277 #ifndef ITK_MANUAL_INSTANTIATION
278 # include "itkImageFileWriter.hxx"
281 #if defined ITK_IMAGEIO_FACTORY_REGISTER_MANAGER || defined ITK_IO_FACTORY_REGISTER_MANAGER
282 # include "itkImageIOFactoryRegisterManager.h"
285 #endif // itkImageFileWriter_h