Gallerie d'images en php
Fermé
mainstream01
Messages postés
4
Date d'inscription
jeudi 16 février 2012
Statut
Membre
Dernière intervention
22 février 2012
-
21 févr. 2012 à 17:35
Scienti Messages postés 13 Date d'inscription dimanche 7 août 2011 Statut Membre Dernière intervention 11 avril 2012 - 2 mars 2012 à 19:19
Scienti Messages postés 13 Date d'inscription dimanche 7 août 2011 Statut Membre Dernière intervention 11 avril 2012 - 2 mars 2012 à 19:19
A voir également:
- Gallerie d'images en php
- Easy php - Télécharger - Divers Web & Internet
- Des images - Guide
- Retour a la ligne php ✓ - Forum PHP
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image. quel mot apparaît en b1 ? - Forum Excel
- Google images - Guide
10 réponses
mainstream01
Messages postés
4
Date d'inscription
jeudi 16 février 2012
Statut
Membre
Dernière intervention
22 février 2012
21 févr. 2012 à 18:10
21 févr. 2012 à 18:10
En faite, ce que je veux faire est plus simple, je veux faire la gallerie à partir d'un répertoire sur le disque en fait!
et c'est le script avec GD qui me pose probleme, je ne sais pas par quoi commencer, voila le script que j'ai ecrit mais il marche pas pour l'instant :
<?php
header ("Content-type: image/jpg");
$img_finale = imagecreate( 919, 326);
?>
<?php
//fonction pour miniaturiser l'image de base
function miniature($img)
{
$img_url = $img;
$img = imagecreatefromjpeg($img_url);
$x = imagesx($img);
$y = imagesy($img);
if($x>$max or $y>$max)
{
if($x>$y)
{
$nx = $max;
$ny = $y/($x/$max);
}
else
{
$nx = $x/($y/$max);
$ny = $max;
}
}
$nimg = imagecreatetruecolor($nx,$ny);
imagecopyresampled($nimg,$img,0,0,0,0,$nx,$ny,$x,$y);
$mini = imagejpeg($nimg);
}
//ouverture et parcours de dossier d'images
$mydir = 'images';
if ($dir = @opendir($mydir))
{
while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$listimg[] = $file;
}
}
closedir($dir);
}
$longueur = count($listimg);
for($i=0;$i < $longueur;$i++)
{
$mini = miniature($listimg[$i]);
$listmini[] = $mini;
$i++;
}
for($i=0;$i < $longueur;$i++)
{
$img = imagecreatefromjpeg($listmini[$i]);
$img_size = getimagesize($listmini[$i]);
imagecopy ( $img_finale, $img1, 0, 0, 0,0, $img1_size[0], $img1_size[1]);
}
imagejpeg($img_finale);
?>
Merci encore pour la réponse !
et c'est le script avec GD qui me pose probleme, je ne sais pas par quoi commencer, voila le script que j'ai ecrit mais il marche pas pour l'instant :
<?php
header ("Content-type: image/jpg");
$img_finale = imagecreate( 919, 326);
?>
<?php
//fonction pour miniaturiser l'image de base
function miniature($img)
{
$img_url = $img;
$img = imagecreatefromjpeg($img_url);
$x = imagesx($img);
$y = imagesy($img);
if($x>$max or $y>$max)
{
if($x>$y)
{
$nx = $max;
$ny = $y/($x/$max);
}
else
{
$nx = $x/($y/$max);
$ny = $max;
}
}
$nimg = imagecreatetruecolor($nx,$ny);
imagecopyresampled($nimg,$img,0,0,0,0,$nx,$ny,$x,$y);
$mini = imagejpeg($nimg);
}
//ouverture et parcours de dossier d'images
$mydir = 'images';
if ($dir = @opendir($mydir))
{
while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$listimg[] = $file;
}
}
closedir($dir);
}
$longueur = count($listimg);
for($i=0;$i < $longueur;$i++)
{
$mini = miniature($listimg[$i]);
$listmini[] = $mini;
$i++;
}
for($i=0;$i < $longueur;$i++)
{
$img = imagecreatefromjpeg($listmini[$i]);
$img_size = getimagesize($listmini[$i]);
imagecopy ( $img_finale, $img1, 0, 0, 0,0, $img1_size[0], $img1_size[1]);
}
imagejpeg($img_finale);
?>
Merci encore pour la réponse !
Mimiste
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
206
22 févr. 2012 à 09:15
22 févr. 2012 à 09:15
c'est quoi qui ne marche pas dans ton script ?
mainstream01
Messages postés
4
Date d'inscription
jeudi 16 février 2012
Statut
Membre
Dernière intervention
22 février 2012
22 févr. 2012 à 11:12
22 févr. 2012 à 11:12
Bonjour, en fait, j'ai refait tout mon script, je charge toute mes images dans un tableau, puis je les récupère, mais ça marche pas, en fait, il me dit que le lien dans le tableau n'est pas un lien vers une image !
De l'aide SVP
vloila le nouveau script :
<?php
header ("Content-type: image/png");
$img_finale = imagecreate(919,326);
// images source
$listimg = array ('im-11.jpg', 'img-12.jpg', 'im-33.jpg', 'img-44.jpg', 'img-15.jpg');
$img_finale = imagecreatetruecolor( 919, 326);
$i =0;
$largeur = 0;
$hauteur = 0;
for ($i =0; $i<7; $i++)
{
$img = imagecreatefromjpeg($listimg[$i]);
$img_size = getimagesize($listimg[$i]);
if ($largeur <919)
{
imagecopy ( $img_finale, $img, $largeur, 0, $hauteur,0, $img_size[0], $img_size[1]);
$largeur = $largeur + $img_size[0];
}
else
{
$largeur = 0;
$hauteur = $hauteur + $img_size[1];
imagecopy ( $img_finale, $img[$i], $largeur, 0, $hauteur,0, $img_size[0], $img_size[1]);
}
}
imagejpeg($img_finale);
?>
De l'aide SVP
vloila le nouveau script :
<?php
header ("Content-type: image/png");
$img_finale = imagecreate(919,326);
// images source
$listimg = array ('im-11.jpg', 'img-12.jpg', 'im-33.jpg', 'img-44.jpg', 'img-15.jpg');
$img_finale = imagecreatetruecolor( 919, 326);
$i =0;
$largeur = 0;
$hauteur = 0;
for ($i =0; $i<7; $i++)
{
$img = imagecreatefromjpeg($listimg[$i]);
$img_size = getimagesize($listimg[$i]);
if ($largeur <919)
{
imagecopy ( $img_finale, $img, $largeur, 0, $hauteur,0, $img_size[0], $img_size[1]);
$largeur = $largeur + $img_size[0];
}
else
{
$largeur = 0;
$hauteur = $hauteur + $img_size[1];
imagecopy ( $img_finale, $img[$i], $largeur, 0, $hauteur,0, $img_size[0], $img_size[1]);
}
}
imagejpeg($img_finale);
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mimiste
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
206
22 févr. 2012 à 11:40
22 févr. 2012 à 11:40
ton image par exemple im-11.jpg
elle est bien dans le même repertoire que ton script php ?
elle est bien dans le même repertoire que ton script php ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
Modifié par Mihawk le 22/02/2012 à 11:49
Modifié par Mihawk le 22/02/2012 à 11:49
Hello,
Soyons fous. Voici une ébauche sans utiliser GD (donc en utilisant les images originales).
Bien sûr c'est une ébauche, ça sera moche et tout ça mais bon :-)
Mihawk
"La rigoureusité fait la qualité"
Soyons fous. Voici une ébauche sans utiliser GD (donc en utilisant les images originales).
<?php $picturesName = array(); $directory = "C:\mesimages"; // à modifier // On récupère tous les noms de fichiers images du dossier while ($file = readdir($directory)){ if ($file != "." && $file != ".." && preg_match('#\.(jpg|jpeg|png|gif)$#i', $file)){ $picturesName[count($picturesName)] = $file; } } // On affiche for ($i=0 ; $i<count($picturesName) ; $i++){ $imagePath = $directory.'\'.$picturesName[$i]; echo ('<img style="width:100px; height:100px" src="'.$imagePath.'"/>'); } ?>
Bien sûr c'est une ébauche, ça sera moche et tout ça mais bon :-)
Mihawk
"La rigoureusité fait la qualité"
mainstream01
Messages postés
4
Date d'inscription
jeudi 16 février 2012
Statut
Membre
Dernière intervention
22 février 2012
22 févr. 2012 à 12:16
22 févr. 2012 à 12:16
@Mimiste Oui elle est dans le même répertoire
Essaye cette fonction
function minuature($imgSrc,$WDest, $HDest, $repDst="") { // si le fichier existe dans le répertoire, on continue... if (file_exists($imgSrc)) { // extensions acceptees : $allowedExtension = array('jpg', 'jpeg' ,'png'); // extension fichier Source $extension = pathinfo($imgSrc,PATHINFO_EXTENSION); // si l'extension est permise if( in_array($extension,$allowedExtension) { // On créer le nom de l'image mini $imgSrcName = pathinfo($imgSrc,PATHINFO_BASENAME); $name = substr($imgSrcName,0,strlen($imgSrcName)-(strlen($extenion)+1); $imgDestName = empty($repDest) ? $name."_mini.".$extension : $repDst."/".$name."_mini.".$extension; // recuperation des dimensions de l image Src $imgSize = getimagesize($imgSrc); $WSrc = $imgSize[0]; // largeur $HSrc = $imgSize[1]; // hauteur // Nouvelle dimention proportionnel $ratiox = $WSrc / $WDest; // ratio en largeur $ratioy = $HSrc / $HDest; // ratio en hauteur $ratio = max($ratiox,$ratioy); // le plus grand $W = $WSrc/$ratio; $H = $HSrc/$ratio; // creation de la ressource-image "Src" en fonction de l extension switch($extension) { case 'jpg': case 'jpeg': $Src = imagecreatefromjpeg($imgSrc); $Dst = imagecreatetruecolor($W,$H); break; case 'png': $Src = imagecreatefrompng($img_Src); $Dst = imagecreatetruecolor($W,$H); // fond transparent pour les png imagesavealpha($Dst, true); $trans_color = imagecolorallocatealpha($Dst, 0, 0, 0, 127); imagefill($Dst, 0, 0, $trans_color); break; } // copie, redimensionne, re-echantillonnage imagecopyresampled($Dst, $Src, 0, 0, 0, 0, $W, $H, $WSrc, $HSrc); // ENREGISTREMENT dans le repertoire (avec la fonction appropriee) switch ($extension) { case 'jpg': case 'jpeg': imagejpeg ($Dst,$imgDestName ); break; case 'png': imagepng ($Dst,$imgDestName ); break; } // liberation des ressources-image imagedestroy ($Src); imagedestroy ($Dst); // si le fichier a bien ete cree if (file_exists($imgDestName ) ) { return $imgDestName; } else { die("Erreur lors de la creation de la minuature ==> ".$imgDestName); } } else { die("Extension du fichier incorrecte !!!"); } }
utilise la comme suit
//ouverture et parcours de dossier d'images for($i=0; $i < count($listimg);$i++) { // si tu veut que la minuature soit ceer dans le même repertoire $listmini[] = minuature($listimg[$i],150,150); //Si tu veut que la minuature soit créer dans un repertoire différent $listmini[] = minuature($listimg[$i],150,150,"./gallerie"); } // affichage for($i=0;$i <sizeof($listmini);$i++) { echo '<img src="'.$listmini[$i].'">'; }
Scienti
Messages postés
13
Date d'inscription
dimanche 7 août 2011
Statut
Membre
Dernière intervention
11 avril 2012
9
2 mars 2012 à 19:19
2 mars 2012 à 19:19
Salut,
je pense que ce petit tuto devrait t'aider ! ;) (es espérant qu'il soit assez clair ^^)
https://webinfobazar.com/realiser-une-galerie-dimage-facile-avec-php-et-mysql/
J'en ai d'autre en prévision.
Si tu as des questions , n'hésite pas !
je pense que ce petit tuto devrait t'aider ! ;) (es espérant qu'il soit assez clair ^^)
https://webinfobazar.com/realiser-une-galerie-dimage-facile-avec-php-et-mysql/
J'en ai d'autre en prévision.
Si tu as des questions , n'hésite pas !
Mimiste
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
206
21 févr. 2012 à 18:05
21 févr. 2012 à 18:05
bonjour
ben si je devai faire ça j'aurai
un repertoire sur mon ftp avec toutes les images
une base de donnée mysql avec une table contenant les lien de chaque images
un script php qui utilise la librairie GD pour générer une image
ben si je devai faire ça j'aurai
un repertoire sur mon ftp avec toutes les images
une base de donnée mysql avec une table contenant les lien de chaque images
un script php qui utilise la librairie GD pour générer une image
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
22 févr. 2012 à 11:41
22 févr. 2012 à 11:41
Pas besoin de la base si toutes les images sont dans le dossiers !
Mimiste
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
206
22 févr. 2012 à 15:05
22 févr. 2012 à 15:05
bah "besoin" non évidement, mais il a demandé des pistes, et voila juste comment je ferais. (je pense toujours évolutif dans mes dev, et la base de données permettrait d'avoir bien d'autres info sur les images de la galerie)