请教下,读取sd卡,u盘里面的bmp图片解码显示 ?

2019-07-14 16:39发布

本帖最后由 hpdell 于 2016-1-12 15:12 编辑



请教下,读取sd卡、u盘里面的bmp图片解码显示,sd卡与u盘里面的bmp图片文件完全一样,图片的位图也都一样,


bmp的位图图片有:1、4、8、16、24、32位的,除8位U盘里面的图片显示颜 {MOD}不正常位,其他都正常,sd卡里面的所以位图显示都正常。


#pragma pack(4)                                    // 这个地方改成4字节对齐,如果不改成4字节对齐,那么u盘读取失败
typedef  __packed struct{
        unsigned char type[2];
        unsigned long int file_size;
        unsigned long int reserved;
        unsigned long int offset;
        unsigned long int header_info_size;   //0x28
        unsigned long int width;
        unsigned long int height;
        unsigned short int planes;   //always 1
        unsigned short int bit_count; // 1 4 8 16 24 32
        unsigned long int compression;
        unsigned long int image_size; //can set 0(rgb)
        unsigned long int xpels_per_meter;
        unsigned long int ypels_per_meter;
        unsigned long int color_used;
        unsigned long int color_important;
        unsigned long int mask;
        
}BMP_MASK_T;




按照上面改成4字节对齐后,sd卡显示仍然正常,但是读取u盘里面的 8位 位图图片显示时,显示的图片颜 {MOD}不对,不知道是什么情况啊 ???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
TOPCB
1楼-- · 2019-07-16 06:39
应该是数据格式的问题,楼主看一下读取出来后,数据内容的排列。
7vyydyfwef
2楼-- · 2019-07-16 12:18
TOPCB 发表于 2018-10-24 11:03
应该是数据格式的问题,楼主看一下读取出来后,数据内容的排列。

8位的bmp数据是从1078的地方开始读取,1078之前的数据都是对的,就是读取图片数据就不对了,真是奇怪啊 !!!!!!
TOPCB
3楼-- · 2019-07-16 14:05
看一下有没有规律,是不是数据移位了。
wq644921241
4楼-- · 2019-07-16 20:04
 精彩回答 2  元偷偷看……
帅帅的欧尼酱
5楼-- · 2019-07-16 23:51
帮顶
7vyydyfwef
6楼-- · 2019-07-17 05:00
他奶奶的,终于搞定了哦,

在fatfs系统里面的 ffconfig.h 里面,#define _USE_BUFF_WO_ALIGNMENT  1   

吧这个1 改成0就ok了

一周热门 更多>