]> Creatis software - creaImageIO.git/blob - src/creaImageIOSimpleView.cpp
6c640b33f03657b8c9ea192e29bd71a859aa45f9
[creaImageIO.git] / src / creaImageIOSimpleView.cpp
1 #include "creaImageIOSimpleView.h"
2
3 namespace creaImageIO
4 {
5
6         bool SimpleView::readFile(std::vector<std::string> i_filenames, std::vector<vtkImageData *> &i_img)
7         {
8                         bool bresult, bfinal = true;
9                         ImageReader *mReader = new ImageReader();
10                         std::vector<std::string>::iterator it = i_filenames.begin();
11                         for (; it != i_filenames.end(); it++)
12                         {
13                                 bresult = mReader->CanRead((*it).c_str());
14                                 if(bresult)
15                                 {
16                                         i_img.push_back(mReader->ReadImage((*it).c_str()));
17                                 }
18                                 else
19                                 {
20                                         bfinal = false;
21                                 }
22                         }
23                         delete mReader;
24                         return bfinal;
25                         
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