如何使用ImageSharp库将图像转换为字节数组?
ImageSharp库是否也可以根据EXIF方向建议/提供RotateMode和FlipMode? p>
答案 0 :(得分:6)
如果您要将原始像素转换为byte[]
,请执行以下操作。
var bytes = image.SavePixelData()
如果您希望将编码流转换为byte[]
(我怀疑您正在寻找)。你这样做。
using (var ms = new MemoryStream())
{
image.Save(ms, imageFormat);
return ms.ToArray();
}
答案 1 :(得分:2)
在第二个问题上:有一个名为AutoOrient()
的转换API函数。查一查;)
答案 2 :(得分:2)
对于2020年以后的人:
SixLabors似乎喜欢更改命名和添加抽象层,因此... 现在,要获取原始字节数据,请执行以下步骤。
@Document
@CompoundIndex(name = "group-name", def = "{'group':1, 'name':1}", unique = true) // Requires auto-index-creation in application.properties
public class Book {
@Id
private String _id;
private String group;
private String name;
private String value;
public Book() {
}
public Book(String group, String name, String value) {
this.group = group;
this.name = name;
this.value = value;
}
@Override
public String toString() {
StringBuilder s = new StringBuilder('[');
s.append("_id=").append(_id);
s.append(", group=").append(group);
s.append(", name=").append(name);
s.append(", value=").append(value);
s.append(']');
return s.toString();
}
public String get_id() {
return _id;
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
方法获取MemoryGroup
的图像。GetPixelMemoryGroup()
返回一个接口)并获取第一个元素(如果有人告诉我他们为什么这样做,我将不胜感激)。GetPixelMemoryGroup()
中获得一个System.Memory<TPixel>
,然后以旧的方式进行操作。
(我更喜欢@Majid评论中的解决方案)所以代码看起来像这样:
Span
ofc,您不必将其拆分为变量,而只需一行代码即可完成。我这样做只是为了澄清目的。此解决方案仅适用于2020年9月6日