Program: gdcm
Module: $RCSfile: gdcmJPEGFragmentsInfo.cxx,v $
Language: C++
- Date: $Date: 2004/10/28 22:21:57 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2005/01/17 03:05:55 $
+ Version: $Revision: 1.7 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
=========================================================================*/
#include "gdcmJPEGFragmentsInfo.h"
+#include <fstream>
namespace gdcm
{
* @param indent Indentation string to be prepended during printing.
* @param os Stream to print to.
*/
-void JPEGFragmentsInfo::Print( std::string indent, std::ostream &os )
+void JPEGFragmentsInfo::Print( std::ostream &os, std::string const & indent )
{
os << indent
<< "----------------- JPEG fragments --------------------------------"
{
os << indent
<< " fragment number :" << fragmentNumber++;
- (*it)->Print( indent + " ", os );
+ (*it)->Print( os, indent + " ");
os << std::endl;
}
}
+/**
+ * \brief Calculate sum of all fragments lenght and return total
+ * @return Total size of JPEG fragments length
+ */
+size_t JPEGFragmentsInfo::GetFragmentsLength()
+{
+ // Loop on the fragment[s] to get total length
+ size_t totalLength = 0;
+ JPEGFragmentsList::const_iterator it;
+ for( it = Fragments.begin();
+ it != Fragments.end();
+ ++it )
+ {
+ totalLength += (*it)->Length;
+ }
+ return totalLength;
+}
+
+/**
+ * \brief Read the all the JPEG Fragment into the input buffer
+ */
+void JPEGFragmentsInfo::ReadAllFragments(std::ifstream *fp, JOCTET *buffer )
+{
+ JOCTET *p = buffer;
+
+ // Loop on the fragment[s]
+ JPEGFragmentsList::const_iterator it;
+ for( it = Fragments.begin();
+ it != Fragments.end();
+ ++it )
+ {
+ fp->seekg( (*it)->Offset, std::ios::beg);
+ size_t len = (*it)->Length;
+ fp->read((char *)p,len);
+ p += len;
+ }
+
+}
} // end namespace gdcm
+