使用 ImageSharp 从 byte[] 创建图像
Create an image from byte[] using 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];
}
}
不知道有没有更优雅的方法呢?
你可以这样做:
var image = Image.Load<Rgba32>(byteArray);
image.Mutate(x => x.Grayscale());
我有一个 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];
}
}
不知道有没有更优雅的方法呢?
你可以这样做:
var image = Image.Load<Rgba32>(byteArray);
image.Mutate(x => x.Grayscale());