游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2035|回复: 2

传奇3 wil图像解压代码

[复制链接]

26

主题

75

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2006-8-13 18:24:00 | 显示全部楼层 |阅读模式
郁闷,研究了两天,还是未能完全正确的解析RGB数据.估计是16位图的555格式和565格式转换问题,颜色有点偏绿色,不过图像数据可以解压了.可以看到图像了.现在发出来是希望有能之士能帮忙修正颜色问题,指出问题所在,实在感激不尽.我会一直等的...我等着你回来,,我等着你回来,咳,咳,言归正传, 参数pbDestDataBuff 指问一个足够大的内存区指针 sizeof( 图像宽 * 图像高 * 2), pbWilData指向wil图像起始数据. wWidth是图像宽, wHeight是图像高.关于传奇3的文件头网上早有资料了.
希望有能之士能帮忙修正颜色问题,指出问题所在,实在感激不尽!!!!
BOOL  CWilImageOpear::CompWilDataToBuff( BYTE * pbDestDataBuff,  BYTE * pbWilData, DWORD dwWidth, DWORD dwHeight, DWORD length)
{
        WORD   wRColor;
        WORD   wGColor;
        WORD   wBColor;
        WORD * pwDest             = ( WORD * ) pbDestDataBuff;
        WORD * pwSrc               = ( WORD * ) pbWilData;
        DWORD dwCopyWordCnt = 0;

    for( DWORD i = 0; i < dwHeight; i++ )
    {
       for( DWORD j = 0; j < dwWidth ; j++ )
       {

         if(  *pwSrc == 0xC0 )// 标记,压缩数据
         {  
                pwSrc++;
                dwCopyWordCnt = *pwSrc;
                j             += dwCopyWordCnt;
                pwDest        += dwCopyWordCnt;
                pwSrc++;
          }
          else if( *pwSrc == 0xC1 )  //标记,不压缩的数据
          {
                pwSrc++;
                dwCopyWordCnt = *pwSrc;
                j                      += dwCopyWordCnt;

        for( DWORD k = 0; k < dwCopyWordCnt ; k++) //复制不压缩的WORD
        {
                  
             pwSrc++;
                     pwDest++;
                    // 0x7C00  0x03E0 0x001F // 0xF800、0x07E0、0x001F
                    wRColor = ( *pwSrc & 0xF800 ) >> 1; //RGB值有点问题
                    wGColor = ( *pwSrc & 0x07C0 ) >> 1;
                    wBColor = ( *pwSrc & 0x003E ) >> 2;

                    *pwDest = wRColor | wGColor | wBColor;
        }
                pwSrc++;

           }
       }
     pwSrc++;
   }
         return TRUE;
}

10

主题

411

帖子

411

积分

中级会员

Rank: 3Rank: 3

积分
411
发表于 2006-8-13 18:32:00 | 显示全部楼层

Re:传奇3 wil图像解压代码

这个贴不应当发在VB区。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-8-13 22:33:00 | 显示全部楼层

Re:传奇3 wil图像解压代码

人家这是在研究传奇三的图像压缩方法,随便放哪个区都是一样的
算法不管什么语言都是一致的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 03:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表