2016-04-19 8 views
1

Ich versuche, das Bild von der Kamera mit diesem Projekt https://github.com/googlesamples/android-vision/tree/master/visionSamples/FaceTrackercamerasource Takepicture nicht funktioniert

den Code zu erfassen und speichern Bild zu erfassen ist in Gesichtsnachführung Aktivität Java-Datei

final CameraSource.ShutterCallback shutterCallback = new CameraSource.ShutterCallback() { 
      @Override 
      public void onShutter() { 
       Log.d(TAG, "onShutter"); 
       Toast.makeText(view.getContext(),"sd",Toast.LENGTH_SHORT).show(); 
      } 
     }; 
     CameraSource.PictureCallback myPictureCallback_JPG = new CameraSource.PictureCallback(){ 
      @Override 
      public void onPictureTaken(byte[] arg0) { 
      Bitmap bitmapPicture = BitmapFactory.decodeByteArray(arg0, 0, arg0.length); 

      //save file 
      String path = Environment.DIRECTORY_DCIM.toString(); 
      //Toast.makeText(getApplicationContext(),path,Toast.LENGTH_SHORT).show(); 
      OutputStream fOut = null; 
      File file = new File(path, "FitnessGirl"+".jpg"); // the File to save to 
      try{ 
       fOut = new FileOutputStream(file); 
       bitmapPicture.compress(Bitmap.CompressFormat.JPEG, 85, fOut); // saving the Bitmap to a file compressed as a JPEG with 85% compression rate 
       MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName()); 
       fOut.flush(); 
       fOut.close(); // do not forget to close the stream 

      }catch (FileNotFoundException exception){ 

      }catch (IOException e){ 

      } 
      //save file 
      }}; 

     mCameraSource.takePicture(shutterCallback, myPictureCallback_JPG); 

obigen Code ist nicht arbeiten, kann jemand helfen?

+0

Sie Antwort auf diese gefunden? – NGR

Antwort

0

Sie können diesen Code für nehmen Foto von der Kamera verwenden:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, REQUEST_CAMERA); 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == Activity.RESULT_OK) { 
     if (requestCode == REQUEST_CAMERA)} 
      onCaptureImageResult(data); 
     } 
    } 
} 

private void onCaptureImageResult(Intent data) { 
    Bitmap bitmap = (Bitmap) data.getExtras().get("data"); 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    File destination = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpg"); 
    FileOutputStream fo; 
    try { 
     destination.createNewFile(); 
     fo = new FileOutputStream(destination); 
     fo.write(bytes.toByteArray()); 
     fo.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    img_upload_pic.setImageBitmap(bitmap); 
} 

in Ihrem Menifest Datei Erlaubnis hinzufügen:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

OP hat nach CameraSource und nicht nach Camera gefragt. Da ist ein Unterschied. CameraSource wird in Verbindung mit dem Detektor zur Verfolgung verwendet –

Verwandte Themen