Bonjour,
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec une bete commande
while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque l'extension est .jpg).
Apparement, le header n'est pas conforme.
Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jl_morel
Dans l'article , a dit...
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque l'extension est .jpg). Apparement, le header n'est pas conforme. Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire. Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne" dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille du tampon avec la variable $/. Voir :
Dans l'article <vaadnfTSdejnQTPVRVn_vwA@giganews.com>, enthalpie@domain-xyz.in
a dit...
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande
while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une
image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque
l'extension est .jpg).
Apparement, le header n'est pas conforme.
Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire.
Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous
lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne"
dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille
du tampon avec la variable $/. Voir :
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque l'extension est .jpg). Apparement, le header n'est pas conforme. Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire. Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne" dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille du tampon avec la variable $/. Voir :
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque l'extension est .jpg). Apparement, le header n'est pas conforme. Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire. Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne" dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille du tampon avec la variable $/. Voir :
Exactement ce que je voulais savoir, merci beaucoup.
jl_morel a écrit le 23/08/2008 à 10h49 :
Dans l'article ,
a dit...
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte
avec
une
bete commande
while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible
comme une
image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque
l'extension est .jpg).
Apparement, le header n'est pas conforme.
Est ce qu'il s'agit d'un problème de caractères spéciaux
?
Oui. Il faut ouvrir vos fichiers en mode binaire.
Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que
<LIRE> car vous
lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de
"ligne"
dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez
fixer la taille
du tampon avec la variable $/. Voir :
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque l'extension est .jpg). Apparement, le header n'est pas conforme. Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire. Voir la faq :
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne" dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille du tampon avec la variable $/. Voir :