Prendre une photo avec l'appareil photo de l'intention de faire pivoter l'image en mode portrait android
Photo a été prise avec succès avec la caméra, mais en mode portrait sur le samsung galaxy s3 de l'image devient une rotation. Comment puis-je résoudre ce problème.
Caméra intention est comme suit:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(xdestination));
startActivityForResult(intent, CAMERA_PIC_REQUEST);
De l'activité pour résultat
if (requestCode==CAMERA_PIC_REQUEST){
// Bitmap bm = (Bitmap) data.getExtras().get("data");
Uri photo_uri = Uri.fromFile(xdestination);
Editer.PHOTO_FROM=11;
Bitmap decodeSampledBitmapFromFile=null;
try {
decodeSampledBitmapFromFile = decodeUri(photo_uri);
} catch (FileNotFoundException e1) {
//TODO Auto-generated catch block
e1.printStackTrace();
}
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
decodeSampledBitmapFromFile.compress(Bitmap.CompressFormat.JPEG,100, bytes);
File f = new File(Environment.getExternalStorageDirectory(), "user_image.jpg");
try {
if(f.exists())
f.delete();
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
} catch (IOException e) {
e.printStackTrace( );
Log.d("ERROR", e.toString());
}
}
- Moi aussi j'avais un même problème et j'ai fait tourner l'image après l'avoir capturée.
- pouvez-vous me dire comment vous faites pivoter l'image? publier vos codes, si possible, ou une partie de
- essayez mon code ci-dessous et laissez-moi savoir si cela fonctionne pour vous ou pas.
- bon, mais pas pour mon problème, j'ai besoin de faire pivoter l'image enregistrée dans le chemin d'accès du Fichier f = new File(de l'Environnement.getExternalStorageDirectory(), "user_image.jpg");
- Alors il suffit de changer le chemin d'accès, Vérifier mes mises à jour de réponse.
- j'ai besoin de changer la rotation de l'image enregistrée dans le répertoire File f = new File(de l'Environnement.getExternalStorageDirectory(), "user_image.jpg"); ne pas mettre sur imageview chers.
- Double Possible de Pourquoi une image capturée à l'aide de la caméra intention est archivé sur certains appareils sous Android?
Vous devez vous connecter pour publier un commentaire.
Passer votre prise de vue et SDCard chemin de l'image dans la méthode suivante qui sera de retour le bon orienté photo...
Utilisation :
Essayer comme ci-dessous.
Étape 1: Donner un chemin d'accès complet de votre photo comme
File photo = new File(Environment.getExternalStorageDirectory()
, "Face.jpg");
Étape 2: Vérifier si la photo est existe ou pas, si oui puis le mettre à l'image de la vue et de le faire pivoter à 90 degrés.
Vous n'avez pas le choix mais la lecture de l'image, de la faire pivoter et d'écrire le résultat de retour vers la carte SD. L'approche simple, en utilisant BitmapFactory, facilement courir dans OutOfMemory exception.
Alternativement, vous pouvez utiliser JPEG lossless rotation, à l'aide de jpegtran.
Sur SourceForge, il est open source Java de la classe LLJTran. Le Android port est sur GitHub.