📄 转8幅bmp240+64为16k二进制.c
字号:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
unsigned char y[16384]={0};
main(int argc,char *argv[])
{
unsigned char convert(unsigned char x[],int n);
FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6,*fp7,*fp8,*fp9;
long ll=0;
unsigned char ch,x[1940]={0},c=0xff,a,b;
int i=0,j=0,k=0;
if((fp1=fopen(argv[1],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp2=fopen(argv[2],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp3=fopen(argv[3],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp4=fopen(argv[4],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp5=fopen(argv[5],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp6=fopen(argv[6],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp7=fopen(argv[7],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp8=fopen(argv[8],"rb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
if((fp9=fopen(argv[9],"wb"))==NULL)
{
printf("cannot open input file.\n");
exit(0);
}
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp1,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp1);
j++;
}
}
convert(x,0);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp2,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp2);
j++;
}
}
convert(x,1920);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp3,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp3);
j++;
}
}
convert(x,3840);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp4,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp4);
j++;
}
}
convert(x,5760);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp5,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp5);
j++;
}
}
convert(x,7680);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp6,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp6);
j++;
}
}
convert(x,9600);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp7,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp7);
j++;
}
}
convert(x,11520);
j=0;
for(i=0;i<=2016;i=i+32)
{
ll=2016+62-i;
fseek(fp8,ll,0);
for(k=0;k<=29;k++)
{
x[j]=fgetc(fp8);
j++;
}
}
convert(x,13440);
for(i=0;i<=16383;i++)
{
a=y[i]>>1;
b=y[i]<<7;
y[i]=a|b;
y[i]=y[i]^c;
fputc(y[i],fp9);
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
fclose(fp5);
fclose(fp6);
fclose(fp7);
fclose(fp8);
fclose(fp9);
getchar();
}
unsigned char convert(unsigned char x[],int n)
{
int i,j,k,m=0;
unsigned char bit_test=128;
unsigned char bit,a,b;
/*for(k=0;k<=23;k++)*/
for(k=0;k<=29;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=168+k;j>=0+k;j=j-24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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(k=240;k<=269;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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=480;k<=509;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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=720;k<=749;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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<=989;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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=1200;k<=1229;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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=1440;k<=1469;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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=1680;k<=1709;k++)
{
for(i=m+n;i<=m+7+n;i++)
{
/*for(j=0+k;j<=168+k;j=j+24)*/
for(j=210+k;j>=0+k;j=j-30)
{
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;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -