我在书上看到RGB宏实际上是用一个双字节字来存取一个像素的颜色,可是我不明白了,一共16位怎么给红,绿,蓝分配啊?还有我记得在书上看到了一个半字节的类型,那么是BYTE类型吗?
好象不是吧?在位图文件的信息中有个RGBQUAD结构,用来存放颜色表,里面定义了四个BYTE文件类型的数据,三个是R,G,B,还有一个欲留,可是他说存储的颜色也是双字节的,我就不明白了怎么能行呢?请各位高手指教!
好象不是吧?在位图文件的信息中有个RGBQUAD结构,用来存放颜色表,里面定义了四个BYTE文件类型的数据,三个是R,G,B,还有一个欲留,可是他说存储的颜色也是双字节的,我就不明白了怎么能行呢?请各位高手指教!
BYTE 是8位,是一个字节,不是半个字节
这样一个DWORD表示一个像素点
RGB每个为一个BYTE 8位(0~255)
rrrrrrrr gggggggg bbbbbbbb 00000000(保留)24位中
rrrrrrrr gggggggg bbbbbbbb
他和24位中少了一个保留~至于32位中的保留我在书上看见好像是为3d游戏中深度做标记的!方便~16位
rrrrrggggggbbbbb
我们只好缩短表示范围来表示!
取rrrrrrrr中的前5位!一般在16位系统中我们有两种表示法
555模式和565模式
555为:0rrrrrgggggbbbbb
565: rrrrrggggggbbbbb至于256则需要调色版了!大概如此!
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD; u see ,it's equal in size :)
BYTE byRed, // red component of color
BYTE byGreen, // green component of color
BYTE byBlue // blue component of color
);
还有我记得在书上看到了一个半字节的类型。有半字节的类型,但不是用在颜色上的吧。你用位段可以定义任意位(<8)的类型。
在位图文件的信息中有个RGBQUAD结构,用来存放颜色表,里面定义了四个BYTE文件类型的数据,三个是R,G,B,还有一个欲留,可是他说存储的颜色也是双字节的——尽信书不如无书!