-// gdcmHeader.cxx
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.66 2003/05/21 14:42:46 frog Exp $
#include <stdio.h>
#include <cerrno>
#include <sstream>
#include "gdcmUtil.h"
#include "gdcmHeader.h"
+using namespace std;
// Refer to gdcmHeader::CheckSwap()
#define HEADER_LENGTH_TO_READ 256
SetMaxSizeLoadElementValue(_MaxSizeLoadElementValue_);
filename = InFilename;
Initialise();
- OpenFile(exception_on_error);
+ if ( !OpenFile(exception_on_error))
+ return;
ParseHeader();
LoadElements();
CloseFile();
if(!fp)
throw gdcmFileError("gdcmHeader::gdcmHeader(const char *, bool)");
}
- else
- dbg.Error(!fp, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
if ( fp )
return true;
+ dbg.Verbose(0, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
return false;
}
return g;
}
+
+gdcmElValue* gdcmHeader::GetElValueByNumber(guint16 Group, guint16 Elem) {
+
+ gdcmElValue* elValue = PubElValSet.GetElementByNumber(Group, Elem);
+ if (!elValue) {
+ dbg.Verbose(1, "gdcmHeader::GetElValueByNumber",
+ "failed to Locate gdcmElValue");
+ return (gdcmElValue*)0;
+ }
+ return elValue;
+}
+
/**
* \ingroup gdcmHeader
* \brief Build a new Element Value from all the low level arguments.
*/
int gdcmHeader::SetPubElValByNumber(string content, guint16 group,
guint16 element)
+
+//TODO : homogeneiser les noms : SetPubElValByNumber qui appelle PubElValSet.SetElValueByNumber
+// pourquoi pas SetPubElValueByNumber ??
{
+
return ( PubElValSet.SetElValueByNumber (content, group, element) );
}
return 1;
}
+/**
+ * \ingroup gdcmHeader
+ * \brief Return the size (in bytes) of a single pixel of data.
+ * @return The size in bytes of a single pixel of data.
+ *
+ */
+int gdcmHeader::GetPixelSize(void) {
+ string PixelType = GetPixelType();
+ if (PixelType == "8U" || PixelType == "8S")
+ return 1;
+ if (PixelType == "16U" || PixelType == "16S")
+ return 2;
+ if (PixelType == "32U" || PixelType == "32S")
+ return 4;
+ dbg.Verbose(0, "gdcmHeader::GetPixelSize: Unknown pixel type");
+ return 0;
+}
+
/**
* \ingroup gdcmHeader
* \brief Build the Pixel Type of the image.
* Possible values are:
- * - U8 unsigned 8 bit,
- * - S8 signed 8 bit,
- * - U16 unsigned 16 bit,
- * - S16 signed 16 bit,
- * - U32 unsigned 32 bit,
- * - S32 signed 32 bit,
+ * - 8U unsigned 8 bit,
+ * - 8S signed 8 bit,
+ * - 16U unsigned 16 bit,
+ * - 16S signed 16 bit,
+ * - 32U unsigned 32 bit,
+ * - 32S signed 32 bit,
* \warning 12 bit images appear as 16 bit.
- * @return
+ * @return
*/
string gdcmHeader::GetPixelType(void) {
string BitsAlloc;