ImageSharp 无法加载图像 (MethodNotFound)
ImageSharp can't load Image (MethodNotFound)
我已将我的 ImageSharp 引用迁移到版本 1.0.0-dev000692。现在我不能再加载图像了。我遇到了异常,您可以在下方看到。
呼叫:
byte[] data = GetImage();
var image = Image.Load(data);
函数在 ASP.Net Core (2.0) 应用程序中调用
异常:
Method not found: '!0 System.ReadOnlySpan`1.get_Item(Int32)'.
at SixLabors.ImageSharp.Formats.Bmp.BmpImageFormatDetector.IsSupportedFileFormat(ReadOnlySpan`1 header)
at SixLabors.ImageSharp.Formats.Bmp.BmpImageFormatDetector.DetectFormat(ReadOnlySpan`1 header)
at SixLabors.ImageSharp.Image.<>c__DisplayClass0_0.<InternalDetectFormat>b__0(IImageFormatDetector x)
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.TryGetLast[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
at SixLabors.ImageSharp.Image.InternalDetectFormat(Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Byte[] data)
at work4all.Server.Api.Core.Controllers.FileController.ResizeBenutzerBild(Byte[] data, Int32 maxHeight, Int32 maxWidth, String filename) in D:\DEV\VSTS-work4all\work4all Server\work4all.Server.Api.Core\work4all.Server.Api.Core\Controllers\FileController.cs:line 211
这不是 ImageSharp 的问题,而是当前 CoreClr 预览版的问题。
https://github.com/dotnet/coreclr/pull/14727
您必须使用 .Net Core 2.1 的预览版,恢复到 2.0 将暂时修复。
更新。
自 beta4 起,该解决方案将 运行 在 .NET Core 2.1
上
我也运行关注这个问题。您是否尝试过更新到 SixLabors.ImageSharp.Drawing beta 4?它可能需要对您的图像处理逻辑进行一些重构工作,但它设法解决了我的问题,即使我也是 运行 在 Core 2 上。
我已将我的 ImageSharp 引用迁移到版本 1.0.0-dev000692。现在我不能再加载图像了。我遇到了异常,您可以在下方看到。
呼叫:
byte[] data = GetImage();
var image = Image.Load(data);
函数在 ASP.Net Core (2.0) 应用程序中调用
异常:
Method not found: '!0 System.ReadOnlySpan`1.get_Item(Int32)'.
at SixLabors.ImageSharp.Formats.Bmp.BmpImageFormatDetector.IsSupportedFileFormat(ReadOnlySpan`1 header)
at SixLabors.ImageSharp.Formats.Bmp.BmpImageFormatDetector.DetectFormat(ReadOnlySpan`1 header)
at SixLabors.ImageSharp.Image.<>c__DisplayClass0_0.<InternalDetectFormat>b__0(IImageFormatDetector x)
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.TryGetLast[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
at SixLabors.ImageSharp.Image.InternalDetectFormat(Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Byte[] data)
at work4all.Server.Api.Core.Controllers.FileController.ResizeBenutzerBild(Byte[] data, Int32 maxHeight, Int32 maxWidth, String filename) in D:\DEV\VSTS-work4all\work4all Server\work4all.Server.Api.Core\work4all.Server.Api.Core\Controllers\FileController.cs:line 211
这不是 ImageSharp 的问题,而是当前 CoreClr 预览版的问题。
https://github.com/dotnet/coreclr/pull/14727
您必须使用 .Net Core 2.1 的预览版,恢复到 2.0 将暂时修复。
更新。
自 beta4 起,该解决方案将 运行 在 .NET Core 2.1
上我也运行关注这个问题。您是否尝试过更新到 SixLabors.ImageSharp.Drawing beta 4?它可能需要对您的图像处理逻辑进行一些重构工作,但它设法解决了我的问题,即使我也是 运行 在 Core 2 上。