Program: gdcm
Module: $RCSfile: gdcmJPEGFragment.cxx,v $
Language: C++
- Date: $Date: 2005/01/17 03:05:55 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2005/01/26 11:42:02 $
+ Version: $Revision: 1.9 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
{
// For JPEG 2000, body in file gdcmJpeg2000.cxx
+// Not yet made
bool gdcm_read_JPEG2000_file (std::ifstream* fp, void* image_buffer);
+// For JPEG-LS, body in file gdcmJpegLS.cxx
+// Not yet made
+bool gdcm_read_JPEGLS_file (std::ifstream* fp, void* image_buffer);
+
// For JPEG 8 Bits, body in file gdcmJpeg8.cxx
-bool gdcm_read_JPEG_file8 (std::ifstream *fp, void *image_buffer);
+//bool gdcm_read_JPEG_file8 (JPEGFragment *frag, std::ifstream *fp, void *image_buffer);
bool gdcm_read_JPEG_memory8 (const JOCTET *buffer, const size_t buflen,
void *image_buffer,
size_t *howManyRead, size_t *howManyWritten);
//
// For JPEG 12 Bits, body in file gdcmJpeg12.cxx
-bool gdcm_read_JPEG_file12 (std::ifstream *fp, void *image_buffer);
+//bool gdcm_read_JPEG_file12 (JPEGFragment *frag, std::ifstream *fp, void *image_buffer);
bool gdcm_read_JPEG_memory12 (const JOCTET *buffer, const size_t buflen,
void *image_buffer,
size_t *howManyRead, size_t *howManyWritten);
// For JPEG 16 Bits, body in file gdcmJpeg16.cxx
// Beware this is misleading there is no 16bits DCT algorithm, only
// jpeg lossless compression exist in 16bits.
-bool gdcm_read_JPEG_file16 (std::ifstream *fp, void *image_buffer);
+//bool gdcm_read_JPEG_file16 (JPEGFragment *frag, std::ifstream *fp, void *image_buffer);
bool gdcm_read_JPEG_memory16 (const JOCTET *buffer, const size_t buflen,
void* image_buffer,
size_t *howManyRead, size_t *howManyWritten);
{
Offset = 0;
Length = 0;
+
+// StateSuspension = 0;
+// void *SampBuffer;
+ pImage = 0;
+
}
/**
/**
* \brief Decompress 8bits JPEG Fragment
+ * @param fp ifstream to write to
* @param buffer output (data decompress)
* @param nBits 8/12 or 16 bits jpeg
+ * @param statesuspension state suspension
*/
-void JPEGFragment::DecompressJPEGFramesFromFile(std::ifstream *fp, uint8_t *buffer, int nBits)
+void JPEGFragment::DecompressJPEGFramesFromFile(std::ifstream *fp,
+ uint8_t *buffer, int nBits,
+ int & statesuspension)
{
// First thing need to reset file to proper position:
fp->seekg( Offset, std::ios::beg);
if ( nBits == 8 )
{
// JPEG Lossy : call to IJG 6b
- if ( ! gdcm_read_JPEG_file8( fp, buffer) )
+ if ( ! this->gdcm_read_JPEG_file8( fp, buffer, statesuspension) )
{
//return false;
}
else if ( nBits <= 12 )
{
// Reading Fragment pixels
- if ( ! gdcm_read_JPEG_file12 ( fp, buffer) )
+ if ( ! this->gdcm_read_JPEG_file12 ( fp, buffer, statesuspension) )
{
//return false;
}
else if ( nBits <= 16 )
{
// Reading Fragment pixels
- if ( ! gdcm_read_JPEG_file16 ( fp, buffer) )
+ if ( ! this->gdcm_read_JPEG_file16 ( fp, buffer, statesuspension) )
{
//return false;
}
}
else
{
+ // FIXME : only the bits number is checked,
+ // NOT the compression method
+
// other JPEG lossy not supported
gdcmErrorMacro( "Unknown jpeg lossy compression ");
//return false;
}
-void JPEGFragment::DecompressJPEGSingleFrameFragmentsFromFile(JOCTET *buffer, size_t totalLength, uint8_t* raw, int nBits)
+void JPEGFragment::DecompressJPEGSingleFrameFragmentsFromFile(JOCTET *buffer,
+ size_t totalLength, uint8_t *raw, int nBits)
{
size_t howManyRead = 0;
size_t howManyWritten = 0;
}
else
{
+ // FIXME : only the bits number is checked,
+ // NOT the compression method
+
// other JPEG lossy not supported
gdcmErrorMacro( "Unsupported jpeg lossy compression ");
delete [] buffer;
}
-void JPEGFragment::DecompressJPEGFragmentedFramesFromFile(JOCTET *buffer, uint8_t* raw, int nBits, size_t &howManyRead, size_t &howManyWritten, size_t totalLength)
+void JPEGFragment::DecompressJPEGFragmentedFramesFromFile(JOCTET *buffer,
+ uint8_t* raw, int nBits, size_t &howManyRead,
+ size_t &howManyWritten, size_t totalLength)
{
if ( nBits == 8 )
{
}
else
{
+ // FIXME : only the bits number is checked,
+ // NOT the compression method
+
// other JPEG lossy not supported
gdcmErrorMacro( "Unsupported jpeg lossy compression ");
//delete [] buffer;