+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: PrintFile.cxx,v $
+ Language: C++
+ Date: $Date: 2005/04/05 10:28:59 $
+ Version: $Revision: 1.31 $
+
+ 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.
+
+=========================================================================*/
+#include "gdcmFile.h"
+#include "gdcmDebug.h"
+#include "gdcmFileHelper.h"
+
#include <iostream>
-#include "gdcmException.h"
-#include "gdcmCommon.h"
-
-#include "gdcmDictEntry.h"
-#include "gdcmDict.h"
-#include "gdcmDictSet.h"
-#include "gdcmHeader.h"
-#include "gdcmUtil.h"
-#include "gdcmBinEntry.h"
-#include "gdcmDocEntry.h"
-#include "gdcmDocEntrySet.h"
-#include "gdcmDocument.h"
-#include "gdcmElementSet.h"
-#include "gdcmSeqEntry.h"
-#include "gdcmSQItem.h"
-#include "gdcmValEntry.h"
-#include "gdcmFile.h"
-int main(int argc, char* argv[])
+int main(int argc, char *argv[])
{
-
- gdcmHeader *e1;
- gdcmFile *f1;
- std::string fileName;
- if (argc != 2) {
- std::cout << " usage : PrintDocument fileName" << std::endl;
+ gdcm::File *e1;
+ gdcm::FileHelper *f1;
+ std::string fileName;
+
+ if (argc == 1)
+ {
+ std::cout << " usage : PrintFile fileName printLevel debug "
+ << "short (=NOSEQ + NOSHADOW)"
+ << std::endl;
+ return 0;
}
- if (argc > 1) {
+ e1 = new gdcm::File();
+
+ if (argc > 1)
+ {
fileName=argv[1];
- } else {
- fileName += GDCM_DATA_ROOT;
- fileName += "/test.acr";
- }
-
- e1= new gdcmHeader
- (fileName.c_str(),false, true);
+ }
- f1 = new gdcmFile(e1);
+ if (argc > 3)
+ gdcm::Debug::DebugOn();
- e1->SetPrintLevel(2);
+ if (argc > 4)
+ e1->SetLoadMode(NO_SEQ | NO_SHADOW);
- e1->Print();
-
+ e1->Load( fileName.c_str() );
+
+ f1 = new gdcm::FileHelper(e1);
+
+ if (argc > 2) // keep it here (f1 needs to be constructed !)
+ {
+ int level = atoi(argv[2]);
+ f1->SetPrintLevel(level);
+ }
+
+ f1->Print();
+
std::cout << "\n\n" << std::endl;
- int dataSize = f1->GetImageDataSize();
- std::cout <<std::endl <<" dataSize " << dataSize << std::endl;
+ std::cout <<std::endl;
+ std::cout <<" dataSize " << f1->GetImageDataSize() << std::endl;
+ std::cout <<" dataSizeRaw " << f1->GetImageDataRawSize() << std::endl;
+
int nX,nY,nZ,sPP,planarConfig;
std::string pixelType;
nX=e1->GetXSize();
sPP = e1->GetSamplesPerPixel();
planarConfig = e1->GetPlanarConfiguration();
- std::cout << " pixelType=" << pixelType
- << " SampleserPixel=" << sPP
- << " PlanarConfiguration=" << planarConfig
- << std::endl
- << " PhotometricInterpretation="
- << e1->GetEntryByNumber(0x0028,0x0004)
- << std::endl;
+ std::cout << " pixelType= [" << pixelType
+ << "] SamplesPerPixel= [" << sPP
+ << "] PlanarConfiguration= [" << planarConfig
+ << "] "<< std::endl
+ << " PhotometricInterpretation= ["
+ << e1->GetEntryValue(0x0028,0x0004)
+ << "] "<< std::endl;
int numberOfScalarComponents=e1->GetNumberOfScalarComponents();
- std::cout << " NumberOfScalarComponents " << numberOfScalarComponents <<std::endl;
+ std::cout << " NumberOfScalarComponents = " << numberOfScalarComponents <<std::endl
+ << " LUT = " << (e1->HasLUT() ? "TRUE" : "FALSE")
+ << std::endl;
- std::string transferSyntaxName = e1->GetTransfertSyntaxName();
+
+ if ( e1->GetEntryValue(0x0002,0x0010) == gdcm::GDCM_NOTLOADED )
+ {
+ std::cout << "Transfer Syntax not loaded. " << std::endl
+ << "Better you increase MAX_SIZE_LOAD_ELEMENT_VALUE"
+ << std::endl;
+ return 0;
+ }
+
+ std::string transferSyntaxName = e1->GetTransferSyntaxName();
std::cout << " TransferSyntaxName= [" << transferSyntaxName << "]" << std::endl;
-
- if ( transferSyntaxName != "Implicit VR - Little Endian"
- && transferSyntaxName != "Explicit VR - Little Endian"
- && transferSyntaxName != "Deflated Explicit VR - Little Endian"
- && transferSyntaxName != "Explicit VR - Big Endian"
- && transferSyntaxName != "Uncompressed ACR-NEMA" )
- {
- std::cout << std::endl << "==========================================="
- << std::endl;
- f1->ParsePixelData(); // gdcmFile Method :-(
- std::cout << std::endl << "==========================================="
- << std::endl;
- }
+ std::cout << " SwapCode= " << e1->GetSwapCode() << std::endl;
if(e1->IsReadable())
std::cout <<std::endl<<fileName<<" is Readable"<<std::endl;
std::cout <<std::endl<<fileName<<" is NOT Readable"<<std::endl;
std::cout<<std::flush;
delete e1;
+ delete f1;
return 0;