// std::cout << "#### ImageReader::ImageReader()"<<std::endl;
if (mUnreadableImage!=0) return;
- Register(new VtkImageReader(vtkPNGReader::New()));
- Register(new VtkImageReader(vtkTIFFReader::New()));
+
+ Register(new VtkImageReader(vtkPNGReader::New(), "PNG", ".png"));
+ Register(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg"));
Register(new VtkImageReader(vtkJPEGReader::New()));
Register(new VtkImageReader(vtkBMPReader::New()));
Register(new VtkImageReader(vtkSLCReader::New()));
Register(new DicomImageReader);
Register(new UltrasonixImageReader);
- /*
- std::cout << "## Registered file extensions : "<<std::endl;
- std::vector<std::string>::const_iterator i;
- for (i=GetKnownExtensions().begin();
- i!=GetKnownExtensions().end();
- i++)
- {
- std::cout << "'"<<(*i)<<"'"<<std::endl;
- }
- */
- //
+
mUnreadableImage = vtkImageData::New();
int dim[3];
dim[0] = dim[1] = 128;
//=====================================================================
ImageReader::~ImageReader()
{
- // std::cout << "#### ImageReader::~ImageReader()"<<std::endl;
- std::vector<AbstractImageReader*>::iterator i;
+ std::vector<AbstractImageReader*>::iterator i;
for (i=mReader.begin(); i!=mReader.end(); i++)
{
- // std::cout << "#### ImageReader::UnRegister("
- // << (*i)->GetName()<<")"<<std::endl;
delete (*i);
}
mReader.clear();
//=====================================================================
void ImageReader::Register(AbstractImageReader* r)
{
- // std::cout << "#### ImageReader::Register("<<r->GetName()<<")"<<std::endl;
mReader.push_back(r);
- // r->PushBackExtensions(mKnownExtensions);
+
}
//=====================================================================
//=====================================================================
// Returns true iff the file is readable
bool ImageReader::CanRead( const std::string& filename )
- // const std::string& exclude )
{
- // std::cout << "## ImageReader::CanRead("<<filename<<")"<<std::endl;
bool ok = false;
- std::vector<AbstractImageReader*>::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;
+ if(filename != "")
+ {
+ std::vector<AbstractImageReader*>::iterator i;
+ for (i=mReader.begin(); i!=mReader.end(); i++)
+ {
+ 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("<<filename<<")"<<std::endl;
if (mLastFilename!=filename)
{
- if (!CanRead(filename)) //,exclude))
+ if (!CanRead(filename))
{
- // std::cout << " -- Cannot read image "<<std::endl;
vtkImageData* im = vtkImageData::New();
im->ShallowCopy(mUnreadableImage);
return im;
}
}
vtkImageData* i = mLastReader->ReadImage(mLastFilename);
- // std::cout << "i="<<i<<std::endl;
if (i==0)
{
- // std::cout << "i=UNREAD"<<i<<std::endl;
i = vtkImageData::New();
i->ShallowCopy(mUnreadableImage);
}
- // std::cout << "i="<<i<<std::endl;
return i;
}
//=====================================================================
void ImageReader::ReadAttributes(const std::string& filename,
std::map<std::string,std::string>& attr)
{
- // std::cout << "ImageReader::ReadDicomInfo '"<<filename<<"'"<<std::endl;
- // std::cout << "## ImageReader::Read("<<filename<<")"<<std::endl;
if (mLastFilename!=filename)
{
if (!CanRead(filename))