⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 转换一幅bmp240+64图为点阵.c

📁 C 转换一幅bmp240+64图为点阵
💻 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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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]循环左移一位*/
			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;

}

⌨️ 快捷键说明

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