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

发送流将不起作用,因为它将从流末尾的当前位置开始保存。