|
我找了一个BLP格式的说明,但是没看懂。上面这样说
struct sBLP_HEADER_t // 156 byte (0x9c)
{
char ident[4]; // 'BLP1'
ulong_t compress;
ulong_t nummipmaps;
ulong_t sizex;
ulong_t sizey;
ulong_t pictype, picsubtype;
ulong_t poffs[16], psize[16];
} ;
然后是调色盘数据和原始图片数据
调色盘数据: 256*4 byte, (RGB0)
原始图片数据:sizex * sizey * 2 byte
后面是 Mipmaps 数据
具体描述:
sBLP_HEADER_t::poffs[0] 是原始图片数据在文件中的偏移
sBLP_HEADER_t::psize[0] 是原始图片数据在文件中的大小
依次类推,总共最大保存有 16 组图片数据,
依次往下的图片数据的字节数是前一图片数据的 1/4, sizex & sizey 是前一图片数据的 1/2.
if (compress == 1) 图片是不压缩的, 使用调色盘模式存储
if (compress == 0) 图片是 JPEG 压缩格式, 需要跳到文件偏移 0xA0 处并跳过 624 (270H) 个字节
黑体的是什么意思,我尝试着跳到那个位置用IJL解码,无法读取jpeg_header,难道说是要自己填充jpeg_header,但是用editor看文件,明显从0xa0开始是类似jpeg_header的东西,但如果从0xa0处也无法读取 |
|