奥运会吧 关注:981,245贴子:6,314,591

回复:华仔图库

只看楼主收藏回复

0


34楼2004-10-16 01:16
回复

    16 - 16bit 高彩色位图 

    24 - 24bit 真彩色位图 

    32 - 32bit 增强型真彩色位图
     
      001Eh Compression 1 dword 压缩说明: 
    0 - 不压缩 (使用BI_RGB表示) 

    1 - RLE 8-使用8位RLE压缩方式(用BI_RLE8表示) 

    2 - RLE 4-使用4位RLE压缩方式(用BI_RLE4表示) 

    3 - Bitfields-位域存放方式(用BI_BITFIELDS表示)
     
      0022h Bitmap Data Size 1 dword 用字节数表示的位图数据的大小。该数必须是4的倍数 
      0026h HResolution 1 dword 用象素/米表示的水平分辨率 
      002Ah VResolution 1 dword 用象素/米表示的垂直分辨率 
      002Eh Colors 1 dword 位图使用的颜色数。如8-比特/象素表示为100h或者 256. 
      0032h Important Colors 1 dword 指定重要的颜色数。当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要 
    调色板数据 根据BMP版本的不同而不同 Palette N * 4 byte 调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值: 1字节用于蓝色分量 
     1字节用于绿色分量 
     1字节用于红色分量 
     1字节用于填充符(设置为0) 
     
    图象数据 根据BMP版本及调色板尺寸的不同而不同 Bitmap Data xxx bytes 该域的大小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。 






    构件详解

    1. 位图文件头 

    位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义: 

    typedef struct tagBITMAPFILEHEADER { /* bmfh */ 

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

    } BITMAPFILEHEADER; 

    其中: 
     

    bfType
     说明文件的类型.(该值必需是0x4D42,也就是字符'BM'。我们不需要判断OS/2的位图标识,这么做现在来看似乎已经没有什么意义了,而且如果要支持OS/2的位图,程序将变得很繁琐。所以,在此只建议你检察'BM'标识) 
     
    bfSize
     说明文件的大小,用字节为单位
     
    bfReserved1
     保留,必须设置为0
     
    bfReserved2
     保留,必须设置为0
     
    bfOffBits
     说明从文件头开始到实际的图象数据之间的字节的偏移量。这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。
     

    2. 位图信息头 

    位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-information header)和彩色表(color table)组成,前者用BITMAPINFOHEADER结构定义,后者用RGBQUAD结构定义。BITMAPINFO结构具有如下形式: 

    typedef struct tagBITMAPINFO { /* bmi */ 

    BITMAPINFOHEADER bmiHeader;
    RGBQUAD bmiColors[1];

    } BITMAPINFO; 

    其中: 
     

    bmiHeader
     说明BITMAPINFOHEADER结构,其中包含了有关位图的尺寸及位格式等信息
     
    bmiColors
     说明彩色表RGBQUAD结构的阵列,其中包含索引图像的真实RGB值。
     

    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结构所需要的字数。注:这个值并不一定是BITMAPINFOHEADER结构的尺寸,它也可能是sizeof(BITMAPV4HEADER)的值,或是sizeof(BITMAPV5HEADER)的值。这要根据该位图文件的格式版本来决定,不过,就现在的情况来看,绝大多数的BMP图像都是BITMAPINFOHEADER结构的(可能是后两者太新的缘故吧:-)。
    


    36楼2004-10-16 01:44
    回复
      2025-09-05 16:24:41
      广告
      不感兴趣
      开通SVIP免广告
      Really????????????????????????????????????????
      我一直讨厌SHE


      37楼2004-10-31 15:43
      回复