读取资源中的GIF文件相应像素宽高度
代码参考了如下网页的实现:
https://www.cnblogs.com/zy791976083/p/9921069.html
整理成一个函数:
BOOL GetResGifSize(long nResId, LPCTSTR name, long *lnWidth, long *lnHeight)
{
HRSRC hRsrc=FindResource(NULL, MAKEINTRESOURCE(nResId), name);if (NULL ==hRsrc) {returnFALSE;
}
DWORD dwSize=SizeofResource(NULL, hRsrc);
HGLOBAL hGlobal=LoadResource(NULL, hRsrc);if (NULL ==hGlobal) {
CloseHandle(hRsrc);returnFALSE;
}
unsignedchar* pBuffer = (unsigned char*)LockResource(hGlobal);if (NULL ==pBuffer) {
CloseHandle(hRsrc);
FreeResource(hGlobal);returnFALSE;
}//判断是否为GIF文件 if(pBuffer[0] != 0x47 && pBuffer[1] != 0x49 && pBuffer[2] != 0x46 && pBuffer[3] != 0x38){returnFALSE;
}//读取宽高 for(int i = 4; i < dwSize ; i++)
{if(pBuffer[i] == 0x00 && pBuffer[i+1] == 0x2c)
{*lnWidth = (pBuffer[i+7]<<8) | pBuffer[i+6];*lnHeight = (pBuffer[i+9]<<8) | pBuffer[i+8];
UnlockResource(hGlobal);
FreeResource(hGlobal);returnTRUE;
}
}
UnlockResource(hGlobal);
FreeResource(hGlobal);returnFALSE;
}