用GDI显示24位位图正常,但16位565格式的位图就不能显示了,请问要怎样处理??

解决方案 »

  1.   

    StretchDIBits()贴图
    注意初始化BITMAPINFO结构
      

  2.   

    你是说CBitmap显示不正常吧
    处理位图分设备相关位图和设备无关位图
    CBitmap是设备相关的
    你可以看看设备无关位图的相关知识
      

  3.   

    24位位图是真彩色位图,有3位,每位8个字节,分别对应R,G,B三种颜色各有256种颜色,它的内部存储格式是没有颜色索引的,而低于24位的,比如你说的16位存储的方法在颜色表示这一块和24位的有很大差异。你留个邮箱,我给你传点资料,看完后你就彻底明白了。
      

  4.   

    16位颜色有两种   r5g5b5   和   r5g6b5  
    如果你是r5g5b5的话,获取了rgb各自的数值后,  
    red   =   r<<3;  
    green   =g<<3;  
    blue   =   b<<3;  
       
    如果是   r5g6b5   那么就是  
    red   =   r<<3;  
    green   =g<<2;  
    blue   =   b<<3;   
      

  5.   

    RGB565转到888不是有规律的,貌似用一个固定的ROM来转换~
      

  6.   

    谢谢楼上的兄弟,还没弄出来,郁闷中
    [email protected]
      

  7.   

    正在用StretchDIBits,还不知道能不能实现
      

  8.   

    本帖最后由 xyzhaopeng 于 2010-05-07 13:22:26 编辑
      

  9.   

    没人做过16bit的位图显示吗?? 自己顶一下
      

  10.   

    要检查biClrUsed,如果是24位的要先转换为16位的