免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10806 | 回复: 9
打印 上一主题 下一主题

[C] 求助c语言读取bmp格式图片问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-31 15:52 |只看该作者 |倒序浏览
BOSS要我做一个嵌入式linux下直接调用/dev/fb0输出图片到lcd的程序.

了解到如下资料:
1.bmp图片文件都是由文件头,bf0ffBits字段,位图头,色彩结构,色彩对应表和位图数据组成.每个像点可含1,4,8,24位元图形.
2./dev/fb0是字符设备,对其操作就是采用系统调用中的read()和write()

所以我想,是不是直接就用read()从bmp文件中读出一个数据然后用
write()给写到/dev/fb0中去呢?

但是这样做好像有点问题:
1.bmp图片的文件头怎么处理?送给lcd显示的应该只要色彩和像素数据吧.
2.各个像点不同的位元怎么处理?1,4,8,24位元的图形在数据组织上都有区别的吧.
3.显示的时候还要考虑所用的lcd的大小型号吧?

不知道我这样想的对了多少?

小弟新学C语言 ,请各位给点提示.
谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-08-31 15:59 |只看该作者

求助c语言读取bmp格式图片问题

BMP文件头的偏移量是0X436,如果是256级灰度,则一个字节表示一个象素,24位彩色应该是3个字节表示一个象素。以前写过类似的转换程序,现在差不多都忘了:(

论坛徽章:
0
3 [报告]
发表于 2005-08-31 16:05 |只看该作者

求助c语言读取bmp格式图片问题

C不知道!不过小弟知道用VC读取BMP文件将其压缩成JPG格式的算法.
不知道对你有没有用!!!
FILE* pFile;            // 输入文件句柄

  if ((pFile = fopen(bmFile.c_str(),"rb") == NULL)   // 打开文件
  {
   throw("open bmp file error.";   
  }
//bmFile  就是 string fileName = string(argv[1]);

获取jpeg编码需要的bmp数据结构,jpeg要求数据缓冲区的高和宽为8或16的倍数
算法是下的小弟也不懂,不过打开文件还是很简单的!

论坛徽章:
0
4 [报告]
发表于 2005-08-31 16:09 |只看该作者

求助c语言读取bmp格式图片问题

论坛徽章:
0
5 [报告]
发表于 2005-09-01 09:23 |只看该作者

求助c语言读取bmp格式图片问题

谢谢各位!
我先去看看

论坛徽章:
0
6 [报告]
发表于 2005-09-01 13:30 |只看该作者

求助c语言读取bmp格式图片问题

查阅MSND bmphead (大概的结构名字)得到BMP文件结构,如果不想查,普通的数据偏移好像在OFFSET 54的位置,可以找一个24位的位图看看。扔到FB上看看,注意FB是16位的情况需要转换

论坛徽章:
0
7 [报告]
发表于 2005-09-01 14:11 |只看该作者

求助c语言读取bmp格式图片问题

楼主是搞手机软件开放的?

论坛徽章:
0
8 [报告]
发表于 2005-09-01 18:49 |只看该作者

求助c语言读取bmp格式图片问题

呵呵
谢谢大家!问题还没有解决~继续努力中!

问题的关键就如xujunxp和hatname所说的,我正在想办法找到真正有用的像素数据即所谓的位图阵列...
主要困难就是不好确定位图阵列的真正起点,知道的兄弟给点提示,谢谢 !


to:高峰,我是做ARM开发的.

论坛徽章:
0
9 [报告]
发表于 2005-09-01 19:42 |只看该作者

求助c语言读取bmp格式图片问题

LZ你要自己做开发套件吗?

论坛徽章:
0
10 [报告]
发表于 2005-09-01 20:48 |只看该作者

求助c语言读取bmp格式图片问题

还有一些信息,位图的填充顺序好像是位图左下脚开始,即从左到右,从下到上。还有一点很重要,当位图的WIDTH不是4的倍数,每行末尾补0,凑成4的倍数,当然不一定正确,不过我当时写256位图转换时,确实如此。good luck!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP