获取位图尺寸

合集下载

位图是什么意思?

位图是什么意思?

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

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

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

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

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

常用的位图处理软件是Photoshop。

1、原理:在红绿色盲体检时,工作人员会给你一个本子,在这个本子上有一些图像,而图像都是由一个个的点组成的,这和位图图像其实是差不多的。

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

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

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

一般情况下,位图是工具拍摄后得到的。

如数码相机拍摄的照片;2、颜色编码编辑:RGB:位图颜色的一种编码方法,用红、绿、蓝三原色的光学强度来表示一种颜色。

这是最常见的位图编码方法,可以直接用于屏幕显示;CMYK:位图颜色的一种编码方法,用青、品红、黄、黑四种颜料含量来表示一种颜色。

常用的位图编码方法之一,可以直接用于彩色印刷;3、图像属性:索引颜色/颜色表:位图常用的一种压缩方法。

从位图图片中选择最有代表性的若干种颜色(通常不超过256种)编制成颜色表,然后将图片中原有颜色用颜色表的索引来表示。

这样原图片可以被大幅度有损压缩。

适合于压缩网页图形等颜色数较少的图形,不适合压缩照片等色彩丰富的图形;Alpha通道:在原有的图片编码方法基础上,增加像素的透明度信息。

图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道。

多数使用颜色表的位图格式都支持Alpha通道;色彩深度:色彩深度又叫色彩位数,即位图中要用多少个二进制位来表示每个点的颜色,是分辨率的一个重要指标。

Visual C++中DDB与DIB位图编程全攻略

Visual C++中DDB与DIB位图编程全攻略

Visual C++中DDB与DIB位图编程全攻略1. 基本概念先来用通俗的语句讲解位图和调色板的概念。

我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。

针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。

对于人眼而言,这已经是"真彩色"了。

对每个像素进行了(R,G,B)量化的图像就是位图,其在计算机中对应文件的扩展名一般为.bmp。

既然用R,G,B的量化值就可以直接记录一张位图的所有像素,那我们需要调色板干什么呢?首先,我们可以计算完全利用(R,G,B)组合来存储一个800×600的位图所需要的空间为:800×600×3 = 1440000(字节)=1.37M(字节)惊人的大!因此,调色板横空出世了,它的功能在于缓解位图文件存储空间过大的问题。

假设一个位图为16色,其像素总数为800×600。

我们只需要用4个bit就可以存储这个位图的每个像素在16种颜色中所处的等级,然后调色板提供了这16种等级对应的(R,G,B)值,这样,存储这个16色位图只需要:800×600×4/8 = 240000(字节)= 0.22 M(字节)额外的存储R,G,B表的开销(即调色板Palette,也称为颜色查找表LUT)仅仅为16×3=48字节。

存储空间被大为减少!常见的位图有单色、16色、256色、16位及24位真彩色5种,对于前三者(即不大于256色)都可以调色板方式进行存储,而对16位及24位真彩色以调色板进行存储是不划算的,它们直接按照R,G,B分量进行存储。

在此基础上我们来分析DDB位图(Device-dependent bitmap,与设备相关的位图)与DIB位图(Device-independent bitmap,与设备无关的位图)的概念以及二者的区别。

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 文档

BMP 文档

BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。

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

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

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

目录编辑本段简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows 环境下运行的所有图象处理软件都支持BMP图象文件格式。

Windows系统内部各图像绘制操作都是以BMP为基础的。

Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。

Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。

BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE 作扩展名)。

6.1.2 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件的组成结构名称符号位图文件头 (bitmap-file header) BITMAPFILEHEADER bmfh位图信息头 (bitmap-information header) BITMAPINFOHEADER bmih 彩色表 (color table) RGBQUAD aColors[]图象数据阵列字节 BYTE aBitmapBits[]位图文件结构可综合在表6-01中。

位图是什么意思

位图是什么意思

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

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

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

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

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

用数码相机拍摄的照片、扫描仪扫描的图片以及计算机截屏图等都属于位图。

位图的特点是可以表现色彩的变化和颜色的细微过渡,产生逼真的效果,缺点是在保存时需要记录每一个像素的位置和颜色值,占用较大的存储空间。

常用的位图处理软件有Photoshop(同时也包含矢量功能)、Painter和Windows 系统自带的画图工具等,Adobe Illustrator则是矢量图软件。

中文名位图外文名bitmap反义词矢量图应用计算机、电子工程相关名词位图文件简介亦称为点阵或栅格,是由称作像素(图片元素)的单个点组成的。

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

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

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

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

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

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

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

[1]处理位图时,输出的质量决定于处理过程开始时设置的分辨率高低。

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

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

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

无论是在一个300dpi的打印机还是在一个2570dpi的照排设备上印操作(如移动)局部位图。

图片处理的几个技巧

图片处理的几个技巧

调整图像的大小
三、用美图秀秀调整图片的大小 由于美图秀秀调整图像大小非常简单,下面我们就用美图秀秀软件
来修改图片的大小。其实修改图片的大小,需要完成三个任务: 任务一 :修改尺寸(图片信息栏看结果) 首先,我们打开美图秀秀软件; 我们进入美图秀秀界面; 在美图秀秀软件中打开图片; 调整图片的尺寸; 保存与分享。 任务二 :修改图片的格式(保存和分享) 在保存与分享处修改图片的格 式(jpg.bmp.png等格式)。 任务三 :修改图片的容量(画质设置) 在保存与分享处通过滑块调整图 片的容量。 任务四: 批量调整图片的属性 1.安装批量处理软件; 2.打开批量处理的图片方法;(方法一:用鼠标圈选 方法二:连续的 多张图片借用Shift键;方法三:不连续的多张图片借用CTRL键) 3.批量修改图片的属性。
图像抠图
在教学中有时我们只需要这个图片的一部分,遇到这样的情况我们 应该怎么办?在一张图片中分离出一个按钮又该怎么办? 一、抠图的概念 抠图:将图像中需要的部分从画面中精确地提取出来。 二、美图秀秀抠图 1.自动抠图;(用简单的几笔在要扣取的图像上划线) 2.手动抠图;(用抠图笔圈出你想做的前景的部分) 3.形状抠图;(选择圆形、圆角矩形,矩形进行抠图) 三、组合图像素材 1.美图秀秀打开最低层图像; 2.在美图秀秀窗口中右击背景,添加图像; 3.调整位置和大小;(如果是多张图像,重复步骤2和3) 4.保存分享。
调整图像的大小
现在,获取到的图片素材尺寸和容量都很大,我们老师经常遇 到将图片插入到ppt中,不容易调整图片的大小,保存后打开 ppt非常慢,占的存储空间比较大。因此我们需要将大图片修改 成小图片。 一、图片的属性 图片的三个属性:格式、尺寸、容量。 1.图片的格式:图片在计算机中存储的格式; 2. 图片的尺寸:图片在屏幕上显示的长度和宽度; 3. 图片的容量:图片在计算机上所占用的空间大小。 二、查看图片属性的方法 1.右击图片—属性; 2.用图片查看器; 3.用图片处理软件查看。

项目(2)-基于51单片机的BMP图片解码(电子相册)

项目(2)-基于51单片机的BMP图片解码(电子相册)
更多与 BMP 存储格式相关的资料,请看开发板配套资料学习资料->BMP 图 片这一部分。
4.2、解码算法
首先从位图的信息头中得到位图的像素,位图的高度和宽度,还有位图的送 颜色位数等参数。
图片大小处理:我们使用的 TFT 液晶屏的像素是 320*240 大小。如果图片的 像素小于 320*240,则可以将图片的全部像素输出。但如果图片大小比 320*240 大,则要缩小该图片才能显示。我们通常采取的方法是用比例抽取方法,就是按 一定的缩小比例,抽取图片中的某些像素输出显示,其它像素则丢弃不要。
2:位图信息头
BMP 位图信息头数据用于说明位图的尺寸等信息。 typedef struct tagBITMAPINFOHEADER{
嵌入式学习——BMP 图片解码(项目 2)
DWORD biSize; // 本结构所占用字节数 LONGbiWidth; // 位图的宽度,以像素为单位 LONGbiHeight; // 位图的高度,以像素为单位 WORD biPlanes; // 目标设备的级别,必须为 1 WORD biBitCount// 每个像素所需的位数,必须是 1(双色), // 4(16 色),8(256 色)或 24(真彩色)之一 DWORD biCompression; // 位图压缩类型,必须是 0(不压缩), // 1(BI_RLE8 压缩类型)或 2(BI_RLE4 压缩类型)之一 DWORD biSizeImage; // 位图的大小,以字节为单位 LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数 LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数 DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数 DWORD biClrImportant;// 位图显示过程中重要的颜色数 } BITMAPINFOHEADER;

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=BM bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebi_PelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pi_els DIB图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是 4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数 ,一般放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显示时不进行缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI位图.5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

位图格式

位图格式

BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。

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

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

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

目录BMP文件格式分析1bmp位图和调色板的概念RGB颜色阵列??1加载文件?1、加载文件头?12、加载位图信息头?13、行对齐?14、加载图片数据?15、绘制?16、3D(OpenGL)的不同之处?BMP文件格式分析简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。

Windows系统内部各图像绘制操作都是以BMP为基础的。

Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。

Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP 图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。

BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。

1.2 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

rendertargetbitmap 参数解释

rendertargetbitmap 参数解释

rendertargetbitmap 参数解释
以下是对RenderTargetBitmap参数的详细解释:
PixelsWidth和PixelsHeight:这两个参数用于指定渲染目标位图的宽度和高度,以像素为单位。

这些参数决定了位图的尺寸,进而影响渲染输出的效果。

DpiX和DpiY:这两个参数用于指定位图的每英寸点数(DPI),分别表示X轴和Y 轴方向上的分辨率。

DPI值越高,输出的图像质量越好,但同时也需要更多的存储空间和处理性能。

PixelFormat:这个参数用于指定像素的格式,即每个像素使用的颜色信息。

常见的像素格式包括RGB、ARGB、Gray等,不同的格式适用于不同的图像类型和应用场景。

RenderTargetBitmapFactory:这个参数是一个可选的工厂类,用于创建RenderTargetBitmap对象。

通过使用工厂类,您可以更加灵活地控制位图的创建过程,例如设置位图的资源管理器和渲染上下文等。

RenderTargetBitmapOptions:这个参数是一个可选的结构体,提供了对RenderTargetBitmap对象进行更细粒度控制的选项。

例如,您可以设置是否使用双缓冲技术来减少图像闪烁现象,或者设置是否保留图像的纵横比等。

通过合理设置这些参数,您可以控制渲染目标位图的输出效果,以满足您的具体需
求。

请注意,这些参数的具体含义和用法可能会根据您使用的编程语言和库而有所不同。

位图(Bitmap)

位图(Bitmap)

说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP。

由于没有经过任何的压缩,故BMP图片往往很大。

在Windows下,任何格式的图片文件都要转化为位图格式才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的。

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

位图文件主要分为如下4个部分:块名称对应Windows结构体定义大小(Byte)文件信息头BITMAPFILEHEADER14位图信息头BITMAPINFOHEADER40颜色表(调色板)RGBQUAD(可选)位图数据(RGB颜色阵列)BYTE* 由图像长宽尺寸决定1.文件信息头BITMAPFILEHEADER结构体定义如下:typedef struct tagBITMAPFILEHEADER {UINT bfType;DWORD bfSize;UINT bfReserved1;UINT bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中:bfType表示文件的类型,该值必需是0x4D42,也就是字符'BM'。

bfSize表示该位图文件的大小,用字节为单位bfReserved1保留,必须设置为0bfReserved2保留,必须设置为0bfOffBits表示从文件头开始到实际的图象数据之间的字节的偏移量。

这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。

2、位图信息头BITMAPINFOHEADER结构体定义如下:typedef struct tagBITMAPINFOHEADER {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结构所需要的字节数。

位图大小的计算范文

位图大小的计算范文

位图大小的计算范文
1.确定像素数目:位图的大小取决于其水平和垂直方向上的像素数目。

例如,假设一幅图像的像素为800*600,即水平方向上有800个像素,垂
直方向上有600个像素。

2. 确定分辨率:分辨率指的是每英寸像素数目。

常见的分辨率有
72dpi、300dpi等。

一般来说,分辨率越高,图像的细节表现越清晰。


据要求和用途,可以选择合适的分辨率。

在计算位图大小时,需要将分辨
率转换成每厘米对应的像素数目。

例如,300dpi的分辨率相当于每厘米
118像素。

3. 计算尺寸:可以根据所需的位图大小,计算出其在打印或显示时
的尺寸。

可以使用以下公式计算位图尺寸:尺寸(cm)= 像素数目 / 分
辨率(像素/cm)。

4.确定色彩深度:色彩深度指的是每个像素所使用的位数,它决定了
图像的颜色表现力。

常见的色彩深度有8位、24位、32位等。

色彩深度
越高,图像可以表现的颜色越多。

根据所选的色彩深度,可以计算出每个
像素的存储量。

5. 计算位图大小:通过上述信息,可以计算出位图在存储时所占的
大小。

位图大小(byte)= 像素数目 * 每个像素存储量。

需要注意的是,计算出来的位图大小只是图像的存储大小,并不包括
压缩的情况。

如果图像经过压缩,通常可以减小图像文件的大小。

以上是计算位图大小的一般方法,具体情况还需要根据具体的图像参
数进行调整。

2mb的图片是多大尺寸

2mb的图片是多大尺寸

2mb的图片是多大尺寸
2mb的图片是多大尺寸:图片由像素组成的,如果是位图的话,假设是32色,2M=2*2^20=2^21,32色是2^5,就是256*256。

图片2mb有2048kb大。

mb是计算机存储大小的单位,换算的基本规则是:
1kb=1024b(字节);1mb=1024kb;1gb=1024mb
但是,一般实际的存储设备都是以1000为单位进位的,这样做的目标是为了方便制造。

一个1gb的U盘可以存储2mb的照片500张,这样就比较直观了。

2mb的图片数码相机上的,标的2M规格是指二百万像素,一般指1600X1200的幅面。

文件大小不一定,根据图像的颜色多少、深浅,是个变化的值。

而电脑里的2M是个文字大小,单位是字节B。

数码相机上的,标的2M规格是指二百万像素,一般指1600X1200的幅面。

文件大小不一定,根据图像的颜色多少、深浅,是个变化的值。

而电脑里的2M是个文字大小,单位是字节B。

2MB就是2000KB,K是一千的意思,一K=1024。

2mb的照片,指用感光纸放在照相底片下曝光后经显影、定影而成的人或物的图片。

通常表示照片规格会用“寸”来表示,和显示器之类的产品用对角线长度表示尺寸的方式不同,照片所说的“几寸”是指照片长的一边的英寸长度。

《图像编码》教学设计

《图像编码》教学设计

《图像编码》教学设计作者:夏燕萍来源:《中国信息技术教育》2020年第10期● 学科核心素养①了解图像数字化的基本原理,理解图像的采样、量化和编码过程;认识像素、图像尺寸、颜色深度等基本概念,能够根据位图图像的特征计算位图文件大小。

(信息意识、计算思维)②了解图像的常见格式,并能根据需要对图像进行简单的加工处理,形象直观地表达观点和思想。

(数字化学习与创新、信息社会责任)● 课程标准要求①在具体感知数据与信息的基础上,描述数据与信息的特征,知道数据编码的基本方式。

②针对具体学习任务,体验数字化学习过程,感受利用数字化工具和资源的优势。

● 学业要求能够描述数据与信息的特征,知道数据编码的基本方式,掌握数字化学习的方法,能够根据需要选用合适的数字化工具开展学习。

● 教材分析笔者采用的是人教-中图版教材,第一章的项目为“体质数据促健康”,要求学生学习数据与信息的相关知识和原理,理解并掌握信息数字化的作用和技能,能在本章学习结束时用多媒体作品呈现项目学习成果。

本章第1.2.3节《数据编码》详细介绍了各种数据编码,主要分成字符编码、声音编码、图像与视频编码、数据压缩四个部分。

图像和视频的数字化过程与声音数字化原理类似,但有其特别之处。

由于教材详细地阐述了声音数字化的过程,所以对图像与视频的数字化就不再赘述,因而需要教师在教学中适当加以补充。

另外,图像文件的不同类型意味着不同的压缩编码,也为后面的数据压缩做了铺垫。

本课是《图像与视频编码》的第一课时,主要讲解图像数字化的过程和原理,通过学习活动加深学生对图像编码的理解,并能初步掌握图像处理的常用方法和技能。

因此,在图像加工处理环节,教师安排的学习活动是为“体质健康”项目设计封面或招贴画,这样既能达成技能教学的目标,又能为本章项目的顺利完成做好铺垫。

● 教学对象分析图像是高一学生喜闻乐见的媒体格式,但他们对图像的数字化原理可能一知半解。

关于图像的加工处理,他们可能熟悉一些简单的手机应用软件,但对计算机上的常用编辑软件却不太熟悉。

BMP位图文件存储初探

BMP位图文件存储初探

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

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

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

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

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

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

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

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

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

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

bitmap decodebytearray 结构 -回复

bitmap decodebytearray 结构 -回复

bitmap decodebytearray 结构-回复"bitmap decodebytearray 结构" 是关于图像处理中的一种数据结构和操作。

在这篇文章中,我们将一步一步回答有关这种结构的问题以及它在图像处理中的作用和应用。

第一部分:什么是Bitmap?Bitmap 是一种用于表示图像的数据结构,也被称为位图。

它由一系列像素组成,每个像素包含有关颜色和位置的信息。

位图可以用于存储和显示图像,通常在计算机图形、数字图像处理和图像编码等领域被广泛应用。

第二部分:为什么需要解码字节数组?在图像处理过程中,图像通常是以字节数组(byte array)的形式存储的。

字节数组是一种连续的内存块,其中每个字节表示像素的颜色信息。

然而,字节数组并不能直接被图像显示或处理,需要通过解码操作将其转换为可用的Bitmap 数据结构。

第三部分:Bitmap 的解码过程Bitmap 的解码过程实际上是一个将字节数组转换为图像的过程。

它通常涉及到以下几个步骤:1. 确定图像的尺寸和像素格式:在解码之前,我们需要知道图像的尺寸(宽度和高度)以及像素的格式,例如RGB、RGBA、灰度等。

这些信息对于正确解码图像非常重要。

2. 创建Bitmap 对象:根据图像尺寸和像素格式,我们可以创建一个新的Bitmap 对象。

Bitmap 类通常提供了一组构造函数,可以通过传入图像宽度、高度和像素格式来创建Bitmap 实例。

3. 将字节数组解码为图像数据:解码字节数组的方式取决于图像的编码格式。

常见的图像编码格式包括JPEG、PNG、BMP 等。

我们需要根据图像的编码格式选择相应的解码算法,并将字节数组转换为图像数据。

4. 填充Bitmap 对象:一旦解码完成,我们需要将图像数据填充到Bitmap 对象中。

填充的过程涉及将每个像素的颜色信息设置到Bitmap 对象的对应位置上。

这通常需要根据图像的宽度、高度和像素格式计算每个像素在内存中的偏移位置,并将解码得到的颜色信息设置到相应的位置。

位图文件大小的精准计算方法

位图文件大小的精准计算方法

位图⽂件⼤⼩的精准计算⽅法位图⽂件⼤⼩的精准计算⽅法发布时间:2011-11-20 5:27:008位(bit)位图:彩⾊版中有2^8=256种颜⾊,具体哪256种颜⾊可由调⾊板灵活规定,因此每个像素点最多有256种情况(颜⾊),故刚好可⽤两位⼗六进制码(16^2=256)表⽰,占1字节。

⼀幅512×512的8位位图⼤⼩计算⽅法:位图⽂件头(14字节)+位图信息头(40字节)+调⾊板(256×彩⾊表4字节)+实际像素点占内存(512×512×1字节)=263 222字节(Byte)。

24位位图:⼜名RGB真彩⾊图,含2^24=16 777 216=16M⾊,没有彩⾊表,原因上⽂已说明。

每个像素点由3个字节(⼗六进制码6位)表⽰,每个字节负责控制⼀种颜⾊,分别为蓝(Blue)、绿(Green)、红(Red)。

为什么每种颜⾊⽤1个字节控制呢?我们知道,图像中任何颜⾊都是由蓝、绿、红混合⽽成,⽽在24位位图中这三种颜⾊的跨度(深度)分别为256=2^8,占⼆进制8bit=1字节,故蓝、绿、红刚好可⽤1个字节表⽰。

那么每个像素点可能的颜⾊就有256×256×256=2^24种。

⼀幅256×256的24位位图⼤⼩计算⽅法:位图⽂件头(14字节)+位图信息头(40字节)+实际像素点占内存(256×256×3字节)=196 662字节(Byte)。

需要注意的是,Windows有“补零”的习惯!即要求位图的每⼀⾏像素所占字节数必须被4整除。

若不能倍4整除,则在该位图每⼀⾏的⼗六进制码末尾“补”1⾄3个字节的“00”。

例如:⼀幅宽253×⾼256的24位位图,微软在⽣成该图为实际⽂件时,计算每⼀⾏像素所占字节=宽253×3字节=759字节,检验其被4除余1,则在每⾏的⼗六进制码末尾加1个字节,补“00”,变为760字节。

Delphi获取JPG、GIF、PNG等格式图片的大小(高度和宽度)

Delphi获取JPG、GIF、PNG等格式图片的大小(高度和宽度)

Delphi获取JPG、GIF、PNG等格式图片的大小(高度和宽度)unit ImgSize;interfaceuses Classes;procedure GetJPGSize(const sFile: string; var wWidth, wHeight: Word);procedure GetPNGSize(const sFile: string; var wWidth, wHeight: Word);procedure GetGIFSize(const sGIFFile: string; var wWidth, wHeight: Word);implementationuses SysUtils;function ReadMWord(f: TFileStream): Word;typeTMotorolaWord = recordcase Byte of0: (Value: Word);1: (Byte1, Byte2: Byte);end;varMW: TMotorolaWord;begin{ It would probably be better to just read these two bytes in normally }{ and then do a small ASM routine to swap them. But we aren't talking }{ about reading entire files, so I doubt the performance gain would be }{ worth the trouble. }f.read(MW.Byte2, SizeOf(Byte));f.read(MW.Byte1, SizeOf(Byte));Result := MW.Value;end;procedure GetJPGSize(const sFile: string; var wWidth, wHeight: Word);constValidSig: array[0..1] of Byte = ($FF, $D8);Parameterless = [$01, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7];varSig: array[0..1] of byte;f: TFileStream;x: integer;Seg: byte;Dummy: array[0..15] of byte;Len: word;ReadLen: LongInt;beginFillChar(Sig, SizeOf(Sig), #0);f := TFileStream.Create(sFile, fmOpenRead);tryReadLen := f.read(Sig[0], SizeOf(Sig));for x := Low(Sig) to High(Sig) doif Sig[x] <> ValidSig[x] then ReadLen := 0;if ReadLen > 0 thenbeginReadLen := f.read(Seg, 1);while (Seg = $FF) and (ReadLen > 0) dobeginReadLen := f.read(Seg, 1);if Seg <> $FF thenbeginif (Seg = $C0) or (Seg = $C1) thenbeginReadLen := f.read(Dummy[0], 3); { don't need these bytes } wHeight := ReadMWord(f);wWidth := ReadMWord(f);endelsebeginif not (Seg in Parameterless) thenbeginLen := ReadMWord(f);f.Seek(Len - 2, 1);f.read(Seg, 1);endelseSeg := $FF; { Fake it to keep looping. }end;end;end;finallyf.Free;end;end;procedure GetPNGSize(const sFile: string; var wWidth, wHeight: Word);typeTPNGSig = array[0..7] of Byte;constValidSig: TPNGSig = (137,80,78,71,13,10,26,10);varSig: TPNGSig;f: tFileStream;x: integer;beginFillChar(Sig, SizeOf(Sig), #0);f := TFileStream.Create(sFile, fmOpenRead);tryf.read(Sig[0], SizeOf(Sig));for x := Low(Sig) to High(Sig) doif Sig[x] <> ValidSig[x] then Exit;f.Seek(18, 0);wWidth := ReadMWord(f);f.Seek(22, 0);wHeight := ReadMWord(f);finallyend;end;procedure GetGIFSize(const sGIFFile: string; var wWidth, wHeight: Word);typeTGIFHeader = recordSig: array[0..5] of char;ScreenWidth, ScreenHeight: Word;Flags, Background, Aspect: Byte;end;TGIFImageBlock = recordLeft, Top, Width, Height: Word;Flags: Byte;end;varf: file;Header: TGifHeader;ImageBlock: TGifImageBlock;nResult: integer;x: integer;c: char;DimensionsFound: boolean;beginwWidth := 0;wHeight := 0;if sGifFile = '' then{$I-}FileMode := 0; { read-only }AssignFile(f, sGifFile);reset(f, 1);if IOResult <> 0 then{ Could not open file }Exit;{ Read header and ensure valid file. }BlockRead(f, Header, SizeOf(TGifHeader), nResult);if (nResult <> SizeOf(TGifHeader)) or (IOResult <> 0) or (StrLComp('GIF', Header.Sig, 3) <> 0) thenbegin{ Image file invalid }Close(f);Exit;end;{ Skip color map, if there is one }if (Header.Flags and $80) > 0 thenbeginx := 3 * (1 shl ((Header.Flags and 7) + 1));Seek(f, x);if IOResult <> 0 thenbegin{ Color map thrashed }Close(f);Exit;end;DimensionsFound := False;FillChar(ImageBlock, SizeOf(TGIFImageBlock), #0);{ Step through blocks. }BlockRead(f, c, 1, nResult);while (not EOF(f)) and (not DimensionsFound) dobegincase c of',': { Found image }beginBlockRead(f, ImageBlock, SizeOf(TGIFImageBlock), nResult); if nResult <> SizeOf(TGIFImageBlock) thenbegin{ Invalid image block encountered }Close(f);Exit;end;wWidth := ImageBlock.Width;wHeight := ImageBlock.Height;DimensionsFound := True;end;'Y': { Skip }begin{ NOP }end;{ nothing else. just ignore }end;BlockRead(f, c, 1, nResult);Close(f);{$I+}end;end.//调用方法procedure TForm1.Button1Click(Sender: TObject); varW, H: Word;sFileName:string;beginsFileName:='C:\test\test.jpg';GetJPEGSize(sFileName, W, H;showmessage(Format('Yes,W:%d,H:%d', [W, H])); end;end;//该代码片段来自于: /codes/delphi/8990。

位图显示原理

位图显示原理

BMP文件格式分析简介BMP(B it m a p-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。

Windows系统内部各图像绘制操作都是以BMP 为基础的。

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

Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP图象文件格式称为设备无关位图DIB(d evice-i ndependent b itmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB 位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。

BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。

文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件结构可综合在表6-01中。

表01 位图文件结构内容摘要UINT bfReserved2; DWORD bfOffBits;} BITMAPFILEHEADER;其中:?bfType 说明文件的类型.(该值必需是0x4D42,也就是字符'BM'。

我们不需要判断OS/2的位图标识,这么做现在来看似乎已经没有什么意义了,而且如果要支持OS/2的位图,程序将变得很繁琐。

所以,在此只建议你检察'BM'标识)?bfSize 说明文件的大小,用字节为单位bfReserved1 保留,必须设置为0 bfReserved2 保留,必须设置为0bfOffBits 说明从文件头开始到实际的图象数据之间的字节的偏移量。

单色BMP位图图像格式

单色BMP位图图像格式

BMP位图图像格式简介1. 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件结构可综合在表1中。

2 四个部分在位图图像数据中的相应位置,(位置偏移均以位图数据开始处为基准)起始位置偏移<=各部分数据具体存放位置<结束位置偏移第一部分,图像头:起始位置偏移0,长度:0x0EH (2byte + 3 * dword = 14)结束位置偏移:起始位置偏移+长度第二部分,图像信息头:起始位置偏移:上一部分结束位置偏移长度:从0x0EH 处读取到的dword 的数据值结束位置偏移:起始位置偏移+长度第三部分,调色板:起始位置偏移:上一部分结束位置偏移长度:从0x0AH 处读取到的dword 的数据值-起始位置偏移结束位置偏移:起始位置偏移+长度第四部分,位图数据:起始位置偏移:上一部分结束位置偏移长度:从0x22H 处读取到的dword 的数据值结束位置偏移:文件结束3 单色位图图像数据的表示方法在单色位图图像中,只有两种颜色,黑色或白色,每一个像素只需要一个比特就能够完成表示,为了清楚比特0或1具体表示哪一种颜色,可以通过查询调色板。

在单色位图图像中,调色板只包含两种颜色,每一种颜色用R G B 0 四个字节表示(在实际的字节流中,顺序是B G R 0)所以,位图图像数据中的0 代表调色板中第一种颜色的颜色值,1 代表调色板中第二种颜色的颜色值。

4 C/C++中数据类型的长度byte :1个字节,8位(比特)word:2个字节,由unsigned short定义dword:4 个字节,由unsigned long定义5 根据前面的位图文件结构表,可以通过自定义数据结构struct的方式来读取相应的数据。

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