首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

什么是图片打包,该怎么处理

2012-03-05 
什么是图片打包一次性读取很多张图片结果消耗的时间太长,我郁闷听说把图片打包了读取时间会大大减少什么是

什么是图片打包
一次性读取很多张图片
结果消耗的时间太长,我郁闷
听说把图片打包了读取时间会大大减少

什么是图片打包? 如何打包?
有谁给点代码或者资料看看嘛

[解决办法]
最简单的就是把所有图片都放合并为一个文件,然后生成一个配置文件,这个配置文件保存每一张图片在那个合并后的文件中的位置和大小,读的时候由于只打开一个文件,相比打开多个图片文件会快点
[解决办法]

C/C++ code
// 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 

热点排行