C语言,BMP格式解析,生成不同位深的图片。

本文详细介绍了BMP文件格式,包括文件头、位图信息头、调色板和位图数据的构成。重点讲解了位深和色深的概念,并提供了从CSV数据生成灰度值BMP图片的C语言实现。
摘要由CSDN通过智能技术生成

0.前言

目录

0.前言

1.BMP格式详解

1.1图片的构成   

1.2BMP格式

1.2.1文件头

1.2.2位图信息头

1.2.3调色板

1.2.4位图数据

2.生成

3.总结


        最近工作任务繁重且对我来说小有难度,但是没有困难的事情做起来怎么有收获呢?

        今天推荐一本书《寻找光的小女孩》,挺感人的。记得是高中借的同学的看的,刚开始看到书名感觉不怎么投我的胃口,果不其然不可“以貌取书”,熬夜看完了。


        最近工作上逐渐步入正轨,研发的工作嘛,对吧,不可以设置限制,这才能体现到研发,才能发挥研发的最大福利。工作也算是小半年了,逐渐慢慢对手里的东西或者说项目有了自己的认识,这或许就是经验。这种感觉我刚刚能觉察到,相信再给我一些时间,可以掌握吧。

        喜欢上了喝无糖可乐。哈。


1.BMP格式详解

        这是最近工作的内容,任务是从csv文件获取数据,将获取到的数据通过算法转为灰度值,然后填充进BMP格式图片,要求图片位深16位。


1.1图片的构成   

        其实我们知道每张图片都是由每个像素组成的,多少的像素也构成图片的大小。每个像素是什么构成的呢?在bmp中就是数值。在此之前,先说明两个概念,位深和色深。(好长时间不写博客,手生了起来,逻辑思路也不如以前,见谅)。

        位深:这个名词是用来描述什么?每个像素的大小,是一个大小的代名词。比如位深是24的图片,就是说这张图片的每个像素的值是由24比特的大小来表示,比如一幅图片是1080*1280的大小,那么位深24的bmp大小就在1080*1280*3字节左右(这里我是在Linux下做的,从虚拟机拷贝到win下大小会不同,大概是因为架构的不同)。

        色深:在bmp中,每个像素的值,其实也就是颜色的值是由三通道RGB组成的,24位的图,每个通道的表示为8比特,即一字节,范围是0-255,三通道(红绿蓝)范围皆是0-255,那这三种通道合成的颜色也就是255*255*255种,这个值就叫做色深,是一个数量的范围,描述颜色的多少。

        这两种概念容易模糊,不知道我写的能不能帮助大家理解。


1.2BMP格式

        参考:bmp格式andbmp格式

        就把这个图片想象成普通的文件就行了,只不过区别就是要有固定的头。


1.2.1文件头

        文件头,顾名思义是描述这个文件的信息,也就是这个图片的信息。这里面的内容包含了文件的大小这一重要信息。此部分大小是14字节。

字节顺序

数据结构

描述

1,2

16比特

高8位位字母‘B,低8位为字母’M‘

3,4,5,6

32

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值