X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=a1c975f42ade566949abe80bf1a2f53aad203ff0;hb=a4a4d786fdefad3af77842f41b12dcb85b7b1142;hp=b15e4ec115334279c0fd46c5f401d4ad27e933b3;hpb=d0e362583615e5803435c665f19398c9b7f23499;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index b15e4ec1..a1c975f4 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2005/06/02 14:20:14 $ - Version: $Revision: 1.240 $ + Date: $Date: 2005/06/10 14:05:37 $ + Version: $Revision: 1.242 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -55,7 +55,7 @@ File::File(): { RLEInfo = new RLEFramesInfo; JPEGInfo = new JPEGFragmentsInfo; - GrPixel = 0x7fe0; + GrPixel = 0x7fe0; // to avoid further troubles NumPixel = 0x0010; } @@ -69,6 +69,33 @@ File::File( std::string const &filename ) RLEInfo = new RLEFramesInfo; JPEGInfo = new JPEGFragmentsInfo; + Load( filename ); +} + +/** + * \brief Canonical destructor. + */ +File::~File () +{ + if( RLEInfo ) + delete RLEInfo; + if( JPEGInfo ) + delete JPEGInfo; +} + +//----------------------------------------------------------------------------- +// Public + +/** + * \brief Loader + * @param fileName file to be open for parsing + * @return false if file cannot be open or no swap info was found, + * or no tag was found. + */ +bool File::Load( std::string const &fileName ) +{ + this->Document::Load( fileName ); + // for some ACR-NEMA images GrPixel, NumPixel is *not* 7fe0,0010 // We may encounter the 'RETired' (0x0028, 0x0200) tag // (Image Location") . This entry contains the number of @@ -125,7 +152,7 @@ File::File( std::string const &filename ) ComputeJPEGFragmentInfo(); CloseFile(); - // Create a new BinEntry to change the the DictEntry + // Create a new BinEntry to change the DictEntry // The changed DictEntry will have // - a correct PixelVR OB or OW) // - the name to "Pixel Data" @@ -156,24 +183,8 @@ File::File( std::string const &filename ) } } } + return true; } - - -/** - * \brief Canonical destructor. - */ -File::~File () -{ - if( RLEInfo ) - delete RLEInfo; - if( JPEGInfo ) - delete JPEGInfo; -} - -//----------------------------------------------------------------------------- -// Public - - /** * \brief This predicate, based on hopefully reasonable heuristics, * decides whether or not the current File was properly parsed @@ -192,26 +203,33 @@ bool File::IsReadable() const std::string &res = GetEntryValue(0x0028, 0x0005); if ( res != GDCM_UNFOUND && atoi(res.c_str()) > 4 ) { + gdcmWarningMacro("Wrong Image Dimensions" << res); return false; // Image Dimensions } if ( !GetDocEntry(0x0028, 0x0100) ) { + gdcmWarningMacro("Bits Allocated (0028|0100) not found"); return false; // "Bits Allocated" } if ( !GetDocEntry(0x0028, 0x0101) ) { + gdcmWarningMacro("Bits Stored (0028|0101) not found"); return false; // "Bits Stored" } if ( !GetDocEntry(0x0028, 0x0102) ) { + gdcmWarningMacro("Hight Bit (0028|0102) not found"); return false; // "High Bit" } if ( !GetDocEntry(0x0028, 0x0103) ) { + gdcmWarningMacro("Pixel Representation (0028|0103) not found"); return false; // "Pixel Representation" i.e. 'Sign' } if ( !GetDocEntry(GrPixel, NumPixel) ) { + gdcmWarningMacro("Pixel Dicom Element " << std::hex << + GrPixel << "|" << NumPixel << "not found"); return false; // Pixel Dicom Element not found :-( } return true;