<Rgba32> 使用 ImageSharp 将图像转换为字节[]



如何使用images harp库将图像转换为一系列字节?

imagesharp库还可以根据EXIF方向建议/提供旋转模板和flipMode?

如果要将原始像素转换为 byte[],请执行以下操作。

var bytes = image.SavePixelData()

如果您想将编码的流转换为byte[](我怀疑您正在寻找的是(。你这样做。

using (var ms = new MemoryStream())
{
    image.Save(ms, imageFormat);
    return ms.ToArray();
}

对于那些在2020年之后看的人:

六劳子似乎喜欢命名和添加抽象层的变化,所以...现在,要获取原始字节数据,您可以执行以下步骤。

  1. 使用GetPixelMemoryGroup()方法获取图像的MemoryGroup
  2. 将其转换为阵列(因为GetPixelMemoryGroup()返回接口(并取一个元素(如果有人告诉我他们为什么这样做,我会欣赏(。
  3. System.Memory<TPixel>获取Span,然后以旧的方式做事。(我更喜欢@majid评论中的解决方案(

因此,代码看起来很列出:

var _IMemoryGroup = image.GetPixelMemoryGroup();
var _MemoryGroup = _IMemoryGroup.ToArray()[0];
var PixelData = MemoryMarshal.AsBytes(_MemoryGroup.Span).ToArray();

OFC您不必将其分为变量,您可以在一行代码中进行此操作。我只是为了澄清目的。该解决方案仅适用于2020年9月6日

最新更新