什么是图片打包
一次性读取很多张图片
结果消耗的时间太长,我郁闷
听说把图片打包了读取时间会大大减少
什么是图片打包? 如何打包?
有谁给点代码或者资料看看嘛
[解决办法]
最简单的就是把所有图片都放合并为一个文件,然后生成一个配置文件,这个配置文件保存每一张图片在那个合并后的文件中的位置和大小,读的时候由于只打开一个文件,相比打开多个图片文件会快点
[解决办法]
// Pack.h#ifndef _FILEPACK_#define _FILEPACK_#include <windows.h>#include <string>#include <vector>using std::string;using std::vector;enum FIleFormat{ BMP, JPG, PNG, TGA,};// 文件头 (20 bytes total)struct XMHHeader{ XMHHeader() { m_Signature = 0; m_Width = 0; m_Height = 0; m_FrameCount = 1; m_Version = 1000; m_Reserved = 0; } DWORD m_Signature; // 文件标识:"XMHH" DWORD m_Width; // 图片使用 DWORD m_Height; // 图片使用 WORD m_FrameCount; // 帧数 WORD m_Version; // 版本信息 DWORD m_Reserved; // 保留字};// 图像的索引信息 (20 bytes total)struct ImgIndex{ ImgIndex() { m_FileIndex = 0; m_FileSize = 0; m_FIleFormat = JPG; } DWORD m_FileIndex; // 排在所有XMH_MultiTexIndex信息字节的后面,该索引是每帧数据尾部的字节大小 DWORD m_FileSize; DWORD m_FIleFormat; // 图片格式 DWORD m_Width; DWORD m_Height;};class CFilePack{public: CFilePack(); ~CFilePack(); // ----------------------------- bool LoadFileDate(const char* szDirectory); int GetFileCount() const { return m_VecFileName.size(); } vector<string> GetVecFileName() const { return m_VecFileName; } // 获得文件名容器 string GetCurrtFolderPath() const { return m_CurrtFolderPath; } // 获得当前文件路径 void SetPackFolderPath(string szDirectory) { m_PackFolderPath = szDirectory; } void SetUnPackFolderPath(string szDirectory) { m_UnPackFolderPath = szDirectory; } // ----------------------------- bool Pack(const char* szPackFile); // 封包 bool UnPack(const char* szPackFile); // 解包private: vector<string> m_VecFileName; // 保存文件名的容器 string m_CurrtFolderPath; // 当前文件所在的文件夹路径 string m_PackFolderPath; // 封包文件的目录 string m_UnPackFolderPath; // 解包文件的目录};#endif