Program: gdcm
Module: $RCSfile: gdcmPixelReadConvert.h,v $
Language: C++
- Date: $Date: 2004/12/12 17:21:07 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2005/01/31 03:22:26 $
+ 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
#define GDCMPIXELREADCONVERT_H
#include "gdcmCommon.h"
+#include "gdcmBase.h"
#include "gdcmException.h"
namespace gdcm
{
-class Header;
+class File;
class RLEFramesInfo;
class JPEGFragmentsInfo;
-/*
+
+/**
* \brief Utility container for gathering the various forms the pixel data
* migth take during the user demanded processes.
*/
-class GDCM_EXPORT PixelReadConvert
+class GDCM_EXPORT PixelReadConvert : public Base
{
public:
PixelReadConvert();
virtual ~PixelReadConvert();
//// Getter accessors:
- uint8_t* GetRGB() { return RGB; }
+ uint8_t* GetRGB() { return RGB; }
size_t GetRGBSize() { return RGBSize; }
- uint8_t* GetRaw() { return Raw; }
+ uint8_t* GetRaw() { return Raw; }
size_t GetRawSize() { return RawSize; }
uint8_t* GetLutRGBA() { return LutRGBA; }
//// Predicates:
bool IsRawRGB();
- void Print( std::string indent = "", std::ostream &os = std::cout );
+ void Print( std::ostream &os = std::cout, std::string const & indent = "" );
// In progress
- void GrabInformationsFromHeader( Header* header );
- bool ReadAndDecompressPixelData( std::ifstream* fp );
+ void GrabInformationsFromFile( File *file );
+ bool ReadAndDecompressPixelData( std::ifstream *fp );
void Squeeze();
bool BuildRGBImage();
private:
// Use the fp:
bool ReadAndDecompressRLEFragment(
- uint8_t* subDecompressed,
+ uint8_t *subDecompressed,
long fragmentSize,
long decompressedSegmentSize,
- std::ifstream* fp );
- void ReadAndDecompress12BitsTo16Bits( std::ifstream* fp ) throw ( FormatError );
- bool ReadAndDecompressRLEFile( std::ifstream* fp );
- bool ReadAndDecompressJPEGFile( std::ifstream* fp );
- bool ReadAndDecompressJPEGFramesFromFile( std::ifstream* fp );
- bool ReadAndDecompressJPEGSingleFrameFragmentsFromFile( std::ifstream* fp );
- bool ReadAndDecompressJPEGFragmentedFramesFromFile( std::ifstream* fp );
-
+ std::ifstream *fp );
+ void ReadAndDecompress12BitsTo16Bits( std::ifstream *fp ) throw ( FormatError );
+ bool ReadAndDecompressRLEFile( std::ifstream *fp );
+ bool ReadAndDecompressJPEGFile( std::ifstream *fp );
- void BuildLUTRGBA( std::ifstream* fp );
+ void BuildLUTRGBA( std::ifstream *fp );
// In place (within Decompressed and with no fp access) decompression
// or convertion:
// Variables
/// Pixel data represented as RGB after LUT color interpretation.
- uint8_t* RGB;
- /// Size of \ref RGB image.
+ uint8_t *RGB;
+ /// Size of RGB image.
size_t RGBSize;
/// Pixel data after decompression and bit/byte rearrangement.
- uint8_t* Raw;
- /// Size of \ref Decompressed image.
+ uint8_t *Raw;
+ /// Size of Decompressed image.
size_t RawSize;
/// \brief Red/Green/Blue/Alpha LookUpTable build out of the
/// Red/Green/Blue LUT descriptors (see \ref BuildLUTRGBA ).
- uint8_t* LutRGBA;
+ uint8_t *LutRGBA;
size_t PixelOffset;
size_t PixelDataLength;
bool IsRaw;
bool IsJPEG2000;
+ bool IsJPEGLS;
bool IsJPEGLossless;
+ bool IsJPEGLossy;
+ bool IsJPEG;
bool IsRLELossless;
- RLEFramesInfo* RLEInfo;
- JPEGFragmentsInfo* JPEGInfo;
+ RLEFramesInfo *RLEInfo;
+ JPEGFragmentsInfo *JPEGInfo;
// For handling color stage
int PlanarConfiguration;
std::string LutRedDescriptor;
std::string LutGreenDescriptor;
std::string LutBlueDescriptor;
- uint8_t* LutRedData;
- uint8_t* LutGreenData;
- uint8_t* LutBlueData;
+ uint8_t *LutRedData;
+ uint8_t *LutGreenData;
+ uint8_t *LutBlueData;
};
} // end namespace gdcm