我这个显示函数只能显示正方形的图片,搞不懂怎么回事

2019-07-21 08:44发布

//单 {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);//打点
                }               
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
稻草人126
1楼-- · 2019-07-21 13:32
正点原子 发表于 2018-10-22 03:00
仿真找问题

解决嘞。
因为单 {MOD}图片的原因颜 {MOD}用一位来表示,图片数组是字节必然有不是8的倍数的图片,没有判断所以有问题了。
正点原子
2楼-- · 2019-07-21 13:39
仿真找问题

一周热门 更多>