在8位位图中的调色板的中RGBQUAD中的第四个参数rgbReserved;,必须为零吗,如果不为零,会怎么样!!
我用photoshop编辑一张位图,是八位的,不过实际用到的颜色不到256,而是24,我用程序的调试功能调色板的构造,发现,这张位图的rgbReserved;项为255;。这是怎么回事,我又打开一张2位,这张位图256色,都用到了,我跟踪它的调色板构造,发现,每一项的rgbReserved;为0,这是为什么,有哪位高手在这方面的知识渊博,请赐教啊!!!Bitmap调试photoshop

解决方案 »

  1.   


    #include <pshpack2.h>
    typedef struct tagBITMAPFILEHEADER {
            WORD    bfType;
            DWORD   bfSize;
            WORD    bfReserved1;
            WORD    bfReserved2;
            DWORD   bfOffBits;
    } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
    #include <poppack.h>
    说这个吧? bfReserved1和bfReserved2的值是多少没有什么关系的啊bmp文件不过就是按照一定的格式存储的文件而已,既然没有用到就没关系了,一般设置为0
      

  2.   

    我去年买了表,看错了
    typedef struct tagRGBQUAD {
            BYTE    rgbBlue;
            BYTE    rgbGreen;
            BYTE    rgbRed;
            BYTE    rgbReserved;
    } RGBQUAD;
    typedef RGBQUAD FAR* LPRGBQUAD;
    rgbReserved这个值被用来当作这个像素的Alpha数值,如果图像是支持Alpha属性的,这个就是Alpha,怒过不是的话就是0,Alpha表示透明度。rgbReserved为255的时候是透明的,为0不透明的,Windows里面一般都是4个字节啦,这第4个字节通常是忽略的,好的图像处理软件就考虑Alpha的