解决方案 »

  1.   

    BITMAPINFO结构具有如下形式:
    typedef struct tagBITMAPINFO
    {
       BITMAPINFOHEADER  bmiHeader;
       RGBQUAD           bmiColors[1];
    }  BITMAPINFO;1/4/8位的位图有调色板,RGBQUAD的个数分别为2,16,256。
      

  2.   

    我最高不明白的地方是,它的初始化部分,我知道乘以256表示的是8位颜色格式图片!
    比如有一个结构体:
    struct  student
    {
    int stunum;
    int score;
    }
    现在定义一个
    student *  p;
    p=(student*)new char[sizeof(int)*2];呀
    也可以
    p=(student*)new char[sizeof(int)*8];吗?
    是不是因为一次性表示1,4,8位颜色格式图片而这么规定的啊?
      

  3.   

    struct stu 
    {
    int n;
    int b;
    };
    stu *p = new stu[1];
      

  4.   

    因为有不同格式的位图,BITMAPINFO结构里面无法确定颜色表需要有多少个RGBQUAD,因此采用这种方式来达到灵活性,对于索引色位图才用到这个颜色表,对于16位、24位、32位的位图就不需要后面的颜色表,对于1位(单色)位图用一个RGBQUAD表示即可,对于2、4、8位位图根据大小增加颜色表。