MemoryStream 到 MagicImage
MemoryStream into MagicImage
我正在尝试将 MemoryStream 存储到 MagicImage 中,但是当我尝试上传 heic 格式的文件时,它仍然以 heic 格式上传,但它应该以 jpeg 格式上传。所以我有点不明白我哪里做错了。那么有人可以帮助我吗?我正在尝试在网络框架中打开它,但它打不开,因为它没有将其转换为 jpeg。
using (MemoryStream ms = new MemoryStream())
{
create.PostedFile.InputStream.CopyTo(ms);
var data = ms.ToArray();
byte[] data1 = null;
using (var image = new MagickImage(data))
{
// Sets the output format to jpeg
image.Format = MagickFormat.Jpeg;
// Create byte array that contains a jpeg file
data1 = image.ToByteArray();
}
var file = new ClientFile
{
Data = data1, // here where it should store it in jpeg
};
虽然我从来没有用过你写图片的方式,但这是我在我的实现中使用的并且它总是有效的:
var image = new MagickImage(sourceStream);
var format = MagickFormat.Jpg;
var stream = new MemoryStream();
image.Write(stream, format);
stream.Position = 0;
编辑
如果您不添加:
stream.Position = 0
发送流将不起作用,因为它将从流末尾的当前位置开始保存。
我正在尝试将 MemoryStream 存储到 MagicImage 中,但是当我尝试上传 heic 格式的文件时,它仍然以 heic 格式上传,但它应该以 jpeg 格式上传。所以我有点不明白我哪里做错了。那么有人可以帮助我吗?我正在尝试在网络框架中打开它,但它打不开,因为它没有将其转换为 jpeg。
using (MemoryStream ms = new MemoryStream())
{
create.PostedFile.InputStream.CopyTo(ms);
var data = ms.ToArray();
byte[] data1 = null;
using (var image = new MagickImage(data))
{
// Sets the output format to jpeg
image.Format = MagickFormat.Jpeg;
// Create byte array that contains a jpeg file
data1 = image.ToByteArray();
}
var file = new ClientFile
{
Data = data1, // here where it should store it in jpeg
};
虽然我从来没有用过你写图片的方式,但这是我在我的实现中使用的并且它总是有效的:
var image = new MagickImage(sourceStream);
var format = MagickFormat.Jpg;
var stream = new MemoryStream();
image.Write(stream, format);
stream.Position = 0;
编辑 如果您不添加:
stream.Position = 0
发送流将不起作用,因为它将从流末尾的当前位置开始保存。