用stm32做的照相机,往bmp文件中写bmp首部问题

2019-03-23 17:28发布

现在是写bmp首部数据写不进去文件里。但是不写bmp首部,只写图片数据的话,图片数据可以写进去。要是把bmp首部大小减一,再写图片数据,图片数据也可以写进去。这是哪里的问题呢
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
啊所到之处
1楼-- · 2019-03-24 23:05
啊所到之处 发表于 2017-10-23 19:03
#define RGB565_FILE_HEADER_SIZE 0x46
u8 bmp_encode(u8 *filename,u16 x,u16 y,u16 width,u16 height, ...

这是我的总程序
gs001588
2楼-- · 2019-03-25 04:30
 精彩回答 2  元偷偷看……
啊所到之处
3楼-- · 2019-03-25 06:27
gs001588 发表于 2017-10-23 23:11
没有硬件,单从程序上没看出什么问题来。要不把BMP头和数据都装到databuf,一次写到文件中去试试。

我试了,一块发的话数据大小变了后,就写不进去。

                for(ty=y+height-1;hbmp.bmiHeader.biHeight;ty--)//循环240次
                {
                        pixcnt=0;
                        for(tx=x;pixcnt!=(bi4width/2);)//循环320次
                        {

                                       
                                        if(pixcnt<hbmp.bmiHeader.biWidth)databuf[pixcnt]=LCD_ReadPoint(tx,ty);//读取坐标点的值
                                else
                                        databuf[pixcnt]=0Xffff;//补充白 {MOD}的像素.  
                               
                                pixcnt++;
                                tx++;
                       
                        }
                        hbmp.bmiHeader.biHeight--;
                        res=f_write(f_bmp,(u8*)databuf,bi4width,&bw);//写入数据
                       
                        }
就上面这样可以写进去,但我把红 {MOD}部分循环注释掉,就写不进去,这感觉很奇怪啊

一周热门 更多>