IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

impossible de sauvegarder une photo


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut impossible de sauvegarder une photo
    Bonjour tout le monde !

    J'ai un léger problème dans mon programme Android, je vais essayer de l'expliquer clairement.

    Mon but est de créer une application qui permette à l'utilisateur de prendre une photo d'un code-barres, qui est stockée sur la carte SD. Ensuite, grâce à la librairie Zxing de google, on décode le code-barres dans l'image.

    Au niveau du décodage du code-barres, l'application marche parfaitement, j'ai testé avec l'émulateur. Cependant, lors du test sur un téléphone véritable (HTC ...) je me suis aperçu que l'appareil n'enregistre pas la photo sur la carte SD... et donc je me retrouve avec un fichier vide !!

    Pour prendre la photo, je me suis servi du code se trouvant sur la FAQ (voir ici) et qui permet de prendre une photo en utilisant l'appareil photo disponible sur le téléphone.

    Voici le code de ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void doTakePhotoAction() {
     
        	File fw = new File(Environment.getExternalStorageDirectory(),"barcodeimg.jpg");        
        	mImageCaptureUri = Uri.fromFile(fw); 
            Intent mIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            mIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 
            try {
                mIntent.putExtra("return-data", true);
                startActivityForResult(mIntent, CAMERA_ACTIVITY);
            } catch (ActivityNotFoundException e) {
                //Log.e("doTakePhotoAction",e);
            }
        }
    je récupère ensuite le résultat ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK) {
            	Toast.makeText(this, "La capture a échoué2"+imgPath,Toast.LENGTH_LONG).show();
                return;
            }
            switch (requestCode) {
            case CAMERA_ACTIVITY: {
            	launchDecoder();
            	break;      
            }
            }
       }
    PS : au niveau des permissions à déclarer dans le fichier manifest, j'ai inséré ces 2 ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.CAMERA"></uses-permission>
    Voila ! si vous voyez d'où vient le probleme, si vous avez des suggestions... n'hésitez pas !

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    As-tu une exception de déclenchée ? (cf la view LogCat dans Eclipse)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Pour ce qui est du logcat, je ne trouve pas beaucoup déléments de réponses dedans à vrai dire...
    Voici ce qu'il m'affiche lorsque je prends ma photo, et il me dit bien que la photo n'est pas prise, mais je ne vois pas pourquoi :


    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): stopPreview: X
    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): cancelPicture: E cancel_shutter = 1, cancel_raw = 1, cancel_jpeg = 1
    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): not taking a picture (state QCS_IDLE)
    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): cancelPicture: X
    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): release E
    05-03 14:40:36.402: VERBOSE/QualcommCameraHardware(33): stopping camera.

    et ici les erreurs ressorties :

    05-03 14:48:39.042: ERROR/QualcommCameraHardware(33): LINK_camera_set_thumbnail_properties returned 2
    05-03 14:48:39.052: ERROR/MediaPlayer(33): Unable to to create media player
    05-03 14:48:39.052: ERROR/CameraService(33): Failed to load CameraService sounds.
    05-03 14:48:39.062: ERROR/MediaPlayer(33): Unable to to create media player
    05-03 14:48:39.062: ERROR/CameraService(33): Failed to load CameraService sounds.
    05-03 14:48:39.062: ERROR/Camera(9098): _getParameters: antibanding=auto;antibanding-values=off,50hz,60hz,auto;brightness=5;brightness-max=10;brightness-min=0;contrast=5;contrast-max=10;contrast-min=0;effect=none;effect-values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;img-timestamp=0;jpeg-quality=100;jpeg-thumbnail-height=384;jpeg-thumbnail-quality=30;jpeg-thumbnail-width=512;luma-adaptation=0;meter-mode=meter-average;meter-mode-values=meter-spot,meter-center,meter-average;nightshot-mode=0;picture-format=jpeg;picture-size=2048x1536;preview-format=yuv420sp;preview-frame-rate=15;preview-size=480x320;rotation=0;saturation=5;saturation-max=10;saturation-min=0;sharpness=15;sharpness-max=30;sharpness-min=0;taking-picture-zoom=0;taking-picture-zoom-max=40;taking-picture-zoom-min=0;whitebalance=auto;whitebalance-values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade
    05-03 14:48:39.142: ERROR/Camera(9098): setParameters()
    05-03 14:48:39.152: ERROR/QualcommCameraHardware(33): LINK_camera_set_thumbnail_properties returned 2
    05-03 14:48:39.722: ERROR/Camera(9098): setParameters()
    05-03 14:48:39.772: ERROR/QualcommCameraHardware(33): LINK_camera_set_thumbnail_properties returned 2
    05-03 14:48:39.832: ERROR/Camera(9098): setParameters()
    05-03 14:48:39.862: ERROR/QualcommCameraHardware(33): LINK_camera_set_thumbnail_properties returned 2
    05-03 14:48:47.282: ERROR/QualcommCameraHardware(33): camera cb: autofocus has started.
    05-03 14:48:48.082: ERROR/QualcommCameraHardware(33): QualcommCameraHardware::camera_cb: @CAMERA_EXIT_CB_FAILURE(0) in state QCS_PREVIEW_IN_PROGRESS.
    05-03 14:48:48.092: ERROR/QualcommCameraHardware(33): camera cb: autofocus failed
    05-03 14:48:48.482: ERROR/Camera(9098): setParameters()
    05-03 14:48:48.492: ERROR/QualcommCameraHardware(33): LINK_camera_set_thumbnail_properties returned 2
    05-03 14:48:53.082: ERROR/QualcommCameraHardware(33): Preview not in progress!
    05-03 14:48:53.102: ERROR/QualcommCameraHardware(33): Preview not in progress!

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Désolé j'interviens peut être un peu tard, mais je viens (enfin) de tester ton code.
    Effectivement la photo n'est pas prise au bon endroit.

    A priori, tu peux récupérer directement le flux "Bitmap" de ton image, et donc la sauvegarder où tu veux par la suite. Est-ce que cela pourrais suffire à résoudre ton soucis ?

    Dans le onResult :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bitmap leftImage = (Bitmap)data.getExtras().get("data");
    Après c'est clair, je comprend pas trop pourquoi il ne prend pas la photo à l'endroit indiqué... peut être un bug sur le SDK 1.5.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Merci pour ta réponse, MrDuChnok.
    Finalement j'ai décidé de me rabattre sur une autre méthode mais qui reprend à peu près la même idée que toi, puisqu'à la fin on récupère directement le flux dans le onActivityResult.

    La méthode en question est expliquée ici.

    J'essaierai de tester tout ça aujourd'hui, et je posterai mes résultats ensuite.


    Edit :

    Apres avoir testé les 2 solutions (celle de MrDuChnok et celle dont je donne le lien) je me retrouve face à un cuisant échec, puisque dans 1 cas comme dans l'autre, je me retrouve face à une belle erreur (un tableau ou une bitmap vide en fait). DONC je m'en vais dès la semaine prochaine épurer et restructurer mon code (ne blâmons pas trop vite la machine, j'ai plus confiance en ses capacités qu'en les miennes ^^ ). Si après ça rien ne marche, et bien... je risque de me jeter par la fenêtre (ou tout du moins mon PC).

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/10/2010, 14h30
  2. [WD15] Sauvegarder une photo dans un champ image
    Par papydev dans le forum WinDev
    Réponses: 11
    Dernier message: 12/02/2010, 20h51
  3. Sauvegarder Une Photo Dans Table
    Par el mehdi dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/08/2007, 11h38
  4. Réponses: 2
    Dernier message: 26/10/2006, 19h32
  5. Impossible de réouvrir une fenêtre sauvegardée
    Par temperature dans le forum WinDev
    Réponses: 2
    Dernier message: 15/05/2006, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo