Program: gdcm
Module: $RCSfile: gdcmJPEGFragmentsInfo.h,v $
Language: C++
- Date: $Date: 2004/10/10 16:44:00 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2005/02/06 14:43:28 $
+ Version: $Revision: 1.20 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#define GDCMJPEGFRAGMENTSINFO_H
#include "gdcmJPEGFragment.h"
+
#include <list>
+#include <iostream>
+namespace gdcm
+{
/**
* \brief Utility class for gathering the informations of the collection
- * of JPEG fragment[s] (see \ref gdcmJPEGFragment) when handling
+ * of JPEG fragment[s] (see \ref JPEGFragment) when handling
* "Encapsulated JPEG Compressed Images".
- * The informations on each frame are obtained during the parsing
- * of a gdcmDocument (refer to
- * \ref gdcmDocument::ComputeJPEGFragmentInfo() ).
+ * The informations on each frame are obtained during the pixel parsing
+ * of a gdcm::File (refer to \ref File::ComputeJPEGFragmentInfo() ).
* They shall be used when (if necessary) decoding the fragments.
*
- * This class is simply a stl list<> of \ref gdcmJPEGFragment.
+ * This class is simply a stl list<> of \ref JPEGFragment.
*/
-class GDCM_EXPORT gdcmJPEGFragmentsInfo
+class GDCM_EXPORT JPEGFragmentsInfo
{
- typedef std::list< gdcmJPEGFragment* > JPEGFragmentsList;
-friend class gdcmDocument;
-friend class gdcmFile;
-friend class gdcmPixelConvert;
- JPEGFragmentsList Fragments;
public:
- ~gdcmJPEGFragmentsInfo();
+ JPEGFragmentsInfo();
+ ~JPEGFragmentsInfo();
+ void Print( std::ostream &os = std::cout, std::string const &indent = "" );
+
+ void DecompressFromFile(std::ifstream *fp, uint8_t *buffer, int nBits,
+ int numBytes, int length);
+
+ void AddFragment(JPEGFragment *fragment);
+ JPEGFragment *GetFirstFragment();
+ JPEGFragment *GetNextFragment();
+ unsigned int GetFragmentCount();
+
+private:
+ typedef std::list<JPEGFragment *> JPEGFragmentsList;
+
+ //Some mathieu hack:
+ int StateSuspension;
+ void *SampBuffer;
+ char *pimage;
+ JPEGFragmentsList Fragments;
+ JPEGFragmentsList::iterator ItFragments;
};
+} // end namespace gdcm
//-----------------------------------------------------------------------------
#endif
+