如何在拍摄后立即在照片上绘图,然后保存到存储空间

时间:2017-03-27 22:35:32

标签: android canvas camera draw photo

我已经四处寻找并找到了一些不同的解决方案来解决这个问题,但它们都不是我想要的。

我正在开发一个应用程序,让用户通过MediaStore.ACTION_IMAGE_CAPTURE意图打开相机拍摄图像......

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

然后使用

保存图像
File photo = new File(Environment.getExternalStorageDirectory(), titleOfPhoto + ".jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));

我甚至得到缩略图并在onActivityResult()覆盖中为用户显示。

正如标题所示,我想做的是让用户在拍摄后立即在拍摄的图像上进行绘制。但我无法控制打开相机和返回我的应用程序之间发生的事情,捕获的图像已经保存。像SnapChat和WhatsApp这样的应用正在做这个以及更多,所以我知道这是可能的,但Android似乎没有内置这种功能。

要明确:事件的顺序必须是

1)打开相机

2)拍张照片

3)画上图片

4)按'确定' /'完成'什么

5)保存已编辑的照片

6)返回缩略图

是否有向相机添加事件监听器,或以不同方式打开相机以提供更多控制?任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:1)

为此,您必须使用Camera Framwork API

基本原理是在应用中的Surface View上渲染相机输出。然后,当用户拍照时,捕捉表面视图的状态。从那里,您可以允许您的用户在图片上绘图。完成后,然后保存图片并显示缩略图。