From: malaterre Date: Mon, 12 Dec 2005 23:46:52 +0000 (+0000) Subject: ENH: Adding a batch convert for Jim (dicom newsgroup) X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=aed339028b8f3af17ae97874379853c8a9534c88;p=gdcm.git ENH: Adding a batch convert for Jim (dicom newsgroup) --- diff --git a/Example/BatchUncompress.cxx b/Example/BatchUncompress.cxx new file mode 100644 index 00000000..14ce4e38 --- /dev/null +++ b/Example/BatchUncompress.cxx @@ -0,0 +1,63 @@ +/*========================================================================= + + Program: gdcm + Module: $RCSfile: BatchUncompress.cxx,v $ + Language: C++ + Date: $Date: 2005/12/12 23:46:52 $ + Version: $Revision: 1.1 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + * See : + * http://groups.google.com/group/comp.protocols.dicom/browse_thread/thread/2c70859b49122249/3c292c6acc5603ac + * For the origin of this example. I think most people are looking for this kind of batch anyway. + * Someone at some point could update it to have more option, like not copying the private tags, + * sequence... + */ +#include "gdcmFile.h" +#include "gdcmFileHelper.h" +#include "gdcmDocument.h" + +int main(int argc, char *argv[]) +{ + if (argc < 3) + { + std::cerr << "Usage :" << std::endl << argv[0] << + " InputHeader OutputDicom" << std::endl; + return 0; + } + + const char *inputfilename = argv[1]; + const char *outputfilename = argv[2]; + + gdcm::File *input = new gdcm::File( ); + input->SetFileName( inputfilename ); +// input->SetLoadMode(loadMode); + input->Load(); + if ( input->IsReadable() ) + { + gdcm::FileHelper *output = new gdcm::FileHelper( input ); + + output->GetImageData(); //EXTREMELY IMPORTANT + //Otherwise ReadPixel == -1 -> the dicom writing fails completely + int dataSize = output->GetImageDataSize(); + uint8_t *imageData = output->GetImageData(); + + output->SetImageData( imageData, dataSize); + output->WriteDcmExplVR( outputfilename ); + + delete output; + } + delete input; + + return 0; +} +