]> Creatis software - creaImageIO.git/blob - src/creaImageIOSimpleView.cpp
c3d22d4ee0d9d03c36d788c2eb6b7f27a72a1929
[creaImageIO.git] / src / creaImageIOSimpleView.cpp
1 #include "creaImageIOSimpleView.h"
2 #include "boost/filesystem/operations.hpp"
3 #include "boost/filesystem/fstream.hpp"
4
5 namespace creaImageIO
6 {
7         bool SimpleView::readFile(std::vector<std::string> i_filenames, std::vector<vtkImageData *> &i_img)
8         {
9                         bool bresult, bfinal = true;
10                         ImageReader *mReader = new ImageReader();
11                         std::vector<std::string>::iterator it = i_filenames.begin();
12                         for (; it != i_filenames.end(); it++)
13                         {
14                                 bresult = mReader->CanRead((*it).c_str());
15                                 if(bresult)
16                                 {
17                                         i_img.push_back(mReader->ReadImage((*it).c_str()));
18                                 }
19                                 else
20                                 {
21                                         bfinal = false;
22                                 }
23                         }
24                         delete mReader;
25                         return bfinal;  
26         }
27
28         bool SimpleView::readDirectory(const std::string i_pathname, std::vector<vtkImageData *> &i_imgs)
29         {
30                         bool bresult = true;
31                         ImageReader *mReader = new ImageReader();
32                         std::vector<std::string> names;
33                         bresult = boost::filesystem::exists( i_pathname );
34                         if (bresult)
35                         {
36                                 boost::filesystem::directory_iterator itr(i_pathname);
37                                 boost::filesystem::directory_iterator end_itr; 
38                                 for(;itr != end_itr; ++itr)
39                                 {
40                                         if (!boost::filesystem::is_directory(itr->status()))
41                                         {
42                                                 if( mReader->CanRead(itr->string()) )
43                                                 {
44                                                         names.push_back(itr->string()); 
45                                                 }
46                                         }
47                                 }
48                                 std::sort (names.begin(), names.end()); // make sure names are in lexicographical order
49                                 int lgr = names.size();
50                                 
51                                 for(int i=0; i<lgr; i++)
52                                 {
53                                    std::cout << names[i] << std::endl;
54                                    i_imgs.push_back( mReader->ReadImage(names[i]) );  
55                                 }                       
56                         }
57                         return bresult;
58         }
59 }
60