使用 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 : 跨平台 GDI+
- ImageSharp : 跨平台 GDI+
- Magick.NET - Windows 仅
旁白:System.Drawing.Common
是从哪里来的?
.NET Core 最初不支持 GDI+。然后,他们推出了 windows 可比性库,它只会让你在 windows 上使用 GDI+。在撰写本文时,Microsoft 已使用 Mono 实现移植了 GDI+ 功能。
我在行 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 : 跨平台 GDI+
- ImageSharp : 跨平台 GDI+
- Magick.NET - Windows 仅
旁白:System.Drawing.Common
是从哪里来的?
.NET Core 最初不支持 GDI+。然后,他们推出了 windows 可比性库,它只会让你在 windows 上使用 GDI+。在撰写本文时,Microsoft 已使用 Mono 实现移植了 GDI+ 功能。