pix_conv.c

来自「国产CPU-龙芯(loongson)BIOS源代码」· C语言 代码 · 共 70 行

C
70
字号
#include <stdio.h>inline void flush(char *buf, int off);    char default_inname[]="test.bmp";char default_outname[]="test.h";int main(int argc, char *argv[]){    char *in_fname=default_inname;    char *out_fname=default_outname;    FILE *fp,*fp1;    char pix;    char buf[9];    int i = 0;    int j = 0;    if (argc > 1)	in_fname = argv[1];    if (argc > 2)	out_fname = argv[2];    fp = fopen(in_fname, "r");    if (fp == NULL)    {	perror("fopen");	return -1;    }    fp1 = fopen(out_fname, "w");    if (fp1 == NULL)    {	perror("fopen");	return -1;    }    i = 0;    fseek(fp, 62, SEEK_SET);    while (!feof(fp))    {	fread(&pix, 1, 1, fp);	sprintf(buf + ((i % 4)<<1),"%02x", pix);	flush(buf, (i % 4)*2+2);	if(!((i+1) % 4))	{	    fprintf(fp1,"0x");	    for (j = 0; j<= 2*(i%4)+1; j++)		fprintf(fp1,"%c", buf[j]);	    fprintf(fp1,", ");	}	i++;	if (!(i % 32))	    fprintf(fp1,"\n");    }    if ((i - 1) % 4)	    fprintf(fp1,"0x%s, ", buf);        printf("i=%d\n", i);    fclose(fp);    fclose(fp1);    return 0;}inline void flush(char *buf, int off){    int i = 0;    for (i = off; i < sizeof(buf); i++)    {	buf[i]=0x00;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?