accueil MCSA astuces photos




PHP - Afficher des photos dans une page web-2

introduction et
connexion à une base

1- 2- 3
afficher une
image aléatoirement

1- 2
récupérer la résolution
de l'écran

manipulations d'images
1- 2- 3


Reprenons l'exemple précédant, nous avons un
tableau "$files" qui contient toutes les
images (ou plutôt leur nom)
et nous récupérons la taille de
l'image dans "$hauteur" et "$largeur".

Nous allons créer les miniatures des images et
les enregistrer sur le disque dur dans un sous-dossier
nommé "mini". Puis afficher le tout dans un tableau.

<?php
echo " <table border> <tr>\n";
$i=0;
foreach ( $files as $image ){
$i++;
$taille=getimagesize("images/".$image);
	$largeur=$taille[0];
	$hauteur=$taille[1];


	//---------création de la miniature---------------------\\
        // si la miniature n'existe pas...
	if (!file_exists("images/mini/".$image)){
	
	//création d'une "ressource" image d'après le fichier.
	$image_virtuelle = imagecreatefromjpeg ("images/".$image);
	
	//idem pour la miniature mais on crée une nouvelle image.
	$mini=imagecreate (120,90);
	
	//on redimensionne et copie l'image dans $mini
imagecopyresized($mini,$image_virtuelle,0,0,0,0,120,90,$largeur,$hauteur);
	
	//on crée un fichier vide pour mettre la miniature
	$newfic=fopen ("images/mini/".$image,w);
	fclose ($newfic);
	
	//on copie $mini dans le fichier
	imagejpeg ( $mini , "images/mini/".$image );
	
	//suppression des "images mémoires"
	imagedestroy ($image_virtuelle);
	imagedestroy ($mini);

	}
	//----affichage des miniatures dans un tableau-----\\

	if ($i == 6){
	echo "<td> <a href='images/$image'>\n";
	echo "<img src='images/mini/$image' width=120 height=90>\n";
	echo "</a> </td></tr> <tr>\n";
	$i=0;
	}
	else{
	echo "<td> <a href='images/$image'>\n";
	echo "<img src='images/mini/$image' width=120 height=90>\n";
	echo "</a> </td>\n";
	}
}
echo " </tr> </table>";

?>


Notez que pour créer et écrire dans un fichier, les permissions
nécéssaires doivent être accordées sur le serveur.

Voici les instructions utilisées :

file_exists() vérifie l'existance d'un fichier.
imagecreatefromjpeg() crée une image en mémoire depuis un fichier.
imagecreate() crée une image en mémoire.
imagecopyresized() recopie une image mémoire dans une autre en la redimensionnant.
fopen() ouvre un fichier.
fclose() ferme un fichier.
imagejpeg() crée un fichier jpeg sur le disque depuis une image mémoire.
imagedestroy() supprime un fichier mémoire.

"$i" sert a compter les photos sur une ligne du tableau.
Si "$i" est égal à 6, il faut changer de ligne et remettre "$i"
à zéro.

Le code ci-dessus affichera correctement les images miniatures au format
"paysage" (plus large que haute). Pour obtenir un résultat correct
pour toutes les images il faut calculer la taille de la miniature
en fonction de l'image d'origine.


SUITE



Une question ? Donnez votre avis, ou trouver encore plus d'infos : Le Forum