UINT HI4(UINT n){
UINT d = (n & 0xF0) >> 4;//取高4位
return d << 4 | d;//A转为AA
}
UINT LO4(UINT n){
UINT d = (n & 0xF);//取低4位
return d << 4 | d;//A转为AA
}
//获取像素点颜色值
UINT getPixel(FILE *p) {
UINT colorA = 0;
UINT colorB = 0;
fread(&colorA, 1, 1,p);
fread(&colorB, 1, 1, p);
return HI4(colorB) << 24 | LO4(colorB) << 16 | HI4(colorA) << 8 | LO4(colorA);//RGB
}
void QQSG图片解码()
{
FILE *pFile = fopen("E:\\ProjectCode\\C&C++\\Game\\QQSG\\Debug\\122.gso", "rb");//打开位图文件
if (!pFile)MessageBox(NULL, L"文件打开失败!", NULL, NULL);
char FileHeaderInfo[9];//位图头部信息大小
fread(FileHeaderInfo, 1, 8, pFile);
UINT Offset = 20;
UINT headeData[256] = { 0 };//位图数据 这里其实用不到这么大. 因为只需要读出位图宽高就可以了
//位图信息大小 80byte
fseek(pFile, 0, SEEK_SET);
for (int i = 0; i < Offset; i++) {
fread(&headeData[i], 1, 4, pFile);
}
//位图宽高
UINT ima
QQ三国图片解码算法
最新推荐文章于 2021-11-18 18:18:50 发布