bmp图片解码相关问题

2019-10-16 07:33发布

在原子哥图片显示实验中,bmp.c中有段关于24位 {MOD}的解码代码
        while(1)
                {                                 
                        while(count<readlen)  
                    {
                                if(color_byte==3)   
                                {
                                        switch (rgb)
                                        {
                                                case 0:                                  
                                                        color=bmpbuf[count]>>3; //B
                                                        break ;          
                                                case 1:          
                                                        color+=((u16)bmpbuf[count]<<3)&0X07E0;//G
                                                        break;          
                                                case 2 :
                                                        color+=((u16)bmpbuf[count]<<8)&0XF800;//R          
                                                        break ;                       
                                        }   
                                }
                            else if(color_byte==2)

                            {
                                   .....
                           }
                             .....
                      }
                     ......
                 }
1:为甚么要左移3位或者右移3位和8位
2:为什么还要&0x7e和0xF800
我查了bmp编码还是难以理解和24位 {MOD}相关东西
麻烦各位大神给指点下,谢谢啦!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。