位图结构详细资料

合集下载

大学计算机基础教材:位图

大学计算机基础教材:位图

位图位图,又称光栅图,一般用于照片品质的图像处理,是由许多像小方块一样的像素组成的图形。

由像素的位置与颜色值表示,能表现出颜色阴影的变化。

简单说,位图就是以无数的色彩点组成的图案,当你无限放大时你会看到一块一块的像素色块,效果会失真。

常用于图片处理、影视婚纱效果图等,象常用的照片,扫描,数码照片等,常用的工具软件:PHOTOSHOP,PAINTER等。

Photoshop主要处理的是位图图像。

当您处理位图图像时,可以优化微小细节,进行显著改动,以及增强效果。

位图图像,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。

这些点可以进行不同的排列和染色以构成图样。

当放大位图时,可以看见赖以构成整个图像的无数单个方块。

扩大位图尺寸的效果是增多单个像素,从而使线条和形状显得参差不齐。

然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。

由于每一个像素都是单独染色的,您可以通过以每次一个像素的频率操作选择区域而产生近似相片的逼真效果,诸如加深阴影和加重颜色。

缩小位图尺寸也会使原图变形,因为此举是通过减少像素来使整个图像变小的。

同样,由于位图图像是以排列的像素集合体形式创建的,所以不能单独操作(如移动)局部位图。

处理位图时要着重考虑分辨率处理位图时,输出图像的质量决定于处理过程开始时设置的分辨率高低。

分辨率是一个笼统的术语,它指一个图像文件中包含的细节和信息的大小,以及输入、输出、或显示设备能够产生的细节程度。

操作位图时,分辨率既会影响最后输出的质量也会影响文件的大小。

处理位图需要三思而后行,因为给图像选择的分辨率通常在整个过程中都伴随着文件。

无论是在一个300 dpi的打印机还是在一个2570dpi的照排设备上印刷位图文件,文件总是以创建图像时所设的分辨率大小印刷,除非打印机的分辨率低于图像的分辨率。

如果希望最终输出看起来和屏幕上显示的一样,那么在开始工作前,就需要了解图像的分辨率和不同设备分辨率之间的关系。

位图与矢量图形的实用教学

位图与矢量图形的实用教学

位图与矢量图形的实用教学1. 引言在数字设计和图形编辑领域,位图与矢量图形是两种最基本和常用的图像类型。

它们各自具有独特的特点和应用场景。

本教学文档旨在帮助读者深入理解位图与矢量图形的区别,掌握它们的编辑和应用技巧。

2. 位图2.1 定义位图(Bitmap)是由像素点组成的图像,每个像素点存储了一定的颜色信息。

位图图像在放大时会失去细节,出现锯齿现象,因为它们是由固定的像素点阵构成。

2.2 位图的格式常见的位图格式包括JPEG、PNG、BMP和GIF等。

这些格式各有特点,适用于不同的用途。

- JPEG(Joint Photographic Experts Group):适合有损压缩,适用于照片和复杂图像。

- PNG(Portable Network Graphics):支持无损压缩,适用于透明背景的图像和网络图像。

- BMP(Bitmap):无压缩,文件大小较大,适合存储高质量图像。

- GIF(Graphics Interchange Format):支持256种颜色,适用于简单图形和动画。

2.3 位图的编辑工具Photoshop、PaintShop Pro、GIMP等软件是专业的位图编辑工具,可以进行裁剪、调整大小、颜色编辑、滤镜应用等操作。

3. 矢量图形3.1 定义矢量图形是由数学公式描述的图像,由直线、曲线、多边形等基本几何形状组成。

矢量图形可以无限放大而不失真,因为它们描述的是形状的几何属性而非像素点。

3.2 矢量图形的格式矢量图形的常见格式有SVG(Scalable Vector Graphics)、PDF(Portable Document Format)、EPS(Encapsulated PostScript)和AI(Adobe Illustrator Interchange)。

- SVG:基于XML,适用于网络和屏幕显示。

- PDF:兼容性强,适用于文档和打印。

- EPS:广泛用于印刷行业。

24位位图解析

24位位图解析

我所要介绍的是24位真彩色位图文件的结构。

一个24位真彩色位图文件包括以下三个部分:位图文件头、位图信息头和颜色数据域,这都是我自己起的名字,不知是否与经典有出入,大家应该能够意会。

首先说说位图文件头。

就目前来看我所见到过的位图文件头都位于位图文件的最前部,长都是14个字节,例如有这样一个位图文件(用16位编辑器打开浏览时的效果):那么在第0行从左向右的前14个字节(红色部分)属于位图文件头,各个字节的意义是这样的:42 4D:看作ASCII码,对应的字母为‘BM’,即表示该文件是位图文件;86 00 00 00:四个字节用于表示改为图文件的大小尺寸,要注意的是它们是按低位到高位排列的,那么可以看出整个位图文件的尺寸是0x00000086字节,即134字节。

不难得知,这四个字节最大可以表示4,294,967,296,即可以表示4GB的位图大小;00 00 00 00:查资料知道,这4个字节是保留位,用于存储文件大小的数据。

而我没有找到超过4G的位图,因此不知道这四个自己究竟如何使用。

不过可以推测可能是用跟前面4字节共64 bit来表示文件的大小。

FAT32文件系统下不支持超过4GB的文件,NTFS系统支持;36 00 00 00:也是按从低位到高位排列的,用于表示改位图颜色数据域相对文件开始处的偏移量,可以看到这个位图的颜色数据域是从0x00000036字节处开始的(这里有点想不通,既然前面要用8个字节表示文件大小,为什么这里的偏移量只有4字节?)。

以上就是位图文件头的情况,接下来是位图信息头,仍旧观察前面的位图,从第一行E序字节的28开始(蓝色部分)共40字节,各个字节的含义是:28 00 00 00:表示信息头的长度,0x00000028=40,即位图信息头占40个字节;05 00 00 00:表示位图宽度,单位为像素。

即位图的宽度为5个像素;05 00 00 00:表示位图高度,单位为像素。

位图结构解析

位图结构解析

位图结构解析位图结构解析2011-03-19 00:55 99人阅读评论(0) 收藏举报BMP是一种与硬件设备无关的图像文件格式,使用非常广。

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

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

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

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

组成典型的BMP图像文件由四部分组成:1:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。

类型位图一共有两种类型,即:设备相关位图(DDB)和设备无关位图(DIB)。

DDB位图在早期的Windows系统(Windows3.0以前)中是很普遍的,事实上它也是唯一的。

然而,随着显示器制造技术的进步,以及显示设备的多样化,DDB位图的一些固有的问题开始浮现出来了。

比如,它不能够存储(或者说获取)创建这张图片的原始设备的分辨率,这样,应用程序就不能快速的判断客户机的显示设备是否适合显示这张图片。

为了解决这一难题,微软创建了DIB位图格式。

设备无关位图(Device-IndependentBitmap)DIB位图包含下列的颜色和尺寸信息:*原始设备(即创建图片的设备)的颜色格式。

*原始设备的分辨率。

*原始设备的调色板*一个位数组,由红、绿、蓝(RGB)三个值代表一个像素。

*一个数组压缩标志,用于表明数据的压缩方案(如果需要的话)。

PS基础教学课件-3-位图与矢量图

PS基础教学课件-3-位图与矢量图
Adobe PhotoShop
3.4 PS常用的文件格式
3.4.1 常见格式 PNG:图像文件存储格式。(压缩比高,生成文件体积小) GIF:主要运用于网页制作,是一种图形交换模式。 TIFF:被广泛应用于印刷等质量要求较高的图像文件,
可以进行LZW无损压缩。
EPS:常用于排版及绘图软件。
3
位图与矢量图
Adobe PhotoShop
3.5 PS的保存
3.5.1 Ctrl+S 存储 / Ctrl+Shift+S 另存为(存储为)
3
位图与矢量图
Adobe PhotoShop
3.5 PS的保存
3.5.2 存储品质—存储为非PSD文件时
(低品质:文件小,易传播,但画质会很差)
3
位图与矢量图
Adobe PhotoShop
(优化图像,文件相对较小,画质较好)
3
位图与矢量图
Adobe PhotoShop
3.5 PS的保存
3.5.3 格式选项—连续
(主要用于网页显示,先显示比较模糊图像,然后再显示相对比较清晰的图像)
Adobe PhotoShop
3.2 矢量图
3.2.1 矢量图—点、线、线条之间的弯曲来定义图像
(PS 教学-演示实例-3.像素与矢量图像)
3
位图与矢量图
Adobe PhotoShop
3.2 矢量图
3.2.1 矢量图—点、线、线条之间的弯曲来定义图像
(专业矢量图软件 Illustrator)
3
位图与矢量图
Adobe PhotoShop
第3章
位图与矢量图
3
位图与矢量图
Adobe PhotoShop

位图种类及其定义

位图种类及其定义

位图种类及其定义1 位图种类位图的表⽰⽅法:位图是由⼀个个像素点构成,其像素=长像素*宽像素。

每个像素由RGB(A)四个分量表⽰,且每个分量最多可以分为256个等级,即,每个分量要⽤⼀个字节28来表⽰24真彩⾊图(true color):是指每个像素由RGBA四个分量表⽰,且每个分量分为256个级别,则3个字节可以表⽰⼀个像素点。

224*像素个数/8=图⽚⼤⼩(byte)32位真彩图:即每个像素由RGB三个分量表⽰,且每个分量分为256个级别,则4个字节可以表⽰⼀个像素点。

232*像素个数/8=图⽚⼤⼩(byte)16位真彩图:是指每个像素由RGBA四个分量表⽰,且每个分量分为16个级别,则2个字节可以表⽰⼀个像素点。

216*像素个数/8=图⽚⼤⼩(byte)调⾊板(Palette):如果位图中所⽤颜⾊种类较少,则直接⽤⼀个数组将其颜⾊顺序存储,建⽴索引。

⿊⽩⼆⾊图:⼀个像素有⿊⽩两种颜⾊,故⽤⼀个bitt即可,则像素个数*1/8byte + 2*3byte(RGB) = 图⽚⼤⼩(byte)16⾊图:⼀个像素分为16中颜⾊,则⽤0.5个字节可表⽰,则像素个数*0.5byte + 16*3byte(RGB)= 图⽚⼤⼩2 位图格式介绍完位图和调⾊板的概念,下⾯就让我们来看⼀看Windows的位图⽂件(.bmp⽂件)的格式是什么样⼦的。

bmp⽂件⼤体上分成四个部分,如图1.3所⽰。

位图⽂件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER调⾊板Palette实际的位图数据ImageDate图1.3 Windows位图⽂件结构⽰意图第⼀部分为位图⽂件头BITMAPFILEHEADER,是⼀个结构,其定义如下:typedef struct tagBITMAPFILEHEADER {WORD bfType;DWORD bfSize;WORD bfReserved1;WORD bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;这个结构的长度是固定的,为14个字节(WORD为⽆符号16位整数,DWORD为⽆符号32位整数),各个域的说明如下:bfType指定⽂件类型,必须是0x424D,即字符串“BM”,也就是说所有.bmp⽂件的头两个字节都是“BM”。

位图的数据结构

位图的数据结构

位图的数据结构位图的数据结构1:引言1.1 概述1.2 目的1.3 范围2:位图的基本概念2.1 位图的定义2.2 位图的特点2.3 位图的应用领域3:位图的结构3.1 位图的格式3.2 位图文件头3.2.1 文件类型标识3.2.2 文件大小3.2.3 保留字节3.2.4 数据偏移量3.3 位图信息头3.3.1 信息头大小3.3.2 图像宽度和高度3.3.3 颜色平面数3.3.4 每个像素占用的位数3.3.5 压缩类型3.3.6 图像大小3.3.7 印象横向和纵向的像素数 3.3.8调色板的颜色索引数3.3.9重要的颜色索引数3.4 位图数据3.4.1 存储像素点颜色数据4:位图的存储方式4.1 位图的存储顺序4.2 位图的行填充4.3 位图的像素点排列方式5:位图的数据读写操作5.1 读取位图数据5.2 写入位图数据5.3 修改位图数据6:位图的压缩方式6.1 无压缩6.2 RLE压缩6.3 其他压缩算法7:位图的其他操作7.1 缩放位图7.2 旋转位图7.3 裁剪位图8:附件提供相关位图的示例文件,以供参考使用。

注释:1:位图 - 在计算机图形学中,指由二进制位表示图像的一种数据结构。

2:数据结构 - 计算机中组织和存储数据的方式。

3:文件头 - 含有文件的基本信息的数据结构。

4:信息头 - 含有位图的基本信息的数据结构。

5:像素 - 图像中的最小单位。

6:调色板 - 包含颜色信息的数据表。

7:压缩 - 将大数据量的文件压缩为更小尺寸的过程。

本文档涉及附件:1:位图示例文件 - 演示不同格式的位图文件供参考。

本文所涉及的法律名词及注释:1:版权法 - 保护原创作品的法律。

数据结构之位图(bitmap)详解

数据结构之位图(bitmap)详解

数据结构之位图(bitmap)详解1. 概述位图(bitmap)是⼀种⾮常常⽤的结构,在索引,数据压缩等⽅⾯有⼴泛应⽤。

本⽂介绍了位图的实现⽅法及其应⽤场景。

2. 位图实现(1)⾃⼰实现在位图中,每个元素为“0”或“1”,表⽰其对应的元素不存在或者存在。

复制代码代码如下:#define INT_BITS sizeof(int)#define SHIFT 5 // 2^5=32#define MASK 0x1f // 2^5=32#define MAX 1024*1024*1024 //max numberint bitmap[MAX / INT_BITS];/** 设置第i位* i >> SHIFT 相当于 i / (2 ^ SHIFT),* i&MASK相当于mod操作 m mod n 运算*/void set(int i) {bitmap[i >> SHIFT] |= 1 << (i & MASK);}//获取第i位int test(int i) {return bitmap[i >> SHIFT] & (1 << (i & MASK));}//清除第i位int clear(int i) {return bitmap[i >> SHIFT] & ~(1 << (i & MASK));}(2)函数库实现3. 位图应⽤3.1 枚举(1)全组合字符串全组合枚举(对于长度为n的字符串,组合⽅式有2^n种),如:abcdef,可以构造⼀个从字符串到⼆进制的映射关系,通过枚举⼆进制来进⾏全排序。

复制代码代码如下:null——> 000000f——> 000001e——> 000010ef——> 000011……abcedf——> 111111(2)哈⽶尔顿距离枚举算法,复杂度是O(N^2),怎样降低复杂度呢?如果是N 个⼆维的点,那么我们可以怎么⽤较快的⽅法求出通过简单的数学变形,我们可以得到这样的数学公式:通过观察,我们发现每⼀对相同元的符号必定相反,如:x_i-y_i,于是我们有了⼀个⼆进制思想的思路,那就是枚举这些⼆i 维的点的x 轴y 轴前的正负号,这样就可以⽤⼀个0~3 的数的⼆进制形式来表⽰每个元素前⾯的正负号,1表⽰+号,0表⽰−号,如:2 表⽰的⼆进制位形式为10表⽰x_i-y_i。

图片格式——位图与矢量图

图片格式——位图与矢量图

图⽚格式——位图与⽮量图☆图⽚格式㈠位图①位图⼜称为点阵图像,是由像素(图⽚元素)的单个点组成的。

通常分为8位,16位,24位和32位。

②所谓8位图并不是只有8种颜⾊,⽽是2的8次幂(即256)种颜⾊,8位图指的是⽤8个bits来表⽰颜⾊,对⼈眼的感觉来说,16位⾊基本能满⾜需要了。

③24位⼜称为“真⾊彩”,2的24次幂,⼤概有1600万种颜⾊之多,这个数字差不多是⼈眼可以分辨颜⾊的极限了。

④32位⾊并不是2的32次幂,其实也是2的24次幂,不过它添加了2的8次幂阶颜⾊的灰度,也就是8位透明度,因此规定它为32位⾊。

⑤在制作页⾯的时候,⼀般选⽤24位图像。

因为32位图像会带来更⼤的图像容量,会使浏览器加载页⾯速度变慢。

⑥放⼤原始位图,图像会失真,缩⼩原始位图,同样会使图像效果失真,这是因为缩⼩图像,减少的是图像中像素的数量。

㈡位图格式①JPG格式jpg可以很好地处理⼤⾯积⾊调的图像,如相⽚,⽹页中⼀般的图⽚②PNG格式PNG⽀持透明信息。

所谓透明,即图像可以浮现在其他页⾯⽂件或页⾯图像之上。

可以说PNG是专门为web创造的图像,通常⼤部分页⾯设计者在页⾯中加⼊logo或者⼀些点缀的⼩图像时,都会选⽤PNG格式。

PNG格式图⽚体积⼩,⽽且⽆损压缩,能保证⽹页打开速度,所以PNG格式图⽚是很好地选择。

③GIF格式GIF只⽀持256⾊以内的图像。

所以,GIF格式的图⽚效果是很差的。

但是,GIF可以制作动画,图像作者利⽤图像处理软件,将静态的GIF图像设置为单帧画⾯,然后把这些单帧画⾯连在⼀起,设置好⼀个画⾯到下⼀个画⾯的间隔时间,最后保存为GIF格式就可以了。

可以说,这就是简单的逐帧动画。

当处理⾊调复杂,绚丽的图像时,如照⽚,图画等,适合使⽤jpg格式;⽽处理⼀些logo,banner,简单线条构图的时候,适合使⽤PNG格式;GIF格式通常只适合表达动画效果。

㈢⽮量图①⽮量图格式⽮量图⼜称为“向量图”。

位图结构

位图结构

BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序一、位图文件结构位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据1、位图文件头。

位图文件头主要用于识别位图文件。

以下是位图文件头结构的定义:typedef struct tagBITMAPFILEHEADER { // bmfhWORD bfType;DWORD bfSize;WORD bfReserved1;WORD bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。

bfSize的值是位图文件的大小。

2、位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。

以下是位图信息结构的定义:typedef struct tagBITMAPINFO {BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];} BITMAPINFO;可见位图信息也是由两部分组成的:位图信息头 + 颜色表2.1位图信息头。

位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。

以下是位图信息头结构的定义: typedef struct tagBITMAPINFOHEADER{ // bmihDWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCountDWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;下表是对结构体当中各个成员的说明:结构成员说明biSize 结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)*biWidth以像素为单位的图像宽度*biHeight以像素为单位的图像长度*biplanes目标设备的位平面数,此值常为1biBitCount每个像素的位数*biCompression图像的压缩格式(这个值几乎总是为0)压缩说明:有0(不压缩),1(RLE 8,8位RLE压缩),2(RLE 4,4位RLE压缩,3(Bitfields,位域存放)。

第二十四讲、位图PPT课件

第二十四讲、位图PPT课件
• 位图的裁切:有时我们需要的不是位图的全部,而仅 仅是需要位图的一部分。
• 两种方法:导入前裁切和导入后裁切。
2020/10/13
3
矢量图转换为位图
• 位图/转换为位图 • 颜色模式 • 解析度 • 反锯齿补偿 • 递色 • 透明背景 • 使用色彩描述文件 • 单击OK,稍后片刻,一幅矢量图就变成位图了。 • 注意:在设置位图时要注意尽量不要设高的分辨率,还则会啬系
第二十四讲、位图
2020/10/13
1
• 计算机的绘图有两种方式,一种是曲线绘图,另一种是点阵图,其中用 点阵图绘图也叫点阵图,也叫位图,失量图是由一系列的直线和曲线组 成的,是以数学形式被定义为由线条连接在一起的一系列点,高速这些 线条很容易而且不会隆底它们的图形质量,而位图则不同。
• 位图是计算机屏幕上由像素点结合在一起组成的图形,它有着固定的分 辨率,也就是说,位图是按原始大小显示或打印时效果最好:
统的转换时间,在以后的特殊效果的操作过程中,也会浪费大量 的时间的内存空间。
2020/10/13
4
位图转换成矢量图
• 位图/描绘点阵图
2020/10/13
5
位图连接
• 连接位图 • 更新连接位图 • 解除连接
202ቤተ መጻሕፍቲ ባይዱ/10/13
6
编辑位图
• 位图/编辑位图
2020/10/13
7
谢谢您的指导
THANK YOU FOR YOUR GUIDANCE.
• 本节讲述编辑位图、位图的颜色转换与处理,3D效果各种滤镜效果等方 面的内容。
2020/10/13
2
编辑位图
• 导入:文件/导入 • 技巧:只单击鼠标,将以原始大小放置位图,单击并

位图分类

位图分类

少将一、位图文件结构位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据1、位图文件头。

位图文件头主要用于识别位图文件。

以下是位图文件头结构的定义:typedef struct tagBITMAPFILEHEADER { // bmfhWORD bfType;DWORD bfSize;WORD bfReserved1;WORD bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。

bfSize的值是位图文件的大小。

2、位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。

以下是位图信息结构的定义:typedef struct tagBITMAPINFO {BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];} BITMAPINFO;可见位图信息也是由两部分组成的:位图信息头 + 颜色表2.1位图信息头。

位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。

以下是位图信息头结构的定义: typedef struct tagBITMAPIN FOHEADER{ // bmihDWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCountDWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;下表是对结构体当中各个成员的说明:结构成员说明biSize 结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)* biWidth以像素为单位的图像宽度*biHeight以像素为单位的图像长度*biplanes目标设备的位平面数biBitCount每个像素的位数*(1)biCompression图像的压缩格式(这个值几乎总是为0)biSizeImage以字节为单位的图像数据的大小(对BI_RGB压缩方式而言)biXPelsPermeter水平方向上的每米的像素个数biYpelsPerMeter垂直方向上的每米的像素个数biClrused调色板中实际使用的颜色数(2)biClrImportant现实位图时必须的颜色数(3)说明:*是需要加以注意的部分,因为它们是我们在进行位图操作时经常参考的变量(1)对于每个像素的字节数,分别有一下意义:0,用在JPEG格式中1,单色图,调色板中含有两种颜色,也就是我们通常说的黑白图片4,16色图8,256色图,通常说的灰度图16,64K图,一般没有调色板,图像数据中每两个字节表示一个像素,5个或6个位表示一个RGB分量24,16M真彩色图,一般没有调色板,图像数据中每3个字节表示一个像素,每个字节表示一个RGB分量32,4G真彩色,一般没有调色板,每4个字节表示一个像素,相对24位真彩图而言,加入了一个透明度,即RGBA模式(2)这个值通常为0,表示使用biBitCount确定的全部颜色,例外是使用的颜色树木小于制定的颜色深度的颜色数目的最大值。

BMP格式结构详解

BMP格式结构详解

BMP格式结构详解位图文件(B it m a p-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。

Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(d evice-d ependent b itmap,DDB)文件格式。

Windows 3.0以后的BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图(d evice-i ndependent b itmap,DIB)格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。

BMP位图文件默认的文件扩展名是BMP或者bmp。

6.1.2 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它们的名称和符号如表6-01所示。

表6-01 BMP图像文件组成部分的名称和符号位图文件结构可综合在表6-02中。

表6-02 位图文件结构内容摘要6.1.3 构件详解1. 位图文件头位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义:typedef struct tagBITMAPFILEHEADER { /* bmfh */UINT bfType;DWORD bfSize;UINT bfReserved1;UINT bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中:bfType 说明文件的类型.bfSize 说明文件的大小,用字节为单位bfReserved1 保留,设置为0bfReserved2 保留,设置为0bfOffBits 说明从BITMAPFILEHEADER结构开始到实际的图像数据之间的字节偏移量2. 位图信息头位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-information header)和彩色表(color table)组成,前者用BITMAPINFOHEADER结构定义,后者用RGBQUAD结构定义。

BMP位图格式详解

BMP位图格式详解

位图格式BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。

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

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

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

现在讲解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(32位位图的透明度值,一般不需要)。

即首先4字节表示颜色号0的颜色,接下来表示颜色号1的颜色,依此类推。

4.图像数据区颜色表接下来位是位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位;16色图像每点占4位;256色图像每点占8位;真彩色图像每点占24位。

位图的数据结构

位图的数据结构

位图文件的数据结构一、文件的组成Bmp 文件由文件头、位图信息头、调色板、数据区等四个部分组成(真彩位图没有调色板,由三个部分组成),结构如下(在以下所有表格中,偏移量和长度的单位均为字节,括号外为10进制,括号内为16进制):表一:BMP文件的总体结构--------------------------------------------------------偏移量长度说明--------------------------------------------------------1.BMP文件头 000(000)142.BMP信息头 014(00E)403.调色板054(036) 8—1024 8=单色,1024=256色4.位图数据又称位图点阵--------------------------------------------------------说明:1.上表中1-3部分合称DIB文件头,而2、3两部分又合称为位图信息。

2.对于单色、16色、256色位图来说,调色板存放的是实际颜色的RGB值,而位图点阵存放的是颜色对应的索引值。

3.真彩位图没有调色板,在位图点阵存放的是实际颜色的RGB值。

下面详述各部分的结构。

㈠BMP文件头结构见表二表二:BMP文件头结构--------------------------------------------------------------偏移量长度描述值说明--------------------------------------------------------------000(000) 2 文件类型 424D “BM”的 ASCII 码002(002) 4 文件大小以字节为单位006(006) 4 保留00 00 00 00 必须为0010(00A) 4 位图点阵偏移量--------------------------------------------------------------说明:位图点阵偏移量=表一所述的1—3部分长度之和㈡BMP信息头结构见表三表三:BMP信息头结构:------------------------------------------------------------------------------偏移量长度描述值(16进制)------------------------------------------------------------------------------014(00E) 4 BMP 信息头结构长度28 00 00 00(10进制=40)018(012) 4 图像宽度022(016) 4 图像高度026(01A) 2 位面板数01 00(必须=1)028(01C) 2 每象素所占位数04 00(有6个可能值:1/4/8/10/18/20)030(01E) 4 象素数据的压缩类型00 00 00 00(0表示未压缩)034(022) 4 位图点阵的长度038(026) 4 设备水平分辨率042(02A) 4 设备垂直分辨率046(02E) 4 有效颜色数00 00 00 00(调色板中实际使用的颜色索引的个数,O表示全要使用)050(032) 4 重要的颜色索引个数00 00 00 00(0表示所有颜色均重要)------------------------------------------------------------------------------说明:1.上表中的长度数据,遵循“低位在前,高位在后”的原则。

位图的构成原理

位图的构成原理

位图的构成原理位图是一种由二进制数据组成的图像形式,也被称为光栅图像或像素图像。

它是通过将图像分成小方块(称为像素)并对每个像素进行编码来创建的。

每个像素都存储有关图像的颜色或灰度信息。

位图的构成原理可以分为两个主要方面:颜色表示和像素排列。

首先,我们来讨论颜色表示。

位图可以存储不同颜色或灰度级别的信息。

颜色在计算机中通常使用RGB(红、绿、蓝)模型来表示。

在RGB模型中,每个像素由红、绿、蓝三个颜色通道的强度组成。

每个颜色通道的强度可以从0(最暗)到255(最亮)之间的整数表示。

通过调整这三个通道的强度,可以创建各种各样的颜色。

例如,纯黑色表示为(0, 0, 0),纯白色表示为(255, 255, 255),红色表示为(255, 0, 0)等等。

除了RGB模型,还有其他颜色表示方法,如CMYK(青、品红、黄、黑)模型用于打印颜色,HSV(色调、饱和度、明度)模型用于调整颜色的色调、饱和度和亮度等等。

具体使用哪种颜色模型取决于图像的需求和应用领域。

其次,我们来讨论像素排列。

位图的像素排列方式通常有两种:逐行排列和逐列排列。

逐行排列是指像素按照从上到下、从左到右的顺序排列,而逐列排列则是指像素按照从左到右、从上到下的顺序排列。

在逐行排列中,每一行的像素按照顺序紧密排列在一起,当一行像素达到图像的宽度时,它会移到下一行的开头。

这种排列方式在内存中的存储方式比较直观,图像的每一行像素的地址是连续的,容易进行像素的快速访问和处理。

在逐列排列中,每一列的像素按照顺序紧密排列在一起,当一列像素达到图像的高度时,它会移到下一列的开头。

这种排列方式对于某些图像处理算法来说更高效,例如对频率分析,某些图像编码算法等。

除了以上两种基本的像素排列方式,还有其他的变种排列方式,如平均值采样和差值采样等。

这些采样方式在图像处理中经常用于图像降采样、放大和插值等领域。

总结起来,位图的构成原理涉及颜色表示和像素排列两个方面。

第1章位图基础

第1章位图基础

1.3 BMP文件存储格式
BMP文件组成 BMP文件头 位图信息头 颜色表 位图数据
BMP文件组成
BMP文件由文件头、位图信息头、颜色信息 和图像数据四部分组成。位图结构如下所示:
位图文件头结构BITMAPFILEHEADER 位图信息头结构BITMAPINFOHEADER
位图颜色表RGBQUAD 位图像素数据
f(x,y,z)={fred(x,y,z),fgreen(x,y,z),fblue(x,y,z)}
4.数字图像的表示
数字图像是连续图像f(x,y)的一种近似表示,通 常用由采样点的值所组成的矩阵来表示: f(0,0) f(0,1)…. f(0,M-1) f(1,0) f(1,1)…. f(1,M-1) f(N-1,0) f(N-1,1)…. f(N-1,M-1)
调色板调入设备环境
设定参数,显示位图 恢复原调色板 结束 设定参数显示位图
1.5 数字图像处理流程
流程分为三个阶段 :
(1)图像处理阶段 (2)图像分析阶段 (3)图像理解阶段
(1)图像处理阶段


在像素级上进行处理, 几何校正; 灰度变换处理; 图像噪声滤除; 边界锐化处理等。
(2)图像分析阶段
0
位图数据距文件头的偏移量 本结构大小的字节数 位图的宽度,单位为像素点 位图的高度,单位为像素点 1 像素的位数(1,4,8,24) 压缩方式(0表示不压缩) 位图数据的字节数 水平分辨率(像素点/米)
biYpelsPerMeter
biClrUsed biClrImportant RGBQUAD rgbBlue rgbGreen rgbRed rgbReserved
每一个采样单元叫做一个像素(pixel)。在计算机 内通常用二维数组来表示数字图像的矩阵,把像素 按不同的方式进行组织或存储,就得到不同的图像 格式,把图像数据存成文件就得到图像文件。

第一课 位图与矢量图

第一课  位图与矢量图

第一课位图与矢量图图像的种类:位图矢量图1、位图图像又称:点阵图,在技术上称为栅格图位图图像是由像素描述的,像素的多少决定了位图图像的显示质量文件大小。

单位面积的位图图像包含的像素越多,分辨率越高,显示越清晰,文件所占的空间也就越大。

反之,图像就越模糊,所占的空间也越小。

当图像放大到一定程度时,就会出现锯齿一样的边缘。

Photoshop就是通过修改像素点来处理图像的。

哪些属于位图?数码相机拍摄的相片,扫描仪扫描的图片,屏幕上抓取的图像特点:(1)易失真。

在图像缩放时,容易失真。

位图图像与分辨率有关,它们包含固定数量的像素,每个像素都分配有特定的位置和颜色值,放大位图图像时,系统无法为它创建新的像素,只是将原来的像素变大填充放大后的空间,因此图像会产生锯齿。

(2)色彩表现丰富。

(3)占存储空间大。

2、矢量图用于描述矢量图的线段和曲线称为对象,每个对象都是独立的实体,具有颜色、形状、轮廓、大小和屏幕位置等属性,而且不会影响图中其他对象。

矢量图的清晰度与分辨率的大小无关,对矢量较形进行缩放时,图形对象仍保持原有的清晰度。

常用的矢量图软件有Illustrator、CorelDraw特点:(1)不易失真。

矢量图形与分辨率无关,也就是说,可以将它们任意缩放,可以按任意分辨率打印,而不会丢失细节和清晰度。

这意味着可以移动线条、调整线条大小或者更改线条的颜色,而不会降低图形的品质。

(2)色彩表现不如位图丰富。

矢量图形不适合制作色调丰富、色彩变化太多的图像,无法像照片一样表现自然界的景象,适用于设计者创作与众不同的图形,或制作缩放到不同大小时也必须保持线条清晰的图形(例如徽标)。

(3)文件所占存储空间较小。

24位位图格式解析-电脑资料

24位位图格式解析-电脑资料
代码
1 BITMAPFILEHEADER * pbmfh ;
2 BITMAPINFO * pbmi ;
3 BYTE * pBits ;
4 pbmfh = DibLoadImage (szFileName) ;
5 pbmi = (BITMAPINFO *) (pbmfh + 1) ;
6 pBits = (BYTE *) pbmfh + pbmfh->bfOffBits ;
7 for( i=0; i < 1024; i++)
8 {
9 pPrintBlock[i] = (char*)malloc(216);
10 memset(pPrintBlock[i], 0, 216);
11 }
12
13 for(h = 0; h < pbmi->bmiHeader.biHeight; h++)
14 {
15 for(w = 0; w < pbmi->bmiHeader.biWidth; w++)
16 {
17 b1 = *pBits; //B
18 b2 = *(pBits+1); //G
19 b3 = *(pBits+2); //R
20 if( (int)b1 != 255amp;& (int)b3 != 255)
26 }
27 pBits += 3;
28
29 }
30 if(pbmi->bmiHeader.biWidth *3 % 4 != 0)
31 {
32 pBits += ( 4 - pbmi->bmiHeader.biWidth*3 % 4);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GDI基本概念及思想编写代码的一般步骤:先用CreateDC创建(或GetDC获取)device content(DC),然后用GetObject获取(或使用创建object的函数创建)需要的object,并用SelectObject将获取的object选入device content(DC),再使用object进行相应的画图操作,最后用SelectObject将原来的object重新选入DC,并delete 或release删除或释放前面创建或获取的DC。

1.关于device context (DC)设备内容:用来显示位图的地方.四种设备内容:显示器设备内容、打印机设备内容、内存设备内容、Information 设备内容,常用的有显示器DC和内存DC.Device Context Types: There are four types of DCs: display, printer, memory (or compatible), and information.Device context DescriptionDisplay Supports drawing operations on a video display. Printer Supports drawing operations on a printer or plotter. Memory Supports drawing operations on a bitmap.Information Supports the retrieval of device data.其中需要注意的一种类型是:Memory Device Contexts,将在bitmap处理中详细介绍。

创建和获取DC的相关函数:CreateDC,CreateCompatibleDC,GetDC,GetCurrentDC.其中CreateCompatibleDC用于创建内存设备内容.刷新、释放和删除DC的相关函数:ResetDC,ReleaseDC,DeleteDC.前者当DC有变动时用来重置DC,后者用来释放使用万完的DC.DeleteDC与CreateDC对应使用ReleaseDC与GetDC对应使用2.关于graphical object(GDI objects):包括:pen,brush,bitmap,palette,region,path.获取、选择和删除object的相关函数:GetObject,GetCurrentObject,SelectObject,DeleteObject。

关于SelectObject需要注意的地方:在使用完object后需要将原来默认的object重新选入DC替换掉新的object,bitmap只可以选入"内存DC",一个bitmap不能同时选入多个DC.This function returns the previously selected object of the specified type. An application should always replace a new object with the original, default object after it has finished drawing with the new object. An application cannot select a bitmap into more than one DC at a time.如果object是创建的,则使用完后必须删除创建的object,创建object的一些函数如下:GraphicobjectFunctionBit map CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, Creat eDiscardableBitmap, CreateDIBitmapBru sh CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrush Pt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrushColorPaletteCreatePaletteFontCreateFont, CreateFontIndirectPen CreatePen, CreatePenIndirect, ExtCreatePenReg ion CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, C reatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, Create RoundRectRgn下面重点介绍GDI中关于bitmap的处理:关于Bitmap和Device Context:1.关于bitmap的一些基本概念:DIB:设备无关位图。

DDB:设备相关位图。

扫描顺序scan order:bottom-up DIB和top-down DIB。

DDB总是top-down的.2.关于drawing surface:可以理解为绘制图象的区域,程序调用CreateDC或GetDC后,系统在返回DC句柄(handle)前先将一个drawing surface(绘制区域)选入DC,再返回DC 句柄,后面进行的绘制操作将限制在这个drawing surface(绘制区域)中。

例如:如果使用CreateDC创建一个关于显示器的DC(device content),那么绘制区域为显示器的整个屏幕,而如果使用GetDC获取一个对话框窗口或客户区的DC,那么绘制区域则为对话框窗口或客户区。

To creates a DC, call the CreateDC function; to retrieve a DC, call the GetDC function.Before returning a handle that identifies that DC, the system selects a drawing surface into the DC. If the application called the CreateDC function to create a device context for a VGA display, the dimensions of this drawing surface are 640-by-480 pixels. If the application called the GetDC function, the dimensions reflect the size of the client area.3.关于内存设备内容。

因为与某个具体的device content相关,所以又叫作compatible device context.可以象操作其它device content一样操作它,效果相同,唯一的区别是它不会显示出来,必须用BitBlt之类的函数将它的内容COPY(复制)到它相关的具体device content中才能显示出来。

它的主要目的是用来暂存图象数据。

It is an array of bits in memory that an application can use temporarily to store the color data for bitmaps created on a normal drawing surface. Because the bitmap is compatible with the device, a memory DC is also sometimes referred to as a compatible device context.使用CreateCompatibleDC创建Memory Device Contexts。

4.关于bitmap的创建。

一些关于bitmap创建的函数:CreateBitmap, CreateBitmapIndirect两个基本相同,都创建DDB(device-dependent bitmap),只能使用selectobject将创建的bitmap选入相关的(具有相同格式)device。

BitBlt Performs a bit-block transfer. CreateBitmap Creates a bitmap. CreateBitmapIndirect Creates a bitmap.CreateCompatibleBitmap Creates a bitmap compatible with a device.CreateDIBitmap Creates a device-dependent bitmap (DDB) from a DIB.CreateDIBSection Creates a DIB that applications can write to directly.LoadBitmap Loads a bitmap from a module's executable file.StretchBlt Copies a bitmap and stretches or compresses it.StretchDIBits Copies the color data in a DIB.其中BitBlt和StretchBlt和StretchDIBvits用来真正显示bitmap,而LoadBitmap则用来加载资源文件中的bitmap。

5.关于bitmap的存储。

The established bitmap file format consists ofa BITMAPFILEHEADER structure followed bya BITMAPINFOHEADER, BITMAPV4HEADER, or BITMAPV5HEADER structure. An array of RGBQUAD structures (also called a color table) follows the bitmap information header structure. The color table is followed by a second array of indexes into the color table (the actual bitmap data).The bitmap file format is shown in the following illustration.图一可以看出bitmap由BITMAPFILEHEADER+BITMAPINFOHEADER(或其它bitmap header结构)+颜色表+指向颜色表的实际图象数据组成。

相关文档
最新文档