Page 1 sur 1

Vignettes

Posté : 10 avr. 2006, 14:11
par Photographiquement Vôtre
Bonjour,

Dans ma galerie photo, j'ai des vignettes qui lorsque l'on clique dessus donne la photo agrandie.

Pour l'instant j'utilise pour la vignette la photo normale dont je réduis les dimensions.

Le problème est que je ne tiens pas compte du format de la photo (paysage et portrait)

Y a t-il un moyen (en PHP) de récupérer la largeur et la longueur de la photo .

Ou ne vaux t-il pas mieux créer des vignettes dans ma base au bon format ce qui est plus lourd

Merci d'avance

Posté : 10 avr. 2006, 14:13
par Ultiny
Pour les dimensions c'est possible via la librairie GD. Voir la doc PHP :

http://fr3.php.net/manual/en/function.imagesx.php
http://fr3.php.net/manual/en/function.imagesy.php

Posté : 10 avr. 2006, 14:20
par Photographiquement Vôtre
Merci pour la rapidité de la réponse

Je ne vois pas comment l'affecter à mon image sélectionnée

<a href="themes.php"><img src="/Photos/Index_01.JPG" >

Merci d'avance

Posté : 10 avr. 2006, 14:21
par zeus
Je te conseille de stocker sur ton serveur une version "normale" de la photo et une version vignette.

Pour la simple raison que, si tu envoi la photo "normale" au navigateur, tu va allourdir considérablement la taille de la page ... une photo normale redimensionnée en HTML est du même poid qu'une photo normale affichée dans sa taille d'origine

Mais comme le dit Ultiny, la librairie GD te permet beaucoup de choses sur les images ...

Posté : 10 avr. 2006, 15:58
par Dux
Salut,
tu peux aussi utiliser getimagesize

list( $larg, $haut, $type ) = getimagesize( "url_de_ton_image" );

$larg = largeur image
$haut = hauteur image
$type= type ( 1 = gif, 2 = jpeg, 3 = png)

Ensuite, ne t'embête pas à mettre des vignettes dans ta BDD, mets les dans un dossier simplement.

Ou si tu n'a pas trop de visiteurs en même temps, tu peux créer des vignettes dynamiquement. Elles n'existeront physiquement que en RAM serveur et apparaitront sur le navigateur client.

Pour celà tu dois te renseigner sur header (type de fichier);
et sur imagecreatefromjpeg
imagecreatefromgif
imagecreatefrompng

(niveau : très facile )

Posté : 10 avr. 2006, 18:03
par Photographiquement Vôtre
Merci

J'ai utilisé getimagesize mais il me met 0 aux 3
<?php

list( $larg, $haut, $type ) = getimagesize( "/Photos/Index_01.JPG" ); 

echo "($larg)";
echo "($haut)";
echo "($type)";
			

?> 

Posté : 10 avr. 2006, 18:10
par Dux
Vérifie le chemin ou essaye d'utiliser un chemin relatif plutot que de le commencer par / (racine), du genre "../Photos/Index_01.JPG"

Pour vérifier si il y a erreur dans l'accès au fichier:

if ( ( list( $larg, $haut, $type ) = getimagesize(chemin) ) == FALSE ) echo 'Pas d\'accès au fichier';

Posté : 10 avr. 2006, 18:54
par Photographiquement Vôtre
Effecivement il y a un problème de chemin que ce soit avec /Photos ou
../Photos

CPourtant ce chemin marche quand j'affiche l'image :

<a href="themes.php"><img src="/Photos/Index_01.JPG" >

Cela marche avec le chemin "Index_01.JPG"