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 :

[Android/PHP] Récupération Bitmap encodé en Base64


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Android/PHP] Récupération Bitmap encodé en Base64
    Bonjour,
    Je réalise une application Android où je renseigne des champs de texte, puis un petit dessin (temporaire je n'est pas l'utilité de le sauvegarder dans le téléphone) ensuite le tout est envoyé à un Script PHP par la méthode Post.

    La réception des données depuis le script PHP fonctionne très bien, cependant je n'arrive pas réceptionner l'image correctement et ne sachant pas si le problème vient d'android ou du script je suis un peu perdu.
    L'image du dessin est un Bitmap sur lequel j'ai dessiné, j'utilise ensuite l'encodeur en Base64 pour convertir cette image en String pour pouvoir l'envoyer en chaine de caractère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    laSignature.compress(Bitmap.CompressFormat.JPEG, 75, bos);
    byte[] data = bos.toByteArray();
    ba1 = Base64.encodeToString(data, Base64.DEFAULT);
    Le String ba1 est envoyé par la méthode POST.

    Une fois envoyé j'ai tenté de récupérer la chaine de caractère dans un fichier texte pour ensuite la décoder manuellement.
    Code PhP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	//enregistrer la chaine
    $fichier = fopen('img.txt', 'w+');
    fputs($fichier, $_POST['signature']);
    fclose($fichier);
     
    //enregistrer l'image
    $fichier = fopen('img.jpg', 'w+');
    fputs($fichier, $_POST['signature']);
    fclose($fichier);
    J'ai essayé plusieurs fois et comparé les chaines de caractère reçu dans img.txt en dessinant un dessin différent à chaque fois (la chaine de caractère que j'enregistre devrait logiquement être diférente)et la chaine enregistrée est toujours la même. L'image enregistrée est une image toute noir.
    J'ai également essayé d'enregistrer l'image directement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $decoded_str = base64_decode($_POST['signature']); 
    $fichier = fopen('img.jpg', 'w+');
    fputs($fichier, imagecreatefromstring($decoded_str));
    fclose($fichier);
    Et donc voilà je ne saurais pas dire si le problème vient du script PHP ou de la chaine encodé car je découvre un peu l'encodage en Base64. Si une personne a une idée je suis prenneur, Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé mais je trouve ça étrange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    laSignature.compress(Bitmap.CompressFormat.PNG, 75, bos);
    byte[] data = bos.toByteArray();
    ba1 = Base64.encodeToString(data, Base64.DEFAULT);
    En compressant l'image en PNG elle est bien décodé au niveau du script PhP, mais je ne comprend pas vraiment pourquoi car la compresser au format Bitmap.CompressFormat.JPEG aurait été moins lourd qu'une image PNG ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/12/2014, 11h00
  2. [XML] [cURL] Authentification Php récupération de données
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/02/2006, 15h23
  3. [PHP] Récupération de boléen
    Par winzou dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/09/2005, 22h36
  4. [XML-XSLT-PHP] Récupération de l'heure courante dans xml
    Par mamat- dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 05/08/2005, 17h02
  5. Lecture d'un fichier encodé en base64
    Par cdb dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2005, 11h13

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