#include #include #include #include #include #include #include #include #include #include #include #include //#include #include "boost/filesystem/path.hpp" namespace creaImageIO { //===================================================================== ImageReader::ImageReader() : mUnreadableImage(0), mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"), mLastReader(0) { // std::cout << "#### ImageReader::ImageReader()"<::const_iterator i; for (i=GetKnownExtensions().begin(); i!=GetKnownExtensions().end(); i++) { std::cout << "'"<<(*i)<<"'"<SetDimensions ( dim ); mUnreadableImage->SetScalarTypeToUnsignedChar(); mUnreadableImage->AllocateScalars(); for (int i=0;iSetScalarComponentFromFloat(i,j,0,0,0); for (int i=0;iSetScalarComponentFromFloat(i,i,0,0,255); mUnreadableImage->SetScalarComponentFromFloat(dim[0]-1-i,i,0,0,255); } } //===================================================================== //===================================================================== ImageReader::~ImageReader() { // std::cout << "#### ImageReader::~ImageReader()"<::iterator i; for (i=mReader.begin(); i!=mReader.end(); i++) { // std::cout << "#### ImageReader::UnRegister(" // << (*i)->GetName()<<")"<Delete(); mUnreadableImage = 0; } } //===================================================================== //===================================================================== void ImageReader::Register(AbstractImageReader* r) { // std::cout << "#### ImageReader::Register("<GetName()<<")"<PushBackExtensions(mKnownExtensions); } //===================================================================== //===================================================================== // Returns true iff the file is readable bool ImageReader::CanRead( const std::string& filename ) // const std::string& exclude ) { // std::cout << "## ImageReader::CanRead("<::iterator i; for (i=mReader.begin(); i!=mReader.end(); i++) { // if ((*i)->GetName()==exclude) continue; ok = (*i)->CanRead(filename); if (ok) { mLastFilename = filename; mLastReader = *i; break; } } return ok; } //===================================================================== //===================================================================== // Reads the file (CanRead must be called before : no test here) vtkImageData* ImageReader::ReadImage( const std::string& filename) // const std::string& exclude ) { // std::cout << "## ImageReader::Read("<ShallowCopy(mUnreadableImage); return im; } } vtkImageData* i = mLastReader->ReadImage(mLastFilename); // std::cout << "i="<ShallowCopy(mUnreadableImage); } // std::cout << "i="<GetScalarTypeAsString()<<", pointer="<& attr) { // std::cout << "ImageReader::ReadDicomInfo '"<ReadAttributes(mLastFilename,attr); } //===================================================================== //===================================================================== /// Pushes back all kwown extensions (without dot) in the vector given void ImageReader::PushBackExtensions(std::vector& v) { std::vector::iterator i; for (i=mReader.begin(); i!=mReader.end(); i++) { (*i)->PushBackExtensions(v); } } //===================================================================== } // namespace creaImageIO