📄 fontconver.cpp
字号:
//把字库输出的24*24点阵的字符转换成12*24点阵
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
unsigned int i,j,k;
unsigned char *FontReadBuffer,*FontWriteBuffer;
unsigned int Font[24]={0};
unsigned int TempBuffer[72]={0};
FontReadBuffer =(unsigned char *)malloc(72);
FontWriteBuffer =(unsigned char *)malloc(72);
FILE *FontRead;
FontRead=fopen(".\\0-9:-\\-.bin","rb");
if(FontRead==NULL) exit(1);
fread(FontReadBuffer,72,1,FontRead);
fclose(FontRead);
//显示读入数据
for(i=0;i<9;i++)
{
for(j=0;j<8;j++)
{
printf("%8x ",FontReadBuffer[i*8+j]);
}
printf("\n");
}
printf("\n\n");
//拷贝并移位
for(i=0;i<72;i++)
{
TempBuffer[i]=FontReadBuffer[i];
}
for(i=0;i<72;i+=3)
{
TempBuffer[i] =TempBuffer[i] <<16;
TempBuffer[i+1] =TempBuffer[i+1]<<8;
}
//显示移位后的数据
for(i=0;i<9;i++)
{
for(j=0;j<8;j++)
{
printf("%8x ",TempBuffer[i*8+j]);
}
printf("\n");
}
printf("\n\n");
//conver合并转换后的数据
for(i=0,j=0;i<24;i++,j+=3)
{
Font[i]=TempBuffer[j] | TempBuffer[j+1] | TempBuffer[j+2];
}
//显示合并的数据
for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
printf("%8x ",Font[i*8+j]);
}
printf("\n");
}
printf("\n\n");
//移出数据后6位
for(i=0;i<24;i++)
{
Font[i]=Font[i]>>6;
}
//移出数据前6位
for(i=0;i<24;i++)
{
Font[i]=Font[i]<<12;
}
//显示移出后的数据
for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
printf("%8x ",Font[i*8+j]);
}
printf("\n");
}
printf("\n\n");
//提取数据
for(i=0,j=0;i<24;i++,j+=2)
{
// FontWriteBuffer[j+2] =Font[i];
FontWriteBuffer[j+1]=Font[i]>>8;
FontWriteBuffer[j]=Font[i]>>16;
}
//显示提取的数据
for(i=0;i<6;i++)
{
for(j=0;j<8;j++)
{
printf("%8x ",FontWriteBuffer[i*8+j]);
}
printf("\n");
}
printf("\n\n");
//保存数据
FILE *FontWrite;
FontWrite=fopen(".\\0-9:-\\-.txt","wb");
if(FontWrite==NULL) exit(1);
fwrite(FontWriteBuffer,48,1,FontWrite);
fclose(FontWrite);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -