我在 UWP 项目上使用 SkiaSharp(由 NuGet)运行了一个简单的示例。我正在尝试使用加载 png 图像,SKBitmap.Decode(filename)
但会引发此错误:
0x747219F2 (ucrtbase.dll)
将无效参数传递给认为无效参数致命的函数。
Windows 窗体中的相同示例运行没有问题。
由于 UWP 在沙盒中运行,因此您只能访问文件系统中有限数量的位置,而无需其他权限。在这种情况下,您的代码无法通过绝对文件路径访问任意位图。
您可以访问应用程序安装文件夹及其ApplicationData
.
最简单的解决方案是将位图作为Content
文件添加到您的 UWP 项目中,例如添加到Assets
文件夹中,然后像这样访问它:
var packagePath = Package.Current.InstalledLocation;
var filename = Path.Combine( packagePath, "Assets/YourImage.png" );
SKBitmap.Decode(filename);
这应该按预期工作。