Skiasharp, ошибка на платформе UWP 0x747219F2 (ucrtbase.dll)

я запускаю простой пример, используя SkiaSharp (от NuGet) в проекте UWP. Я пытаюсь загрузить изображение png, используя SKBitmap.Decode(filename), но выдается эта ошибка:

0x747219F2 (ucrtbase.dll)

Недопустимый параметр был передан функции, которая считает недопустимые параметры фатальными.

Тот же образец в Windows Forms работает без проблем.


person blow    schedule 24.02.2018    source источник
comment
Что такое filename? Не могли бы вы опубликовать путь? Является ли файл частью пакета вашего приложения?   -  person Martin Zikmund    schedule 24.02.2018
comment
Это абсолютный путь на жестком диске моего компьютера.   -  person blow    schedule 25.02.2018


Ответы (1)


Поскольку UWP работает в изолированной программной среде, вы можете получить доступ только к ограниченному количеству местоположений в файловой системе без дополнительных разрешений. В этом случае код не может получить доступ к произвольному растровому изображению по абсолютному пути к файлу.

Вы можете получить доступ к файлам в папке установки вашего приложения и в его ApplicationData.

Самым простым решением было бы добавить растровое изображение в ваш проект UWP в виде файла Content, например, в папку Assets, а затем получить к нему доступ следующим образом:

var packagePath = Package.Current.InstalledLocation;
var filename = Path.Combine( packagePath, "Assets/YourImage.png" );
SKBitmap.Decode(filename);

Это должно работать, как ожидалось.

person Martin Zikmund    schedule 25.02.2018