请问如何把4位(16色)转换成256色??
把位数改成8后如何操作??求详细代码...谢谢><新手,5555

解决方案 »

  1.   

    for(int i = 0; i < hight; ++i)
    {
        for (int j = 0; j < width; ++j)
        {
            switch(p[i][j])
            case 1:
                g[i][j] = xxx;
                break;
            case 2:
                g[i][j] = yyy;
                break;
            ...
        }
    }
      

  2.   

    五楼的那个xxx,yyy就是编码表里的编码值,其实编码表就是一个二维数组,自己或别人造的二维数组
      

  3.   

    7楼那个是伪彩色编码表........
    我只想要在lpBMIH->biBitCount == 4情况下把图转为256色的代码,谁有啊?555555急用啊!!!!
    下面这个程序有N色互转,但看来看去都看不懂.........
    http://dl2.csdn.net/fd.php?i=79522132996663&s=c73811a74f06b6ed06693844d44613d3
      

  4.   

    如果是bmp转bmp,可以硬按bmp格式构造一个新文件,填写文件头,调色板,数据域等等,以前不会写win程序时在dos下做过,估计在win下也可以。至于内存的数据,没做过,想来网上应该有将内存数据保存成bmp图片的代码,这样将16色图片加载到内存,再存成256色的bmp就解决了。
      

  5.   

    http://topic.csdn.net/t/20020321/17/591492.html
      

  6.   

    读取原图之后,创建一张新图,原图基本资料复制过去,
    1修改像素位数从4位改到8位
    2调色板改成256色的
    3读原图一字节(2像素)写到新图中去...
           for(i=0;i<数据文件尾;i++)
               {
               读原图数据文件的一个字节
               取高4位,然后右移4位,前面补0写入新图第一个字节
                 取低4位,写入新图第二个字节
                 }有高手能写出具体代码吗?谢谢......跪求...谢谢