简要说明:

BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit(我们这里使用24bit)。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。

1.    24位位图结构定义

1.1  文件头结构定义

typedef structtagBITMAPFILEHEADER{

WORD bfType;//位图文件的类型,必须为BM(1-2字节)

DWORD bfSize;//位图文件的大小,以字节为单位(3-6字节)

WORD bfReserved1;//位图文件保留字,必须为0(7-8字节)

WORD bfReserved2;//位图文件保留字,必须为0(9-10字节)

DWORD bfOffBits;//位图数据的起始位置,以相对于位图(11-14字节)//文件头的偏移量表示,以字节为单位

} BITMAPFILEHEADER;

1.2  位图信息头结构定义

BMP位图信息头数据用于说明位图的尺寸等信息。

typedef structtagBITMAPINFOHEADER{

DWORD biSize;//本结构所占用字节数(15-18字节)

LONG biWidth;//位图的宽度,以像素为单位(19-22字节)

LONG biHeight;//位图的高度,以像素为单位(23-26字节)

WORD biPlanes;//目标设备的级别,必须为1(27-28字节)

WORD biBitCount;//每个像素所需的位数,必须是1(双色),(29-30字节)//4(16色),8(256色)或24(真彩色)之一

DWORD biCompression;//位图压缩类型,必须是 0(不压缩),(31-34字节)//1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一

DWORD biSizeImage;//位图的大小,以字节为单位(35-38字节)

LONG biXPelsPerMeter;//位图水平分辨率,每米像素数(39-42字节)

LONG biYPelsPerMeter;//位图垂直分辨率,每米像素数(43-46字节)

DWORD biClrUsed;//位图实际使用的颜色表中的颜色数(47-50字节)

DWORD biClrImportant;//位图显示过程中重要的颜色数(51-54字节)

} BITMAPINFOHEADER;

1.3  位图数据阵列

位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占3个字节

2.    举例说明

从一个24位图的图片里,读出如下信息:

424D B634 1800 0000 0000 3600 0000 2800 0000 3003 0000 8802 0000 0100 1800 0000 0000 8034 1800 C40E 0000 C40E 0000 0000 0000 0000 0000 B48D 61B3 8C60

24位BMP图可分为3个部分:位图文件头、位图信息、位图阵列

2.1     文件头(14个字节)

字节

字节号

解释说明

424D

1-2

可以转换为字符‘B’、‘M’,是用于识别BMP文件的标志

B634 1800

3-6

存放的是位图文件的大小,计算得文件大小为1586358字节

0000 0000

7-10

保留字节,必须为0

3600 0000

11-14

表示位图阵列相对于文件头的偏移量,计算得54,即位图阵列从第55字节开始

2.2  位图信息(40个字节)

字节

字节号

解释说明

2800 0000

15-18

位图信息头占用的字节数,把0028转换10进制为40,即占用了40节

3003 0000

19-22

位图的宽度,以像素为单位,计算得位图的宽度为816像素

8802 0000

23-26

位图的高度,也以像素为单位,计算得位图的高度为648像素

0100

27-28

位图的平面数,必须为1

1800

29-30

代表每个像素所需要的位数,很显然我们做的是24为位图,结果为24

0000 0000

31-34

代表位图压缩类型,如果不压缩必须为0

8034 1800

35-38

位图阵列的大小,以字节为大小,计算得1586304字节

C40E 0000

39-42

位图水平分辨率

C40E 0000

43-46

位图垂直分辨率

0000 0000

47-50

位图实际使用的颜色表中的颜色数,24位不需要调色板所以设置为0

0000 0000

51-54

位图显示过程中重要的颜色数,为0表示都重要

2.3  位图数据阵列

从第55字节开始,每3个字节表示一个像素,这3个字节依次表示该像素的红、绿、蓝亮度分量值。

mysql 存储位图_24位位图存放格式说明相关推荐

  1. 16位位图格式及对16位位图的一点个人总结

    原文地址::http://hi.baidu.com/rmgsxpxtzebcdpd/item/2fa5bf4e7f576c0be9350470 http://hi.baidu.com/wentao/b ...

  2. ARM处理器中“8位位图”

    在ARM处理器的汇编语言中,对指令语法格式中的<shifter_operand>的常数表达式有这样的规定:"该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的. ...

  3. 位图文件(BMP)格式以及Linux下C程序实现

    说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 片往往很大.在Windows下,任何格式的图片文件都要 ...

  4. mysql format row_MySQL之InnoDB存储引擎:Row Format行格式

    MySQL下用的比较多.比较广的存储引擎就属InnoDB.这里我们来介绍下InnoDB存储引擎下数据记录的存储格式--Row Format行格式 基本操作 在MySQL中,所谓Row Format行格 ...

  5. 将图像转换为1位位图 (1像素对应1bit)

    文章参考网址:http://www.voidcn.com/blog/suifeng50/article/p-4907477.html #include "opencv2\highgui\hi ...

  6. 位图文件(BMP)格式分析以及程序实现

    最近正在着手开发一个图片库,也就是实现对常见图片格式的度写操作.作为总结与积累,我会把这些图片格式以及加载的实现写在我的Blog上. 说到图片,位图(Bitmap)当然是最简单的,它Windows显示 ...

  7. 位图文件(BMP)格式分析

    一.文件格式  Bmp文件是非常常用的位图文件,无论是游戏还是其他都被广泛使用.针对bmp文件的处理也有一堆现成的api进行调用,然而文件内部究竟怎样,如何自己来解析这样的文件呢?为了消除无聊,我用了 ...

  8. matlab修改图片位深度_BMP位图32位转为24位深度

    帮朋友做一个视频采集和基本处理功能,要求的是.bmp格式 几天下来,通过directshow进行视频采集,并抓去图片保存,按照要求进行业务处理,以前的处理程序是基于RGB24 而显示器是32位真彩色, ...

  9. mysql存储base64位用什么类型_了解什么是存储引擎引发的MySQL面试3连问

    引言 1.什么是存储引擎? 2.你设计表时使用什么存储引擎? 3.不同存储引擎分别适用于哪些场景? (0)什么是存储引擎? 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着 ...

最新文章

  1. 给wmnp升级php和nginx的方法
  2. squid正反向代理-加快网站访问速度
  3. 【Spring注解系列03】@Scope与@Lazy
  4. 元气森林,饮料界的小罐茶?
  5. ABP入门系列(3)——领域层定义仓储并实现
  6. asp.net mysql 增删该查_asp.net 数据库的增删改查
  7. MS08067 第一期 “恶意代码分析”实战班 12.17号开班~
  8. 机器人标准DH建模法
  9. 单片机(嵌入式)程序分层架构
  10. 《21天学通C++(第五版)》 [美] Jesse Liberty Bradley Jones著——个人学习笔记
  11. LeetCode 0699.掉落的方块
  12. 什么是嵌入式培养?要不要选嵌入式培养?
  13. [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
  14. windows删除注册表中多余信息及卸载残余应用
  15. 「精品」板绘线稿临摹图
  16. 佳能服务器维护,佳能产品维护工具(IJ Printer Assistant tool)
  17. Linux-rpm命令
  18. 使用cmake构建工程
  19. 长安大学计算机研究生报录比,2020年长安大学考研报录比
  20. 分享一个快速的Json(反)序列化开源项目 Jil

热门文章

  1. BigDecimal.ROUND_HALF_DOWN(五舍六入)
  2. 安装软件出现错误代码0x8007007e
  3. AS中的shift+F6的作用
  4. 摄影基础教程第三天(二)
  5. js利用offsetWidth和clientWidth来计算滚动条的宽度
  6. AMBA Specification (Rev 2.0)简介
  7. 永远不要去依赖别人_永远不要太依赖别人
  8. JS实现识别电脑浏览器和手机浏览器
  9. CSS鼠标悬浮图片放大效果
  10. 菜鸟级测试开发者日记1 2020总结碎碎念看破红尘般的展望