#pragma once //ランレングス4ビット解凍 BOOL __stdcall _DecodeRle4(LPVOID pBuffer,DWORD dwBufferSize, UINT width,UINT height,CFile* infile); //ランレングス8ビット解凍 BOOL __stdcall _DecodeRle8(LPVOID pBuffer,DWORD dwBufferSize, UINT width,UINT height,CFile* infile); //ランレングス4ビット圧縮 INT_PTR __stdcall _EncodeRle4(LPVOID pBits,DWORD dwSizeImage, UINT width,UINT height,CFile* outfile); //ランレングス8ビット圧縮 INT_PTR __stdcall _EncodeRle8(LPVOID pBits,DWORD dwSizeImage, UINT width,UINT height,CFile* outfile); // CRle command target class CRle : public CObject { public: //コンストラクタ CRle(){}; //デストラクタ virtual ~CRle(){}; //4ビットランレングス圧縮 INT_PTR EncodeRle4(LPVOID pBits,DWORD dwSizeImage,UINT width,UINT height,CFile* outfile); //8ビットランレングス圧縮 INT_PTR EncodeRle8(LPVOID pBits,DWORD dwSizeImage,UINT width,UINT height,CFile* outfile); private: //4ビットランレングス圧縮データをファイルに書き込みます。 INT_PTR _WriteEncodeRLE4(CFile* outfile); //8ビットランレングス圧縮データをファイルに書き込みます。 INT_PTR _WriteEncodeRLE8(CFile* outfile); //エンコード時に使用するモード定義 enum {ABS_MODE,ENCODE_MODE}; //キューバッファ(データ比較) CByteArray m_arrayQueue; //コードバッファ(コード保持) CByteArray m_arrayCode; //現在のモードを保持する変数 UINT m_uMode; };