如何使用 ImageSharp 库将图像转换为字节数组?
ImageSharp 库是否还可以根据 EXIF 方向建议/提供 RotateMode 和 FlipMode?
如果您希望将原始像素转换为 a byte[]
,请执行以下操作。
var bytes = image.SavePixelData()
如果您希望将编码流转换为byte[]
(我怀疑这是您正在寻找的)。你来做这件事。
using (var ms = new MemoryStream())
{
image.Save(ms, imageFormat);
return ms.ToArray();
}
对于那些关注 2020 年的人:
SixLabors 似乎喜欢更改命名和添加抽象层,所以... 现在要获取原始字节数据,请执行以下步骤。
MemoryGroup
图像。GetPixelMemoryGroup()
GetPixelMemoryGroup()
返回一个接口)并获取第一个元素(如果有人告诉我他们为什么这样做,我将不胜感激)。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 日