【问题标题】:Generic GDI+ Error on Saving/loading image from MemoryStream using ImageProcessor使用 ImageProcessor 从 MemoryStream 保存/加载图像时出现通用 GDI+ 错误
【发布时间】:2018-12-20 17:28:43
【问题描述】:

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

【问题讨论】:

  • 1. ImageProcessor 不是为 .NET Core 设计的,请参阅 the author's answer on SO。 2. ImageProcessor 仅处于维护模式。 ImageProcessor 库的焦点已切换到新库ImageSharp
  • 奇怪 - 在另一个线程中,我读到这是在 .net 核心中处理图像处理的首选包。竖起大拇指

标签: c# asp.net-core razor-pages imageprocessor


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多