begin process at 2010 02 09 22:52:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > AFFICHER, TELECHARGER DES IMAGES SE TROUVANT SUR INTERNET DANS VOTRE APPLI DELPHI GRACE A INDY

AFFICHER, TELECHARGER DES IMAGES SE TROUVANT SUR INTERNET DANS VOTRE APPLI DELPHI GRACE A INDY


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Classé sous :indy, internet, image, telecharger Niveau :Débutant Date de création :17/10/2007 Date de mise à jour :17/10/2007 23:09:06 Vu :6 312

Auteur : Mokost

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cela fait un moment que je n'ai pas apporté ma petite contribution a codes sources. J'en profites donc
pour poster cette source en esperant qu'elle sera utile.
Cette source permet de télécharger des images en mémoire a partir d'une url, grace au composant indy.
Deux format sont supportés le bmp et le jpeg. Si vous avez des classes d'autre format d'image
supportant une methode 'LoadFromStream()' alors vous pourrez aisement les ajouter.

Source

  • function Img(URL:string):TBitmap;
  • var
  • PicMem: TMemoryStream;
  • jpg: TJpegimage;
  • ext:string;
  • BmpResult:TBitmap;
  • begin
  • //on cree le tampon mémoire.
  • PicMem := TMemoryStream.Create;
  • //on creer notre 'resultat'
  • BmpResult:=TBitmap.Create;
  • //On charge en mémoire l'image téléchargée depuis Url
  • //grace à notre composant indy TIdHTTP;
  • IdHTTP1.Get(URL,PicMem);
  • //On revient au début du tampon pour la lecture.
  • PicMem.Position :=0;
  • ext:=LowerCase(ExtractFileExt(url));
  • if(ext='.bmp') then begin
  • //Si c'est un bitmap qu'on attend, on l'assigne directement a notre objet TBitmap
  • BmpResult.LoadFromStream(PicMem);
  • end else if(ext='.jpg')or(ext='.jpeg') then begin
  • (* si c'est un jpeg on passe par une classe qui gere ce format *
  • contenu dans l'unite jpeg fournit en standar avec delphi 7.
  • [...]
  • uses jpeg;
  • [...]
  • *)
  • jpg := TJpegimage.Create;
  • jpg.LoadFromStream(PicMem);
  • //puis on l'assigne a notre objet TBitmap
  • BmpResult.assign(jpg);
  • end;
  • //on l'affecte au resultat.
  • result:=BmpResult;
  • //et on libere les objets.
  • PicMem.Free;
  • BmpResult.Free;
  • jpg.Free;
  • end;
  • [...]
  • begin
  • image1.Picture.Assign(img('http://www.movie-poster.ws/movies/wallpaper/cartoon/shrek/shrek_cat.jpg'));
  • image2.Picture.Assign(img('http://www.icicom.up.pt/blog/take2/panda.bmp'));
  • end;
  • [...]
function Img(URL:string):TBitmap;
var
 PicMem: TMemoryStream;
 jpg: TJpegimage;
 ext:string;
 BmpResult:TBitmap;
begin
//on cree le tampon mémoire.
        PicMem := TMemoryStream.Create;
        //on creer notre 'resultat'
        BmpResult:=TBitmap.Create;
        //On charge en mémoire l'image téléchargée depuis Url
        //grace à notre composant indy TIdHTTP;
        IdHTTP1.Get(URL,PicMem);
        //On revient au début du tampon pour la lecture.
        PicMem.Position :=0;
        ext:=LowerCase(ExtractFileExt(url));
        if(ext='.bmp') then begin
          //Si c'est un bitmap qu'on attend, on l'assigne directement a notre objet TBitmap
          BmpResult.LoadFromStream(PicMem);
        end else if(ext='.jpg')or(ext='.jpeg') then begin
          (* si c'est un jpeg on passe par une classe qui gere ce format *
          contenu dans l'unite jpeg fournit en standar avec delphi 7.
          [...]
            uses jpeg;
          [...]
          *)
          jpg := TJpegimage.Create;
          jpg.LoadFromStream(PicMem);
          //puis on l'assigne a notre objet TBitmap
          BmpResult.assign(jpg);
        end;
//on l'affecte au resultat.
   result:=BmpResult;
//et on libere les objets.
   PicMem.Free;
   BmpResult.Free;
   jpg.Free;
end;

[...]
begin
image1.Picture.Assign(img('http://www.movie-poster.ws/movies/wallpaper/cartoon/shrek/shrek_cat.jpg'));
image2.Picture.Assign(img('http://www.icicom.up.pt/blog/take2/panda.bmp'));
end;
[...]

 Conclusion

Une fonction qui pourrait etre utile, enfin je pense.


 Historique

17 octobre 2007 23:09:06 :
correction des fautes d'othographes.

 Sources du même auteur

Source avec Zip Source avec une capture GESTION BDD CHEZ UN HEBERGEUR INTERNET QUI NE VOUS NE PERMET...
Source avec Zip AJOUTER UN SCRIPTING SIMPLE CLAIRE ET EFFICACE A VOTRE APPLI...
Source avec Zip Source avec une capture RPG EN DELPHI
Source avec Zip Source avec une capture MARIO BROS
Source avec Zip Source avec une capture EDITEUR DE MAP

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LOGICIEL INTERRUPTEUR MONDIAL USB par ced55957
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture WEBCAM+ MICROSERVEUR HTTP = WEBCAM IP (INDY 9 ET INDY 10) par jlen100
Source avec Zip Source avec une capture TÉLÉCHARGEMENT DE MISES À JOUR AVEC INDY par Matt 261
Source avec Zip Source avec une capture TESTE LA CONNEXION INTERNET ET DIT QUOI FAIRE par ekinoxjp

Commentaires et avis

Commentaire de japee le 18/10/2007 00:21:23 administrateur CS

Salut Mokost.

Houlalalala... Sans aller plus loin, tu libères un TJpegImage sans être certain de l'avoir créé.

De même il faut impérativement utiliser des blocs try...finally pour être sûr de libérer les objets créés.

Pas très fignolé tout ça...

A revoir !

Commentaire de japee le 18/10/2007 00:26:57 administrateur CS

Et aussi, pour que ta fonction soit aisément réutilisable, il te faudrait créer le TidHTTP et le libérer à l'intérieur de la fonction.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Ouvrir une image dans IExplorer [ par ryadus ] Bonjour, je voudrais savoir comment pourrais je ouvrir une image stocker dans le fichier ressource(.res) à l'aide d'internet explorer; ex: à l'ouvertu IdHTTPServer depuis internet [ par ytillang30400 ] Indy 9 :Je place un composant IdHttpServer et dans l'évènement OnCommandGet, j'entre par exemple le code : AResponseInfo.ContentText := Enregistrement d'une image depuis internet. [ par Eithne ] Bonjour ! Je développe actuellement une application qui récupère des images à partir d'internet grâce à la fonction UrlDownloadToFile(nil, PChar (sou internet radio [ par maresther ] Bonjour a tous, je suis nouvelle sur ce forum et j'espère vraiment arriver a y trouver un peu d'aide. Je travail actuellement sur un projet qui porte Pb : Le composant internet de delphi [ par infohelp ] Bonjour je cherche le composant similaire d'acces a internet de visual basic (winsock) mais le meme avec les meme fonctions et qui prenent les proxy c Image de fond dans un TreeView [ par Valérie ] Bonjour, J'utilise une application DELPHI6 CLX et je n'aarive pas à avoir une image de fond dans mon TreeView. L'événement OnPaint n'existe pas. Si image du bureau a intervalle regulier [ par tarik ] salut je voudrais faire des sauvegardes de l'etat du bureau (une sorte d'imprime ecran) a intervalle regulier ftp internet [ par sebrs1 ] je cherche les composant fastnetil n'y sont pas ds delphi 6 personalquelqu'un aurait il une adresse où le télécharger? image ds un richedit [ par sebrs1 ] comment inserer une image ds un richedit? tbitbtn avec image format jpeg [ par vib ] existe il un composant ou une solution pour avoir un bouton du genre bitbtn avec une image au format jpeg ?A+


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales