00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(INCL_PLIFF85DEC)
00024 #define INCL_PLIFF85DEC
00025
00026 #if !defined(INCL_PLPICDEC)
00027 #include "plpicdec.h"
00028 #endif
00029
00030 #include "pliff85.h"
00031
00032
00033 class PLIFF85Decoder : public PLPicDecoder
00034 {
00035
00036 public:
00037
00038 PLIFF85Decoder
00039 ();
00040
00041
00042 virtual ~PLIFF85Decoder
00043 ();
00044
00045
00046 virtual void Open(PLDataSource * pDataSrc);
00047
00048
00049 virtual void GetImage(PLBmp & Bmp);
00050
00051 private:
00052 void readChunkHeader(PLIFF85::Chunk& chunk, PLDataSource * pDataSrc);
00053 void readCompressedRow(PLBYTE * pRow, PLDataSource * pDataSrc, int numBytes);
00054 void readUncompressedRow(PLBYTE * pRow, PLDataSource * pDataSrc, int numBytes);
00055 int getBytesPerRow() const;
00056
00057 PLIFF85::ID m_formType;
00058 PLIFF85::BitMapHeader m_bitmapHeader;
00059 PLPixel32 m_pal[256];
00060 PLIFF85::Viewmode m_viewMode;
00061 };
00062
00063 #endif // !defined(INCL_PLIFF85DEC)
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074