Program: gdcm
Module: $RCSfile: gdcmFile.h,v $
Language: C++
- Date: $Date: 2004/09/29 17:33:17 $
- Version: $Revision: 1.53 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.64 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmCommon.h"
#include "gdcmHeader.h"
+#include "gdcmPixelConvert.h"
+
+namespace gdcm
+{
//-----------------------------------------------------------------------------
/*
* for accessing the image/volume content. One can also use it to
* write Dicom/ACR-NEMA/RAW files.
*/
-class GDCM_EXPORT gdcmFile
+class GDCM_EXPORT File
{
public:
- gdcmFile( gdcmHeader *header );
- gdcmFile( std::string const& filename );
+ File( Header* header );
+ File( std::string const& filename );
- virtual ~gdcmFile();
+ virtual ~File();
/// Accessor to \ref Header
- gdcmHeader* GetHeader() { return Header; }
+ Header* GetHeader() { return HeaderInternal; }
int ComputeDecompressedPixelDataSizeFromHeader();
-
+
/// Accessor to \ref ImageDataSize
size_t GetImageDataSize(){ return ImageDataSize; };
/// Accessor to \ref ImageDataSizeRaw
size_t GetImageDataSizeRaw(){ return ImageDataSizeRaw; };
+ /// Accessor to \ref PixelConverter
+ PixelConvert* GetPixelConverter(){ return PixelConverter; };
+
uint8_t* GetImageData();
size_t GetImageDataIntoVector(void* destination, size_t maxSize);
uint8_t* GetImageDataRaw();
- size_t GetImageDataIntoVectorRaw(void* destination, size_t maxSize);
+ void GetImageDataIntoVectorRaw(void* destination, size_t maxSize);
- // see also gdcmHeader::SetImageDataSize ?!?
+ // see also Header::SetImageDataSize ?!?
bool SetImageData (uint8_t* data, size_t expectedSize);
/// \todo When the caller is aware we simply point to the data:
bool WriteDcmExplVR(std::string const& fileName);
bool WriteAcr (std::string const& fileName);
- // Don't look any longer for the code :
- // It's in file gdcmParsePixels.cxx
- bool ParsePixelData();
-
virtual bool SetEntryByNumber(std::string const& content,
uint16_t group, uint16_t element)
{
- Header->SetEntryByNumber(content,group,element);
+ HeaderInternal->SetEntryByNumber(content,group,element);
return true;
}
+ uint8_t* GetLutRGBA();
protected:
bool WriteBase(std::string const& fileName, FileType type);
private:
void Initialise();
- void SwapZone(void* im, int swap, int lgr, int nb);
- bool ReadPixelData(void* destination);
-
// For JPEG 8 Bits, body in file gdcmJpeg.cxx
- bool gdcm_read_JPEG_file (FILE* fp, void* image_buffer);
bool gdcm_write_JPEG_file (FILE* fp, void* image_buffer,
int image_width, int image_heigh,
int quality);
// For JPEG 12 Bits, body in file gdcmJpeg12.cxx
- bool gdcm_read_JPEG_file12 (FILE* fp, void* image_buffer);
bool gdcm_write_JPEG_file12 (FILE* fp, void* image_buffer,
int image_width, int image_height,
int quality);
- // For JPEG 2000, body in file gdcmJpeg2000.cxx
- bool gdcm_read_JPEG2000_file (FILE* fp, void* image_buffer);
-
- // For Run Length Encoding
- bool gdcm_read_RLE_file (FILE* fp, void* image_buffer);
-// FIXME : *sure* it's NOT static (C++)
-// (would be static in C, or embedded in ADA)
-// It's NOT a method, but a not user intended fonction.
-// How do we write that in C++ ?)
- static int gdcm_read_RLE_fragment(char **areaToRead, long lengthToDecode,
- long uncompressedSegmentSize, FILE* fp);
-
- void SaveInitialValues(); // will belong to the future gdcmPixelData class
- void RestoreInitialValues(); // will belong to the future gdcmPixelData class
- void DeleteInitialValues(); // will belong to the future gdcmPixelData class
+ void SaveInitialValues(); // will belong to the future PixelData class
+ void RestoreInitialValues(); // will belong to the future PixelData class
+ void DeleteInitialValues(); // will belong to the future PixelData class
+private:
// members variables:
- /// \brief Header to use to load the file
- gdcmHeader *Header;
+ /// Header to use to load the file
+ Header *HeaderInternal;
- /// \brief Whether the underlying \ref gdcmHeader was loaded by
+ /// \brief Whether the underlying \ref Header was loaded by
/// the constructor or passed to the constructor. When false
/// the destructor is in charge of deletion.
bool SelfHeader;
- /// wether already parsed
+ /// Wether already parsed or not
bool Parsed;
-//
-// --------------- Will be moved to a gdcmPixelData class
+ /// Utility pixel converter
+ PixelConvert* PixelConverter;
+
+/// FIXME
+// --------------- Will be moved to a PixelData class
//
/// \brief to hold the Pixels (when read)
// We keep a pointer on them for a future use.
/// \brief Red Palette Color Lookup Table Descriptor 0028 1101 as read
- gdcmDocEntry* InitialRedLUTDescr;
+ DocEntry* InitialRedLUTDescr;
/// \brief Green Palette Color Lookup Table Descriptor 0028 1102 as read
- gdcmDocEntry* InitialGreenLUTDescr;
+ DocEntry* InitialGreenLUTDescr;
/// \brief Blue Palette Color Lookup Table Descriptor 0028 1103 as read
- gdcmDocEntry* InitialBlueLUTDescr;
+ DocEntry* InitialBlueLUTDescr;
/// \brief Red Palette Color Lookup Table Data 0028 1201 as read
- gdcmDocEntry* InitialRedLUTData;
+ DocEntry* InitialRedLUTData;
/// \brief Green Palette Color Lookup Table Data 0028 1202 as read
- gdcmDocEntry* InitialGreenLUTData;
+ DocEntry* InitialGreenLUTData;
/// \brief Blue Palette Color Lookup Table Data 0028 1203 as read
- gdcmDocEntry* InitialBlueLUTData;
+ DocEntry* InitialBlueLUTData;
//
-// --------------- end of future gdcmPixelData class
+// --------------- end of future PixelData class
//
};
+} // end namespace gdcm
//-----------------------------------------------------------------------------
#endif