123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- /***************************************************************************
- * E-Com Technology Ltd.
- *
- * ECOMPACS DICOM Network Transport Libraries * Version 0.1 Beta
- ***************************************************************************/
- class IFileBuffer;
- //class ISeekBuffer;
- class DICOM_API FrameIterator
- {
- public:
- FrameIterator ();
- FrameIterator (DICOMImage * Image);
- ~FrameIterator ();
- public:
- bool SetFileName (const char * szFileName);
- bool SetDicomImage (DICOMImage * Image);
- public:
- bool Next ();
- bool Seek (int FrameIndex);
- protected:
- bool NextFrameOfStream ();
- bool SeekFrameOfStream (int FrameIndex);
- bool NextFrameOfFile ();
- bool SeekFrameOfFile (int FrameIndex);
- public:
- UINT32 GetFrameLength ()
- {
- return CurrentFrameLength;
- }
- void * Detach (void)
- {
- void * tmp = PixelData;
- PixelData = NULL;
- return tmp;
- }
- void * GetData (void)
- {
- return PixelData;
- }
- protected:
- void Init (DICOMImage * pImage);
- BOOL Decompress (void);
- BOOL JPEGBaselineDecode (void);
- BOOL RLEDecode (void);
- BOOL JP2KLosslessDecode (void);
- BOOL JP2KLossyDecode (void);
- BOOL JPEGProc14Decode (void);
- BOOL JPEGProc14SV1Decode (void);
- BOOL JPEGExtendedProcDecode (void);
- BOOL JPEGSpectralProcDecode (void);
- BOOL JPEGFullProgressDecode (void);
- protected:
- UINT32 CurrentFrameLength;
- UINT32 EveryFrameLength;
- void * PixelData;
- UID ImageTransferSyntax;
- protected:
- DICOMImage * m_pDicomImage;
- protected:
- int Rows;
- int Columns;
- int BitsAllocated;
- int BitsStored;
- int HighBit;
- int SamplesPerPixel;
- UINT32 TagLength;
- enum TransferSyntaxType
- {
- TST_Invalid = 0,
- TST_LittleEndianImplicit = 1,
- TST_LittleEndianExplicit,
- TST_BigEndianExplicit,
- TST_LittleEndianCompress
- };
- enum PhotometricInterpretation
- {
- PI_INVALID = 0,
- PI_8BITS = 1,
- PI_16BITS,
- PI_RGB
- };
- enum TransferSyntaxType TransferSyntaxType;
- // IFileBuffer * IFB;
- IFileBuffer * m_ISB;
- // ISeekBuffer * m_ISB;
- PhotometricInterpretation m_PI;
- ULONG * m_pPosition;
- int m_NbOfFrames;
- int m_nFrameIndex;
- bool m_bIsValid;
- bool m_bIsStream;
- };
|