📄 转192+64bmp图为二进制.c
字号:
#include "stdio.h"
#include "stdlib.h"
main()
{
unsigned char convert(unsigned char x[]);
int i=0,k=0,j=1;
long ll;
FILE *fp;
unsigned char ch,buf[1540];
if((fp=fopen("car0008.bmp","rb"))==NULL)
{
printf("cannot open this file:f.c\n");
exit(0);
}
for(j=0;j<=1512;j=j+24)
{
ll=1512+62-j;
fseek(fp,ll,0);
for(k=0;k<=23;k++)
{
buf[i]=fgetc(fp);
i++;
}
}
convert(buf);
fclose(fp);
getchar();
}
unsigned char convert(unsigned char x[])
{
int i,j,k,m=0;
unsigned char bit_test=128,c=0xff;
unsigned char bit,a,b,y[1540]={0};
for(k=0;k<=23;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=192;k<=215;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=384;k<=407;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=576;k<=599;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=768;k<=791;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=960;k<=983;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=1152;k<=1175;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=1344;k<=1367;k++)
{
for(i=m;i<=m+7;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=168+k;j>=0+k;j=j-24)
{
bit=(x[j]&bit_test)?1:0;
y[i]=y[i]|bit;
x[j]=x[j]<<1;
a=y[i]>>7; /* x[j]循环左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
printf(" DB ");
j=0;
for(i=0;i<=1535;i++)
{
if(j==16)
{
printf("\n DB ");
j=0;
}
a=y[i]>>1;
b=y[i]<<7;
y[i]=a|b;
if(j==15) printf("%3xH",y[i]^c);
else printf("%3xH,",y[i]^c);
j++;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -