使用ImageSharp从byte []创建图像

kor*_*inp 2 c# .net-core imagesharp

我有一个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];
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅的方式来做到这一点?

Han*_*hao 7

你可以这样做:

var image = Image.Load<Rgba32>(byteArray);
image.Mutate(x => x.Grayscale());
Run Code Online (Sandbox Code Playgroud)