使用ImageSharp从byte[]创建图像

7

我有一个byte[]数组,希望使用ImageSharp库创建灰度图像。

目前我的做法是:

byte[] arr = MnistReader.ReadTestData(); //this gives me byte[] with 784 pixel values

ImageSharp.Image image = new ImageSharp.Image(28, 28);

for (int i = 0; i < image.Height; i++)
{
    for (int j = 0; j < image.Width; j++)
    {
        int curPixel = j + i * image.Width;
        image.Pixels[curPixel].R = arr[curPixel];
        image.Pixels[curPixel].G = arr[curPixel];
        image.Pixels[curPixel].B = arr[curPixel];
    }
}

我想知道有没有更优雅的方法来完成它?
1个回答

15
你可以用这种方式完成它:
var image = Image.Load<Rgba32>(byteArray);
image.Mutate(x => x.Grayscale());

是的,那是最好的方法。还有重载可以选择使用哪种算法。 - James South

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接