jiushidt 2019-03-28 16:12 采纳率: 0%
浏览 1297

使用Xamarin.Android,调用摄像头拍照到指定位置,没有生成图片,不指定位置却可以,求解惑

使用Xamarin.Android拍照,想把拍照的图片保存到程序目录下,代码如下

        private void TakeAPicture(object sender, EventArgs eventArgs)
        {
            var intent = new Intent(MediaStore.ActionImageCapture);
            File finalFile = new File(
                this.GetExternalFilesDir(Android.OS.Environment.DirectoryPictures), "1.jpg");
            if (!finalFile.ParentFile.Exists())
            {
                finalFile.ParentFile.Exists();
            }
            if (Build.VERSION.SdkInt >= BuildVersionCodes.N)
            {
                photoURI = FileProvider.GetUriForFile(
                    this,
                    "com.mydomain.fileprovider",
                    finalFile);
                intent.PutExtra(MediaStore.ExtraOutput, photoURI);
            }
            else
            {
                intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(finalFile));
            }

            StartActivityForResult(intent, Display_RequestCode);
        }

摄像头启动成功,可拍照,在OnActivityResult中获取了resultCode为Result.OK,但是在指定位置文件夹创建了但没有生成文件(路径是fileprovider生成的content://)。
但是修改代码,不指定图片位置

        private void TakeAPicture(object sender, EventArgs eventArgs)
        {
            var intent = new Intent(MediaStore.ActionImageCapture);            

            StartActivityForResult(intent, Display_RequestCode);
        }

然后在OnActivityResult中,通过

Bitmap bm = (Bitmap)data.Extras.Get("data");
System.IO.FileStream fos = new System.IO.FileStream( string.Format("{0}/{1}.{2}",this.GetExternalFilesDir(Android.OS.Environment.DirectoryPictures),"1","jpg"), System.IO.FileMode.CreateNew);

来另存图片,反而是成功了,请各位指定迷津啊。
测试机用的华为P10,android版本为8.1。

  • 写回答

2条回答 默认 最新

  • 超速贝贝 2020-07-16 17:16
    关注

    窝巢!大神!请收下我的膝盖!!!求加QQ:348095,有事像你求教。
    关于Xamarin的相机,我整整搜索了一周,下载工程近数十个,抄写文章代码数十篇,均无法正常使用,要么打不开相机,要么拍照后无法返回,要么返回后不知道怎么获取图像。
    复制了你这篇代码,我终于成功拿到了相机返回的缩略图!还想像你请教一下,怎么获取原图。

    评论

报告相同问题?

悬赏问题

  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)