X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmJPEGFragmentsInfo.cxx;h=3102c4f3851427c07649f1f489066af312d94b0a;hb=bd7bec4c367d671a9da358584e98a8ec29bb641e;hp=489ab2fe1a82c33f81c301089ced9d73dc45a800;hpb=0e0403151bbff57175d2b974ee2d14b8195f9234;p=gdcm.git diff --git a/src/gdcmJPEGFragmentsInfo.cxx b/src/gdcmJPEGFragmentsInfo.cxx index 489ab2fe..3102c4f3 100644 --- a/src/gdcmJPEGFragmentsInfo.cxx +++ b/src/gdcmJPEGFragmentsInfo.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmJPEGFragmentsInfo.cxx,v $ Language: C++ - Date: $Date: 2005/01/31 03:22:25 $ - Version: $Revision: 1.14 $ + Date: $Date: 2007/05/23 14:18:10 $ + Version: $Revision: 1.21 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -21,9 +21,10 @@ #include -namespace gdcm +namespace GDCM_NAME_SPACE { - +//------------------------------------------------------------------------- +// Constructor / Destructor JPEGFragmentsInfo::JPEGFragmentsInfo() { StateSuspension = 0; @@ -43,73 +44,9 @@ JPEGFragmentsInfo::~JPEGFragmentsInfo() Fragments.clear(); } -/** - * \brief Print self. - * @param os Stream to print to. - * @param indent Indentation string to be prepended during printing. - */ -void JPEGFragmentsInfo::Print( std::ostream &os, std::string const &indent ) -{ - os << std::endl; - os << indent - << "----------------- JPEG fragments --------------------------------" - << std::endl << std::endl; - os << indent - << "Total number of fragments : " << Fragments.size() - << std::endl; - int fragmentNumber = 0; - for(JPEGFragmentsList::iterator it = Fragments.begin(); - it != Fragments.end(); - ++it) - { - os << indent - << " fragment number :" << fragmentNumber++; - (*it)->Print( os, indent + " "); - } - os << std::endl; -} - -/** - * \brief Calculate sum of all fragments length 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)->GetLength(); - } - 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)->GetOffset(), std::ios::beg); - size_t len = (*it)->GetLength(); - fp->read((char *)p,len); - p += len; - } - -} - -// to avoid warnings -void JPEGFragmentsInfo::DecompressJPEGFramesFromFile(std::ifstream *fp, uint8_t *buffer, int nBits, int , int ) +//----------------------------------------------------------------------------- +// Public +void JPEGFragmentsInfo::DecompressFromFile(std::ifstream *fp, uint8_t *buffer, int nBits, int , int ) { // Pointer to the Raw image uint8_t *localRaw = buffer; @@ -120,15 +57,9 @@ void JPEGFragmentsInfo::DecompressJPEGFramesFromFile(std::ifstream *fp, uint8_t it != Fragments.end(); ++it ) { - //(*it)->pimage = localRaw; (*it)->DecompressJPEGFramesFromFile(fp, localRaw, nBits, StateSuspension); // update pointer to image after some scanlines read: localRaw = (*it)->GetImage(); - // Advance to next free location in Raw - // for next fragment decompression (if any) - - //localRaw += length * numBytes; - //std::cerr << "Used to increment by: " << length * numBytes << std::endl; } } @@ -160,5 +91,39 @@ unsigned int JPEGFragmentsInfo::GetFragmentCount() return Fragments.size(); } -} // end namespace gdcm +//----------------------------------------------------------------------------- +// Protected + +//----------------------------------------------------------------------------- +// Private + +//----------------------------------------------------------------------------- +// Print +/** + * \brief Print self. + * @param os Stream to print to. + * @param indent Indentation string to be prepended during printing. + */ +void JPEGFragmentsInfo::Print( std::ostream &os, std::string const &indent ) +{ + os << std::endl; + os << indent + << "----------------- JPEG fragments --------------------------------" + << std::endl << std::endl; + os << indent + << "Total number of fragments : " << Fragments.size() + << std::endl; + int fragmentNumber = 0; + for(JPEGFragmentsList::iterator it = Fragments.begin(); + it != Fragments.end(); + ++it) + { + os << indent + << " fragment number :" << fragmentNumber++; + (*it)->Print( os, indent + " "); + } + os << std::endl; +} +//----------------------------------------------------------------------------- +} // end namespace gdcm