18#ifndef itkImageFileWriter_h
19#define itkImageFileWriter_h
20#include "ITKIOImageBaseExport.h"
45 std::string message =
"Error in IO",
46 std::string location = {})
80template <typename TInputImage>
117 itkSetStringMacro(FileName);
118 itkGetStringMacro(FileName);
167 itkSetMacro(NumberOfStreamDivisions,
unsigned int);
168 itkGetConstReferenceMacro(NumberOfStreamDivisions,
unsigned int);
193 itkSetMacro(UseCompression,
bool);
194 itkGetConstReferenceMacro(UseCompression,
bool);
195 itkBooleanMacro(UseCompression);
200 itkSetMacro(CompressionLevel,
int);
201 itkGetConstReferenceMacro(CompressionLevel,
int);
210 itkSetMacro(UseInputMetaDataDictionary,
bool);
211 itkGetConstReferenceMacro(UseInputMetaDataDictionary,
bool);
212 itkBooleanMacro(UseInputMetaDataDictionary);
245template <
typename TImagePo
inter>
246ITK_TEMPLATE_EXPORT
void
247WriteImage(TImagePointer && image,
const std::string & filename,
bool compress =
false)
249 using NonReferenceImagePointer = std::remove_reference_t<TImagePointer>;
250 static_assert(std::is_pointer_v<NonReferenceImagePointer> || mpl::IsSmartPointer<NonReferenceImagePointer>::Value,
251 "WriteImage requires a raw pointer or SmartPointer.");
253 using ImageType = std::remove_const_t<std::remove_reference_t<
decltype(*image)>>;
255 writer->SetInput(image);
256 writer->SetFileName(filename);
257 writer->SetUseCompression(compress);
263#ifndef ITK_MANUAL_INSTANTIATION
264# include "itkImageFileWriter.hxx"
267#if defined ITK_IMAGEIO_FACTORY_REGISTER_MANAGER || defined ITK_IO_FACTORY_REGISTER_MANAGER
268# include "itkImageIOFactoryRegisterManager.h"
Standard exception handling object.
ExceptionObject() noexcept=default
~ImageFileWriterException() noexcept override
ImageFileWriterException(std::string file, unsigned int line, std::string message="Error in IO", std::string location={})
ITK_DEFAULT_COPY_AND_MOVE(ImageFileWriterException)
bool m_UseInputMetaDataDictionary
void PrintSelf(std::ostream &os, Indent indent) const override
void SetIORegion(const ImageIORegion ®ion)
~ImageFileWriter() override=default
void SetInput(const InputImageType *input)
void SetImageIO(ImageIOBase *io)
SmartPointer< const Self > ConstPointer
void GenerateData() override
ImageIOBase::Pointer m_ImageIO
typename InputImageType::PixelType InputImagePixelType
TInputImage InputImageType
const InputImageType * GetInput(unsigned int idx)
ImageFileWriter()=default
const ImageIORegion & GetIORegion() const
bool m_UserSpecifiedImageIO
ImageIORegion m_PasteIORegion
bool m_FactorySpecifiedImageIO
bool m_UserSpecifiedIORegion
const InputImageType * GetInput()
unsigned int m_NumberOfStreamDivisions
SmartPointer< Self > Pointer
typename InputImageType::Pointer InputImagePointer
typename InputImageType::RegionType InputImageRegionType
void UpdateLargestPossibleRegion() override
Writes the entire image to file.
Abstract superclass defines image IO interface.
SmartPointer< Self > Pointer
An ImageIORegion represents a structured region of data.
Control indentation during Print() invocation.
virtual void Modified() const
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Protected method for setting indexed and named inputs.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITK_TEMPLATE_EXPORT void WriteImage(TImagePointer &&image, const std::string &filename, bool compress=false)