使用 ImageProcessor 来自 MemoryStream 的 Saving/loading 图像上的一般 GDI+ 错误

Generic GDI+ Error on Saving/loading image from MemoryStream using ImageProcessor

我在行 imageFactory.Load(inStream) 上遇到一般 GDI+ 错误。我的项目是 ASP.NET Core Razor-Pages。

我尝试将 inStream 克隆到新流(这在之前保存位图时对我有帮助),但没有成功。

有人处理过类似的事情吗?

// using ImageProcessor;
// using ImageProcessor.Imaging.Formats;

byte[] photoBytes = System.IO.File.ReadAllBytes(@"C:\Users\User\Desktop\img\img.jpg");
            ISupportedImageFormat format = new JpegFormat();
            Size size = new Size(200,200);
            using (MemoryStream inStream = new MemoryStream(photoBytes))
            {
                using (MemoryStream outStream = new MemoryStream())
                {
                    var asd = inStream;

                    using (ImageFactory imageFactory = new ImageFactory(preserveExifData: true))
                    {
                        imageFactory.Load(inStream)
                            .Resize(size)
                            .Format(format)
                            .Save(@"C:\Users\User\Desktop\ImgAdjusted\");
                    }
                }
            }

根据@itminus 的回答——这个库不是为在 .net 核心中工作而设计的。

.NET Core ImageProcessor 的前 3 个替代方案

旁白:System.Drawing.Common 是从哪里来的? .NET Core 最初不支持 GDI+。然后,他们推出了 windows 可比性库,它只会让你在 windows 上使用 GDI+。在撰写本文时,Microsoft 已使用 Mono 实现移植了 GDI+ 功能。