Stocker des images sous forme de chaine de caracteres
3 réponses
( ::: A PRECISER ::: )
Bonjour,
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui
n'occupent pas complétement leur cluster), je souhaiterais stocker sous
forme de chaine de caractère environ 300 fichiers image (des minis drapeaux
pour etre plus précis).
Par la suite, pour afficher une image, je ferais un appel à une page du
style "image.php?pays=fr" qui renverra au navigateur l'image (en envoyant
un header PNG et la fameuse chaine de texte). Voici un bout de code que j'ai
trouvé :
Dans le cas présent, mon problème consiste à balayer un répertoire
(contenant les images au format PNG) et récupérer la "substantifique moelle"
des fichiers image (sous forme de chaine de caractère qui sera renvoyée via
la $chaine_de_texte ).
Je sais faire une boucle et parcourir un dossier, mais je ne sais comment
m'y prendre pour ouvrir le fichier image, et récupérer les infos (qui dont
binaires car c'est un PNG) sous forme de chaine de caractère.
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
Steph.K
Bonjour,
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
Une autre idée pour gérer tes images, tu les regroupes en une seule image et tu utilises les propriétés css (background-image et background-position) pour n'afficher que la partie de ton image qui t'interesse. Inconvénient : tu charges une image plus grosse et c'est dommage si tu ne veux faire qu'un seul affichage. Avantage : tu ne charges qu'une image et après le premier affichage, les autres sont instantanés.
-- Steph.K http://www.acces-pour-tous.net
Bonjour,
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui
n'occupent pas complétement leur cluster), je souhaiterais stocker sous
forme de chaine de caractère environ 300 fichiers image (des minis drapeaux
pour etre plus précis).
Une autre idée pour gérer tes images, tu les regroupes en une seule
image et tu utilises les propriétés css (background-image et
background-position) pour n'afficher que la partie de ton image qui
t'interesse. Inconvénient : tu charges une image plus grosse et c'est
dommage si tu ne veux faire qu'un seul affichage. Avantage : tu ne
charges qu'une image et après le premier affichage, les autres sont
instantanés.
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
Une autre idée pour gérer tes images, tu les regroupes en une seule image et tu utilises les propriétés css (background-image et background-position) pour n'afficher que la partie de ton image qui t'interesse. Inconvénient : tu charges une image plus grosse et c'est dommage si tu ne veux faire qu'un seul affichage. Avantage : tu ne charges qu'une image et après le premier affichage, les autres sont instantanés.
-- Steph.K http://www.acces-pour-tous.net
Olivier Miakinen
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
[...] je ne sais comment m'y prendre pour ouvrir le fichier image, et récupérer les infos (qui dont binaires car c'est un PNG) sous forme de chaine de caractère.
Tout d'abord tu dois lire le fichier sous forme binaire et le stocker dans une chaîne. Il semblerait que la fonction file_get_contents() fasse cela, mais je ne suis pas absolument certain que ce soit en mode binaire. <http://fr2.php.net/manual/fr/function.file-get-contents.php>
Si ton serveur est sur un Unix ou équivalent, ça n'a pas d'importance. Dans le cas contraire, tu devras d'abord tester pour t'en assurer, ou bien décomposer en fopen(..., "rb") suivi de fread(..., filesize(...)). <http://fr2.php.net/manual/fr/function.fread.php>
Bien sûr, tu ne devras pas oublier d'appliquer la fonction inverse de base64_decode(). Sans lire la doc, je crois deviner comment elle s'appelle...
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui
n'occupent pas complétement leur cluster), je souhaiterais stocker sous
forme de chaine de caractère environ 300 fichiers image (des minis drapeaux
pour etre plus précis).
[...] je ne sais comment
m'y prendre pour ouvrir le fichier image, et récupérer les infos (qui dont
binaires car c'est un PNG) sous forme de chaine de caractère.
Tout d'abord tu dois lire le fichier sous forme binaire et le stocker
dans une chaîne. Il semblerait que la fonction file_get_contents()
fasse cela, mais je ne suis pas absolument certain que ce soit en mode
binaire.
<http://fr2.php.net/manual/fr/function.file-get-contents.php>
Si ton serveur est sur un Unix ou équivalent, ça n'a pas d'importance.
Dans le cas contraire, tu devras d'abord tester pour t'en assurer, ou
bien décomposer en fopen(..., "rb") suivi de fread(..., filesize(...)).
<http://fr2.php.net/manual/fr/function.fread.php>
Bien sûr, tu ne devras pas oublier d'appliquer la fonction inverse de
base64_decode(). Sans lire la doc, je crois deviner comment elle
s'appelle...
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
[...] je ne sais comment m'y prendre pour ouvrir le fichier image, et récupérer les infos (qui dont binaires car c'est un PNG) sous forme de chaine de caractère.
Tout d'abord tu dois lire le fichier sous forme binaire et le stocker dans une chaîne. Il semblerait que la fonction file_get_contents() fasse cela, mais je ne suis pas absolument certain que ce soit en mode binaire. <http://fr2.php.net/manual/fr/function.file-get-contents.php>
Si ton serveur est sur un Unix ou équivalent, ça n'a pas d'importance. Dans le cas contraire, tu devras d'abord tester pour t'en assurer, ou bien décomposer en fopen(..., "rb") suivi de fread(..., filesize(...)). <http://fr2.php.net/manual/fr/function.fread.php>
Bien sûr, tu ne devras pas oublier d'appliquer la fonction inverse de base64_decode(). Sans lire la doc, je crois deviner comment elle s'appelle...
Marc
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
300 blocs, en voila une grosse affaire pour un disque dur actuel a moins que tu ne travailles dans le monde de l'embarqué avec une memoire flash inférieur a 16Mo, je ne vois pas l'intéret d'une telle opération.
D'autant que la conversion binaire-ascii consomme de la place.
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui
n'occupent pas complétement leur cluster), je souhaiterais stocker sous
forme de chaine de caractère environ 300 fichiers image (des minis drapeaux
pour etre plus précis).
300 blocs, en voila une grosse affaire pour un disque dur actuel
a moins que tu ne travailles dans le monde de l'embarqué avec une
memoire flash inférieur a 16Mo, je ne vois pas l'intéret d'une
telle opération.
D'autant que la conversion binaire-ascii consomme de la place.
Pour limiter l'espace disque occupé (j'ai de nombreux fichiers images qui n'occupent pas complétement leur cluster), je souhaiterais stocker sous forme de chaine de caractère environ 300 fichiers image (des minis drapeaux pour etre plus précis).
300 blocs, en voila une grosse affaire pour un disque dur actuel a moins que tu ne travailles dans le monde de l'embarqué avec une memoire flash inférieur a 16Mo, je ne vois pas l'intéret d'une telle opération.
D'autant que la conversion binaire-ascii consomme de la place.