1.我创建了一个24位的位图,却显示不出来;只有改为32位的时候,才能显示。请问,怎样才能显示这个24位的位图呢?创建代码如下:
    CBitmap bmp;
    int w=400,h=300,b=24;        //b=32;
    UCHAR * pD=new UCHAR[w*h*(b/24)];
    memset(pD,0,w*h*(b/24));
    bmp.CreateBitmap(w,h,1,b,pD);
    照理说,这应该是一个黑色的位图啊,但是,怎么显示不出来呢?怎样才能显示这个24位的位图呢?请附上原代码。
    2.调色板到底有什么用呢?有用,又如何用呢?它的机制是什么呢?有没有非要使用调色板不可的情况(或用了调色板就会有明显变化的情况)呢?请举例,并附上原代码。
    3.谢谢您的回答。

解决方案 »

  1.   

    不好意思,w*h*(b/24) 应改为 w*h*(b/8),失误,失误。谢谢您的回答,happyparrot(快乐鹦鹉)。既然8位(256色)以下位图必须有调色板,那如果新建的是一个8位(256色)以下的位图,又该怎么创建它的调色板呢?上面的那幅位图又怎样才能显示出来呢?
      

  2.   

    http://community.csdn.net/Expert/topic/3117/3117382.xml?temp=.2500727这个是创建8位灰度,
    其中有调色板的设置,
    另外你也可以根据规律自己设置,架子都打好了!
      

  3.   


        多谢各位!    能有 happyparrot(快乐鹦鹉) 、puhuofeie(扑火飞蛾) 两位帅哥靓姐的联系方式吗?QQ 或 E—Mail ? 我想问更多的问题,不知可不可以?    我的 QQ :369422879    93336091