关于调色板
我先得到了一幅图片(256色)的调色板m_Palette,然后执行下列代码试图改变m_Palette的值:
int nTotalColors = m_Palette.GetEntryCount();
PALETTEENTRY PaletteColors[256];
m_Palette.GetPaletteEntries(0, nTotalColors, PaletteColors);
for(int i=0;i<nTotalColors;i++){
PaletteColors[i].peRed=0;
PaletteColors[i].peGreen=0;
PaletteColors[i].peBlue=0;
}
m_Palette.SetPaletteEntries(0, nTotalColors, PaletteColors);
// 使系统改变调色板
m_Palette.AnimatePalette(0, nTotalColors, PaletteColors);
然后选择改变后的调色板:
CPalette *pOldPalette;
pOldPalette = pDC->SelectPalette(&m_Palette, FALSE);
pDC->RealizePalette();
pDC->SelectPalette(pOldPalette, FALSE);
最后显示图片.
按说应该会显示全黑的图片,但是为什么还是显示原来的图片,颜色没变化.
问题点数:20、回复次数:0Top




