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

Modules Perl Discussion :

decodage d'image avec MIME::Base64


Sujet :

Modules Perl

  1. #1
    Fabouney
    Invité(e)
    Par défaut decodage d'image avec MIME::Base64
    bonjour à tous, voila, mon but est de récupérer le code source d'une image d'un email envoyé en texte brut.
    de décoder tout ca et de le mettre ds un fichier .gif, pour reproduire l'image originale.

    je vous met ma fonction et je vais vous la détailler.

    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
    sub createImage(){
        my $m = shift; # récupération du mail
        my $image = join '', @$m;
        my $name ;
        $name = time();
     
          if($image =~ /filename=\"(.*)+\.(gif|jpg)\"/){ #expression qui me permet de récupérer l'extension de l'image
            $name = $name.'.'.$2; # creation d'un nom unique pour l'image
     
              if(!-e '/blog/images'){
                  mkdir ("c:/easyphp/www/blog/images",0755) || print ("Impossible de créer le répertoire \n");
              }
     
            open(IMAGE,">blog/images/$name");
     
              if($image =~ m/filename=\"(.*)+\.(.*)\"\n\n(.*)\n\n------=/s){ #ici je récupére le code source de l'image
                my @decoded = MIME::Base64::decode($3); #je décode la source
     
                  foreach my $lines (@decoded){
                    print IMAGE $lines; #et je copie dans le fichier de type gif l'image
                  }
     
              close IMAGE;
              }
     
          }
    return $name;
    }

    donc la copie dans le fichier le decodage s'effectue corretement, seulement a la fin j'ai une image déformée. (l'image ne peut être affichée car elle contient des erreures).
    cela dit la taille de l'aimge est correctement récupérée, j'en conclu que je suis sur la bonne voie, mais je me demande si le format du code source de l'image est encore respecter après l'expressino régulièere qui a pour but de récupérer ce code source. car en regardant dans le code source du mail dans outlook, je vois qu'il y a des espace au bout de chaque ligne, je me demande si c'est respecté avec l'expression.

    merci de me dire si vous avez des conseils pour eviter tout probleme lors du décodage, c'est urgent et ca fait un petit moment que je suis déjà dessus.

    P.S : le plus etrange c'est qd j'ouvre les 2 image ds un bloc note, je remarque que c le meme contenu, mais dans celui que je créer il y a des sauts de ligne en trop ce qui fausse tout.

    merci beaucoup

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si tu es sous Windows, tes problèmes proviennent sûrement du mode texte (bien que je n'ai pas vérifié le reste de ton script), va sur ce thread pour un résumé de la solution :
    http://www.developpez.net/forums/vie...976&highlight=

    --
    Jedaï

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    merci jedai, mais ce post ne me concerne pas vraiment.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu n'es pas sous Windows ?

    --
    Jedaï

  5. #5
    Fabouney
    Invité(e)
    Par défaut
    si, mais déjà le module GD n'est pas approprié a ce que je veux faire, je veux juste décoder une image gif coter en Base64, avec le module MIME::Base64, et le truc c'est que je ne récupére pas tout les caratère apparement de la source de l'image.

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Je crois que Jedaï, la sagesse détient.

    Au dela des apparences, de regarder, il te demande.

    Et la similitude des problèmes, tu trouveras ...


    Regarde dans la partie où l'on discute de l'écriture de fichiers textes ou binaires.

    La lumiére, de ce post jaillira !


    Bon courage

    2Eurocents, qui est d'humeur taquine, ce soir et qui emprunte son style de signature à son parrain
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Le module GD n'a rien à voir avec la choucroute... c'est un problème général sous Windows dès lors que tu essaie de travailler avec des données binaires et non du texte pur : sous windows il y a un mode "texte" qui "traduit" certaines séquences de bits lorsque tu écris dans un fichier dans ce mode (on y est par défaut). Evidemment si tu travailles avec des données binaires ça fout tout en l'air (d'où probablement tes "retour à la ligne supplémentaire"). Maintenant j'apprécierais que tu relises le post que je t'ai indiqué et ce coup ci jusqu'au bout...

    --
    Jedaï

  8. #8
    Fabouney
    Invité(e)
    Par défaut
    C'est bon j'ai résolu tout ca, avec une autre expression régulière, merci quand meme de ton aide.

Discussions similaires

  1. [Débutant] Codage et decodage image avec clé
    Par chattachatta dans le forum Images
    Réponses: 6
    Dernier message: 07/04/2011, 11h49
  2. Passer des Image avec SOAP
    Par pef421 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/03/2004, 21h32
  3. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56
  4. PB affichage d'image avec IE
    Par arturo dans le forum Modules
    Réponses: 6
    Dernier message: 25/09/2003, 17h28
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

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