位图文件分为四个部分:文件头,位图信息头,颜色表和位图数据。
但是我一直弄不明白颜色表和位图数据的关系。比如说一张bmp图是8位256色,那么它就有256个颜色表结构,而这256个颜色表后后面的位图数据有什么必要的联系呢?
如某个像素点的值是0xA1,那个值和前面的颜色表有某种必然的联系吗?如果bmp图是24位时,却没有颜色表,这时候后面的位图数据一个像素占三个字节,那这三个里的数据到底有什么意思呢?

解决方案 »

  1.   

    位图文件分为四个部分:文件头,位图信息头,颜色表和位图数据。 
    但是我一直弄不明白颜色表和位图数据的关系。比如说一张bmp图是8位256色,那么它就有256个颜色表结构,而这256个颜色表和后面的位图数据有什么必要的联系呢? 
    如某个像素点的值是0xA1,那个值和前面的颜色表有某种必然的联系吗? 如果bmp图是24位时,却没有颜色表,这时候后面的位图数据一个像素占三个字节,那这三个里的数据到底有什么意义呢? -------
    晕,上面有两个字打错了
      

  2.   

    256色时,表里放的是颜色,像素点数据是0-255的索引值
    24位时,像素点数据直接就是RGB颜色值
      

  3.   

    24位时,像素点数据直接就是RGB颜色值。这句话我理解了
    前一句我还是有点模糊,“像素点数据是0-255的索引值”这句话的意思是说有0-255个颜色表的数组,像素点数据的值如果是0xA1的话,那就是这个像素点的值就是索引为0xA1那个数组对应的颜色表rgb值吗?
      

  4.   

    256色以及以下的位图都是有调色板的,这个调色板就在位图的头部中,调色板就是一个颜色表,而此时位图的数据就是记录的每一个像素点的颜色在调色板中的索引,当显示的时候,根据索引查找调色板,得到像素的实际RGB颜色。而256色以上的位图,像素的颜色直接存储在位图数据中,没有调色板