positionnement de l'image

Petit nouveau ! | 1 Messages

01 juil. 2009, 12:44

bonjour,voila j'utilise un script php dans mes dossiers images afin d'afficher a la volé mes images.
le script fonctionne très bien mon seul souci étant totalement novice en php ,je ne vois pas comment je pourrais afficher mes images sous forme de tableau avec redimensionnement auto des images .(voir screenshoot de ce que j'aimerais obtenir.)
merci par avance.
<?
function read_data($data_dir,$ext) {
  $dir_handle = @opendir($data_dir);
  if ($dir_handle) {
    while ($file = readdir($dir_handle)) {
          if (eregi($ext,$file)) {
        $files[] = $file;
          }
    }
    closedir($dir_handle);
  }
  if (gettype($files) == "array" ) {
    sort($files);
  } else {
    $files = false;
  }
  return $files;
}
 
$output = "<html><body>";
$ext =".+\.png$|.+\.jp[e]{0,1}g$|.+\.gif$";
$dir =".";
$images = read_data($dir,$ext);
if ($images) {
 for ($i=0;$i<count($images);$i++){
  $output .= "<img src=\"".$images[$i]."\"><br>\n
        <input value=\"[img]http://".$HTTP_HOST . dirname($SCRIPT_NAME)."/".rawurlencode($images[$i])."[/img] \" onClick=\"this.select();\" size=\"60\"><br>\n
        <hr width=\"100%\" noshade><br>\n";
 
 }
 
}
$output .= "</body></html>";
echo $output;
 
?>
ce qui donne pour résultat
Image
screen du resultat souhaité
Image

Mammouth du PHP | 686 Messages

01 juil. 2009, 12:51

Il faut que dans ta boucle ou tu genere les miniature, tu récupère les dimensions de ton image,
ici il faut que tes vignettes aient la même hauteur
je te passe un bout de mon code que tu peux très largement t'inspirer
$source = "photos.jpg";
$taille = getimagesize($source);
$largeur = $taille[0];
$hauteur = $taille[1];
echo "<img style=\"border-width:1px; border-color:rgb(51,51,51); border-style:solid;\" src=\"http://monsite.fr/photos/";
if($largeur>500){
$nvellehauteur = 500*$hauteur/$largeur;

echo "photos.jpg\" width=\"500\" height=\"".$nvellehauteur."\"border=\"0\">";
}
else{
echo "photos.jpg\" width=\"".$largeur."\" height=\"".$hauteur."\"border=\"0\">";
}

ViPHP
AB
ViPHP | 5818 Messages

02 juil. 2009, 00:44

A savoir quand même que la fonction getimagesize() est gourmande en ressource. N'utiliser cette méthode que pour afficher des fichiers du site et en nombre relativement limité.
Sinon le plus efficace est d'utiliser cette fonction une seule fois pour la création de la page dont le code html pourrait être régénéré à chaque upload de tes photos par exemple (plutôt que pour chaque affichage de ta page).