你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
hpdell 提问时间:2016-1-12 10:10 /
本帖最后由 hpdell 于 2016-1-12 15:12 编辑



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


bmp的位图图片有:1、4、8、16、24、32位的,除8位U盘里面的图片显示颜色不正常位,其他都正常,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位 位图图片显示时,显示的图片颜色不对,不知道是什么情况啊 ???


收藏 评论19 发布时间:2016-1-12 10:10

举报

19个回答
hpdell 回答时间:2016-1-13 09:41:33
安 发表于 2016-1-12 19:17
数据读取后,重新赋值到结构体,或者用指针的方式读取。

你好,具体情况如下:


读取sd卡里面的8位位图图片显示如下:
这个图片显示时正常的。



读取u盘里面的8位位图图片显示效果如下:
这个显示时不正常的。



读取sd卡里面的数据截图如下:
这个数据是正常的。



读取u盘里面的8位位图图片数据如下:
这个数据是不正常的 ???????????????????????????????????



从读取的数据来看,读取u盘里面的8位位图图片的数据就是错误的(除读取u盘里面的8位图外,其他位图格式的图片显示都正常),
这是为何啊 ???


hpdell 回答时间:2016-1-13 11:30:14
安 发表于 2016-1-13 11:11
应该是数据格式的问题,楼主看一下读取出来后,数据内容的排列。

8位的bmp数据是从1078的地方开始读取,1078之前的数据都是对的,就是读取图片数据就不对了,真是奇怪啊 !!!!!!
hpdell 回答时间:2016-1-12 14:36:01
圆点博士后 发表于 2016-1-12 12:02
这个估计没人敢解答   看一会眼花了

不好意思啊,刚才比较着急,所以颜色没有搞好啊,现在已经搞好了,帮忙看看啊,谢谢了 !!!
creep 回答时间:2016-1-12 10:59:01
这颜色亮瞎了。。。。
zhangdaijin 回答时间:2016-1-12 11:05:00
颜色太损眼了
moyanming2013 回答时间:2016-1-12 11:18:52
creep 发表于 2016-1-12 10:59
这颜色亮瞎了。。。。

亮瞎了。。。
sting 回答时间:2016-1-12 11:55:11
眼睛好痛............
圆点博士后 回答时间:2016-1-12 12:02:03
这个估计没人敢解答   看一会眼花了
hpdell 回答时间:2016-1-12 14:34:44
creep 发表于 2016-1-12 10:59
这颜色亮瞎了。。。。

不好意思啊,刚才比较着急,所以颜色没有搞好啊,现在已经搞好了,帮忙看看啊,谢谢了 !!!
hpdell 回答时间:2016-1-12 14:35:02

不好意思啊,刚才比较着急,所以颜色没有搞好啊,现在已经搞好了,帮忙看看啊,谢谢了 !!!
hpdell 回答时间:2016-1-12 14:35:26

不好意思啊,刚才比较着急,所以颜色没有搞好啊,现在已经搞好了,帮忙看看啊,谢谢了 !!!
圆点博士后 回答时间:2016-1-12 14:39:28
hpdell 发表于 2016-1-12 14:36
不好意思啊,刚才比较着急,所以颜色没有搞好啊,现在已经搞好了,帮忙看看啊,谢谢了 !!! ...

好的  这下好多了
废鱼 回答时间:2016-1-12 19:17:43
数据读取后,重新赋值到结构体,或者用指针的方式读取。
zhangjian666 回答时间:2016-1-13 10:43:23

废鱼 回答时间:2016-1-13 11:11:35
应该是数据格式的问题,楼主看一下读取出来后,数据内容的排列。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版