1 #ifndef vvImageWriter_TXX
2 #define vvImageWriter_TXX
3 #include <itkImageFileWriter.h>
6 //====================================================================
7 template<unsigned int VImageDimension>
8 void vvImageWriter::UpdateWithDim(std::string OutputPixelType)
10 if (OutputPixelType == "short")
12 UpdateWithDimAndOutputPixelType<short,VImageDimension>();
14 else if (OutputPixelType == "unsigned short")
16 UpdateWithDimAndOutputPixelType<unsigned short,VImageDimension>();
18 else if (OutputPixelType == "unsigned_short")
20 UpdateWithDimAndOutputPixelType<unsigned short,VImageDimension>();
22 else if (OutputPixelType == "char")
24 UpdateWithDimAndOutputPixelType<char,VImageDimension>();
26 else if (OutputPixelType == "unsigned_char")
28 UpdateWithDimAndOutputPixelType<unsigned char,VImageDimension>();
30 else if (OutputPixelType == "int")
32 UpdateWithDimAndOutputPixelType<int,VImageDimension>();
34 else if (OutputPixelType == "double")
36 UpdateWithDimAndOutputPixelType<double,VImageDimension>();
38 else if (OutputPixelType == "float")
40 UpdateWithDimAndOutputPixelType<float,VImageDimension>();
44 std::cerr << "Error, output pixel type : \"" << OutputPixelType << "\" unknown !" << std::endl;
47 //====================================================================
49 //====================================================================
50 template<class OutputPixelType, unsigned int VImageDimension>
51 void vvImageWriter::UpdateWithDimAndOutputPixelType()
54 typedef itk::Image< OutputPixelType, VImageDimension > OutputImageType;
55 typedef itk::ImageFileWriter<OutputImageType> WriterType;
56 typename WriterType::Pointer writer = WriterType::New();
57 writer->SetFileName(mOutputFilename);
58 writer->SetInput(vvImageToITK<OutputImageType>(mImage));
60 writer->AddObserver(itk::ProgressEvent(), mObserver);
65 catch ( itk::ExceptionObject & err ) {
66 std::cerr << "Error while reading " << mOutputFilename.c_str()
67 << " " << err << std::endl;
68 std::stringstream error;
70 mLastError = error.str();
74 //====================================================================
76 #endif /* end #define vvImageWriter_TXX */