Метод Imread в проекте Xamarin Forms не может найти мое изображение - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь снять негатив в моем приложении.Изображение находится в папке, доступной для рисования в проекте Android.

Я пробовал только с именем изображения, так же, как изображение xaml :

<Image x:Name="img"
                Source="thanos.jpg" />

c #:

Mat image = CvInvoke.Imread("thanos.jpg", ImreadModes.AnyColor);

Но я получаю исключение: System.ArgumentException : File thanos.jpg do not exist

Я пытался добавить в путь drawable, resources, /, \, но все та же ошибка.

Есть идеи?

1 Ответ

0 голосов
/ 30 апреля 2019

Это решение работает только для android atm.

Сначала добавим путь для android private const string pathAndroid = "/storage/emulated/0/Android/data/com.companyname.**YourAppName**/files", поскольку System.Environment.GetFolderPath(System.Environment.SpecialFolder.**WhateverYouChooseThere**) связан с другими папками.

Тогда Imread действительно нужен файл, и поэтому я добавил файл прямо в мобильный телефон (мое приложение уже содержит изображения), и объединил путь с именем файла:

var pathfile = Path.Combine(pathAndroid + "/hello.JPG"); //whatever your file name

В конце концов, я мог бы работать с Imread:

Mat img = CvInvoke.Imread(pathfile);
CvInvoke.CvtColor(img, img, ColorConversion.Rgb2Gray);
CvInvoke.Imwrite(pathAndroid + "/result.JPG", img); //save the image
...