Plop les gens !
Dans le cadre d'un projet je dois développer une application Android permettant de prendre une photo et de l'enregistrer sur la carte SD pour subir différent traitement par la suite.
Grâce à ce tutoriel j'ai pu faire une appli qui prend une photo et l'enregistre, mais le nom est une suite de chiffre incompréhensible et toujours différente. Hors, je dois ensuite récupérer cette image. Je veux passer par le chemin d’accès avec un Environment.getExternalStorageDirectory().getPath(), mais je ne connais pas le nom exact de l'image. Je cherche donc à renommer l'image lors de l'enregistrement (par exemple, image.jpg, au lieu de 01567343572.jpg).
J'ai déjà parcouru plusieurs tutos, plusieurs forums, ainsi que la FAQ Android, mais je ne parviens pas à ce que je veux...
Le code qui prend la photo avec les différents paramètres est le suivant :
Et le code qui l'enregistre est celui-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 private void SavePicture() { try { SimpleDateFormat timeStampFormat = new SimpleDateFormat( "yyyy-MM-dd-HH.mm.ss"); String fileName = "photo_" + timeStampFormat.format(new Date()) + ".jpg"; // Metadata pour la photo ContentValues values = new ContentValues(); values.put(Media.TITLE, fileName); values.put(Media.DISPLAY_NAME, fileName); values.put(Media.DESCRIPTION, "Image prise par FormationCamera"); values.put(Media.DATE_TAKEN, new Date().getTime()); values.put(Media.MIME_TYPE, "image/jpeg"); // Support de stockage Uri taken = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); // Ouverture du flux pour la sauvegarde stream = (FileOutputStream) getContentResolver().openOutputStream( taken); camera.takePicture(null, pictureCallback, pictureCallback); } catch (Exception e) { // TODO: handle exception } }
Je pense avoir été clair.. Des idées?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // Callback pour la prise de photo Camera.PictureCallback pictureCallback = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { if (data != null) { // Enregistrement de votre image try { if (stream != null) { stream.write(data); stream.flush(); stream.close(); } } catch (Exception e) { // TODO: handle exception } // On redémarre la prévisualisation camera.startPreview(); } } };
Merci !
Partager