Program: gdcm
Module: $RCSfile: gdcmRLEFrame.h,v $
Language: C++
- Date: $Date: 2004/10/08 16:27:20 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2005/02/01 18:37:31 $
+ Version: $Revision: 1.15 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmCommon.h"
+#include <iostream>
+#include <fstream>
+
+namespace gdcm
+{
/**
* \brief Utility class for summerizing the informations of a SINGLE RLE
* frame of an "Encapsulated RLE Compressed Image" (refer to
* both the above RLE Header and the itemlength of the frame).
*
* Each instance of this class (they can be as many instances for
- * a given gdcmDocument as they are frames and they are collected in
- * a \ref gdcmRLEFramesInfo ) describes :
+ * a given Document as they are frames and they are collected in
+ * a \ref RLEFramesInfo ) describes :
* - the total number of segments (up to 15),
* - the offsets of each segment of the frame,
* - the (corresponding) lengths of each segment of the frame.
*/
-class GDCM_EXPORT gdcmRLEFrame
+class GDCM_EXPORT RLEFrame
{
-friend class gdcmDocument;
-friend class gdcmFile;
-friend class gdcmPixelConvert;
- int NumberFragments;
- long Offset[15];
- long Length[15];
- gdcmRLEFrame() { NumberFragments = 0; }
-
-};
+public:
+ RLEFrame() { NumberOfFragments = 0; }
+ void Print( std::ostream &os = std::cout, std::string indent = "" );
+ void SetNumberOfFragments(unsigned int number) { NumberOfFragments = number; };
+ unsigned int GetNumberOfFragments() { return NumberOfFragments; };
+ void SetOffset(unsigned int id, long offset);
+ long GetOffset(unsigned int id);
+ void SetLength(unsigned int id, long length);
+ long GetLength(unsigned int id);
+
+ uint8_t *ReadAndDecompressRLEFrame( uint8_t *subRaw,long rawSegmentSize,
+ std::ifstream *fp );
+ bool ReadAndDecompressRLEFragment( uint8_t *subRaw, long fragmentSize,
+ long rawSegmentSize, std::ifstream *fp );
+
+private:
+ unsigned int NumberOfFragments;
+ long Offset[15];
+ long Length[15];
+};
+} // end namespace gdcm
//-----------------------------------------------------------------------------
#endif