`
feng88724
  • 浏览: 172776 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

位图bmp

阅读更多
说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图个时候才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的(Flash中使用了适量图,是按相同颜色区域存储的)。

一、下面我们来看看位图文件(*.BMP)的格式。

位图文件主要分为如下3个部分:

块名称
对应Windows结构体定义
大小(Byte)

文件信息头
BITMAPFILEHEADER
14

位图信息头
BITMAPINFOHEADER
40

RGB颜色阵列
BYTE*
由图像长宽尺寸决定


1、   文件信息头BITMAPFILEHEADER

结构体定义如下:

typedef struct tagBITMAPFILEHEADER { /* bmfh */

UINT bfType; 
DWORD bfSize;
UINT bfReserved1;
UINT bfReserved2;
DWORD bfOffBits;

} BITMAPFILEHEADER;

其中:

bfType
说明文件的类型,该值必需是0x4D42,也就是字符'BM'。

bfSize
说明该位图文件的大小,用字节为单位

bfReserved1
保留,必须设置为0

bfReserved2
保留,必须设置为0

bfOffBits
说明从文件头开始到实际的图象数据之间的字节的偏移量。这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。


2、位图信息头BITMAPINFOHEADER

结构体定义如下:

typedef struct tagBITMAPINFOHEADER { /* bmih */

DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;

} BITMAPINFOHEADER;

其中:

biSize
说明BITMAPINFOHEADER结构所需要的字数。

biWidth
说明图象的宽度,以象素为单位。

biHeight
说明图象的高度,以象素为单位。注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。大多数的BMP文件都是倒向的位图,也就是时,高度值是一个正数。

biPlanes
为目标设备说明位面数,其值将总是被设为1。

biBitCount
说明比特数/象素,其值为1、4、8、16、24、或32。但是由于我们平时用到的图像绝大部分是24位和32位的,所以我们讨论这两类图像。

biCompression
说明图象数据压缩的类型,同样我们只讨论没有压缩的类型:BI_RGB。

biSizeImage
说明图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0。

biXPelsPerMeter
说明水平分辨率,用象素/米表示。

biYPelsPerMeter
说明垂直分辨率,用象素/米表示。

biClrUsed
说明位图实际使用的彩色表中的颜色索引数(设为0的话,则说明使用所有调色板项)。

biClrImportant
说明对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。


3、RGB颜色阵列

有关RGB三色空间我想大家都很熟悉,这里我想说的是在Windows下,RGB颜色阵列存储的格式其实BGR。也就是说,对于24位的RGB位图像素数据格式是:

蓝色B值
绿色G值
红色R值


对于32位的RGB位图像素数据格式是:

蓝色B值
绿色G值
红色R值
透明通道A值


透明通道也称Alpha通道,该值是该像素点的透明属性,取值在0(全透明)到255(不透明)之间。对于24位的图像来说,因为没有Alpha通道,故整个图像都不透明。
分享到:
评论
2 楼 rogerer 2010-08-27  
1位、2位、4位、8位、16位、24位 位图的每个像素的RGB格式是怎么样的?
怎么去的RGB值?
1 楼 feng88724 2009-01-15  
24位BMP位图文件
要利用BMP位图进行加密首先需要了解BMP文件的存放格式,24位真彩BMP位图文件包括3部分:
第一部分是BMP文件头:前2个字节是“BM”,是用于识别BMP文件的标志;第3、4、5、6字节存放的是位图文件的大小,以字节为单位;第7、8、9、10字节是保留的,必须为0;第11、12、13、14字节给出位图阵列相对于文件头的偏移。
第二部分是点位图信息:从第29个字节开始,第29、30字节描述的是像素的位数;第35、36、37、38字节确定图像字节数的多少,但通常此项为空。
第三部分是位图阵列:从第39个字节开始,每3个字节表示一个像素,这3个字节依次表示该像素的红、绿、蓝亮度分量值。要从位图文件中“挤"出用来隐藏其他重要信息的存储空间,就需要从这里入手。

相关推荐

    C实现位图bmp的合成和缩放

    总结一下,C语言实现位图BMP的合成和缩放涉及到理解BMP文件格式、透明度合成、像素插值和边界处理等多个技术点。实际操作时,需要编写读取、合成和缩放的函数,并结合示例代码和测试数据进行调试和完善。通过这个...

    位图BMP格式图像文件处理类源码VC版.rar_bmp_vc 文件读写_位图 VC_位图读写操作_文件读写

    位图BMP(Bitmap)格式是Windows操作系统中最基础的图像文件格式之一,它以未经压缩的原始像素数据存储图像。在VC++环境下,处理BMP文件通常涉及到文件的读写操作,以及对图像数据的解析和操作。这个“位图BMP格式...

    bmp-file-format.rar_BMP 头文件_bmp_位图 BMP

    BMP文件的开头是文件头,它包含了两个重要的结构:BITMAPFILEHEADER(位图文件头)和BITMAPINFOHEADER(位图信息头)。BITMAPFILEHEADER是一个14字节的数据结构,主要包含以下信息: 1. 文件类型标识('B'和'M',...

    C#bmp单色生成

    在C#编程中,BMP(Bitmap)是一种常见的图像文件格式,用于存储位图图像。在某些场景下,我们可能需要生成单色的BMP图片,例如创建二值化图像或者简单的图标。本教程将详细介绍如何使用C#来生成单色的BMP图像。 ...

    C#生成单色位图的方法.zip_C# 单色位图_C# 单色位图_C# 图片转单色_c#单色位图

    在C#编程中,生成单色位图是一种常见的图像处理技术,主要应用于简化图像、创建二值化图像或实现特定的视觉效果。本教程将详细解释如何使用C#来生成单色位图,并且添加信息头,使得图像更加规范且易于处理。 首先,...

    BMP文件处理

    BMP文件,全称为Bitmap,是Windows操作系统中常见的一种位图图像格式。它以未经压缩的原始数据存储像素信息,因此文件通常较大。本教程将深入探讨BMP文件的处理,包括解析和显示的过程,这对于嵌入式开发人员来说是...

    触摸屏按钮位图

    触摸屏技术在现代电子设备中扮演着至关重要的角色,尤其是位图按钮的应用,极大地提升了人机交互体验。位图按钮,简单来说,是通过位图图像来表示可点击的交互元素,常见于触摸屏设备的用户界面设计中。位图是一种...

    bmp转十六进制 适用于单片机显示bmp图片

    在电子工程和嵌入式系统领域,BMP(Bitmap)图像是一种常见的图形文件格式,它包含了大量的像素数据,用于在屏幕上显示图像。然而,当我们要在单片机或嵌入式系统上显示图像时,由于资源限制,通常需要将这些复杂的...

    bmp图像读写操作深入了解bmp文件结构

    实现bmp图像的读入,加深对bmp图像的文件结构的了解,采用UltraEdit软件可以辅助分析文件头、信息头、颜色板、数据四部分字节,程序实现图像的重写,即生成一幅反色的图像,将原图的像素值取255的补。

    BMP位图处理类源码.zip_bmp_bmp位图_bmp处理_c bmp_位图

    BMP位图,全称为Bitmap,是Windows操作系统中最常见的图像文件格式之一。它以位映射存储格式保存图像数据,不包含任何压缩,因此文件体积通常较大。本压缩包中的源代码提供了对BMP位图进行处理的功能,适用于C语言...

    单色图像提取和发送

    1. **文件头解析**:首先,程序需要读取.bmp文件的头信息,包括位图文件头(BITMAPFILEHEADER)和位图信息头(BITMAPINFOHEADER)。这些结构体包含了图像的宽度、高度、颜色深度等关键信息。 2. **数据读取**:接着...

    位图缩放(bmp)

    BMP文件是Windows操作系统所推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,所以称为位图(bitmap)文件,因其文件扩展名为BMP,故称为BMP文件格式,简称BMP文件 ...

    位图转数据(bmp图片转dat数据)源码

    位图转数据(bmp图片转dat数据)源码; //bmp图片(位图)转换为dat数据,并存入到指定文件中; //若需将.dat数据在转换回位图.bmp文件,可以下载参考我的另外一个文档"data_bmp.c" //运行参考:./main infile.bmp outfile...

    BMP.rar_bmp_bmp位图_bmp保存_bmp文件保存_保存bmp

    BMP位图文件是一种常见的图像文件格式,广泛应用于各种操作系统和应用程序中。它的全称是Bitmap,源自Microsoft Windows操作系统,但已经成为了跨平台的标准。在本文中,我们将深入探讨BMP位图文件的结构、如何读取...

    mfc下对bmp图片顺时针90度旋转,灰度,分块的操作

    是一个mfc单文档对位图进行操作的简单小程序,包含顺时针旋转90度,灰度化,分块,图像的保存和显示。因为作业要求比较简单,交的时候又把一些操作改简单了,可以在一些函数内对变量进行一些简单操作增加功能。...

    BMP位图图像C语言读写封装源码及BMP位图详细介绍

    在IT领域,BMP(Bitmap)位图是一种常见的图像文件格式,它以未压缩的方式存储像素数据,使得图像可以精确地还原。本压缩包提供的资源包括C语言实现的BMP位图读写封装源码(BMPTool.cpp、BMPTool.h)以及BMP位图文件...

    BMP位图图像格式简介

    BMP位图图像格式简介 BMP位图图像格式是一种常用的图像文件格式,它由四个部分组成:位图文件头、位图信息头、彩色表和图象数据阵列。下面是对BMP位图图像格式的详细介绍: 位图文件头(Bitmap File Header) ...

    BMP位图格式的解析

    1:BMP由四部分组成:BMP文件头(14字节)、位图信息头(40字节)、颜色表、位图数据。 2:BMP文件头(14字节)  BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。  其结构定义如下:  typedef ...

    vc++显示bmp位图

    在MFC(Microsoft Foundation Classes)框架下,使用VC++显示BMP位图是一个常见的任务,尤其是在开发图形用户界面(GUI)应用时。本教程将详细解释如何在VC++中加载和显示BMP图像文件。 首先,我们需要理解BMP位图...

    直接读取bmp位图

    在计算机图形处理中,BMP(Bitmap)是一种常见的位图图像格式,由Microsoft开发并广泛应用于Windows操作系统。本文将深入探讨如何直接通过读取文件的方式来显示BMP位图,这通常涉及到位图文件的结构理解、内存管理和...

Global site tag (gtag.js) - Google Analytics