Bitmap的调色板类为ColorPalette,该类没有public的构造函数,因此无法直接创建;
Bitmap.Palette.Entries为只读类型,因此无法直接修改,
因此,我们可以通过先获取位图的默认调色板,修改该调色板的Entries的项(Color),
最后再把修改后的Palette重新绑定到Bitmap上。
代码如下:
public void setImagePalette(Bitmap bitmap)
{
short COLOR_COUNT = 256;
ColorPalette cp = bitmap.Palette;
for (int i = 0; i < COLOR_COUNT; i++)
{
cp.Entries[i] = Color.FromArgb(255, i, i, i);
}
bitmap.Palette = cp;
}
BitmapPalette 类 (System.Windows.Media.Imaging) | Microsoft Learn