如何将CameraSourcePreview内容保存到jpg文件中?(安卓摄像头)

时间:2018-02-02 19:21:05

标签: android camera android-vision

我正在开发一个项目,我需要根据人脸检测来保存相机图片。人脸检测部分是基于谷歌示例完成的,但问题在于将CameraSourcePreview保存为jpg文件。 我只能用黑色背景保存相机Feed的叠加效果!

我的mainActivity.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/topLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">

  <com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview
      android:id="@+id/preview"
      android:drawingCacheQuality="auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent">

    <com.google.android.gms.samples.vision.face.facetracker.ui.camera.GraphicOverlay
        android:id="@+id/faceOverlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

  </com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview>

</LinearLayout>

我的保存代码:

CameraSourcePreview csp    
csp.setDrawingCacheEnabled(true);
                    File f = new File(Environment.getExternalStorageDirectory().getPath()+"/" + currentTime.toString() + ".jpg");
                    Bitmap bmp = Bitmap.createBitmap(csp.getDrawingCache());
                    csp.setDrawingCacheEnabled(false);
                    bmp.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(f));
                    lastPic = currentTime.getTime();
问题在哪里? 这是因为叠加在摄像机输入的前面?我怎样才能使黑色像素透明?

修改

我的案例和其他问题之间的差异是我想保存实时图片而不是拍摄的图像。 这个问题不再重复。我的明确问题是我可以在屏幕上看到的相机图片在哪里?为什么它没有保存在jpg文件中?

0 个答案:

没有答案