Gallerie d'images en php
mainstream01
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Scienti Messages postés 14 Statut Membre -
Scienti Messages postés 14 Statut Membre -
Bonjour,
Bonjour, je suis débutant en php, et j'essaye de réaliser une galerie simple d'images à partir de plusieurs photos.
en gros, j'essaye d'ecrire un script permettant de génerer une image unique composée de toutes mes images de base, mais sans succès.
Je ne demande pas à ce que quelqu'un fasse le script pour moi, mais j'aimerais just avoir quelques piste, je ne sais pas par quoi commencer!!
Help SVP!
Bonjour, je suis débutant en php, et j'essaye de réaliser une galerie simple d'images à partir de plusieurs photos.
en gros, j'essaye d'ecrire un script permettant de génerer une image unique composée de toutes mes images de base, mais sans succès.
Je ne demande pas à ce que quelqu'un fasse le script pour moi, mais j'aimerais just avoir quelques piste, je ne sais pas par quoi commencer!!
Help SVP!
A voir également:
- Gallerie d'images en php
- Des images - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Extraire images pdf - Guide
- Recherche images - Guide
10 réponses
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 !
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
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é"
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].'">';
}
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 !