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

使用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。

  • 写回答

1条回答 默认 最新

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算