Bitmap的调色板类为ColorPalette,
- 该类没有public的构造函数,因此无法直接创建
- Bitmap.Palette.Entries为read only 类型,因此无法直接修改
因此,我们可以通过先获取位图的默认调色板,修改该调色板的Entries的项(Color),最后再把修改后的Palette重新绑定到Bitmap上,代码如下:
ColorPalette palette = bmp.Palette;
for (int i = 0; i < palette.Entries.Length; i++)
{
palette.Entries[i] = colors[i];
}
bmp.Palette = palette;
参考:https://bytes.com/topic/c-sharp/answers/850566-creating-system-drawing-imaging-colorpalette