?? 轉(zhuǎn)換一幅bmp240+64圖為點(diǎn)陣.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[1940];
if((fp=fopen("car0001.bmp","rb"))==NULL)
{
printf("cannot open this file:f.c\n");
exit(0);
}
/*for(j=0;j<=1512;j=j+24)*/
for(j=0;j<=2016;j=j+32)
{
ll=2016+62-j;
fseek(fp,ll,0);
for(k=0;k<=29;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[1940]={0};
/*for(k=0;k<=23;k++)*/
for(k=0;k<=29;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
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;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=480;k<=509;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=720;k<=749;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=960;k<=989;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=1200;k<=1229;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=1440;k<=1469;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
for(k=1680;k<=1709;k++)
{
for(i=m;i<=m+7;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]循環(huán)左移一位*/
b=y[i]<<1;
y[i]=a|b;
}
}
m=m+8;
}
printf(" DB ");
j=0;
for(i=0;i<=1919;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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -