creaImageIOSimpleView.cpp

Go to the documentation of this file.
00001 #include "creaImageIOSimpleView.h"
00002 #include "boost/filesystem/operations.hpp"
00003 #include "boost/filesystem/fstream.hpp"
00004 
00005 namespace creaImageIO
00006 {
00007         bool SimpleView::readFile(std::vector<std::string> i_filenames, std::vector<vtkImageData *> &i_img)
00008         {
00009                         bool bresult, bfinal = true;
00010                         ImageReader *mReader = new ImageReader();
00011                         std::vector<std::string>::iterator it = i_filenames.begin();
00012                         for (; it != i_filenames.end(); it++)
00013                         {
00014                                 bresult = mReader->CanRead((*it).c_str());
00015                                 if(bresult)
00016                                 {
00017                                         i_img.push_back(mReader->ReadImage((*it).c_str()));
00018                                 }
00019                                 else
00020                                 {
00021                                         bfinal = false;
00022                                 }
00023                         }
00024                         delete mReader;
00025                         return bfinal;  
00026         }
00027 
00028         bool SimpleView::readDirectory(const std::string i_pathname, std::vector<vtkImageData *> &i_imgs)
00029         {
00030                         bool bresult = true;
00031                         ImageReader *mReader = new ImageReader();
00032                         std::vector<std::string> names;
00033                         bresult = boost::filesystem::exists( i_pathname );
00034                         if (bresult)
00035                         {
00036                                 boost::filesystem::directory_iterator itr(i_pathname);
00037                                 boost::filesystem::directory_iterator end_itr; 
00038                                 for(;itr != end_itr; ++itr)
00039                                 {
00040                                         if (!boost::filesystem::is_directory(itr->status()))
00041                                         {
00042                                                 if( mReader->CanRead(itr->string()) )
00043                                                 {
00044                                                         names.push_back(itr->string()); 
00045                                                 }
00046                                         }
00047                                 }
00048                                 std::sort (names.begin(), names.end()); // make sure names are in lexicographical order
00049                                 int lgr = names.size();
00050                                 
00051                                 for(int i=0; i<lgr; i++)
00052                                 {
00053                                    std::cout << names[i] << std::endl;
00054                                    i_imgs.push_back( mReader->ReadImage(names[i]) );  
00055                                 }                       
00056                         }
00057                         return bresult;
00058         }
00059 }
00060