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

  FORUM HardWare.fr
  Programmation
  Perl

  Copie d'une image via read()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copie d'une image via read()

n°1006166
Theo61
Posté le 08-03-2005 à 23:15:40  profilanswer
 

 
 
Salut à tous,
 
j'ai un petit problème avec perl. J'essaie de copier une image en lisant
l'originale avec read() et en écrivant le tampon dans un nouveau fichier.
ça marche très bien pour les fichiers de type textes, mais pour les images
ou tout autre type de documents qui ne sont pas du texte, ça ne fonctionne
pas.
 
Voici le code :
 
 
#!/usr/local/bin/perl
 
my $fichier = "fisichella.jpg";
my $size = -s $fichier;
my $tampon;
my $taillelue;
open(FIC, "fisichella.jpg" );
$taillelue = read(FIC, $tampon, $size);
chomp($tampon);
close(FIC);
open(FIC2,">>fisicho.jpg" );
print(FIC2 $tampon);
close(FIC2);
 
 
à noter que l'image de base pèse 13'267 octets, et que celle générée par
ce code pèse 13'310 octets, je me demande bien d'où proviennent ces octets
supplémentaires.
 
Merci d'avance pour votre aide

mood
Publicité
Posté le 08-03-2005 à 23:15:40  profilanswer
 

n°1006366
couak
Posté le 09-03-2005 à 09:17:35  profilanswer
 

questions : pourquoi fais-tu un chomp() ?
pourquoi concatènes-tu en utilisant ">>" lors de l'ouverture de fichier ? Peut-être que les octects en trop sont dus à des anciens tests infructueux
 
Sinon il y a une manière plus élégante de recopier le contenu d'un fichier :

Code :
  1. open FIC, "fisichella.jpg";
  2. open FIC2, ">fisicho.jpg";
  3. print FIC2 <FIC>;
  4. close FIC2;
  5. close FIC;

n°1006985
Theo61
Posté le 09-03-2005 à 16:11:32  profilanswer
 

Réponses : euh..par erreur  :whistle:  
 
Sinon merci beaucoup pour ton aide mais malheuresement, le problème reste le même, ça me génère toujours une image de 13'310 octets qui reste illisible, pareil avec tout autre type de fichier. Pour infos, j'utilise ActivePerl sous windows, au cas où ça pourrait jouer là-dedans mais je ne pense pas.

n°1007050
couak
Posté le 09-03-2005 à 17:05:39  profilanswer
 

effectivement avec activeperl cela ne marche pas :/ moi ca marche bien avec perl 5.005 sous solaris

n°1007234
pospos
Posté le 09-03-2005 à 19:50:47  profilanswer
 

binmode(FIC);
binmode(FIC2);

n°1007245
Theo61
Posté le 09-03-2005 à 20:08:14  profilanswer
 

aaah merci pospos, j'ignorais cette commande.
 
Merci beaucoup, ça marche bien maintenant.


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

  Copie d'une image via read()

 

Sujets relatifs
copie contenu d'un fichier dans un tamponLecture d'un fichier et copie dans un buffer, ultra lent ! [Resolu]
[BATCH] Copie avec exception !?Mettre une image de fond derriere un tableau DOM
Mettre une image de fond à une balise <li> en cssimage + lien aléatoires à l'ouverture d'une page ... ??
Afficher plusieurs fois la même image à différents endroitsUne image = un lien qui souvre en pop up
[Résolu] Resample d'image anti aliasé => interpolation BICUBICDéplacement d'une image
Plus de sujets relatifs à : Copie d'une image via read()


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