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

API standards et tierces Android Discussion :

Convertire une image de la caméra en String


Sujet :

API standards et tierces Android

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Convertire une image de la caméra en String
    Bonjour,

    Je vous explique ma problématique. Il faut que j'envoie une image à un webservice.
    L'image provient de la caméra donc pour ce faire dans la méthode "onPreviewFrame" je la sauvegarde sur la sdCard voici le code (il n'y a pas de problème sur ce point):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    try {
    	Camera.Parameters parameters = camera.getParameters();
    	Size size = parameters.getPreviewSize();
    	YuvImage image = new YuvImage(data, parameters.getPreviewFormat(), size.width, size.height, null);
    	File file = new File(Environment.getExternalStorageDirectory().getPath() + "/out.jpg");
    	FileOutputStream filecon = new FileOutputStream(file);
    	image.compressToJpeg(new Rect(0, 0, image.getWidth(), image.getHeight()), 100, filecon);
    } catch (FileNotFoundException e) {
    	if (DEBUG) {
    		Log.d("*WEBRTC*", "shouldTakePicture: " + e.getMessage());
    	}
    }
    Maintenant il faut convertir cette image en String pour l'envoyer au Webservice, étant donné que SOAP c'est un fichier XML qui est envoyé donc cela explique pourquoi la conversion en String.
    Voici le code que j'utilise mais je ne sais pas du tout si cela est correct:
    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
     
    FileInputStream in;
    byte[] bytes = null;
    in = new FileInputStream(Environment.getExternalStorageDirectory().getPath() + "/out.jpg");
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] b = new byte[1024];
    int bytesRead;
    bytesRead = in.read(b);
    while (bytesRead != -1) {
    	bos.write(b, 0, bytesRead);
    	bytesRead = in.read(b);
    }
    bytes = bos.toByteArray();
    } catch (FileNotFoundException e) {
    	e.printStackTrace();
    	bytes = null;
    } catch (IOException e) {
    	e.printStackTrace();
    	bytes = null;
    }
    if (bytes != null) {
    	upload.buff = new String(bytes);
    }
    Je n'est pas réussit à pouvoir transformer mon String en bitmap pour visualiser que la conversion en string est correcte.

    Merci,
    Drlord.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Salut,

    C'est un peu là où le Soap est nul pour les attachments.

    Bref je te conseil plutôt de coder ta sortie en base64
    avant de l'inclure dans ton soap sinon !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Ah, y'a des chances pour que tu ne fasses pas de soap sous droid, j'ai répondu trop vite !

    Donc je reprends, en fait tu ne devrais pas à avoir à convertir (l'approche de vouloir tout mettre
    ensemble dans un message n'est pas la bonne) : il suffit juste de faire une requête POST ou PUT en
    positionnant le bon content-type relatif à ton image. Une requête juste pour l'image.

    De l'autre côté le script ou la servlet sauvegarde les infos et les raccroches à l'utilisateur via sa
    session .

    Il suffit juste d'exploiter toute la puissance d'HTTP.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci pour ta réponse.
    Mai je suis obligé d'utilisé le SOAP pour envoyer mon image.
    Ce n'est pas négociable, pour résumer le webservice fonctionne déjà avec une application en C++ et je porte cette application sous Android. Donc mon responsable ne va pas vouloir que je lui demande de faire de changement...

    Sinon pour info j'utilise ksoap2 comme librairie pour le SOAP sous Android...

    EDIT: Finalement c'est un byte[] que je dois envoyer, merci la doc qui n'est pas à jour...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir une image BMP 8 bits en BMP 24 bits
    Par SauCisS dans le forum Bibliothèques
    Réponses: 17
    Dernier message: 23/03/2005, 09h51
  2. Convertir une image PNM en autre chose ...
    Par mattmarttigan dans le forum C
    Réponses: 9
    Dernier message: 09/02/2005, 20h34
  3. Comment convertir une image 24 bits en 8 bits ?
    Par James64 dans le forum Langage
    Réponses: 22
    Dernier message: 13/12/2004, 20h12
  4. [C#] Convertir une Image en Icon
    Par Piolet dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/08/2004, 13h41
  5. [C#] Comment convertir une image bmp en jpg !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2004, 20h37

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