C语言 读取黑白BMP图

 我来答
天罗网17
2022-10-10 · TA获得超过6189个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73.1万
展开全部
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

现在想用C语言来读取一个黑白的BMP图. 我已经知道: 图的偏移量是54.以二进制打开BMP图,从54个字节开始便应该是图形码了. 如:"FF FF FF FF FF 00 00 FF FF FF" .

图片大小是320*240.我一个个读入后按一行320个像素,240行来画,画出了原图象的一个稍微重叠的图. 所以我怀疑是不是一个字节并不是代表一个像素? 如"FF"并不是代表一个白色像素? 具体如何? 希望能有高手指点下.我取出来的图形码该如何处理才能显示出正确的图来? 感激不尽!!!

解析:

1. 黑白BMP文件图的像素大多是从62字节(从0数起)开始。具体从哪一字节开始, 决定于文件中第10字节(从0数起)开始处4字节的整形数是多少. 因为文件头后面不是紧接着像素值.

2. 黑白BMP图的一个像素用一个bit表示。一般0表示背景(缺省为白色),1表示前景色(缺省为黑色)。即一个字节代表相邻的8个像素。

3. 320*240的黑白BMP图,每行320个像素用40个字节表示,240行,应占40*240=9600字节。加上前头62字节,文件大小应为9662字节。

4. BMP图像素的存储顺序是自底向上。所以文件最后40个字节表示的是第一行的像素值。

5. 行宽如不是8的倍数,也扩展到8的倍数。如行宽321, 则每行像素需用41个字节存储。你的行宽320,恰好是8的倍数,没有这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式