图像处理Bmp文件存储顺序

合集下载

C语言 BMP图片处理

C语言 BMP图片处理

C语言BMP图片处理BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。

它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。

在系统中以BMP为扩展名保存。

打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。

这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图(当然,也可以用其它工具软件生成)。

现在讲解BMP的4个组成部分:1.文件头信息块0000-0001:文件标识,为字母ASCII码“BM”。

0002-0005:文件大小。

0006-0009:保留,每字节以“00”填写。

000A-000D:记录图像数据区的起始位置。

各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。

2.图像描述信息块000E-0011:图像描述信息块的大小,常为28H。

0012-0015:图像宽度。

0016-0019:图像高度。

001A-001B:图像的plane(平面?)总数(恒为1)。

001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。

001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。

0022-0025:图像区数据的大小。

0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。

002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。

002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。

3.颜色表颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。

其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(像素的透明度值,一般不需要)。

BMP文件解读

BMP文件解读

实例
本图为384*240像素,24位真 彩色的图片。
• 存储方式:在BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的
存放字节顺序为“低地址存放低位数据,高地址存放高位数据”。如数据0x1756在内存中 的存储顺序为:
56
17
由此见,地址变大。这种存储方式称为小端方式(little endian) , 与之相反的是大端方式(big endian)。
如果图像是24位或是32位数据的位图的话,位图数据区是实际的像素值,此时位图数据区的每个像 素的RGB颜色阵列排布: 24位RGB按照BGR的顺序来存储每个像素的各颜色通道的值,一个像素的所有颜色分量值都存完后 才存下一个下一个像素,不进行交织存储。 32位数据按照BGRA的顺序存储,其余与24位位图的方式一样。 像素的排布规则与前述一致。
bmp在Windows下的各数据段程序定义如图:
因为我们一般见到的图像以24位图像为主,即R、G、B三种颜色各用8个bit来表示,这样的图像我 们称为真彩色,这种情况下是不需要调色板的,也就是所位图信息头后面紧跟的就是位图数据了。 因此,我们常常见到有这样一种说法:位图文件从文件头开始偏移54个字节就是位图数据了,这 其实说的是24或32位图的情况。
对齐规则
对齐规则。我们知道Windows默认的扫描的最小单位是4字节,如果数据对齐满足这个值的话对于数据 的获取速度等都是有很大的增益的。因此,BMP图像顺应了这个要求,要求每行的数据的长度必须是4 的倍数,如果不够需要进行比特填充(以0填充),这样可以达到按行的快速存取。这时,位图数据区 的大小就未必是图片宽×每像素字节数×图片高能表示的了,因为每行可能还需要进行比特填充。 填充后的每行的字节数为:RowSize=4*[BPP*Width/32],其中BPP(Bits Per Pixel)为每像素的比特数。

几种常见图片格式的相关知识

几种常见图片格式的相关知识

几种常见图片格式的相关知识当您在使用方钻高拍仪拍摄文档时,面对选项繁多的图片保存格式,是不是有些茫然,究竟是哪种图片格式符合我们的要求,其他的图片格式又有什么特点,这里世达龙科技为您整理了几种常见的图片格式的相关知识。

BMP格式BMP是英文Bitmap(位图)的简写,它是点阵图格式之一,与硬件设备无关,是Windows 操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持,是Windows环境中交换与图有关的数据的一种标准。

随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。

这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。

所以目前BMP在单机上比较流行。

BMP文件的图像深度可选lbit、4bit、8bit及24bit。

BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。

JPEG格式JPEG也是常见的一种图像格式,它由联合照片专家组(Joint Photographic Experts Group)开发并以命名为“ISO10918-1”,JPEG仅仅是一种俗称而已。

JPEG文件的扩展名为。

jpg或。

jpeg,其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。

由于JPEG格式的压缩算法是采用平衡像素之间的亮度色彩来压缩的,因而更有利于表现带有渐变色彩且没有清晰轮廓的图像。

同时JPEG还是一种很灵活的格式,具有调节图像质量的功能,允许你用不同的压缩比例对这种文件压缩,比如我们最高可以把1。

37MB的BMP位图文件压缩至20。

3KB。

当然我们完全可以在图像质量和文件尺寸之间找到平衡点。

由于JPEG优异的品质和杰出的表现,它的应用也非常广泛,特别是在网络和光盘读物上。

第2章数字图像处理基础

第2章数字图像处理基础

DWORD
biSize;
LONG
biWidth;
LONG
biHeight;
WORD
biPlanes;
WORD
biBitCount;
DWORD
biCompression;
DWORD
biSizeImage;
LONG
biXPelsPerMeter;
LONG
biYPelsPerMeter;
DWORD
biClrUsed;
} BITMAPFILEHEADER;
这个结构的长度是固定的,为14个字节(WORD为无符号16位二 进制整数,DWORD为无符号32位二进制整数)。
第二部分为位图信息头BITMAPINFOHEADER,也是一个结构,其定义如下:
typedef struct tagBITMAPINFOHEADER{
R、 G、 B 值。下面就2色、 16色、256 色和真彩色位图分别介绍。
对于2色位图,用1位就可以表示该像素的颜色(一般0表示 黑, 1表示白),所以一个字节可以表示8个像素。
对于16色位图,用4位可以表示一个像素的颜色,所以一个 字节可以表示2个像素。
对于256色位图,一个字节刚好可以表示1个像素。
下面两点请读者注意:
(1) 每一行的字节数必须是4的整数倍,如果不是,则需 要补齐。这在前面介绍biSizeImage时已经提到过。
(2) BMP文件的数据存放是从下到上,从左到右的。也 就是说, 从文件中最先读到的是图像最下面一行的左边第一个 像素, 然后是左边第二个像素, 接下来是倒数第二行左边第 一个像素, 左边第二个像素。依次类推, 最后得到的是最上 面一行的最右边的一个像素。
2.3.1 BMP图像文件格式

Bmp图像存储格式

Bmp图像存储格式

摘要:本文简单介绍了位图文件的两种存储格式,并且在VC++6.0下实现了读取位图文件中的数据,用SetPixel()函数在窗口中重现图像,最后在程序中实现了一种存储格式到另一种存储格式的转换。

关键字:BMP、灰度位图、24位真彩色位图、存储格式一、前言BMP(Bitmap的缩写)图像是指文件名后缀为BMP的位图图像。

位图图像在计算机中使用很广泛,例如在windows中,记事本、写字板中的文字就是用位图图像表示出来的。

许多以其它格式存储的图像,就是在位图图像的基础上,进行优化处理后得到的,例如JPEG图像等。

在数字图像处理中,许多算法就是针对24位真彩色位图或灰度位图设计的。

因此,很有必要介绍一下位图文件的这两种存储格式。

二、24位真彩色图像存储格式把下图的24位真彩色图像格式在16位编辑器(例如VC编辑器)中打开,可以看到图像的二进制数据。

24位真彩色的二进制数据为:这是24位真彩色位图文件数据一部分。

这一部分数据包括位图文件头、位图信息头和位图阵列三部分。

(一)位图文件头位图文件头用来记录标志文件大小的一些信息,在文件中占14个字节,存储的内容如下:字节 1 2 3 4 5 6 7 8 9 10 11 12 13 14 000000 42 4D CC B4 02 00 00 00 00 00 36 00 00 00 其中:42 4D 为位图的标志,即ASCII码为BMCC B4 02 表示位图文件的总字节数,换算成十进制为(02B4CC)H=(177356)10,即这副图像的大小为177356字节。

00 00 00 00 00 为保留字节,用来存储文件大小的数据。

36 00 00 00 00 表示位图阵列的起始位置,(36)H=(54)10即54字节开始为位图阵列。

(二) 位图信息头位图信息头记录和位图相关的一些信息,在文件中占40个字节,存储的内容如下:字节 1 2 3 4 5 6 7 8 9 10 11121314151600000 0 2800001 6 02C1C511800003 2 012B12B00004 8 0其中:28 00 00 00 表示信息头的长度,(28)H=(40)10,即位图信息头占40个字节。

bmp对齐规则

bmp对齐规则

bmp对齐规则BMP对齐规则BMP(Bitmap)是一种用于储存图像的文件格式,它将图像数据以像素点的形式存储。

在BMP文件中,图像的像素点是按照行和列的方式排列的。

为了方便图像的处理和显示,BMP对齐规则被引入,它规定了图像数据在文件中的存储方式和对齐方式。

BMP对齐规则主要包括像素对齐和行对齐两个方面。

1. 像素对齐在BMP文件中,每个像素点的表示需要占用一定的字节空间。

根据像素的位深度,每个像素点可以占用1、4、8、16、24或32位。

为了高效地处理这些像素,需要将它们按照一定的规则进行对齐,以减少内存访问的次数,提高处理效率。

对于位深度为1、4、8的像素点,它们的字节对齐规则如下:- 1位深度的像素点占用1位,即一个像素点占用1/8字节;- 4位深度的像素点占用4位,即一个像素点占用1/2字节;- 8位深度的像素点占用8位,即一个像素点占用1字节。

对于位深度大于8的像素点,它们的字节对齐规则如下:- 16位深度的像素点占用16位,即一个像素点占用2字节;- 24位深度的像素点占用24位,即一个像素点占用3字节;- 32位深度的像素点占用32位,即一个像素点占用4字节。

2. 行对齐除了像素对齐外,BMP文件还需要进行行对齐,以保证每一行像素点的起始地址都满足对齐要求。

行对齐的规则是,每一行的像素点数目必须是4的倍数,如果不满足,则需要在行末添加填充字节。

行对齐的目的是为了保证内存的读取效率。

当像素点数目不满足4的倍数时,读取内存的操作会比较复杂,需要进行额外的计算。

而通过添加填充字节,可以使每一行的像素点数目都满足对齐要求,从而简化内存的读取操作,提高读取效率。

总结:BMP对齐规则是为了提高图像处理和显示的效率而引入的。

它通过像素对齐和行对齐的方式,规定了图像数据在文件中的存储方式和对齐方式。

像素对齐确保每个像素点的字节占用满足要求,行对齐保证每一行的像素点数目都满足4的倍数,从而简化内存的读取操作。

常用文件格式汇总

常用文件格式汇总

常用文件格式汇总在我们日常生活工作中,可能遇到各种文件格式,这就需要我们去了解这些文件各自的基本特点。

随着软件的不断升级和新技术的发展应用,还会出现很多新的文件格式,只有保持好奇心,不断的学习,才能在使用文件时得心应手。

才能在当下日新月异的时代中,抓住更多机遇。

1、BMP格式BMP文件格式是在Windows环境下图像的数据的一种标准,使用广泛,它通常不压缩图像,在Windows环境中运行的图形图像软件基本上都支持BMP图像格式。

其缺点是所占用的空间大。

BMP文件的图像深度可选1b、4b、8b及24b、BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。

2、JPEG格式JPEG是计算机图像的静态影像压缩标准,是在国际标准化组织(ISO)领导之下制定静态图像压缩标准的委员会。

JPG全名是JPEG,文件后缀名为“.jpg”或“.jpeg”,Windows操作系统后缀通常由三个字母组成,因此常用JPG来表示此格式。

JPEG图片以24位颜色存储光棚图像,普遍应用于需要连续色调的图像。

支持多级压缩,是一种有损压缩格式。

通过调节压缩方式消除冗余的图像数据,在获得极高压缩率的同时能展现十分丰富、生动的图像。

3、PSD 格式PSD格式是Adobe公司的图形设计软件Photoshop的专用格式,PSD文件可以保存Photoshop中的图层、通道、蒙版、路径等信息,还包括调整层、文字层、图层样式等附加的信息,是目前唯一能够支持全部图像色彩模式的格式,PSD可以转存为RGB色彩空间或CMYK色彩空间的图像,还能够自定义颜色数并加以存储,在大多平面设计软件内部可以通用。

4、PDF格式PDF格式是一种电子文件格式。

可以将文字、字体、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中,还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,它的集成度和安全可靠性都较高,但在后期制作中不常用。

5、GIF格式GIF的原义是“图像互换格式”,体积小而成像相对清晰,图像深度可以从1b到8b不等,最多支持256种色彩的图像。

常见图片格式区别

常见图片格式区别

我们常见的图片有很多格式,那么什么格式都有什么用处,是非常有必要学习的。

图形文件的格式是计算机存储这幅图的方式与压缩方法,要针对不同的程序和使用目的来选择需要的格式.不同图形程序也有各自和内部格式,如"PSD" 是PhotoShop本身的格式, 由于内部格式带有软件的特定信息, 如图层与通道等,其它一些图形软件一般不可以打开它, 虽然占用字节量大,但中存储速度很快,如何使一幅"PSD"格式的图形用在其它程序中,这就是转换图形格式的理由.图像世界中不同的格式各自以不同的方式来表示图形信息,我们常用到的图形格式有以下几种:⑴.BMP――(Bimap) 是Microsoft公司图形文件自身的点位图格式, 支持1~24bit色彩,在保存为这种格式时弹出的对话框会询问用于Windows或是0S/2系统.BMP格式保存的图像质量不变,文件也比较大,因为要保存每个像素的信息.⑵.JPEG――是一种较常用的有损压缩方案,常用来压缩存储批量图片(压缩比达20倍),我们在相应程序中以"jpg"存储时,会进一步询问使用哪档图像品质来压缩,而在图形程序中打开时会自动解压.JPEG全部名称为:Joint photographic exptrs group.尽管它是一种主流格式,在需要输出高质量图像时不使用JPG 而应选EPS格式或TIF格式,特别是在以JPG格式进行图形编辑时,不要经常进行保存操作.⑶.GIF――(Graphics Interchange Format)是一种图像交换格式,可提供压缩功能,但只支持256色,很少用于照片级图像处理工作.在PhotoShop中把对颜色数要求不高的图片变为索引色,再以GIF格式保存,使文件缩小后用更快的速度在网上传输.⑷.GIF89a――即89年的标准,以区别于87a.可以实现网上特殊效果图形的传送, 在PhotoShop中通过"文件"菜单的"Export"输出选项,指定某种颜色成为透明色或是制作出由模糊逐渐清晰的渐显效果.⑸. PNG――是网景公司开发的支持新一代WWW标准而制定的较为新型的图形格式,它综合了JPG和GIF格式的优点,支持24bit色彩(256*256*256),压缩不失真并支持透明背景和渐显图像的制作,所以称它为传统GIF的替代格式.在Web页面中,浏览器支持的格式有JPG 、GIF和PNG.⑹.TIF――是一种跨平台的位图格式, 全称为Tag Image File Format意为标签图像文件格式, 同时支持PC与苹果机,采用的LZW压缩算法是一种无损失的压缩方案,常用来存储大幅图片.此种格式也可以不压缩, 它支持24个通道,并可与"3DS"交换文件.⑺.PCX――也是一种跨平台格式, 是Windows与DOS之间进行图形文件交换的桥梁, 在DOS下为256色, 在PhotoShop中有16兆色的PCX,当Windows普及后这种古老的格式已不受欢迎.⑻.TGA――支持32位软件和8位α通道电视, 是Windows与3DS进行图形交换的格式.在实用中可以将动画通过[视频]软件转入电视.⑼.WMF――(Metafile) 是一种矢量图形格式, Word中内部存储的图片或绘制的图形对象属于这种格式.无论放大还是缩小,图形的清晰度不变,WMF是一种清晰简洁的文件格式.⑽.EPS――Adobe公司矢量绘图软件Illustrator本身的向量图格式,EPS格式常用于位图与矢量图之间交换文件.在PhotoShop打开EPS格式时是通过"文件"菜单的"导入"命令来进行点阵化转换的.我们最熟悉的格式大概就是数码相机照片中使用的JPEG格式.JPEG压缩并存储图像.不过,如果提高压缩率,有时画质就会明显恶化.由于恶化的图像无法还原,因此使用图像处理软件转换为JPEG格式时,最好不要将压缩率设得太高另外,由于每当存储JPEG格式的图像时需要进行"重新压缩",因此存储时画质会逐渐恶化.多次进行图像的修正及编辑时,最好将JPEG图像暂时转换为无画质恶化的BMP格式及TIFF格式.在结束所有修正及编辑后返回JPEG格式,就可以防止基于压缩的无谓的恶化除JPEG格式之外,在Web页图像中还使用GIF格式.色数较多的照片使用JPEG格式制作、色数较少的标志及插图则使用GIF格式制作.或许有人会问"插图是不是也可以用JPEG 制作?",答案是不可以.因为在色数少的插图中,即使是只能用256色的GIF也可以清晰地表现图像.反过来,如果使用JPEG压缩,画质就会变差,比如轮廓出现模糊等.制作Web用图像时,请分别使用这两种格式另外,作为近似GIF的图像格式,还有专门用于Web图像的PNG格式.与GIF相比,虽然能够处理更多的色数,但实际上使用面很小BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大.BMP文件的图像深度可选lbit、4bit、8bit及BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序. 由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息JPEG:应用最广泛的图片格式之一,它采用一种特殊的有损压缩算法,将不易被人眼察觉的图像颜色删除,从而达到较大的压缩比(可达到2:1甚至40:1),所以"身材娇小,容貌姣好",特别受网络青睐,很实用BMP:Windows系统下的标准位图格式,使用很普遍.其结构简单,未经过压缩,一般图像文件会比较大.它最大的好处就是能被大多数软件"接受",可称为通用格式.GIF:分为静态GIF和动画GIF两种,支持透明背景图像,适用于多种操作系统,"体型"很小,网上很多小动画都是GIF格式.其实GIF是将多幅图像保存为一个图像文件,从而形成动画,所以归根到底GIF仍然是图片文件格式.GIF格式的图片可以用Photoshop的配套软件ImageReady制作转换可以使用ps。

bmp文件格式

bmp文件格式

注:图片的左下角为图像文件数据块的起点,从左到右,从下到上依次存储图像各像素值。

如上图所示!RGB24RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。

注意在内存中RGB各分量的排列顺序为:BGR BGRBGR…。

通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:typedefstructtagRGBTRIPLE {BYTE rgbtBlue; // 蓝色分量BYTE rgbtGreen; // 绿色分量BYTE rgbtRed; // 红色分量} RGBTRIPLE;RGB32RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。

(ARGB32就是带Alpha通道的RGB32。

)注意在内存中RGB各分量的排列顺序为:BGRA BGRABGRA…。

通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:typedefstructtagRGBQUAD {BYTE rgbBlue; // 蓝色分量BYTE rgbGreen; // 绿色分量BYTE rgbRed; // 红色分量BYTE rgbReserved; // 保留字节(用作Alpha通道或忽略)} RGBQUAD。

就是多了一个透明通道,直接右移8为丢掉这个8位信息就可以了HBITMAP ConvTo24Bit( HBITMAP h32 ){BITMAP bm;GetObject( h32, sizeof( BITMAP ), &bm );BITMAPINFOHEADER bi = { 0 };void *pBits;bi.biSize = sizeof( BITMAPINFOHEADER );bi.biBitCount = 24;bi.biPlanes = 1;bi.biWidth = bm.bmWidth;bi.biHeight = bm.bmHeight;HDC hDC = GetDC( NULL );HBITMAP h24 = CreateDIBSection( hDC, ( LPBITMAPINFO )&bi, DIB_RGB_COLORS, &pBits, NULL, 0 );HDC hMemDC1 = CreateCompatibleDC( hDC );HDC hMemDC2 = CreateCompatibleDC( hDC );HBITMAP h32Old = ( HBITMAP )SelectObject( hMemDC1, h32 );HBITMAP h24Old = ( HBITMAP )SelectObject( hMemDC2, h24 );BitBlt( hMemDC2, 0, 0, bm.bmWidth, bm.bmHeight, hMemDC1, 0, 0, SRCCOPY );SelectObject( hMemDC1, h32Old );SelectObject( hMemDC2, h24Old );DeleteDC( hMemDC1 );DeleteDC( hMemDC2 );ReleaseDC( NULL, hDC );// now ok, 24bit bmp...return h24;// 或者改return HBITMAP为BYTE *DWORD dwImageSize = ( ( ( ( bm.bmWidth * 24 ) + 31 ) >> 5 ) << 2 ) * bm.bmHeight;LPBYTE lpData = ( LPBYTE )new BYTE[sizeof( BITMAPINFOHEADER ) + dwImageSize];memcpy( ( LPBITMAPINFOHEADER )lpData, &bi, sizeof( BITMAPINFOHEADER ) );memcpy( ( LPVOID )lpData + sizeof( BITMAPINFOHEADER ), pBits, dwImageSize );DeleteObject( h24 );return lpData;}在早前的一篇文章中我曾经研究过带有alpha 通道的图标,实际上XP 系统已经开始支持这样的图标,也就是32 bpp(bits per pixel)的图标了。

bmp原理

bmp原理

bmp原理BMP是一种图像文件格式,最早由Microsoft在Windows3.0中引入,是非常广泛应用的一种图像格式。

BMP的全称是Bitmap,中文名为位图,它是一种基于像素的编码方法。

1. 图像数据的存储BMP图像数据实际上就是一堆像素点的颜色信息,按照一定的编码方式存储在文件中。

对于每个像素点,BMP文件都会记录它的颜色值。

颜色值可以用RGB方式记录,也可以用索引值的方式来记录。

2. 文件格式的结构BMP文件格式是由文件头、位图信息头以及像素数组等几部分构成的,其中文件头负责文件的一些基本信息,位图信息头记录了图像的一些重要信息,像素数组则存储了图像的所有像素点的颜色值。

3. 像素点的编码对于每个像素点,BMP文件会记录它的颜色值。

颜色值可以用RGB方式记录,也可以用索引值的方式来记录。

在RGB方式下,每个像素点的颜色可以用三个字节来描述,分别代表红色(R)、绿色(G)和蓝色(B)三种颜色的亮度值,这三个字节合起来就可以表示一个颜色。

在索引值方式下,每个像素点的颜色是由调色板来管理的,像素点用一个字节表示对应调色板中的索引值。

4. 文件大小的计算BMP文件的大小受到图像分辨率、像素位数等因素的影响。

通常情况下,BMP文件的大小可以按照以下公式计算:文件大小 = 像素行大小 * 行数 + 文件头大小其中,像素行大小为每行像素的字节数,可以通过以下公式计算:像素行大小 = (像素宽度 * 像素位数 + 31) / 32 * 45. 简单使用BMP文件被广泛应用于各种场合,比如图像处理、图案制作等等。

对于初学者来说,可以通过各类图像处理软件,比如Photoshop、GIMP等来创建和编辑BMP文件。

此外,在计算机科学领域中,BMP图像也常常被用来作为图像处理算法的样例,比如常用的边缘检测算法、图像平滑算法等。

总之,BMP原理是非常基础而又重要的一门知识,对于初学者来说,了解BMP的工作原理有助于更好地理解图像处理算法。

bmp的知识点

bmp的知识点

bmp的知识点BMP的知识点BMP(Bitmap)是一种图像文件格式,它以像素为基本单位来描述图像。

下面将介绍BMP文件的结构、特点以及常见的应用。

一、BMP文件结构BMP文件由文件头、位图信息头、调色板和图像数据组成。

1. 文件头(14字节):包含文件类型(2字节)、文件大小(4字节)、保留字段(4字节)和图像数据偏移量(4字节)等信息。

2. 位图信息头:包含位图信息头大小(4字节)、图像宽度(4字节)、图像高度(4字节)、颜色平面数(2字节)、每个像素所占位数(2字节)等信息。

3. 调色板(可选):用于存储图像的颜色信息,包括调色板项数、颜色索引和颜色值等。

4. 图像数据:按行存储的像素数据,每个像素用指定的位数来表示。

二、BMP文件特点1. BMP文件格式简单,易于解析和处理,适用于各种平台和应用程序。

2. BMP文件支持多种色彩深度,如1位、4位、8位、16位、24位和32位等,可以满足不同图像质量和存储空间需求。

3. BMP文件保留了图像的原始数据,不进行压缩,因此不会损失图像的质量,但文件大小相对较大。

4. BMP文件支持灰度图像和彩色图像,灰度图像每个像素只有一个亮度值,彩色图像每个像素有红、绿、蓝三个分量的值。

三、BMP文件的应用1. 图像处理:BMP文件是常用的图像处理格式,可以通过读取、修改和保存BMP文件来实现各种图像处理操作,如图像旋转、缩放、灰度化、边缘检测等。

2. 图像显示:BMP文件可以被各种图像显示软件和设备所支持,如画图工具、图片浏览器、数码相框、打印机等。

3. 图像转换:BMP文件可以通过转换工具将其转换为其他图像格式,如JPEG、PNG、GIF等,以满足不同应用场景的需求。

4. 图像分析:BMP文件中的像素数据可以被提取和分析,用于图像处理算法的开发、图像识别和图像分析等领域。

5. 图像存储:BMP文件可以作为图像的原始存储格式,用于长期保存和备份,以保证图像质量和数据的完整性。

图像文件格式BMP文件格式详解

图像文件格式BMP文件格式详解

图像⽂件格式BMP⽂件格式详解5.2 BMP⽂件格式BMP⽂件格式是Microsoft Windows下最常见的图像⽂件格式之⼀,它采⽤位映射存储格式,除了图像深度可选以外,不采⽤其他任何压缩,因此,BMP⽂件所占⽤的空间很⼤。

BMP⽂件的图像深度可选lbit、4bit、8bit及24bit。

BMP⽂件存储数据时,图像的像素值在⽂件中的存放顺序为从左到右,从下到上,也就是说,在BMP⽂件中⾸先存放的是图像的最后⼀⾏像素,最后才存储图像的第⼀⾏像素,但对与同⼀⾏的像素,则是按照先左边后右边的的顺序存储的;另外⼀个需要关注的细节是:⽂件存储图像的每⼀⾏像素值时,如果存储该⾏像素值所占的字节数为4的倍数,则正常存储,否则,需要在后端补0,凑⾜4的倍数。

由于BMP⽂件格式是Windows环境中交换与图有关的数据的⼀种标准,因此在Windows 环境中运⾏的图形图像软件都⽀持BMP图像格式。

5.2.1典型的BMP图像⽂件由四部分组成:1、位图头⽂件数据结构主要包含⽂件的⼤⼩、⽂件类型、图像数据偏离⽂件头的长度等信息;2、位图信息数据结构包含图象的尺⼨信息、图像⽤⼏个⽐特数值来表⽰⼀个像素、图像是否压缩、图像所⽤的颜⾊数等信息;3、调⾊板包含图像所⽤到的颜⾊表,显⽰图像时需⽤到这个颜⾊表来⽣成调⾊板,但如果图像为真彩⾊,既图像的每个像素⽤24个⽐特来表⽰,⽂件中就没有这⼀块信息,也就不需要操作调⾊板。

4、位图数据记录了位图的每⼀个像素值或该对应像素的颜⾊表的索引值,图像记录顺序是在扫描⾏内是从左到右, 扫描⾏之间是从下到上。

这种格式我们⼜称为Bottom_Up位图,当然与之相对的还有Up_Down形式的位图,它的记录顺序是从上到下的,对于这种形式的位图,也不存在压缩形式。

5.2.2 BMP⽂件结构位图⽂件(bitmap file, BMP)格式是Windows采⽤的图像⽂件存储格式,在Windows 环境下运⾏的所有图像处理软件都⽀持这种格式。

【转载】BMP图像文件格式

【转载】BMP图像文件格式

【转载】BMP图像文件格式***********************(推荐指数:)BMP图像文件格式是微软公司为其Windows环境设置的标准图像格式,而且 Windows系统软件中还同时内含了一系列支持BMP图像处理的API函数,随着Windows 在世界范围内的不断普及,BMP文件格式无疑也已经成为PC机上的流行图像文件格式。

它的主要特点可以概括为:文件结构与PCX文件格式类似,每个文件只能存放一幅图像;图像数据是否采用压缩方式存放,取决于文件的大小与格式,即压缩处理成为图像文件的一个选项,用户可以根据需要进行选择。

其中,非压缩格式是BMP图像文件所采用的一种通用格式。

但是,如果用户确定将BMP文件格式压缩处理,则Windows设计了两种压缩方式:如果图像为16色模式,则采用RLE4压缩方式,若图像为256色模式,则采用RLE8压缩方式。

同时,BMP图像文件格式可以存储单色、16色、256色以及真彩色四种图像数据,,其数据的排列顺序与一般文件不同,它以图像的左下角为起点存储图像,而不是以图像的左上角为起点;而且BMP图像文件格式中还存在另外一个与众不同的特点,即其调色板数据所采用的数据结构中,红、绿、蓝三种基色数据的排列顺序也恰好与其它图像文件格式相反。

总之,BMP图像文件格式拥有许多适合于Windows环境的新特色,而且随着Windows版本的不断更新,微软公司也在不断改进其BMP图像文件格式,例如:当前BMP 图像文件版本中允许采用32位颜色表,而且针对32位Windows 的产生,相应的API函数也在不断地报陈出新,这些无疑都同时促成了BMP文件格式的不断风靡。

但由于BMP文件格式只适合于Windows上的应用软件,而对于DOS环境中的各种应用软件则无法提供相应的支持手段,因此这无疑是阻碍BMP文件格式的流通程度超过PCX文件格式的一个重要因素。

Windows中定义了两种位图文件类型,即一般位图文件格式与设备无关位图文件格式。

BMP位图文件存储初探

BMP位图文件存储初探

BMP位图文件存储初探赵柳青(重庆市綦江南州中学校,重庆401420)摘要:关于位图文件存储大小的计算,普遍采用估算法,估算带来的一个问题是随着位图的增大,误差也就越来越大,以至于超出了预期准备的存储空间。

从提出问题、分析问题、解决问题等方式推导出精确计算位图文件大小的公式,以帮助读者来解决在实际应用位图存储时应该注意的问题。

关键词:位图;编码;存储空间;Windows7系统在计算机领域,图片是指静止的画面,它包含图形和图像两种。

其中,图像是利用数码相机、扫描仪等设备获取的实际景物的一个映象,最小的元素是像素。

相对图形,图像的色彩更加丰富,画面也更加复杂,与实际景物接近,真实感强,故而图像的文件容量更大。

由于图像是由像素构成,因此图像放大之后,会出现失真的情况[1」。

位图图像(Bitmap)简写为BMP,文件名后缀为. bmp,它是按照顺序存储每个像素点颜色的方式来获得的图片文件。

位图图像在计算机中的使用非常广泛叫1提出问题重庆市高中信息技术学科使用新教材为广东教育出版社出版的信息技术必修1《数据与计算》第一章第二节“图像编码”(第12页)中,提到:一般情况下,位图文件所占的空间可按以下公式计算:文件的大小=文件头+信息头+颜色表项+图像分辨率x图像量化位数衣8揖3铱...........①在公式①中,计算了文件头、信息头、颜色表项等附加于位图文件一些信息,由此可以看出作者是想通过这样的计算来精确得出位图文件存储时的大小,即位图文件所占的最小存储空间大小,但事实是,这样计算的结果与Windows系统中位图文件属性所示的大小有差距,而且有时会随着位图尺寸的增加差值会越来越大。

为了科学地了解位图文件的存储,特地先做了一番验证。

2验证问题为了严谨地进行验证,从像素大小、颜色、量化位数等几个方面,用mspaint软件绘制了大量的BMP位图文件,将这些文件属性里的大小和实际计算大小进行比较、分析,形成了下列的表格。

几种图片格式(压缩标准)介绍:bmp、jpeg、jpeg2000、tiff

几种图片格式(压缩标准)介绍:bmp、jpeg、jpeg2000、tiff

几种图片格式(压缩标准)介绍:bmp、jpeg、jpeg2000、tiff 位图格式(BMP)是一种与硬件设备无关的图像文件格式,使用非常广。

它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP 文件所占用的空间很大。

BMP文件的图像深度可选lbit、4bit、8bit及24bit。

BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。

由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。

典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。

JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。

尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。

但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。

而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。

比如可以把1.37Mb的BMP位图文件压缩至20.3KB。

当然也可以在图像质量和文件尺寸之间找到平衡点。

psd.jpg.tiff.bmp.ai.cda.dwg之间的区别和用途

psd.jpg.tiff.bmp.ai.cda.dwg之间的区别和用途

psd.jpg.tiff.bmp.ai.cda.dwg之间的区别跟用途一、PSD文件格式JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在 Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。

其中0级压缩比最高,图像品质最差。

即使采用细节几乎无损的10 级质量保存时,压缩比也可达 5:1。

以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。

经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。

二、JPG文件格式JPG即JEPGJPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。

目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。

这是Photoshop图像处理软件的专用文件格式,文件扩展名是.psd,可以支持图层、通道、蒙板和不同色彩模式的各种图像特征,是一种非压缩的原始文件保存格式。

扫描仪不能直接生成该种格式的文件。

PSD文件有时容量会很大,但由于可以保留所有原始信息,在图像处理中对于尚未制作完成的图像,选用 PSD格式保存是最佳的选择。

JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在 Photoshop 软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。

其中0级压缩比最高,图像品质最差。

即使采用细节几乎无损的10 级质量保存时,压缩比也可达 5:1。

以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。

经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。

JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。

目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。

三、TIFF文件格式TIFF (TaglmageFileFormat)图像文件是由Aldus和Microsoft公司为桌上出版系统研制开发的一种较为通用的图像文件格式。

图像文件格式

图像文件格式

图像文件格式数字图象在计算机中是以文件的形式存在的。

常见的图像数据格式包括BMP格式、TIFF格式、TGA格式、GIF格式、PCX格式以及JPEG 格式等。

1.BMP格式的图像文件¾BMP是Bitmap的缩写,意为“位图”。

BMP格式的图像文件是微软公司特为Windows环境应用图像而设计的。

¾BMP格式的主要特点有:(l)BMP格式的图像文件以“.bmp”作为文件扩展名。

(2)根据需要,使用者可选择图像数据是否采用压缩形式存放。

一般情况下,BMP格式的图像是非压缩格式。

(3)当使用者决定采用压缩格式存放BMP格式的图像时,使用RLE4压缩方式,可得到16色模式的图像:若采用RLE8压缩方式,则得到256色的图像。

(4)可以多种彩色模式保存图像,如 16色、256色、24bit真彩色,最新版本的 BMP格式允许 32bit真彩色。

(5)数据排列顺序与其他格式的图像文件不同,从图像左下角为起点存储图像,而不是象传统的那样,以图像的左上角作为起点。

(6)调色板数据结构中,RGB三基色数据的排列顺序恰好与其他格式文件的顺序相反。

¾ BMP 格式的图像文件结构可以分为文件头、调色板数据以及图像数据三部分。

文件头调色板数据图像数据区图1 BMP 格式的图像文件结构¾ 图像文件大小灰度图像文件大小≈文件头+像素个数×灰度级数。

彩色图像文件大小≈文件头+像素个数×颜色数颜色数:用于表示颜色的位数。

16色(24)色 4bits256色(28)色 8bits=1byte65536(216)色 16bits=2bytes 1677万(224)色 24 bits=3bytes2.TIFF 格式的图像文件¾ TIFF 是Tag Image File Format 的缩写,它由Aldus 公司1986年就已推出,后来与微软公司联手,进一步发展了TIFF 格式,现在的版本是6.0。

BMP文件格式

BMP文件格式

I
BMP 文件格式
1 格式组成
典型的 BMP 图像文件由四部分组成: 1:位图头文件数据结构,它包含 BMP 图像文件的类型、显示内容等信息; 2:位图信息数据结构,它包含有 BMP 图像的宽、高、压缩方法,以及定义 颜色等信息; 3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真 彩色图(24 位的 BMP)就不需要调色板; 4:位图数据,这部分的内容根据 BMP 位图使用的位数不同而不同,在 24 位图中直接使用 RGB,而其他的小于 24 位的使用调色板中颜色索引值。
2 格式类型
位图一共有两种类型,即:设备相关位图(DDB)和设备无关位图(DIB)。 DDB 位图在早期的 Windows 系统(Windows 3.0 以前)中是很普遍的,事实上它 也是唯一的。然而,随着显示器制造技术的进步,以及显示设备的多样化,DDB 位图的一些固有的问题开始浮现出来了。比如,它不能够存储(或者说获取)创 建这张图片的原始设备的分辨率,这样,应用程序就不能快速的判断客户机的显 示设备是否适合显示这张图片。为了解决这一难题,微软创建了 DIB 位图格式。
3 对应数据结构 ..................................................................................................... 3 4 读取方法 ............................................................................................................ 5 5 文件部分 ............................................................................................................ 6

8位灰度图像BMP的保存

8位灰度图像BMP的保存

8位灰度图像BMP的保存[zz]2012-04-07 21:01在图像处理中,我们经常需要将真彩色图像转换为黑白图像。

严格的讲应该是灰度图,因为真正的黑白图像是二色,即只有纯黑,纯白二色。

开始之前,我们先简单补充一下计算机中图像的表示原理。

计算机中的图像大致可以分成两类:位图(Bitmap)和矢量图(Metafile)。

位图可以视为一个二维的网格,整个图像就是由很多个点组成的,点的个数等于位图的宽乘以高。

每个点被称为一个像素点,每个像素点有确定的颜色,当很多个像素合在一起时就形成了一幅完整的图像。

我们通常使用的图像大部分都是位图,如数码相机拍摄的照片,都是位图。

因为位图可以完美的表示图像的细节,能较好的还原图像的原景。

但位图也有缺点:第一是体积比较大,所以人们开发了很多压缩图像格式来储存位图图像,目前应用最广的是JPEG格式,在WEB上得到了广泛应用,另外还有GIF,PNG等等。

第二是位图在放大时,不可避免的会出现“锯齿”现象,这也由位图的本质特点决定的。

所以在现实中,我们还需要使用到另一种图像格式:矢量图。

同位图不同,矢量图同位图的原理不同,矢量图是利用数学公式通过圆,线段等绘制出来的,所以不管如何放大都不会出现变形,但矢量图不能描述非常复杂的图像。

所以矢量图都是用来描述图形图案,各种CAD软件等等都是使用矢量格式来保存文件的。

在讲解颜色转换之前,我们要先对位图的颜色表示方式做一了解。

位图中通常是用RGB 三色方式来表示颜色的(位数很少时要使用调色板)。

所以每个像素采用不同的位数,就可以表示出不同数量的颜色。

如下图所示:每像素的位数一个像素可分配到的颜色数量12^1 = 222^2 = 442^4 = 1682^8 = 256162^16 = 65,536242^24 = 16,777,216从中我们可以看出,当使用24位色(3个字节)时,我们可以得到1600多万种颜色,这已经非常丰富了,应该已接近人眼所能分辨的颜色了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

读写Bmp文件的方法步骤:
读:
1.读方式打开文件
2.读入BITMAPFILEHEADER结构
3.读入BITMAPINFOHEADER结构
4.读入颜色表RGBQUAD结构
5.读入位图数据
6.关闭文件
写:
1.写方式打开文件
2.填写BITMAPFILEHEADER结构并写入文件
3.写入BITMAPINFHEADER结构并写入文件
4.写颜色表进文件
5.写位图数据进文件
6.关闭文件
①:位图文件头
BITMAPFILEHEADER: (14字节)
bfType :位图文件类型(0x4D42)
bfSize :位图文件大小
bfReserved1: Windows保留字1
bfReserved2: Windows保留字2
bfOffBits: 从文件头到实际位图数据的偏移字节数
=文件头+ 信息头+调色板长度。

②:位图信息头(40字节)
biSize: 本结构长度为40字节
biWidth: 位图宽度,(像素为单位)
biHeight: 位图的高度,(像素为单位)
biPlanes: 设为1
biCount: 位深度
biCompression: 为0:不压缩;1:8位压缩;2:4位压缩。

biSizeImage:实际的位图数据占用的字节数biXPelsPerMeter:水平分辨率(像素/米)biYPelPerMeter: 垂直分辨率(像素/米)
biClrCount:位图实际用到的颜色数(为0时,颜色数为2的biBitCount次幂)
biClrImportant:位图显示过程中重要的颜色数(0:都是重要的)
③:颜色表(4字节)
rgbBlue:蓝色分量
rgbGreen:绿色分量
rgbRed: 红色分量
rgbReserved:保留字节
颜色表的大小:二值图像:大小=2*sizeof(RGBQUAD)=8
8位灰度图像:大小= 256*sizeof(RGBQUAD)= 1024
24位真彩色图像无颜色表
④位图数据
8位灰度图像ColorTablesize = 1024;
lineByte =(bmpWidth * biBitCount / 8 + 3)/4 *4;
1.申请位图文件头结构变量,并填写文件头信息BITMAPFILEHEADER fileHeader;
fileHead.bfType = 0x4D42; //bmp类型
//bfSize是图像文件4个组成部分之和
fileHeader.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAOINFOHEADER) + ColorTablesize + lineByte*Height;
fileHeader.bfReserved1 = 0;
fileHeader.bfReserved2 = 0;
//bfOffBits是图像文件前3部分所需空间之和fileHead.bfOffBits = 54 + ColorTablesize;
2.申请位图信息头结构变量,填写信息头信息BITMAPINFOHEADER head;
head.biBitCount = biBitCount;
head.biClrImportant = 0;
head.biClrUsed = 0;
head.biCompression = 0;
head.biHeight = height;
head.biSize = 40;
head.biSizeImage = lineByte * height;
head.biWidth = width;
head.biXPelsPerMeter = 0;
head.biYPelsPerMete = 0;
3.写灰度图像的颜色表
4.写位图数据进文件
调色板句柄HPALETTE
文件头指针LPBITMAFILEHEADER : m_lpDib
信息头指针LPBITMAPINFOHEADER :m_lpBmpInfoHead 颜色表LPRGBQUAD : m_lpColorTable 信息指针LPBITMAPINFO :m_lpBmpInfo
图像数据指针:m_pImgData (包括:信息头指针和颜色表)
1读入一幅图像(即打开操作):
将四部分都考虑进去(1,2,3,4);
2写入一幅图像(即保存操作):
将四部分都考虑进去(1,2,3,4)
3显示一幅图像:
只需将3部分考虑进去(2,3,4)
4 处理一幅图像:
只需将3部分考虑进去(2,3,4)
位图显示和数据处理:
将(位图信息头、颜色表)即:信息指针内容,位图数据指针依次写入,并进行操作。

显示图像的函数:见P50
StretchDIBits();
设置位图伸缩模式:
SetStretchBltMode(COLORONCOLOR);
类的构造函数:
用来完成数据成员的初始化工作,系统在创建类的对象的同时,自动调用构造函数。

类的析构函数:
用来释放被分配的内存空间,当类的对象消失时,系统自动调用析构函数。

相关文档
最新文档