打开bmp图片显示,但是怎么显示字符?没有驱动源码
#define LEDWID 64
#define LEDHIT 32
static char bufTmp[3*LEDWID*LEDHIT+1024];//24bit bmp picture:8b+8g+8r
static char LedBuf[32*64];//0-YELLOW 1-GREEN 2-RED 3-DARK
static int bmpfd;
static int ledfd;
void Form1::SlotWrite()
{
memset(bufTmp, 0, 3*LEDWID*LEDHIT+1024);
memset(LedBuf, 3, 32*64);
bmpfd = open("/tmp/face.bmp", O_RDWR);
if(bmpfd <=0)
{
printf("error:bmp file not exist\n");
return;
}
int ret = read(bmpfd, bufTmp, 3*LEDWID*LEDHIT+1024);
if(ret <= 14)
{
printf("error: no bmp data\n");
close(bmpfd);
return;
}
int off = bufTmp[10]+bufTmp[11]*256+bufTmp[12]*256*256+bufTmp[13]*256*256*256;
if(ret < (3*LEDWID*LEDHIT+off))
{
printf("error: bmp file length\n");
close(bmpfd);
return;
}
for(int i = 0; i < 32*64; i++)
{
if(bufTmp[off+i*3+2]) //red
LedBuf -= 1;
if(bufTmp[off+i*3+1]) //green
LedBuf -= 2;
if(LedBuf == 0 && bufTmp[off+i*3])
LedBuf += 3;
}
write(ledfd, LedBuf, 32*64);
}