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("生成i文件失败!");
return 1;
}
if(fclose(fp_s)==EOF)
printf("关闭失败!")

本文介绍了一个DOS程序,用于将16位BMP文件转换为RAW格式。程序通过读取BMP文件的文件头和信息头,然后生成RAW数据,并对倒序和BI_BITFIELDS压缩格式的文件进行了处理。主要涉及C语言编程、图像处理和文件操作。

6582

被折叠的 条评论
为什么被折叠?



