硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5099|回复: 2
收起左侧

[有问必答] 请教下,读取sd卡,u盘里面的bmp图片解码显示 ?

[复制链接]

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
发表于 2016-1-12 10:09:04 | 显示全部楼层 |阅读模式
请教下,读取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位 位图图片显示时,显示的图片颜色不对,不知道是什么情况啊 ???
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2016-1-13 09:21:37 | 显示全部楼层
应该是你解码函数的问题。
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
 楼主| 发表于 2016-1-13 09:36:53 | 显示全部楼层

回 eric2013 的帖子

eric2013:
应该是你解码函数的问题。

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



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



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



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



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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 05:06 , Processed in 0.178696 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表