小弟初学VC,更是对数字图像了解甚少,但是现在我得毕业设计中用到了VC的图像部分,但是现在小弟我遇到一个更改当前逻辑调色板的问题,但是小弟不知道怎么样获得当前逻辑调色板,并且怎样更改当前调色板,所以还请各位达人多多帮助,小弟不胜感激!
谢谢了!
对了,现在小弟还想问问怎样使用函数:
UINT SetPaletteEntries(
  HPALETTE hpal,             // handle to logical palette
  UINT iStart,               // index of first entry to set
  UINT cEntries,             // number of entries to set
  CONST PALETTEENTRY *lppe   // array of palette entries
);
小弟试了好些次,都没有调用成功,所以请各位达人多多帮助!谢谢了!

解决方案 »

  1.   

    HPALETTE SelectPalette(
      HDC hdc,                // handle to DC
      HPALETTE hpal,          // handle to logical palette
      BOOL bForceBackground   // foreground or background mode
    );
    就是选入新的调色板,返回旧的调色板。要设置PALETTEENTRY数组,最好将你的代码贴出来。
      

  2.   

    if(SrcDIBNumColors == 256) //256色图灰度变换
    { ::SetPaletteEntries(hpal,0,255,(LPPALETTEENTRY) ColorsTable[0]); //256彩色图像操作需考虑调色板变换
    }
    这里是一段关键代,目的是为了将256彩色图转换为灰度图像,其中ColorsTable[0]是常规灰度编码
    各个大哥达人们,帮帮小弟吧!谢谢了!