zoukankan      html  css  js  c++  java
  • BMP位图之8位位图(三)

    起始结构

    typedef struct tagBITMAPFILEHEADER {

    WORD bfType; //类型名,字符串“BM”,

    DWORD bfSize; //文件大小

    WORD bfReserved1; //保留字

    WORD bfReserved2; //保留字

    DWORD bfOffBits; //实际位图数据的偏移字节数,即前三个部分长度之和

    } BITMAPFILEHEADER;

    对应数据

    WORD bfType : 0x4d42

    DWORD bfSize:0xb6836

    WORD bfReserved1:0x0

    WORD bfReserved2:0x0

    DWORD bfOffBits:0x436

    紧跟着是

    typedef struct tagBITMAPINFOHEADER{

    DWORD biSize; //指定此结构体的长度,0x28

    LONG biWidth; //位图宽

    LONG biHeight; //位图高.为正,表示从下往上存储,左下角是起点。为负,表示从上往下储存,左上角是起点

    WORD biPlanes; //平面数,为1

    WORD biBitCount //采用颜色位数,可以是1,2,4,8,16,24,32

    DWORD biCompression; //压缩方式,可以是0,1,2,其中0表示不压缩

    DWORD biSizeImage; //实际位图数据占用的字节数

    LONG biXPelsPerMeter; //X方向分辨率

    LONG biYPelsPerMeter; //Y方向分辨率

    DWORD biClrUsed; //使用的颜色数,如果为0,则表示默认值(2^颜色位数)

    DWORD biClrImportant; //重要颜色数,如果为0,则表示所有颜色都是重要的

    } BITMAPINFOHEADER;

    对应数据

    DWORD biSize:0x28

    LONG biWidth:0x480

    LONG biHeight:0x288

    WORD biPlanes:0x1

    WORD biBitCount:0x8

    DWORD biCompression:0x0

    DWORD biSizeImage:0xb6400

    LONG biXPelsPerMeter:0x0

    LONG biYPelsPerMeter:0x0

    DWORD biClrUsed:0x0

    DWORD biClrImportant:0x0

    1位位图有调色板2^8=256个,总共256*4=0x400个字节,加上0x36,正好是偏移地址0x436

    对应是以下结构的数组

    typedef struct tagRGBQUAD {

    BYTE rgbBlue; //蓝色

    BYTE rgbGreen; //绿色

    BYTE rgbRed; //红色

    BYTE rgbReserved; //保留值,常用于Alpha透明值

    } RGBQUAD;

    调色板太多省略

    其余是数据区域,关于8位位图,有两种。本随笔中展示的是BI_RGB(未压缩),另一种是BI_RLE8(数据区数据压缩),压缩方式请参考下面微软的官方链接.

    原理地址:https://docs.microsoft.com/zh-cn/windows/desktop/gdi/bitmap-compression

  • 相关阅读:
    如何优雅的进行表结构设计
    获取windows身份认证网站页面内容
    angularjs filter 详解
    OpenFileDialog 害人的RestoreDirectory
    iscroll5 版本下的 上拉,下拉 加载数据
    EasyUI Combotree 只允许选择 叶子节点
    国内5款优秀的WEB前端框架
    Serv-U无法连接到服务器127.0.0.1,端口43958 FTP服务器不能启动
    Directory.GetCurrentDirectory和Application.StartupPath的区别
    Winform 窗体设计器 无法识别重复成员变量声明的问题
  • 原文地址:https://www.cnblogs.com/dalgleish/p/9575638.html
Copyright © 2011-2022 走看看