1

我现在一直在寻找将近一个小时,但找不到答案。我目前正在开发一个程序,该程序以灰度或具有 256 种预定颜色的色阶显示自定义图像(使用 WritableBitmap)。

图像的输入将是一个字节数组(如果我将 PixelFormat 属性设置为 PixelFormats.Gray8,则可以正常工作),但由于我也需要自定义颜色比例,我想创建自定义比例(一个用于灰色,一个用于或更多颜色)。我认为我需要使用的是 PixelFormat.Indexed8 属性,但我根本不知道如何使用它以及如何创建自定义调色板,并且互联网对如何创建一个没有帮助。

4

1 回答 1

3

您可以创建自定义BitmapPalette并将其应用于新的WriteableBitmap

var myPalette = new BitmapPalette(new List<Color> 
{ 
    Colors.Red,
    Colors.Blue,
    Colors.Green,
    // ...
});

var writeableBitmap = new WriteableBitmap(
    width, 
    height, 
    96, 
    96, 
    PixelFormats.Indexed8, // Paletted bitmap with 256 colours
    myPalette);

writeableBitmap.WritePixels(...);
于 2012-08-31T10:45:59.427 回答