--- /dev/null
+/*=========================================================================
+
+ Program: bbtk
+ Module: $RCSfile: bbitkImageReader.cxx,v $
+ Language: C++
+ Date: $Date: 2008/02/05 12:03:01 $
+ Version: $Revision: 1.1 $
+
+ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+ l'Image). All rights reserved. See Doc/License.txt or
+ http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+/**
+ * \file
+ * \brief
+ */
+#ifdef _USE_ITK_
+
+#include "bbitkImageReader.h"
+#include "bbitkPackage.h"
+#include "itkImageFileReader.h"
+
+namespace bbitk
+{
+ BBTK_USER_BLACK_BOX_IMPLEMENTATION(ImageReader,bbtk::UserBlackBox);
+
+ BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageReader);
+
+
+
+
+ void ImageReader::Read()
+ {
+ std::string filename = bbGetInputFilename();
+
+ itk::ImageIOBase::Pointer genericReader =
+ itk::ImageIOFactory::CreateImageIO(filename.c_str(),
+ itk::ImageIOFactory::ReadMode);
+ if (!genericReader)
+ {
+ bbtkError("File format unknown (while reading \"" << filename << "\")");
+ }
+ genericReader->SetFileName(filename.c_str());
+ genericReader->ReadImageInformation();
+
+ bbtk::TypeInfo typ = GetITKImagePtrTypeInfoFromPixelTypeInfoAndDimension(genericReader->GetComponentTypeInfo(), genericReader->GetNumberOfDimensions());
+
+ BBTK_TEMPLATE_ITK_IMAGE_SWITCH( typ, Read);
+ }
+
+
+
+ /**
+ Template Processing
+ */
+ template<class itkImageType>
+ void ImageReader::Read()
+ {
+ bbtkDebugMessageInc("Core",9,"itkImageReader<"<<
+ bbtk::TypeName<itkImageType>()
+ <<">::Read()"<<std::endl);
+
+ typedef itk::ImageFileReader< itkImageType > itkReaderType;
+
+ typename itkReaderType::Pointer reader = itkReaderType::New();
+ std::string filename = bbGetInputFilename();
+ reader->SetFileName(filename.c_str());
+ try { reader->Update(); }
+ catch( std::exception& e )
+ {
+ bbtkError("could not read image \""<< filename << "\" : "<<e.what());
+ }
+
+ reader->GetOutput()->Register();
+ bbSetOutputOut( reader->GetOutput() );
+
+ bbtkDebugDecTab("Core",9);
+ }
+
+
+
+
+
+
+}
+// eo namespace bbtk
+
+#endif