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 :

Charger image de la bibliothèque pour envoie sur serveur


Sujet :

API standards et tierces Android

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Points : 161
    Points
    161
    Par défaut Charger image de la bibliothèque pour envoie sur serveur
    Bonjour,

    J'aimerais dans une application que l'utilisateur ait la possibilité soit de prendre une photo / ou choisir une photo dans la bibliothèque multimedia de son téléphone pour ensuite à la validation d'une formulaire, que cette image soit envoyé sur un serveur.

    Avez-vous des pistes ou des ressources à me proposer ?

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Prise de photo :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent cameraI = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraI, 1);

    Récupération depuis la gallerie :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent galleryI = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    startActivityForResult(galleryI, 2);

    Dans les 2 cas tu vas récupérer un objet Bitmap que tu enverras alors via HTTP (en mode POST) vers ton serveur (Cf http://developer.android.com/referen...ttpClient.html).
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Points : 161
    Points
    161
    Par défaut
    Merci de votre réponse.

    Cependant lorsque je charge une image de la bibliothèque si elle trop lourde, j'aimerais la réduire. Comment puis-je faire ?


    De plus, lorsque je prend une photo avec la caméra, la taille est excessivement petite (de l'ordre <100kB). Comment-cela se fait-il ? Voila le code si dessous pour la prise de photo et le traitement onActivityResult

    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
    30
    31
    32
    33
    34
     
     
       /******* PRENDRE PHOTO ********/
            Button buttonTakePicture = (Button) findViewById(R.id.buttontakePicture);
            buttonTakePicture.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View arg0) {
     
                	if(isIntentAvailable(MainActivity.this,MediaStore.ACTION_IMAGE_CAPTURE))
                	{
                	Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                	startActivityForResult(takePictureIntent, RESULT_TAKE_PHOTO);
                	}
                	else Toast.makeText(MainActivity.this,"Prendre photo non dispo",Toast.LENGTH_SHORT).show();
                }
            });
     
     
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
     
             preview = (ImageView) findViewById(R.id.imgView);
     
     
            if (requestCode == RESULT_TAKE_PHOTO && resultCode == RESULT_OK && null != data) {
            	  Bundle extras = data.getExtras();
            	    mImageBitmap = (Bitmap) extras.get("data");
            	    preview.setImageBitmap(mImageBitmap);       
            }
     
     
        }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut
    bonjour,
    Comment veux-tu envoyer ta photo .... ? Via un web service ?

    Loïc

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je vais peut être dire une bétise... mais un simple "PICK" dans la gallerie suffit normalement (celle-ci proposant alors de prendre une photo).

    Cela évite de maintenir deux codes.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par ciolvic Voir le message
    bonjour,
    Comment veux-tu envoyer ta photo .... ? Via un web service ?

    Loïc
    Oui grace un webservice, voici mon code :
    resize_bmp est mon Bitmap récupéré;

    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
     
     
    resize_bmp.compress(Bitmap.CompressFormat.JPEG,90, bao);
    			   byte [] ba = bao.toByteArray();
    			   String ba1=Base64.encodeBytes(ba);
    			   ArrayList<NameValuePair> nameValuePairs = new
    			     ArrayList<NameValuePair>();
    			   nameValuePairs.add(new BasicNameValuePair("image",ba1));
    			   try{
    			    HttpClient httpclient = new DefaultHttpClient();
    			    HttpPost httppost = new
    			      HttpPost("http://mondomaine.fr/uploadserver/upload_image.php");
    			    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    			    HttpResponse response = httpclient.execute(httppost);
    			    HttpEntity entity = response.getEntity();
    			    is = entity.getContent();
    			   }catch(Exception e){
    			    Log.e("log_tag", "Error in http connection "+e.toString());

  7. #7
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e("log_tag", "Error in http connection "+e.toString());
    tsssss
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Log.e("log_tag", "Error in http connection ",e);


    D'ailleurs il manque du code après le is = entity.getContent();
    (il va falloir le fermer ce stream)
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

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

Discussions similaires

  1. Securite et Multithread pour Flash sur Serveur
    Par 3logy dans le forum Flash/Flex
    Réponses: 1
    Dernier message: 02/10/2009, 10h41
  2. configurer une SqlDataSource pour ODBC sur serveur
    Par tortuedu74 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 28/05/2009, 13h45
  3. Config pour debug sur serveur apache !
    Par theoldisgood dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 26/05/2009, 16h30
  4. Réponses: 7
    Dernier message: 27/04/2007, 17h04
  5. Commande pour informations sur serveur
    Par LeXo dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 20/03/2007, 21h42

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