【问题标题】:Capturing image through android built-in camera, but not saving it通过android内置摄像头捕获图像,但不保存
【发布时间】:2014-02-22 15:37:49
【问题描述】:

是否可以只捕获图像而不保存它,而是立即使用捕获的位图来进行图像处理技术。

我的意思是,它比读取保存的文件,然后将其转换为位图用于图像处理要容易得多。

我已经在android中实现了内置摄像头。

【问题讨论】:

  • 通过“内置摄像头”你可能是指MediaStore.ACTION_IMAGE_CAPTURE意图,不是吗?
  • 是的,我做 alex cohn .. 我认为保存然后阅读该图像很麻烦。为什么我用内置相机拍摄后不能直接抓取位图?

标签: android bitmap camera built-in


【解决方案1】:

这就是我要做的。

   protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK)
        {
            Uri pictureUri = data.getData();
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), pictureUri);

getContentResolver().delete(Utils.pictureUri, null, null);
        }
    }

我在这里所做的是创建一个 Bitmap 对象来保存当前图像。一旦你在位图中得到它。您可以删除该文件。我没有尝试过,但我认为这就是您想要实现的目标。

【讨论】:

    【解决方案2】:

    MediaStore.ACTION_IMAGE_CAPTURE 意图将捕获的图片保存到磁盘。通常,意图允许您选择存储捕获图像的目录。你可以尝试使用/dev/null,但是YMMV。请记住,意图返回给您的onActivityResult() 的位图是一个小缩略图,旨在显示在图像列表中。如果您想获得合理的分辨率,您要么需要读取保存的文件,要么实现自定义相机。请注意,出于许多目的,您根本不需要捕获图片,一些预览帧可能就足够了。大多数当前设备支持 VGA (640x480) 预览,许多现代设备支持高达 1920x1080 的预览分辨率。

    【讨论】:

    • hmm 所以我无法做我想做的事 嗯.. 我不想实现自定义相机,因为使用 MediaStore.ACTION_IMAGE_CAPTURE 意图为我省去了向用户预览捕获的麻烦图像,而不是使用表面视图实现新活动来预览捕获的图像..您是否建议我应该使用屏幕截图?如何从意图访问返回的位图?也许我可以尝试玩它..
    • intent返回data,这是一个很粗糙的位图,见stackoverflow.com/questions/15399121/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2015-04-24
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多