从前置摄像头捕获图像并将其保存在SD卡上,无需预览

时间:2012-03-16 09:39:14

标签: android camera

如何在不预览的情况下从前置摄像头拍摄照片并将其保存到SD卡。 请帮我提供源代码。

2 个答案:

答案 0 :(得分:7)

 public void takePictureNoPreview(Context context){
          // open back facing camera by default
          Camera myCamera=Camera.open();

          if(myCamera!=null){
            try{
              //set camera parameters if you want to
              //...

              // here, the unused surface view and holder
              SurfaceView dummy=new SurfaceView(context)
              myCamera.setPreviewDisplay(dummy.getHolder());    
              myCamera.startPreview(); 

              myCamera.takePicture(null, null, getJpegCallback()):

            }finally{
              myCamera.close();
            }      

          }else{
            //booo, failed!
          }


          private PictureCallback getJpegCallback(){
            PictureCallback jpeg=new PictureCallback() {   
              @Override
              public void onPictureTaken(byte[] data, Camera camera) {
                FileOutputStream fos;
                try {
                  fos = new FileOutputStream("test.jpeg");
                  fos.write(data);
                  fos.close();
                }  catch (IOException e) {
                  //do something about it
                }
              }
            };
          }
        }

答案 1 :(得分:-1)

然而,不可能有解决办法。

请参阅此前一个答案,请在将来询问之前尝试搜索:https://stackoverflow.com/a/3881027/181002