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

C++Builder Discussion :

Afficher une image du Web


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 106
    Par défaut Afficher une image du Web
    Bonjour,

    Comment faire pour afficher le plus simplemnt du monde une image jpg disponible sur le WEB a partir d'une application ?

    Merci d'avance
    Myke

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 28
    Par défaut
    Bonjour !

    Tu peux utiliser un composant TNMHTTP un composant TImage et un objet TJPEGImage :

    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
    TNMHTTP NMHTTP1 = new TNMHTTP(NULL);
    TJPEGImage * JpgImg = new TJPEGImage();
    TImage * Img = new TImage(Form1);
    Img->Parent = Form1;
     
              //Initialisation du NMHTTP
             NMHTTP1->InputFileMode = true;  //sauver les fichiers sur le disque
              //Download dans repertoie temporaire de Windows
             NMHTTP1->Body = TEMP + "\\temp.jpg";  //corps du fichier
             NMHTTP1->Header = TEMP +"\\tmphdr";   //hjeader du fichier
     
              //Recuperation du fichier sur le web NMHTTP1->Get("http://www.automobile-sportive.com/guide/citroen/axsport/axsport-guide.jpg");
     
             //Chargement de l'image Jpg       
            Jpg->LoadFromFile( TEMP + "\\temp.jpg");
     
             //Suppression des fichiers temporaires
             DeleteFile( TEMP + "\\temp.jpg");
             DeleteFile(TEMP +"\\tmphdr");
     
             //Conversion de l'image en bitmap et affichage a l'ecran
            Image1->Picture->Bitmap->Assign(Jpg);
     
             //nettoyage
             delete NMHTTP1;
             delete Jpg;
    A+

  3. #3
    Membre éprouvé Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Par défaut
    Je suis tout a fait d'accord pour le code que tu as donné jusqu'au http->Get (...)
    Par la suite il me semble que tu ne peux pas charger ton image en écrivant du code juste derriere mais en utilisant les evenement OnSuccess() et OnFailure() du composant.
    Il me semble en effet que la méthode Get() doit fonctionner en mode asynchrone et doit lancer un thread oun qqch du genre ce qui fait qu'il ne s'arrete pas dessus et continue a executer la suite du code (donc un chargement d'image qui n'a pas encore été téléchargée).
    Je me souviens avoir eu un pb comme ca en tous cas, et il fallait donc passer par les evenements.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 28
    Par défaut
    Oui je pense que pour une image assez grosse cela doit poser problème (ça passe sans problème avec celle de l'exemple... ).

    si le problème se pose alors tu as raison il vaut mieux faire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TNMHTTP NMHTTP1 = new TNMHTTP(NULL);
    TJPEGImage * JpgImg = new TJPEGImage();
    TImage * Img = new TImage(Form1);
    Img->Parent = Form1;
     
              //Initialisation du NMHTTP
             NMHTTP1->InputFileMode = true;  //sauver les fichiers sur le disque
              //Download dans repertoie temporaire de Windows
             NMHTTP1->Body = TEMP + "\\temp.jpg";  //corps du fichier
             NMHTTP1->Header = TEMP +"\\tmphdr";   //hjeader du fichier
             NMHTTP1->OnSuccess = SuccessDwldImage;
     
              //Recuperation du fichier sur le web NMHTTP1->Get("http://www.automobile-sportive.com/guide/citroen/axsport/axsport-guide.jpg");
    et
    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
     
    void __fastcall TForm1::SuccessDwldImage(CmdType Cmd)
    {
    if(Cmd == cmdGET)
    {
             //Chargement de l'image Jpg       
            Jpg->LoadFromFile( TEMP + "\\temp.jpg");
     
             //Suppression des fichiers temporaires
             DeleteFile( TEMP + "\\temp.jpg");
             DeleteFile(TEMP +"\\tmphdr");
     
             //Conversion de l'image en bitmap et affichage a l'ecran
            Image1->Picture->Bitmap->Assign(Jpg);	
    }
    }
    Bien vu...

  5. #5
    Membre éprouvé Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Par défaut
    Voila exactement
    Avec un ptit OnFaliure() en plus pour afficher un msg d'erreur en cas de ratage du download et tou est parfait

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 28
    Par défaut
    Mais tout à fait mon cher .:morgoth:. j'aurais pas mieux dit...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 106
    Par défaut
    Merci pour vos reponses, cela m'a été d'une grande aide.
    Merci encore
    ++
    Myke

  8. #8
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Par défaut
    Salut

    je n'ai pas trop biencompris

    donc si quelqu'un pourait me mettre un exemple simple et complet ca serai sympa car avec l'exemple ici je ne sais pas les include à faire et ou mettre ces bout de code.



    MErci

  9. #9
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut

    crée un bouton et place le 1er code dedans

    le 2iem code dans l'inspecteur d'objet dans evenementtu devrais retrouver

    la nom de la2iem fonction , tu cliques 2 fois et tu place le 2iem code

    puis tu executes !

    @+

  10. #10
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Par défaut
    quand je fait cela j'ai plein d'erreur.

    Si ca ne te derange pas pourait tu me compresser un projet bidon fesant ceci


    Merci

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

Discussions similaires

  1. [WD10] afficher une image du web dans un champimage
    Par mnssylvain dans le forum WinDev
    Réponses: 2
    Dernier message: 21/03/2009, 11h24
  2. Afficher une image d'une DB dans une page web
    Par akaii dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/03/2009, 10h56
  3. afficher une image 3D dans ma page web
    Par ghadroud dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 16/01/2009, 19h33
  4. Afficher une image d'une base de données sur une page web
    Par tortuegenie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/10/2008, 14h11
  5. Comment afficher une image dans une page web
    Par hamma2 dans le forum ASP.NET
    Réponses: 13
    Dernier message: 23/04/2008, 14h34

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