如何将以下 SixLabors.ImageSharp 代码转换为 byte[]
Image<Rgba32> myImage = new Image<Rgba32>();
byte[] myImageByteArray = ...
有人在另一篇文章中建议使用以下代码:
Rgba32[] finalImageByteArray = finalImage
.GetPixelMemoryGroup()
.SelectMany(group => group.ToArray())
.ToArray();
但是,这会产生 Rgba32[],而不是 byte[]
试试这个:
var img = new Image<Rgba32>(100, 100);
var bytes = new byte[img.Height*img.Width*img.PixelType.BitsPerPixel/8];
img.Frames.RootFrame.CopyPixelDataTo(bytes);
一些注意事项: