X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Example%2FWriteRead.cxx;h=c08e791b864f86ccaa5e14fc55d7fa74ed42994a;hb=7a111e0401fb1a09aa0d2dd4ab8d5bc6e4890f82;hp=526edfbbdf02ef0836af34b87174a6a1621d2b31;hpb=a1632352fa2c6d5bbc306d8bbf70511eac325324;p=gdcm.git diff --git a/Example/WriteRead.cxx b/Example/WriteRead.cxx index 526edfbb..c08e791b 100644 --- a/Example/WriteRead.cxx +++ b/Example/WriteRead.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: WriteRead.cxx,v $ Language: C++ - Date: $Date: 2005/01/20 16:31:42 $ - Version: $Revision: 1.11 $ + Date: $Date: 2007/05/23 14:18:05 $ + Version: $Revision: 1.16 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -15,81 +15,103 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ -#include "gdcmHeader.h" +#include "gdcmFile.h" #include "gdcmFileHelper.h" #include -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { - std::string zozo; - - gdcm::Header* e1, *e2; - gdcm::FileHelper * f1, *f2; + std::string fileNameToWrite; + GDCM_NAME_SPACE::File *e1; + GDCM_NAME_SPACE::File *e2; + GDCM_NAME_SPACE::FileHelper *f1; + GDCM_NAME_SPACE::FileHelper *f2; uint8_t* imageData, *imageData2; int dataSize, dataSize2; if( argc < 2 ) - { - std::cerr << "Usage " << argv[0] << " image.dcm" << std::endl; - return 1; - } + { + std::cerr << "Usage " << argv[0] << " image.dcm" << std::endl; + return 1; + } - std::string toto = argv[1]; + std::string fileName = argv[1]; // --------------------- we read the input image std::cout << argv[1] << std::endl; - - e1 = new gdcm::Header( toto ); - if (!e1->IsReadable()) { - std::cerr << "Sorry, " << toto <<" not a Readable DICOM / ACR File" - <SetFileName( fileName ); + e1->Load(); + if (!e1->IsReadable()) + { + std::cerr << "Sorry, " << fileName <<" not a Readable DICOM / ACR File" + <Delete(); + return 1; } - f1 = new gdcm::FileHelper(e1); + f1 = GDCM_NAME_SPACE::FileHelper::New(e1); imageData= f1->GetImageData(); dataSize = f1->GetImageDataSize(); // --------------------- we write it as an Explicit VR DICOM file - zozo = "temp.XDCM"; - std::cout << "WriteDCM Explicit VR" << std::endl; - f1->WriteDcmExplVR(zozo); + fileNameToWrite = "temp.XDCM"; + std::cout << "WriteDCM Explicit VR" << std::endl; + f1->WriteDcmExplVR(fileNameToWrite); // --------------------- we read the written image - - e2 = new gdcm::Header( zozo ); - if (!e2->IsReadable()) { - std::cerr << "Sorry, " << zozo << " not a Readable DICOM / ACR File" - <SetFileName( fileNameToWrite ); + e2->Load(); + if (!e2->IsReadable()) + { + std::cerr << "Sorry, " << fileNameToWrite << " not a Readable DICOM / ACR File" + <Delete(); + e2->Delete(); + f1->Delete(); + return 1; } - f2 = new gdcm::FileHelper(e2); + f2 = GDCM_NAME_SPACE::FileHelper::New(e2); imageData2= f2->GetImageData(); dataSize2 = f2->GetImageDataSize(); // --------------------- we compare the pixel areas - if (dataSize != dataSize2) { - std::cout << " ----------------------------------------- " - << "Bad shot! Lengthes are different : " - << dataSize << " # " << dataSize2 - << " for file : " << toto << std::endl; + if (dataSize != dataSize2) + { + std::cout << " ----------------------------------------- " + << "Bad shot! Lengthes are different : " + << dataSize << " # " << dataSize2 + << " for file : " << fileName << std::endl; - return 0; - } - if (int res=memcmp(imageData,imageData2,dataSize) !=0) { - std::cout << " ----------------------------------------- " - << "Bad shot! Pixels are different : " - << " for file : " << toto << std::endl; - std::cout << "memcmp(imageData,imageData2,dataSize) = " << res << std::endl; - return 1; - } + e1->Delete(); + e2->Delete(); + f1->Delete(); + f2->Delete(); + return 1; + } + if (int res=memcmp(imageData,imageData2,dataSize) !=0) + { + std::cout << " ----------------------------------------- " + << "Bad shot! Pixels are different : " + << " for file : " << fileName << std::endl; + std::cout << "memcmp(imageData,imageData2,dataSize) = " << res << std::endl; + e1->Delete(); + e2->Delete(); + f1->Delete(); + f2->Delete(); + return 1; + } - //If we reach here everything is fine, return 0 then: - return 0; + e1->Delete(); + e2->Delete(); + f1->Delete(); + f2->Delete(); + return 0; }