2

我在 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\");
                    }
                }
            }
4

2 回答 2

2

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

于 2018-12-21T10:24:38.487 回答
2

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

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

于 2018-12-21T12:59:25.197 回答