zoukankan      html  css  js  c++  java
  • bmp 文件信息头biCompression参数

    BITMAPINFO * bitmapInfo;
    	bitmapInfo  = (BITMAPINFO*)malloc( sizeof(BITMAPINFO)+sizeof(RGBQUAD)*(255) );
    
    	//printf("%d,%d\n",sizeof(BITMAPINFOHEADER),sizeof(BITMAPINFO));40,44
    
    	memset( bitmapInfo, 0, sizeof(BITMAPINFO)+sizeof(RGBQUAD)*(255) );
    
    	bitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);//位图信息头大小 40字节
    	bitmapInfo->bmiHeader.biWidth = 800;
    	bitmapInfo->bmiHeader.biHeight = -480;
    	bitmapInfo->bmiHeader.biPlanes = 1;
    	bitmapInfo->bmiHeader.biBitCount = 16;              //16位位图  565模式0xF800、0x07E0、0x001F
    	bitmapInfo->bmiHeader.biCompression = BI_BITFIELDS; //压缩参数  BI_RGB=0表示无压缩
    	bitmapInfo->bmiHeader.biSizeImage = 0;
    
    	bitmapInfo->bmiColors[0].rgbBlue = 0;  
    	bitmapInfo->bmiColors[0].rgbGreen = 0xF8;  //248?
    	bitmapInfo->bmiColors[0].rgbRed = 0;  
    	bitmapInfo->bmiColors[0].rgbReserved = 0;  
    
    	bitmapInfo->bmiColors[1].rgbBlue = 0xE0;  //224
    	bitmapInfo->bmiColors[1].rgbGreen = 0x07;  //7
    	bitmapInfo->bmiColors[1].rgbRed = 0;  
    	bitmapInfo->bmiColors[1].rgbReserved = 0;  
    
    	bitmapInfo->bmiColors[2].rgbBlue = 0x1F;  //31
    	bitmapInfo->bmiColors[2].rgbGreen = 0;  
    	bitmapInfo->bmiColors[2].rgbRed = 0;  
    	bitmapInfo->bmiColors[2].rgbReserved = 0;  
    

    biBitCount=16  

    当biCompression成员的值是BI_RGB时,它没有调色板。16位中,最低的5位表示蓝色分量,中间的5位表示绿色分量,高的5位表示红色分量,一共占用了15位,最高的一位保留,设为0。这种格式也被称作555   16位位图。

    当biCompression成员的值是BI_BITFIELDS,那么情况就复杂了,首先是原来调色板的位置被三个DWORD变量占据,称为红、绿、蓝掩码。

    分别用于描述红、绿、蓝分量在16位中所占的位置。在Windows   95(或98)中,系统可接受两种格式的位域:555和565;

    在555格式下,红、绿、蓝的掩码分别是:0x7C00、0x03E0、0x001F,

    而在565格式下,它们则分别为:0xF800、0x07E0、0x001F。

    你在读取一个像素之后,可以分别用掩码“与”上像素值,从而提取出想要的颜色分量(当然还要再经过适当的左右移操作)。

    引用:http://topic.csdn.net/t/20020911/20/1016000.html

    ezhong的博客园:http://www.cnblogs.com/ezhong/

  • 相关阅读:
    JavaScript学习总结(八)——JavaScript数组
    oracle数据库优化学习笔记
    把连续日期组织起来的算法
    转:andriod的盈利模式分析
    ASP.NET 页生命周期
    .NET垃圾回收机制[引用]
    IIS 7.0 的 ASP.NET 应用程序生命周期
    table滑动选择行及从表记录对应js代码
    hdu 3594 Cactus
    Java 计算器
  • 原文地址:https://www.cnblogs.com/ezhong/p/2239060.html
Copyright © 2011-2022 走看看