Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Résolu] Convertir une URL en image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Convertir une URL en image

n°2104055
Sethenssen
Posté le 30-09-2011 à 03:42:13  profilanswer
 

Bonjour,
 
Je vous expose ici mon souci,
Voilà j'ai un script ci-dessous qui fonctionne parfaitement bien.
Il a pour but de m'envoyer un email au format HTML en y incluant une image d'un graph qui pointe vers une URL.
 
Comme c'est une URL, c'est en "temps réel", et donc si je retourne sur mon mail une heure plus tard, et bien mon URL se met à jour.
Ce que je veux c'est une "capture" à un instant T.
Ainsi mon image est figé dans le temps et si je retourne sur mon email une heure plus tard, l'information n'aura pas changé.
 
La solution est donc de convertir mon URL en image.
 
Comment faire?
 
 

Code :
  1. #!/usr/bin/perl -w
  2. use warnings;
  3. use strict;
  4. use MIME::Lite;
  5. use MIME::LITE::HTML;
  6. package Net::SMTP::TLS;
  7. use MIME::Base64;
  8. use Authen::SASL;
  9.  
  10. # set up email
  11. my $To = "toto\@yahoo.fr";
  12. my $From = "Graph <toto\@gmail.com>";
  13. my $Cc = "";
  14. my $Bcc = "";
  15. my $Subject = "[Graph]";
  16. my $Top = "<span style=\"font-size:10pt;font-family:Verdana\"><font color=\"#000080\">Bonjour,<BR><BR>PI,<BR><BR></font></span>";
  17. my $URL = "http://localhost:6569/graph/graph_image.php?local_graph_id=2445&rra_id=0&view_type=tree";
  18. my $Graph = "<BR><img src=\"$URL\"><P>";
  19. my $HTML = "<span style=\"font-size:10pt;font-family:Verdana\"><font color=\"#000080\"><BR><BR>Cordialement.<BR></font></span>";
  20.  
  21. print "\n";
  22.  
  23. # send email
  24. email($To, $From, $Cc, $Bcc, $Subject);
  25.  
  26. # email function
  27. sub email
  28. {
  29.     # get incoming parameters
  30.     my ($To, $From, $Cc, $Bcc, $Subject) = @_;
  31.     # create a new message
  32.     my $msg = MIME::Lite->new(
  33.  From => $From,
  34.  To => $To,
  35.  Cc => $Cc,
  36.  Bcc => $Bcc,
  37.  Subject => $Subject,
  38.  Type => 'multipart/related',
  39.  Data => $Top . $Graph . $HTML
  40.     ) or die "Error creating multipart container: $!\n";
  41.  
  42.     # send the email
  43.     MIME::Lite->send('smtp',
  44.                                     'smtp.numericable.com',
  45.                                     HELLO=>'smtp.numericable.com',
  46.                                     PORT=>'25',
  47.                                     Debug => 0,
  48.                                     Timeout => 60);
  49.     $msg->attr("content-type" => "text/html; charset=iso-8859-1" );
  50.     $msg->send();
  51.     print "***** $Subject *****\n";
  52. }
  53. __END__


Message édité par Sethenssen le 30-09-2011 à 17:27:22
mood
Publicité
Posté le 30-09-2011 à 03:42:13  profilanswer
 

n°2104102
gilou
Modérateur
Modzilla
Posté le 30-09-2011 à 10:36:04  profilanswer
 

C'est quoi le format de ton graphe? Une seule image png, ou c'est composite?
Au fait,

my $To = 'toto@yahoo.fr';
my $From = 'Graph <toto@gmail.com>';


Quand il y a rien à interpoler, on utilise les simple quotes, et on n'a pas besoin de \  
A+,


Message édité par gilou le 30-09-2011 à 10:48:01

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2104137
Sethenssen
Posté le 30-09-2011 à 14:05:42  profilanswer
 

Ok je ne savais pas pour l'interpolation.
 
Mon graph est un graph http://www.cacti.net/
 
Ce que je peux faire avec mon web browser:
- Enregistrer l'image sous : mais à ce moment là il me propose uniquement le format .php (si je force en .jpg ou .png cela ne fonctionne pas)
- Copier l'URL de l'image (c'est ce que j'utilise déjà dans mon script)
- Copier l'image (ici cela me permet de le c/c dans un mail, c'est ce qui m’intéresse au final)
 
Quand j'essaye de faire un wget sur l'URL cela ne fonctionne pas, il ne me rend pas la main et le fichier téléchargé est un fichier en hexadécimal.

n°2104168
gilou
Modérateur
Modzilla
Posté le 30-09-2011 à 15:50:38  profilanswer
 

Je sais que c'est un graph cacti. Mais au final, un graph cacti que tu reçois, ça contient une image ou plusieurs. Et c'est a priori en gif ou png si j'en crois ceci: http://docs.cacti.net/manual:087:3 [...] h_template
Donc s'il y a qu'une image et au format png, le plus simple est d'utiliser LWP::Simple avec getstore($url, $file) pour la sauvegarder localement et d'attacher au mail cette sauvegarde.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2104192
Sethenssen
Posté le 30-09-2011 à 17:27:00  profilanswer
 

Avec getstore($url, $file) ça marche impeccable
 
Merci une nouvelle fois Gilou !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Résolu] Convertir une URL en image

 

Sujets relatifs
convertir code php en application (portable)URL trop longue dans ma page
[Qt] Modifier la taille d'une imageimpression image JPanel java
Facebook Pages Require Secure Canvas URLconvertir des coordonnées GPS sur un plan 2D
ch script image slider on hover avec liensDreamweaver : centrer une image
[GtkAda] Image de fond pour un canvas avec Gtkada[HTLM] Image de fond + texte par dessus
Plus de sujets relatifs à : [Résolu] Convertir une URL en image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR