• 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/

  • 相关阅读:
    可左右拖动窗口demo
    制作一个简单的百度网盘在线视频加速的chrome插件
    git分支
    使用git的ssh
    git的概念和常用命令
    爬虫:获取页面 -- request库的使用
    字符串方法
    从实现原理更深入了解call和apply
    Git和GitHub使用
    localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/ezhong/p/2239060.html
Copyright © 2020-2023  润新知