1 /*=========================================================================
4 Module: $RCSfile: bbitkImageWriter.cxx,v $
6 Date: $Date: 2008/04/18 12:59:50 $
7 Version: $Revision: 1.3 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
24 #include "bbitkImageWriter.h"
25 #include "bbitkPackage.h"
26 #include "itkImageFileWriter.h"
30 BBTK_BLACK_BOX_IMPLEMENTATION(ImageWriter,bbtk::AtomicBlackBox);
32 BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageWriter);
37 void ImageWriter::Write()
39 BBTK_TEMPLATE_ITK_IMAGE_SWITCH(bbGetInputIn().type(),Write);
47 template<class itkImageType>
48 void ImageWriter::Write()
50 bbtkDebugMessageInc("Core",9,"bbitk::ImageWriter::Write<"
51 <<bbtk::TypeName<itkImageType>()
54 typedef itk::ImageFileWriter< itkImageType > itkWriterType;
55 typename itkWriterType::Pointer writer = itkWriterType::New();
56 writer->SetInput(bbGetInputIn().unsafe_get<const itkImageType*>());
57 writer->SetFileName(bbGetInputFilename().c_str());
59 try { writer->Update(); }
60 catch( std::exception & e )
62 bbtkError("could not write image \""<< bbGetInputFilename()
63 << "\" : "<<e.what());
66 bbtkDebugDecTab("Core",9);