//单 {MOD}图像显示
//配合软件
//输入图像数组需要数据头
//自动确定宽度高度
void lcd_draw_bmp ( u16 xpos, u16 ypos, u32 bmp_sizeof, const u8 *bmp )
{
u8 draw_x=0,draw_y=0;
u8 count_8 = 0;
u16 count = 0;
u16 color = 0;
//分解数据头的数据
Data_header.scan = bmp[count++];
Data_header.gray = bmp[count++];
Data_header.w = (unsigned short)bmp[count++]<<8;
Data_header.w |= bmp[count++];
Data_header.h = (unsigned short)bmp[count++]<<8;
Data_header.h |= bmp[count++];
printf("数组大小:%d
最大宽度:%d
",bmp_sizeof,Data_header.w);
//显示部分
for( ;count<bmp_sizeof;count++ )//bmp_sizeof个数组
{
for( count_8 = 0x80;count_8!=0;count_8>>=1 )//分解数组
{
if(bmp[count]&count_8)//黑白判断
color = 0x0000;
else//黑
color = 0xffff;
draw_x++;
if(draw_x == Data_header.w)//最大宽度
{
draw_x=0;
draw_y++;//显示完毕不影响
}
lcd_draw_point(xpos+draw_x, ypos+draw_y,color);//打点
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
解决嘞。
因为单 {MOD}图片的原因颜 {MOD}用一位来表示,图片数组是字节必然有不是8的倍数的图片,没有判断所以有问题了。
一周热门 更多>