繁体   English   中英

MemoryStream 进入 MagicImage

[英]MemoryStream into MagicImage

我正在尝试将 MemoryStream 存储到 MagicImage 中,但是当我尝试以 heic 格式上传文件时,它仍然以 heic 格式上传,但它应该以 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

发送 ZF7B44CFFAFD5C52223D5498196C8A2E7BZ 将不起作用,因为它将从当前 position 开始保存,该 position 位于 stream 的末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM