X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vtk%2FvtkWriteDicomExtended.cxx;h=a7312cba41742962e4f2340323b343a6bc29a6ee;hb=6431ad8820a924bfddca7707abdf8a537fef61af;hp=5d36725dc6ffb4f317e88c459d8298e2833c218c;hpb=b8eef7da99d83e85969d8f16d45ac3de470ebf16;p=gdcm.git diff --git a/vtk/vtkWriteDicomExtended.cxx b/vtk/vtkWriteDicomExtended.cxx index 5d36725d..a7312cba 100755 --- a/vtk/vtkWriteDicomExtended.cxx +++ b/vtk/vtkWriteDicomExtended.cxx @@ -18,6 +18,7 @@ #endif #include "gdcmArgMgr.h" // for Argument Manager functions +#include "gdcmFile.h" //---------------------------------------------------------------------------- int main(int argc, char *argv[]) @@ -65,12 +66,12 @@ int main(int argc, char *argv[]) int filecontent = am->ArgMgrGetInt("filecontent", 1); char *filein = am->ArgMgrWantString("filein",usage); - char *fileout = am->ArgMgrWantString("fileout",usage); + char *fileout = (char *)(am->ArgMgrGetString("fileout","fileout")); if (am->ArgMgrDefined("debug")) gdcm::Debug::DebugOn(); - bool deuxD = am->ArgMgrDefined("2D"); + int deuxD = am->ArgMgrDefined("2D"); /* if unused Param we give up */ if ( am->ArgMgrPrintUnusedLabels() ) @@ -80,11 +81,19 @@ int main(int argc, char *argv[]) return 0; } -// ------------------------------------------------------------ +// ------------------------------------------------------------ + std::vector cfl; + + gdcm::File *f = gdcm::File::New(); + f->SetFileName(filein); + f->Load(); + cfl.push_back(f); vtkGdcmReader *reader = vtkGdcmReader::New(); reader->AllowLookupTableOff(); - reader->SetFileName( argv[1] ); + //reader->SetFileName( filein ); + // in order not to parse twice the input file. + reader->SetCoherentFileList(&cfl); reader->Update(); vtkImageData *output; @@ -123,31 +132,38 @@ int main(int argc, char *argv[]) case 2: writer->SetContentTypeToFilteredImage(); + writer->SetGdcmFile( f ); fileName = fileName + "_FilteredImage.dcm"; break; case 3: writer->SetContentTypeToUserCreatedImage(); - fileName = fileName + "_FilteredImage.dcm"; + writer->SetGdcmFile( f ); + fileName = fileName + "_UserCreatedImage.dcm"; break; case 4: writer->SetContentTypeToUserCreatedImage(); + writer->SetGdcmFile( f ); fileName = fileName + "_UnmodifiedPixelsImage.dcm"; break; } - fileName += ".dcm"; +/// \todo : fix stupid generated image names (later : JPRx) - // For 3D - writer->SetFileDimensionality(3); - writer->SetFileName(fileName.c_str()); if(deuxD) { writer->SetFileDimensionality(2); writer->SetFilePrefix(fileout); writer->SetFilePattern("%s%d.dcm"); } + else + { + fileName += ".dcm"; + // For 3D + writer->SetFileDimensionality(3); + writer->SetFileName(fileName.c_str()); + } writer->SetInput(output); writer->Write();