Aller au contenu

Image dans code PHP


Sujets conseillés

Posté

Bonjour !

Voila, j'aimerai pouvoir intégrer plusieurs images dans un seul fichier en php.

Et que ensuite je puisse faire :

<img src="imagelib.php?image=header" />

<img src="imagelib.php?image=logo" />

<img src="imagelib.php?image=menu" />

par exemple...

Sauf que intégrer directement le binaire de l'image dans un echo... ca marche pas, faudrai faire des \' a chaque ligne ^^

J'avai entendu parler une fois d'une fonction qui encodai le binaire en quelquechose d'exploitable, mais pas moyen de remettre la main dessus.

Merci beaucoup

Posté

Moi, je ferai la chose suivante, je stockerai les photos dans des fichiers .jpg

et je les afficherai à la demande

avec quelquechose comme ça

$image = $_GET['image'];

switch($image) {
case 'header' :
$fileimage = 'monImageHeader.jpg';
break;
case ''ogo' :
$fileimage = 'monImageLogo.jpg';
break;
case 'menu' :
$fileimage = 'monImageMenu.jpg';
break;
default :
$fileimage = 'monImageDefaut.jpg';
break;
}


// Envoi des headers

header("Content-type: image/jpeg");

readfile($fileimage );

Voilà.

Bonne journée.

Posté

Je previligirais la methode d'salcamden (c'est d'ailleurs ce que je fais sur une partie de mon site, et les .JPG sont stockes hors de l'arbos web pour qu'ils ne soient pas accessible directement).

Si tu veux reelement reste dans la voix que tu as choisi, voici un truc un peu capilotractee mais qui devrais fonctionne quant meme :

- tu encode ton image sous forme ascii (par exemple en la stockant sous forme de chaine Hexadecimale),

- tu fais une boucle qui lit octet par octet et qui reconvertit les codes hexa en binaire et tu "affiches".

Posté

Merci à salcamden pour la structure de fichier (switch / header) et merci à destroyedlolo pour la piste.

Effectivement, ce que je voulai c'etai concentrer toutes les images dans un fichier php pour ne pas devoir multiplier les fichiers de 1ko. Donc grace a vos pistes, j'ai cherché et je suis tombé sur les fonctions base64_decode et base64_encode qui encodai le binaire d'une image en caractéres compatibles a l'encapsulation dans des fichiers php / xml etc...

J'ai donc procédé comme suite.

J'ai d'abbord récupéré le binaire convertis en base64 de mes fichiers images avec ceci :

<?php
$file = 'img.png';
$image= fread(fopen($file, "r"), filesize($file));
$image = base64_encode($image);
echo $image;
?>

(remplacer img.png par l'image que vous voulez)

Et j'ai donc stocké les résultats dans mon fichier final :

<?php
$img = $_GET['img'];
switch($img)
{
case 'view.png':
header("Content-Type: image/png");
echo base64_decode('iVBORw0KG [...] uQmCC');
break;

case 'module.png':
header("Content-Type: image/png");
echo base64_decode('iVBORw0KGg [...] AAAABJRU5ErkJggg==');
break;

case 'logoff.png':
header("Content-Type: image/png");
echo base64_decode('iVB [...] CRrQETW54UHgAAAABJRU5ErkJggg==');
break;
}
?>

(Les chaines bases 64 des images sont tronqués)

J'ai décidé de répéter l'operation echo plutot que de stoquer l'image dans une variable a cause des tailles des chaines.

Voilà ca marche parfaitement, merci a vous.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...