1 /*=========================================================================
4 Module: $RCSfile: gdcmPixelConvert.h,v $
6 Date: $Date: 2004/09/29 17:33:17 $
7 Version: $Revision: 1.1 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
20 #ifndef GDCMPIXELCONVERT_H
21 #define GDCMPIXELCONVERTL_H
23 #include "gdcmCommon.h"
26 * \brief Utility container for gathering the various forms the pixel data
27 * migth take during the user demanded processes.
29 class GDCM_EXPORT gdcmPixelConvert {
30 friend class gdcmFile;
31 /// Pixel data represented as RGB after color interpretation
33 size_t RGBSize; //aka ImageDataSize
34 /// Pixel data after decompression and bit/byte rearrangement.
35 uint8_t* Uncompressed;
36 size_t UncompressedSize;
41 uint8_t* GetRGB() { return RGB; }
42 void SetRGBSize( size_t size ) { RGBSize = size; }
43 size_t GetRGBSize() { return RGBSize; }
46 uint8_t* GetUncompressed() { return Uncompressed; }
47 void SetUncompressedSize( size_t size ) { UncompressedSize = size; }
48 size_t GetUncompressedSize() { return UncompressedSize; }
49 void AllocateUncompressed();
52 //////////////////////////////////////////////////////////
54 bool ReadAndUncompress12Bits( FILE* filePointer,
55 size_t uncompressedSize,
57 bool ReadUncompressed( FILE* filePointer,
58 size_t uncompressedSize,
59 size_t expectedSize );
60 bool ConvertGrayAndLutToRGB( uint8_t *lutRGBA );
61 bool ReadAndUncompressRLE8Bits(FILE* fp, size_t uncompressedSize );
62 bool UncompressRLE16BitsFromRLE8Bits( size_t PixelNumber, int NumberOfFrames );
70 //-----------------------------------------------------------------------------