Xamarin Forms项目中的Imread方法找不到我的图片

时间:2019-04-26 13:56:24

标签: c# android xamarin.forms emgucv

我正在尝试在我的应用上拍摄负片无图像。 图像位于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

我尝试在路径中添加可绘制的资源,/,\,但仍然存在相同的错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

此解决方案仅适用于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