精华内容
下载资源
问答
  • Photoshop图像处理理论题库单选题 下面哪个软件生成是像素图像 Illustrator Photoshop PageMaker Acrobat 下列哪...无限小 新建命令对话框不可设定是 A宽度和高度 B分辨率 C色彩模式 D文件格式 5 下列哪个软件不
  • BMP文件格式

    2017-05-27 15:50:55
    BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...

    BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical userinterfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。

    下面以Notepad++为分析工具,结合Windows的位图数据结构对BMP文件格式进行一个深度的剖析。

    BMP文件的数据按照从文件头开始的先后顺序分为四个部分:

    Ø         bmp文件头(bmp fileheader)提供文件的格式、大小等信息

    Ø         位图信息头(bitmapinformation)提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息

    Ø         调色板(color palette)可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表

    Ø         位图数据(bitmap data)就是图像数据啦^_^

    下面结合Windows结构体的定义,通过一个表来分析这四个部分。

     

    我们一般见到的图像以24位图像为主,即RGB三种颜色各用8bit来表示,这样的图像我们称为真彩色,这种情况下是不需要调色板的,也就是所位图信息头后面紧跟的就是位图数据了。因此,我们常常见到有这样一种说法:位图文件从文件头开始偏移54个字节就是位图数据了,这其实说的是2432位图的情况。这也就解释了我们按照这种程序写出来的程序为什么对某些位图文件没用了。

      下面针对一幅特定的图像进行分析,来看看在位图文件中这四个数据段的排布以及组成。

      我们使用的图像显示如下:

                     

     

       这是一幅16位的位图文件,因此它是含有调色板的。

       在拉出图像数据进行分析之前,我们首先进行几个约定:

       1. BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的存放字节顺序为“低地址村存放低位数据,高地址存放高位数据”。如数据0x1756在内存中的存储顺序为:

         

                                      

    这种存储方式称为小端方式(little endian), 与之相反的是大端方式(big endian)。对两者的使用情况有兴趣的可以深究一下,其中还是有学问的。

    2.  以下所有分析均以字节为序号单位进行。

       下面我们对从文件中拉出来的数据进行剖析:

       

     

    一、bmp文件头
    Windowsbmp文件头定义了如下结构体:

      typedef struct tagBITMAPFILEHEADER

    UINT16 bfType;   
    DWORD bfSize;
    UINT16 bfReserved1;
    UINT16 bfReserved2;
    DWORD bfOffBits;
    } BITMAPFILEHEADER;

    其中:

       

     

     对照文件数据我们看到:

     

    1-2  424dh = 'BM',表示这是Windows支持的位图格式。有很多声称开头两个字节必须为'BM'才是位图文件,从上表来看应为开头两个字节必须为'BM'才是Windows位图文件。

    3-5  00010436h = 66614 B = 65.05 kB,通过查询文件属性发现一致。

    6-9  :这是两个保留段,为0

    A-D00000436h = 1078。即从文件头到位图数据需偏移1078字节。我们稍后将验证这个数据。

    共有14个字节。

    二、位图信息头
    同样地,Windows为位图信息头定义了如下结构体:

      

    代码  

     

    对照数据文件: 

     

    0E-1100000028h = 40,这就是说我这个位图信息头的大小为40个字节。前面我们已经说过位图信息头一般有40个字节,既然是这样,为什么这里还要给一个字段来说明呢?这里涉及到一些历史,其实位图信息头原本有很多大小的版本的。我们看一下下表:

     

                    

        于兼容性的考虑,大多数应用使用了旧版的位图信息头来保存文件。而 OS/2 已经过时了,因此现在最常用的格式就仅有V3 header了。因此,我们在前面说位图信息头的大小为40字节。

    12-1500000100h = 256,图像宽为255像素,与文件属性一致。

    16-1900000100h = 256,图像高为255像素,与文件属性一致。这是一个正数,说明图像数据是从图像左下角到右上角排列的。

    1A-1B0001h, 该值总为1

    1C-1D0008h = 8, 表示每个像素占8个比特,即该图像共有256种颜色。

    1E-2100000000hBI_RGB 说明本图像不压缩。

    22-2500000000h,图像的大小,因为使用BI_RGB,所以设置为0

    26-2900000000h,水平分辨率,缺省。

    2A-2D00000000h,垂直分辨率,缺省。

    2E-3100000100h = 256,说明本位图实际使用的颜色索引数为256,与1C-ID得到的结论一致。

    32-3500000100h = 256,说明本位图重要的颜色索引数为256,与前面得到的结论一致。

     

    三、调色板
    下面的数据就是调色板了。前面也已经提过,调色板其实是一张映射表,标识颜色索引号与其代表的颜色的对应关系。它在文件中的布局就像一个二维数组palette[N][4],其中N表示总的颜色索引数,每行的四个元素分别表示该索引对应的BGRAlpha的值,每个分量占一个字节。如不设透明通道时,Alpha0。因为前面知道,本图有256个颜色索引,因此N = 256。索引号就是所在行的行号,对应的颜色就是所在行的四个元素。这里截取一些数据来说明:

            

    索引:(蓝,绿,红,Alpha)

    0号:(fefafd00)

    1号:(fdf3fc00)

    2号:(f4f3fc00)

    3号:(fcf2f400)

    4号:(f6f2f200)

                                                               5号:(fbf9f600) 等等。

     一共有256种颜色,每个颜色占用4个字节,就是一共1024个字节,再加上前面的文件信息头和位图信息头的54个字节加起来一共是1078个字节。也就是说在位图数据出现之前一共有1078个字节,与我们在文件信息头得到的信息:文件头到文图数据区的偏移为1078个字节一致!

    四、位图数据

    下面就是位图数据了,每个像素占一个字节,取得这个字节后,以该字节为索引查询相应的颜色,并显示到相应的显示设备上就可以了。

    注意:由于位图信息头中的图像高度是正数,所以位图数据在文件中的排列顺序是从左下角到右上角,以行为主序排列的。

     

            

    也即我们见到的第一个像素60是图像最左下角的数据,第二个人像素60为图像最后一行第二列的数据,…一直到最后一行的最后一列数据,后面紧接的是倒数第二行的第一列的数据,依此类推。

     如果图像是24位或是32位数据的位图的话,位图数据区就不是索引而是实际的像素值了。下面说明一下,此时位图数据区的每个像素的RGB颜色阵列排布:

    24RGB按照BGR的顺序来存储每个像素的各颜色通道的值,一个像素的所有颜色分量值都存完后才存下一个下一个像素,不进行交织存储。

    32位数据按照BGRA的顺序存储,其余与24位位图的方式一样。

    像素的排布规则与前述一致。

    对齐规则

    讲完了像素的排列规则以及各像素的颜色分量的排列规则,最后我们谈谈数据的对齐规则。我们知道Windows默认的扫描的最小单位是4字节,如果数据对齐满足这个值的话对于数据的获取速度等都是有很大的增益的。因此,BMP图像顺应了这个要求,要求每行的数据的长度必须是4的倍数,如果不够需要进行比特填充(以0填充),这样可以达到按行的快速存取。这时,位图数据区的大小就未必是 图片宽×每像素字节数×图片高 能表示的了,因为每行可能还需要进行比特填充。

    填充后的每行的字节数为:

          ,其中BPPBits Per Pixel)为每像素的比特数。

    在程序中,我们可以表示为:

    int iLineByteCnt= (((m_iImageWidth * m_iBitsPerPixel) + 31) >> 5) << 2;

    这样,位图数据区的大小为:

      m_iImageDataSize= iLineByteCnt * m_iImageHeight;

    我们在扫描完一行数据后,也可能接下来的数据并不是下一行的数据,可能需要跳过一段填充数据:

      skip= 4 - ((m_iImageWidth * m_iBitsPerPixel)>>3) & 3;

    五、拾遗

    至此,我们通过分析一个具体的位图文件例子详细地剖析了位图文件的组成。需要注意的是:我们讲的主要是PC机上的位图文件的构成,对于嵌入式平台,可能在调色板数据段与PC机的不同。如在嵌入式平台上常见的16r5g6b5位图实际上采用的掩模的方式而不是索引的方式来表示图像。此时,在调色板数据段共有四个部分,每个部分为四个字节,实际表示的是彩色版规范。即:

      第一个部分是红色分量的掩模

      第二个部分是绿色分量的掩模

     第三个部分是蓝色分量的掩模

     第四个部分是Alpha分量的掩模(缺省为0

    典型的调色板规范在文件中的顺序为为:

      00F8 0000 E0070000 1F00 0000 0000 0000

    其中

        00F8 0000为FB00h=1111100000000000(二进制),是蓝红分量的掩码。 
      E007 0000为 07E0h=0000011111100000(二进制),是绿色分量的掩码。 
       1F00 0000为001Fh=0000000000011111(二进制),是蓝色分量的掩码。 
        0000 0000设置为0。

    将掩码跟像素值进行“与”运算再进行移位操作就可以得到各色分量值。看看掩码,就可以明白事实上在每个像素值的两个字节16位中,按从高到低取5、6、5位分别就是r、g、b分量值。取出分量值后把r、g、b值分别乘以8、4、8就可以补齐每个分量为一个字节,再把这三个字节按BGR组合,放入存储器,就可以转换为24位标准BMP格式了。

    这样我们假设在位图数据区有一个像素的数据在文件中表示为02 F1。这个数据实际上应为F102:

     r = (F102 AND F800) >> 8 = F0h = 240

     g= (F102 AND 07E0)>> 3 = 20h = 32 
      b=(F102 AND 001F) << 3= 10h =16

    至此我们就可以显示了。(本文结束)

    参考资源:

    1.      wiki百科 bmp file format  

    http://en.wikipedia.org/wiki/BMP_file_format

    2.      gwwgle的专栏 BMP格式详解 aspx" style="color:rgb(46,156,233)"target="_blank">http://blog.csdn.net/gwwgle/archive/2009/11/06/4775396.aspx

    3.      匿名 BMP格式图像文件详析http://www.thethirdmedia.com/pc/200407/20040722117029.shtm

    4.      Singler的专栏位图文件(BMP)格式分析以及程序实现http://blog.csdn.net/yyfzy/archive/2006/06/10/785945.aspx

     

                                            转自:http://www.cnblogs.com/Matrix_Yao/archive/2009/12/02/1615295.html

     

     

    FILE HEADER 实例图解14 bytes

    typedef struct { 
    /* type : Magic identifier,
    一般为BM(0x42,0x4d)*/ 
    unsigned short int type; 
    unsigned int size;/* File size in bytes,
    全部的档案大小 */ 
    unsigned short int reserved1, reserved2; /*
    保留位 */ 
    unsigned int offset;/* Offset to image data, bytes */ 
    } FILEHEADER;

    1.     type2 bytes,一般都是'B' (0x42)'M' (0x4D)

    2.     size4 bytes,记录该BMP档的大小,0x436 = 1078 bytes

    3.     reserved1:保留位,2 bytes

    4.     reserved2:保留位,2 bytes

    5.     offset4 bytes0x36 = 54 bytes

    INFO HEADER 实例图解40 bytes

    typedef struct { 
    unsigned int size;/* Info Header size in bytes */ 
    int width,height;/* Width and height of image */ 
    unsigned short int planes;/* Number of colour planes */ 
    unsigned short int bits; /* Bits per pixel */ 
    unsigned int compression; /* Compression type */ 
    unsigned int imagesize; /* Image size in bytes */ 
    int xresolution,yresolution; /* Pixels per meter */ 
    unsigned int ncolours; /* Number of colours */ 
    unsigned int importantcolours; /* Important colours */ 
    } INFOHEADER;

    1.     size4 bytes0x28 = 40 bytes,表示Info Header的大长度总共 40 bytes

    2.     width4 bytes0x10 = 16,图像宽度为16 pixel

    3.     height4 bytes0x10 = 16,图像高度为16 pixel

    4.     planes2 bytes0x01 = 1,位元面数为1

    5.     bits2 bytes0x20 = 32,每個pixel需要32bits

    6.     compression4 bytes0代表不压缩

    7.     imagesize4 bytes0x400 = 1024 bytes,点阵图资料大小为1024 bytes

    8.     xresolution4 bytes,水平解析度

    9.     yresolution4 bytes,垂直解析度

    10.    ncolours4 bytes,点阵图使用的调色板颜色数

    11.    importantcolours4 bytes,重要的颜色数

    RAW DATA 实例图解

    刚刚的File Header14bytesInfo Header40bytes,「imagesize = 1024 bytes,所以「14 + 40 + 1024 = 1078」,即等于File Header中「size」的大小。下面我只提取部分的资料,反正全部的档案,減去Header54位元组,剩下的就是点阵图的资料。

    Info Header中的「bits」为32 bits,故四个位元组一组,若24 bits,则三个位元组一组,例子中的长宽各为16,以「Z」字型来看,一列则为16组,即16 X 4 = 64 bytes。注意的是,图中是以ABC ~ …的读取顺序来解说,但实际上程序所读取到的通常回是反过来的,即… ~ CBA。另外,下图是以「BGRA」排列。

     

    展开全文
  • 它是Windows操作系统中的标准图像文件格式,大家都知道BMP格式图片都非常大,那是因为它没有经过任何压缩。当然,关于BMP文件当中蕴含着哪些信息,在这里就不多谈了,其主要作用是为了交互需要。因此,在CAD也...

    关于BMP格式图片,可能很多小伙伴都遇到得比较多,但在这里还是稍微解释一下吧。

    它是Windows操作系统中的标准图像文件格式,大家都知道BMP格式的图片都非常大,那是因为它没有经过任何压缩。

    当然,关于BMP文件当中蕴含着哪些信息,在这里就不多谈了,其主要作用是为了交互的需要。

    因此,在CAD中也常常需要把相关图形转换为BMP格式,和输出DWG格式文件不同,转换为图片格式需要手动选择相关的实体,下面不妨来看看实际的操作。

    1、由于时间的关系,事先已经在CAD中画好了三个图形,分别为圆形、正方形和三角形。

    b354b3e493bb1e924b465d2419d8abe5.png

    2、依然在左上方的文件,选择输出。

    321da40e9ff135c8d38f299c51555442.png

    3、正常弹出保存对话框,选择BMP文件格式,选择保存路径。

    f490163a2a1c243f89b610ef4fe5a1a9.png

    4、点击保存,这个时候,并不会直接输出一个BMP格式图片的,而是软件需要你选择所保存的实体。

    37c610b5b269808887703dcfbc35265b.png

    5、下图中只选择了圆形和正方形,就选择确定了。

    b094f7a6986f8b38f1b28808499619f2.gif

    6、最后输出的BMP图片只保留了圆形和正方形。

    7f6cc2238f2d65389c5a913e5abefcb9.png

    有不明白的欢迎留言,觉得有用的可以点个收藏或者赞哦。

    展开全文
  • BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...

    BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。

    下面以Notepad++为分析工具,结合Windows的位图数据结构对BMP文件格式进行一个深度的剖析。

    BMP文件的数据按照从文件头开始的先后顺序分为四个部分:

    Ø         bmp文件头(bmp file header)提供文件的格式、大小等信息

    Ø         位图信息头(bitmap information)提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息

    Ø         调色板(color palette)可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表

    Ø         位图数据(bitmap data)就是图像数据啦^_^

    下面结合Windows结构体的定义,通过一个表来分析这四个部分。

     

    我们一般见到的图像以24位图像为主,即R、G、B三种颜色各用8个bit来表示,这样的图像我们称为真彩色,这种情况下是不需要调色板的,也就是所位图信息头后面紧跟的就是位图数据了。因此,我们常常见到有这样一种说法:位图文件从文件头开始偏移54个字节就是位图数据了,这其实说的是24或32位图的情况。这也就解释了我们按照这种程序写出来的程序为什么对某些位图文件没用了。

      下面针对一幅特定的图像进行分析,来看看在位图文件中这四个数据段的排布以及组成。

      我们使用的图像显示如下:

                     

     

       这是一幅16位的位图文件,因此它是含有调色板的。

       在拉出图像数据进行分析之前,我们首先进行几个约定:

       1. 在BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的存放字节顺序为“低地址存放低位数据,高地址存放高位数据”。如数据0x1756在内存中的存储顺序为:

         

                                      

    这种存储方式称为小端方式(little endian) , 与之相反的是大端方式(big endian)。对两者的使用情况有兴趣的可以深究一下,其中还是有学问的。

    2.  以下所有分析均以字节为序号单位进行。

       下面我们对从文件中拉出来的数据进行剖析:

       

     

    一、bmp文件头
    Windows为bmp文件头定义了如下结构体:

      

     

    复制代码
    typedef struct tagBITMAPFILEHEADER 
    {  
    UINT16 bfType;    
    DWORD bfSize; 
    UINT16 bfReserved1; 
    UINT16 bfReserved2; 
    DWORD bfOffBits;
    } BITMAPFILEHEADER; 
    复制代码

     

    其中:

       

     

     对照文件数据我们看到:

     

    1-2  :424dh = 'BM',表示这是Windows支持的位图格式。有很多声称开头两个字节必须为'BM'才是位图文件,从上表来看应为开头两个字节必须为'BM'才是Windows位图文件。

    3-5  :00010436h = 66614 B = 65.05 kB,通过查询文件属性发现一致。

    6-9  :这是两个保留段,为0。

    A-D:00000436h = 1078。即从文件头到位图数据需偏移1078字节。我们稍后将验证这个数据。

    共有14个字节。

    二、位图信息头
    同样地,Windows为位图信息头定义了如下结构体:

     

      

    代码  

     

    对照数据文件: 

     

    0E-11:00000028h = 40,这就是说我这个位图信息头的大小为40个字节。前面我们已经说过位图信息头一般有40个字节,既然是这样,为什么这里还要给一个字段来说明呢?这里涉及到一些历史,其实位图信息头原本有很多大小的版本的。我们看一下下表:

     

                    

        出于兼容性的考虑,大多数应用使用了旧版的位图信息头来保存文件。而 OS/2 已经过时了,因此现在最常用的格式就仅有V3 header了。因此,我们在前面说位图信息头的大小为40字节。

    12-15:00000100h = 256,图像宽为255像素,与文件属性一致。

    16-19:00000100h = 256,图像高为255像素,与文件属性一致。这是一个正数,说明图像数据是从图像左下角到右上角排列的。

    1A-1B:0001h, 该值总为1。

    1C-1D:0008h = 8, 表示每个像素占8个比特,即该图像共有256种颜色。

    1E-21:00000000h,BI_RGB,说明本图像不压缩。

    22-25:00000000h,图像的大小,因为使用BI_RGB,所以设置为0。

    26-29:00000000h,水平分辨率,缺省。

    2A-2D:00000000h,垂直分辨率,缺省。

    2E-31:00000100h = 256,说明本位图实际使用的颜色索引数为256,与1C-ID得到的结论一致。

    32-35:00000100h = 256,说明本位图重要的颜色索引数为256,与前面得到的结论一致。

     

    三、调色板
    下面的数据就是调色板了。前面也已经提过,调色板其实是一张映射表,标识颜色索引号与其代表的颜色的对应关系。它在文件中的布局就像一个二维数组palette[N][4],其中N表示总的颜色索引数,每行的四个元素分别表示该索引对应的B、G、R和Alpha的值,每个分量占一个字节。如不设透明通道时,Alpha为0。因为前面知道,本图有256个颜色索引,因此N = 256。索引号就是所在行的行号,对应的颜色就是所在行的四个元素。这里截取一些数据来说明:

                               

     

     

    索引:(蓝,绿,红,Alpha)

    0号:(fe,fa,fd,00)

    1号:(fd,f3,fc,00)

    2号:(f4,f3,fc,00)

    3号:(fc,f2,f4,00)

    4号:(f6,f2,f2,00)

                                                               5号:(fb,f9,f6,00) 等等。

     一共有256种颜色,每个颜色占用4个字节,就是一共1024个字节,再加上前面的文件信息头和位图信息头的54个字节加起来一共是1078个字节。也就是说在位图数据出现之前一共有1078个字节,与我们在文件信息头得到的信息:文件头到文图数据区的偏移为1078个字节一致!

    四、位图数据

    下面就是位图数据了,每个像素占一个字节,取得这个字节后,以该字节为索引查询相应的颜色,并显示到相应的显示设备上就可以了。

    注意:由于位图信息头中的图像高度是正数,所以位图数据在文件中的排列顺序是从左下角到右上角,以行为主序排列的。

     

            

    也即我们见到的第一个像素60是图像最左下角的数据,第二个人像素60为图像最后一行第二列的数据,…一直到最后一行的最后一列数据,后面紧接的是倒数第二行的第一列的数据,依此类推。

     如果图像是24位或是32位数据的位图的话,位图数据区就不是索引而是实际的像素值了。下面说明一下,此时位图数据区的每个像素的RGB颜色阵列排布:

    24位RGB按照BGR的顺序来存储每个像素的各颜色通道的值,一个像素的所有颜色分量值都存完后才存下一个下一个像素,不进行交织存储。

    32位数据按照BGRA的顺序存储,其余与24位位图的方式一样。

    像素的排布规则与前述一致。

    对齐规则

    讲完了像素的排列规则以及各像素的颜色分量的排列规则,最后我们谈谈数据的对齐规则。我们知道Windows默认的扫描的最小单位是4字节,如果数据对齐满足这个值的话对于数据的获取速度等都是有很大的增益的。因此,BMP图像顺应了这个要求,要求每行的数据的长度必须是4的倍数,如果不够需要进行比特填充(以0填充),这样可以达到按行的快速存取。这时,位图数据区的大小就未必是图片宽×每像素字节数×图片高能表示的了,因为每行可能还需要进行比特填充。

    填充后的每行的字节数为:

          ,其中BPP(Bits Per Pixel)为每像素的比特数。

    在程序中,我们可以表示为:

    int iLineByteCnt = (((m_iImageWidth * m_iBitsPerPixel) + 31) >> 5) << 2;

    这样,位图数据区的大小为:

      m_iImageDataSize = iLineByteCnt * m_iImageHeight;

    我们在扫描完一行数据后,也可能接下来的数据并不是下一行的数据,可能需要跳过一段填充数据:

      skip = 4 - ((m_iImageWidth * m_iBitsPerPixel)>>3) & 3;

    五、拾遗

    至此,我们通过分析一个具体的位图文件例子详细地剖析了位图文件的组成。需要注意的是:我们讲的主要是PC机上的位图文件的构成,对于嵌入式平台,可能在调色板数据段与PC机的不同。如在嵌入式平台上常见的16位r5g6b5位图实际上采用的掩模的方式而不是索引的方式来表示图像。此时,在调色板数据段共有四个部分,每个部分为四个字节,实际表示的是彩色版规范。即:

      第一个部分是红色分量的掩模

      第二个部分是绿色分量的掩模

     第三个部分是蓝色分量的掩模

     第四个部分是Alpha分量的掩模(缺省为0)

    典型的调色板规范在文件中的顺序为为:

      00F8 0000 E007 0000 1F00 0000 0000 0000

    其中

        00F8 0000FB00h=1111100000000000(二进制),是蓝红分量的掩码。
      E007 0000 07E0h=0000011111100000(二进制),是绿色分量的掩码。
       1F00 0000001Fh=0000000000011111(二进制),是蓝色分量的掩码。
        0000 0000设置为0

    将掩码跟像素值进行运算再进行移位操作就可以得到各色分量值。看看掩码,就可以明白事实上在每个像素值的两个字节16位中,按从高到低取565位分别就是rgb分量值。取出分量值后把rgb值分别乘以848就可以补齐每个分量为一个字节,再把这三个字节按BGR组合,放入存储器,就可以转换为24位标准BMP格式了。

    这样我们假设在位图数据区有一个像素的数据在文件中表示为02 F1。这个数据实际上应为F102

     r = (F102 AND F800) >> 8 = F0h = 240

     g= (F102 AND 07E0>> 3 = 20h = 32
      b=(F102 AND 001F) << 3 = 10h =16

    至此我们就可以显示了。(本文结束)

    参考资源:

    1.      wiki百科 bmp file format  

    http://en.wikipedia.org/wiki/BMP_file_format

    2.      gwwgle的专栏 BMP格式详解 http://blog.csdn.net/gwwgle/archive/2009/11/06/4775396.aspx

    3.      匿名 BMP格式图像文件详析http://www.thethirdmedia.com/pc/200407/20040722117029.shtm

    4.      Singler的专栏位图文件(BMP)格式分析以及程序实现http://blog.csdn.net/yyfzy/archive/2006/06/10/785945.aspx

    展开全文
  • 第6章 多媒体软件应用 1填空题 1常见的多媒体输出设备有 等 2图像文件有多种格式常用的有 等 ...7 是指图像色彩的丰满度和精细度 2选择题 1下面的图形图像文件格式中可实现动画的是 A.WMF格式 B.GIF格式 C.BMP格式 D.JP
  • 多媒体技术习题.pdf

    2020-11-16 10:01:03
    多媒体技术习题 一单项选择题 1以下关于多媒体技术的...D多媒体技术与计算机技术的融合开辟出一个多学科的崭新领域 2下面的图形图像文件格式中 可实现动画 AWMF 格式 BGIF 格式 CBMP 格式 DJPG 格式 3下面的多媒体软
  • 该图布局以给定配置文件中描述Row和Column嵌套系列形式给出,以.yaml格式进行.yaml 。 缩放Row中的图像以均衡高度,同时保持宽高比固定。 示例布局 布局简单 下面是两个图形并排简单布局: - Row: - ...
  • 有时候论文需要插入二维的图像,但是用截屏软件直接截取插入后都是很模糊下面跟着我操作一步一步完成清楚的图像截取。 1.打开图纸,将需要截取图放大; 2.框选图形,设置颜色和线形等; 3.选择“文件...

    有时候论文中需要插入二维的图像,但是用截屏软件直接截取的插入后都是很模糊的,下面跟着我的操作一步一步完成清楚的图像截取。
    在这里插入图片描述
    1.打开图纸,将需要截取的图放大;
    在这里插入图片描述
    2.框选图形,设置颜色和线形等;
    在这里插入图片描述
    3.选择“文件”,“打印”选项;
    在这里插入图片描述
    4.选择PDF选项,点击“确定”;
    在这里插入图片描述
    5.然后就会保存为pdf格式文件,打开,然后选择合适的大小截图即可。
    在这里插入图片描述

    如果您觉得有用,对您有帮助,请点个赞,谢谢!

    展开全文
  • BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据...
  • 用过PDF文件的伙伴都知道,PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件,是我们工作会经常用到的一种文件格式。如果是在手机使用到PDF文件的话,需要将PDF转换成...
  • BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...
  • python用用Pygal如如何何生生成成漂漂亮亮的的SVG图图像像详详解解 本篇文章讲述python如何用 ...前前言言 SVG可以算是目前最最火热的图像文件格式了它英文全称为Scalable Vector Graphics意思为可缩放矢量图形
  • 图像增强实现

    2012-06-07 15:42:03
    说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换灰度范围,[bottom top] 指定了变换后灰度范围;newmap=imadjust(map,[low high],[bottom top],gamma) ...
  • 下面是定义--“TIFF(标记图像文件格式)是一种通用格式,用于在应用程序(包括用于扫描仪图像程序)之间交换光栅图形(位图)图像。”TIFF文件可以是几个类中的任何一个,包括灰度、调色板或RGB全色,也可以包括具有...
  • SVG图形初探

    2017-02-06 17:19:21
     SVG是目前十分流行的图像文件格式了。是一种开放标准矢量图形语言,使用SVG格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到...
  • BMP图片格式解析

    2017-03-25 12:13:39
    BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...
  • 本软件滤镜、读写功能及工具栏均通过插件接口实现,但由于个人精力有限,目前开发完毕只有5个滤镜组,7种图像文件的读写工作。 功能简介: 本软件为2D图像编辑软件,目前支持PCX,GIF,JPG,BMP,TIF,TGA,PNG文件...
  • QCustomPlot可以导出为各种格式,例如矢量化PDF文件和光栅化图像(如PNG,JPG和BMP)。 QCustomPlot是用于在应用程序显示实时数据以及为其他媒体生成高质量图的解决方案。     下面的屏幕快照仅
  • BMP格式,转载

    2014-07-07 22:14:00
    BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...
  • 怎么将PDF文件在线转换成JPG图片

    千次阅读 2018-12-19 17:40:50
    PDF是一种文件格式,PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件,是我们工作会经常用到的一种文件格式。但有的时候我们因为工作上的需要会要求将PDF文件转换成JPG...
  • 用Delphi实现Word文件的预览

    热门讨论 2005-07-13 15:37:57
    一个子图形是一个小的图形图像,可以将其绘制在静态图像以创建动画。要创建动画效果,您只要随着时间推移,在不同的位置和方向上绘制子图形。当然,利用坐标系的变形可以使之简化许多。游戏经常使用子图形 ? 由于您...
  • BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域数据,因此成为我们取得RAW数据重要...
  • GIF文件学习

    2017-06-19 20:10:35
    1.概述 最近参与项目是一个和表情相关App,也就理所当然和GIF打交道了。下面就项目遇到和GIF相关问题及解决办法分 ... Interchange Format)是一种位图图形文件格式,以8位色(即256种颜

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 127
精华内容 50
关键字:

下面的图形图像文件格式中