2016-11-02 1 views
0

Je travaille sur l'application appareil photo en utilisant la caméra API2. J'ai un aperçu de la caméra. Je peux sélectionner la zone de mon intérêt comme vous pouvez le voir. Comme je veux juste prendre une photo de la zone à l'intérieur du rectangle. Est-ce que quelqu'un sait comment implémenter cela? Si vous avez subi des tutoriels/code exemple s'il vous plaît poster les links.Thanks à l'avanceComment recadrer les données d'image avant d'enregistrer la galerie dans?

screen shot of my camera app

+0

êtes-vous en mesure de prendre photo complète? Si c'est le cas, rognez-le et supprimez l'image originale si nécessaire. –

Répondre

0

Lorsque vous avez fait avec capture d'image alors vous obtiendrez chemin de l'image caputered ou bitmap magasin que vous avez à onActivityResult() pour Capturer.

Maintenant, puis utilisez ci-dessous code pour effectuer le recadrage de cette image:

public void performCrop(){ 
    //call the standard crop action intent (the user device may not support it) 
Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
    //indicate image type and Uri 
cropIntent.setDataAndType(picUri, "image/*"); 
    //set crop properties 
cropIntent.putExtra("crop", "true"); 
    //indicate aspect of desired crop 
cropIntent.putExtra("aspectX", 1); 
cropIntent.putExtra("aspectY", 1); 
    //indicate output X and Y 
cropIntent.putExtra("outputX", 256); 
cropIntent.putExtra("outputY", 256); 
    //retrieve data on return 
cropIntent.putExtra("return-data", true); 
    //start the activity - we handle returning in onActivityResult 
startActivityForResult(Intent.createChooser(cropIntent,"Cropping"), PIC_CROP); 

} 

maintenant à nouveau à l'intérieur onActivityResult() correspondent à votre code demande PIC_CROP et obtenir une image de résultat comme ci-dessous:

//get the returned data 
Bundle extras = data.getExtras(); 
//get the cropped bitmap 
Bitmap thePic = extras.getParcelable("data"); 
+0

cela peut ne pas fonctionner sur certains (la plupart?) Des appareils puisque 'com.android.camera.action.CROP' n'est pas une action d'intention obligatoire pour tous les appareils, mais plus probablement optionnelle –

+0

Oui, il est possible que l'appareil ne puisse pas '' t avoir une application qui peut recadrer. Donc, pour le résoudre, vous devez créer votre propre activité de culture qui peut le faire pour vous. –

+0

En outre, votre réponse ne correspond pas tout à fait à la question. –