RAW文件是位图的图像数据,根据不同的BMP格式它的内容和使用场合都有不同。比如在嵌入式系统中,显示LOGO要使用BMP图,只需要往映射地址放入像素的RGB数据即可实现。以下举一个DOS程序实例,把16位BMP转成十六进制RAW数据。
(1)主函数。因为main可以利用argv带参数,可处理同一路径下的具体文件。
int main(int argc, char *argv[])
{
FILE *fp_s=NULL;
BITMAPFILEHEADER biFileHeader;
BITMAPINFOHEADER biInfoHeader;
PBITMAPFILEHEADER pbiFileHeader= &biFileHeader;
PBITMAPINFOHEADER pbiInfoHeader= &biInfoHeader;
if(!(fp_s=fopen(argv[1],"r+b")))//以二进制可读方式打开流文件
{
printf("打开文件不成功!");
return 1;
}
//读取文件头
if(!(GetBitmapHeader(fp_s, pbiFileHeader, pbiInfoHeader)))
{
printf("读取文件头不成功!");
return 1;
}
//用读取的数据头生成文件
if(!(GenerateIFile(pbiFileHeader,pbiInfoHeader,fp_s, argv)))
{
printf(