4

我正在构建一个 Xamarin 应用程序,使用ImageSharp进行图像处理。

我注意到 ImageSharp 操作在模拟器中非常慢,并且部署到物理设备(Galaxy Note 8)时速度非常慢。

速度很慢事情:

// Load image (very slow)
var image = SixLabors.ImageSharp.Image.Load(stream);   

// Manipulate image (equally slow)
image.Mutate(i => i.Resize(new ResizeOptions
                    {
                        Mode = ResizeMode.Pad,
                        Position = AnchorPositionMode.Top,
                        Size = new SixLabors.Primitives.Size(600,400))
                    }));

请注意,图像加载良好(尽管速度很慢)并且调整大小有效,但速度非常慢(30-60 秒)。

从 .NET Core 控制台程序执行相同的代码可将加载和操作时间减少到大约 1-2 秒。

附加调试器后,当 ImageSharp 操作运行时,我看到了大量的这些:

GC_MINOR:(幼儿园已满)

我不太确定如何解决这个问题,是我克隆 ImageSharp 存储库并使用自定义构建进行调试的唯一选择吗?

编辑:不确定这是否与此问题有关?

编辑#2:我放弃了 ImageSharp,还测试了 OpenCV,但没有特别的效果,然后选择了SkiaSharp,它开箱即用,效果很好。

4

0 回答 0