]> Creatis software - gdcm.git/commitdiff
* Bug fix.
authorregrain <regrain>
Tue, 7 Dec 2004 18:49:26 +0000 (18:49 +0000)
committerregrain <regrain>
Tue, 7 Dec 2004 18:49:26 +0000 (18:49 +0000)
   -- BeNours

vtk/vtkGdcmWriter.cxx

index 755b57f81332a5f06ed0f99054ffc5f41e18ca63..6640ea5b774d1a309cc711d3b3ff5d32b87e2540 100644 (file)
@@ -58,7 +58,7 @@
 #include <vtkPointData.h>
 #include <vtkLookupTable.h>
 
-vtkCxxRevisionMacro(vtkGdcmWriter, "$Revision: 1.1 $");
+vtkCxxRevisionMacro(vtkGdcmWriter, "$Revision: 1.2 $");
 vtkStandardNewMacro(vtkGdcmWriter);
 
 //-----------------------------------------------------------------------------
@@ -116,11 +116,27 @@ void SetImageInformation(gdcm::File *file,vtkImageData *image)
    str<<image->GetScalarSize()*8-1;
    file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102);
 
+   // Pixel Repr
+   // FIXME : what do we do when the ScalarType is 
+   // VTK_UNSIGNED_INT or VTK_UNSIGNED_LONG
+   str.str("");
+   if( image->GetScalarType() == VTK_UNSIGNED_CHAR ||
+       image->GetScalarType() == VTK_UNSIGNED_SHORT ||
+       image->GetScalarType() == VTK_UNSIGNED_INT ||
+       image->GetScalarType() == VTK_UNSIGNED_LONG )
+   {
+      str<<"0"; // Unsigned
+   }
+   else
+   {
+      str<<"1"; // Signed
+   }
+   file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103);
+
    // Samples per pixel
    str.str("");
    str<<image->GetNumberOfScalarComponents();
    file->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002);
-   std::cout<<file->GetHeader()->GetEntryByNumber(0x0028,0x0002)<<"-"<<file->GetHeader()->GetNumberOfScalarComponents()<<"\n";
 
    // Spacing
    double *sp = image->GetSpacing();