#pragma once #include #include #include #include #include #define NPK_R_FLAG(b){if(!b)continue;} //PNG结构体 struct ImgInfo { //图片格式 int Type; //压缩类型 int CmpType; //宽度 int Width; //高度 int Height; //大小 int Size; //Xpos int Xpos; //Ypos int Ypos; //帧域X int FrameXpos; //帧域Y int FrameYpos; //偏移 int Offset; //Png位图数据 BYTE* PNGdata; }; struct NpkInfo { int Offset; int Length; std::string Path; }; struct IMG //npk的img的结构体 { std::string lpImgName; //img文件的路径 int img_index; //img文件在npk文件里的序号 unsigned imgOffset; unsigned imgSize; std::string lpBelongsFile; //这个img属于哪个npk文件 int png_sum; //这个img文件有多少个 图片 ImgInfo* lp_lplist; //图片的数组.. }; class NPK_M { private: std::map map_npk; public: NPK_M(); void init(); LPDWORD LoadImgToMem(IMG* p); IMG* ReadNpkTable(const std::string imgname); void ReleaseNpkTable(IMG* p); ~NPK_M(); };