-// $Header: /cvs/public/gdcm/vtk/vtkGdcmReader.cxx,v 1.17 2003/07/07 17:05:17 frog Exp $
+// $Header: /cvs/public/gdcm/vtk/vtkGdcmReader.cxx,v 1.19 2003/09/10 09:31:55 malaterre Exp $
// //////////////////////////////////////////////////////////////
// WARNING TODO CLENAME
// Actual limitations of this code:
#include <vtkPointData.h>
#include "vtkGdcmReader.h"
#include "gdcm.h"
+#include "gdcmHeaderHelper.h"
vtkGdcmReader::vtkGdcmReader()
{
fclose(fp);
// Stage 1.2: check for Gdcm parsability
- gdcmHeader GdcmHeader(FileName->c_str());
+ gdcmHeaderHelper GdcmHeader(FileName->c_str());
if (!GdcmHeader.IsReadable())
{
vtkErrorMacro("Gdcm cannot parse file " << FileName->c_str());
ReturnedTotalNumberOfPlanes += NZ - 1; // First plane already added
this->ImageType = type;
this->PixelSize = GdcmHeader.GetPixelSize();
+
+ //Set image spacing
+ this->DataSpacing[0] = GdcmHeader.GetXSpacing();
+ this->DataSpacing[1] = GdcmHeader.GetYSpacing();
+ this->DataSpacing[2] = GdcmHeader.GetZSpacing();
+
+ //Set image origin
+ this->DataOrigin[0] = GdcmHeader.GetXOrigin();
+ this->DataOrigin[1] = GdcmHeader.GetYOrigin();
+ this->DataOrigin[2] = GdcmHeader.GetZOrigin();
+
}
} // End of loop on FileName
const unsigned long UpdateProgressTarget,
unsigned long & UpdateProgressCount)
{
- vtkDebugMacro("Copying to memmory image" << FileName.c_str());
+ vtkDebugMacro("Copying to memory image" << FileName.c_str());
gdcmFile GdcmFile(FileName.c_str());
size_t size = GdcmFile.GetImageDataSize();
int NumPlanes = GdcmFile.GetZSize();
int LineSize = NumColumns * GdcmFile.GetPixelSize();
unsigned char * Source = (unsigned char*)GdcmFile.GetImageData();
+ unsigned char * pSource = Source; //pointer for later deletion
unsigned char * Destination = Dest + size - LineSize;
for (int plane = 0; plane < NumPlanes; plane++)
UpdateProgressCount++;
}
}
+ //GetImageData allocate a (void*)malloc, remove it:
+ free(pSource);
+
return size;
}