千千静听里的皮肤文件实际就是一个rar,里面很多bmp图片
我想知道他是怎么读取这个压缩包并从里面将图片提取出来并显示的呢?
需要用rar接口?zlib?木有发现这个迹象的啊?
我一般都是从文件夹用CImage加载图片绘制界面的,为了实现动态换肤,现在要将这些
图片全部弄成一个压缩包,不知道用什么方法读取好,求一个好的方案。
我想知道他是怎么读取这个压缩包并从里面将图片提取出来并显示的呢?
需要用rar接口?zlib?木有发现这个迹象的啊?
我一般都是从文件夹用CImage加载图片绘制界面的,为了实现动态换肤,现在要将这些
图片全部弄成一个压缩包,不知道用什么方法读取好,求一个好的方案。
不过你也没有必要搞成一个压缩包,你可以做成一个资源dll更方便
HZIP hzip = OpenZip(_T("orange.skn"),0);
if (hzip)
{
ZIPENTRY ze;
int i;
FindZipItem(hzip,_T("equalizer_skin.bmp"),true,&i,&ze);
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, ze.unc_size);
void * pData = GlobalLock(hGlobal);
UnzipItem(hzip,i, pData, ze.unc_size);
GlobalUnlock(hGlobal); IStream *pStream = NULL;
if (CreateStreamOnHGlobal(hGlobal, TRUE, & pStream) == S_OK)
{
CImage image;
if (SUCCEEDED(image.Load(pStream)))
{
image.TransparentBlt(dc,10,10,image.GetWidth(),image.GetHeight(),RGB(255,0,255)); }
pStream->Release();
}
GlobalFree(hGlobal);
CloseZip(hzip);
}
楼主也可以考虑下用资源dll实现