原文:
  while  you are using a 8 colour level ( 2^8 = 256 ) . You should convert your bitmap to the 5 colour level format(2^5 = 32 ).怎么解决? 好像这是这个项目最后一个关键性问题了,请大伙帮帮忙。

解决方案 »

  1.   

    猜:
    R5 = R8/8
    G5 = G8/8
    B5 = B8/8
      

  2.   

    To: iicup(双杯献酒),
      谢谢你先,
     你的猜想有道理,但做项目不能写没把握的代码吧:) 不过可以试试。
      

  3.   

    猜:
    R5 = R8*5/8
    G5 = G8*5/8
    B5 = B8*5/8
      

  4.   

    谁有将RGB32, RGB15, RGB16, Grey8, YUV2(4:2:2),YUV(4:1:1), YUV12, YUV9等格式的视频数据转换成标准的RGB24格式?http://search.csdn.net/Expert/topic/1942/1942963.xml?temp=.653805
      

  5.   

    To: zfive5(醉马不肖 之 [孤舟蓑笠翁, 独钓寒江雪]):
      这样Max(R5)=256*5/8 = 160 > 32 这样一来,似乎iicup(双杯献酒)更有道理些。
      

  6.   

    555格式,共有15位表示颜色,颜色种类2的15次方
    565格式,共有16位表示颜色,颜色种类2的16次方WORD RGB16(WORD r, WORD g, WORD b)
    {
    //见如下代码:R、G、B转555,将8位转5位,用的办法是去掉低三位。 if( Is555 )
    //rrrrr|ggggg|bbbbb    0xf8 = 11111000b
    return ((r&0xf8)<<7) | ((g&0xf8)<<2) | ((b&0xf8)>>3);
    else
    //rrrrr|gggggg|bbbbb    0xfc = 11111100
    return ((r&0xf8)<<8) | ((g&0xfc)<<3) | ((b&0xf8)>>3);
    }
      

  7.   

    你应该是想用DirectDraw做游戏之类的吧,到www.gameres.net上去找,里面专业的东西很多。
      

  8.   

    先把RGB256转换为8位2进制,然后截取低5位就是RGB32
      

  9.   

    Color5 = Color8 / 8, 放心用吧,图象处理中就是这么处理的!
      

  10.   

    to  crystal521(水晶泪)
    应该是截取高5位!
      

  11.   

    我错了,对不住
    应该是这样的:R5 = R8/8
    G5 = G8/8
    B5 = B8/8没有一种颜色主要取高五位就可以你可以用画笔程序试验一下,
      

  12.   

    8 bpp 是以一个字节8位来表示一个象素点, 至于5bpp(好象没有这种格式吧),微软的bmp文件,只能有1,4,8,16,24,32的。当然,就算5bpp也行吧,原理是这样的:8bpp它只有256种,也就是RGB(red, green,blue)中的red并不是从00~FF的,中间有丢失的。所经,你也把8bpp转化为5bpp,只要把相关的颜色用同一种颜色代替即可。 这些文件中都有个叫调色板的数据块,重点是这个。你可以去查bmp文件格式的相关资料。
      

  13.   

    shitalone(西特龙)  讲的有道理