begin process at 2010 09 02 22:22:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION DE COINS ARRONDIS EN PHP ET AFFICHAGE EN JAVASCRIPT

DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION DE COINS ARRONDIS EN PHP ET AFFICHAGE EN JAVASCRIPT


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :diaporama, coins arrondis, redimensionement image, miniature Niveau :Débutant Date de création :24/11/2009 Date de mise à jour :10/01/2010 18:41:00 Vu / téléchargé :5 014 / 811

Auteur : giloum

Ecrire un message privé
Commentaire sur cette source (43)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour, voici un script permettant de générer un diaporama en javascript affichant les photos extraite d'un répertoire. Le script permet d'uploader et de supprimer une photo, d'arrondir ses angles, de la redimensionner et de créer une miniature de la photo.
Le code nécessite trois autres fichier et un dossier image pour fonctionner (pour l'affichage de la partie javascript).
Je suis débutant et comme beaucoup d'entre vous autodidacte ... C'est pourquoi je m'excuse d'avance des possibles incohérence dans mon code ainsi que dans mes commentaires ...
La partie javascript du diaporama a été récupéré sur un autre site, mais je ne me souvient plus de l'auteur. Je le remercie encore si il se reconnaît. Mais vous pourrez utiliser le diapo que vous voudrez.
J'espère que vous aurez de nombreux commentaires afin de m'aider a améliorer ce bout de code.
Merci d'avance.
Giloum.
Voici la deuxième version de ce code, modifié par Crasygogo.

Source

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
  • <head>
  • <title>Diaporama</title>
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • <link rel="stylesheet" type="text/css" href="../../css/diaporama.css" />
  • <style type="text/css">
  • body
  • {
  • background: white;
  • font-family:Arial, Helvetica, sans-serif;
  • }
  • div#container
  • {
  • text-align: left;
  • }
  • a
  • {
  • color: #385898;
  • font-size:14px;
  • font-weight:bold;
  • text-decoration:none;
  • }
  • legend
  • {
  • color: #385898;
  • font-size:12px;
  • }
  • </style>
  • <script type="text/javascript" src="../../javascript/jquery-1.3.1.js"></script>
  • <script type="text/javascript" src="../../javascript/jquery.transition-0.2.1.pack.js"></script>
  • </head>
  • <body>
  • <?php
  • /*********************** PARAMETRAGE DU SCRIPT ***********************/
  • // Hauteur maxi des images
  • define("HAUTEUR_MAXI_IMAGE", "300");
  • // Hauteur maxi des miniatures
  • define("HAUTEUR_MAXI_THUMB", "50");
  • // Poids maxi d'un fichier
  • define("POIDS_FICHIER_MAX", "20000000");
  • // Rayon de l'arrondi d'une image
  • define("RAYON_ARRONDI_IMAGE", "30");
  • // Rayon de l'arrondi d'une miniature
  • define("RAYON_ARRONDI_THUMB", "10");
  • // Titre du diaporama
  • define("GALLERY_TITLE", "Diaporama");
  • // Démarage automatique
  • define("GALLERY_AUTORUN", "true");
  • // Temps d'affichage de chaque image
  • define("GALLERY_IMAGE_DISPLAY_TIME", "2000");
  • // Durée de la transition
  • define("GALLERY_IMAGE_TRANSITION_TIME", "500");
  • // Hauteur maxi des images de la galerie
  • define("GALLERY_IMAGE_MAX_HEIGHT", "300");
  • // Largeur maxi des images de la galerie
  • define("GALLERY_IMAGE_MAX_WIDTH", "400");
  • // Hauteur maxi des miniatures de la galerie
  • define("GALLERY_THUMB_MAX_HEIGHT", "50");
  • // Largeur maxi des miniatures de la galerie
  • define("GALLERY_THUMB_MAX_WIDTH", "66");
  • // Afficher le titre du diaporama
  • define("GALLERY_DISPLAY_TITLE", "true");
  • // Afficher le titre des images
  • define("GALLERY_DISPLAY_CAPTION", "true");
  • // Affichage en Consultation ou en Modification selon cette variable:
  • $_SESSION['admin']=true;
  • /******************* FIN DU PARAMETRAGE DU SCRIPT ********************/
  • // On appelle la fonction avec en paramètre le nom du dossier à scanner:
  • diaporama("../images_diaporama");
  • /***********************************************************************************************************************************************************************
  • SCIPT PERMETTANT DE GENERER UN DIAPORAMA EN JAVASCRIPT AFFICHANT AUTOMATIQUEMENT LES PHOTOS EXTRAITES D'UN REPERTOIRE.
  • APRES VERIFICATION DES DROITS D'UTILISATEURS, LE SCRIPT PERMET D'UPLOADER, D'ARRONDIR LES ANGLES, DE REDIMENSIONNER, ET DE CREER UNE MINIATURE DE LA PHOTO.
  • ***********************************************************************************************************************************************************************/
  • /**********************************************************************************************
  • Fonction permettant l'ajout d'une photo.
  • $dossier_destination est le dossier de destination ou les fichiers seront enregistré,
  • si le dossier n'existe pas, il sera crée automatiquement ainsi que le sous dossier contenant les mininiature.
  • Le chemin du dossier doit etre indiqué depuis la page ou l'on appelle la fonction.
  • Les extensions autorisées sont 'png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG'.
  • $code_couleur_fond est la couleur de fond du diaporama
  • **********************************************************************************************/
  • function diaporama($dossier_destination)
  • {
  • // On verifie que l'utilisateur possede les droit pour administrer le script
  • if(isset ($_SESSION['admin']) && $_SESSION['admin']==true)
  • {
  • // On verifie que le dossier ou l'on veut enregistrer existe, sinon on le creér en lui donnant les droit 755
  • if(is_dir ($dossier_destination )==false)
  • {
  • mkdir ("$dossier_destination",0755);
  • }
  • // On verifie que le dossier ou l'on veut enregistrer les miniatures existe, sinon on le creér en lui donnant les droit 755
  • $dossier_miniature = $dossier_destination."/miniature";
  • if(is_dir($dossier_miniature )==false)
  • {
  • mkdir("$dossier_miniature",0755);
  • }
  • // Si l'utilisateur arrive sur cette page en voulant supprimer une photo
  • if(isset($_GET['supprimerphoto']))
  • {
  • $_GET['supprimerphoto'] = utf8_decode($_GET['supprimerphoto']);
  • // On teste si les fichiers existent
  • if(file_exists($dossier_destination.'/'.$_GET['supprimerphoto']))
  • {
  • // On suprime le fichier
  • unlink($dossier_destination.'/'.$_GET['supprimerphoto']);
  • }
  • if(file_exists($dossier_destination.'/miniature/'.$_GET['supprimerphoto']))
  • {
  • // On suprime le fichier
  • unlink($dossier_destination.'/miniature/'.$_GET['supprimerphoto']);
  • }
  • } // fin du isset($_GET['supprimerphoto'])
  • // On teste si la variable $_FILES declare une erreur
  • if(isset($_FILES['fichier']['error']))
  • {
  • switch ($_FILES['fichier']['error'])
  • {
  • case 1: // UPLOAD_ERR_INI_SIZE
  • echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
  • break;
  • case 2: // UPLOAD_ERR_FORM_SIZE
  • echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
  • break;
  • case 3: // UPLOAD_ERR_PARTIAL
  • echo "L'envoi du fichier a été interrompu pendant le transfert !";
  • break;
  • case 4: // UPLOAD_ERR_NO_FILE
  • echo "Le fichier que vous avez envoyé a une taille nulle !";
  • break;
  • }// Fin du switch
  • } // Fin du isset($_FILES['fichier']['error'])
  • // On teste si un fichier a eté envoyé
  • if(isset($_FILES['fichier']))
  • {
  • // On teste si le fichier n'est pas trop gros
  • if($_FILES['fichier']['size'] <= POIDS_FICHIER_MAX)
  • {
  • // On décode le nom du fichier
  • $_FILES['fichier']['name'] = utf8_decode($_FILES['fichier']['name']);
  • // On recupere le type d'extension du fichier et on le place dans $extension_upload
  • $infosfichier = pathinfo($_FILES['fichier']['name']);
  • $extension_upload = strtolower($infosfichier['extension']);
  • // On donne la liste des extensions autorisées
  • $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
  • // On verifie si l'extension du fichier correspond a une extension autorisé
  • if (in_array($extension_upload, $extensions_autorisees))
  • {
  • // on creer le chemin du repertoire de destination
  • $chemin_fichier=$dossier_destination.'/';
  • $chemin_fichier_miniature=$dossier_miniature.'/';
  • // On copie le fichier original dans le repertoire courant
  • // Copier d'abord le fichier permet d'economiser la memoire du serveur
  • move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);
  • // On fixe les droit sur le fichier a 0644
  • chmod($_FILES['fichier']['name'],0644);
  • // On redimensione le fichier image pour créer un fichier image png de dimension reduite
  • $nom_fichier_modifier = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_IMAGE, $chemin_fichier);
  • // On arondi les angles de l'image
  • arrondir_angle($nom_fichier_modifier, RAYON_ARRONDI_IMAGE);
  • // On redimensione le fichier reduit pour créer une miniature
  • $nom_fichier_miniature = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_THUMB, $chemin_fichier_miniature);
  • // On arondi les angles de l'image miniature
  • arrondir_angle($nom_fichier_miniature, RAYON_ARRONDI_THUMB);
  • // On suprime le fichier original
  • unlink($_FILES['fichier']['name']);
  • }// Fin du test de l'extension
  • else echo "extension non autorisée";
  • } // Fin du test du poid du fichier
  • else echo "fichier trop lourd";
  • }// Fin de l'isset $_FILES['fichier']
  • }// fin du if $_SESSION['admin']==true
  • // On affiche le diaporama recuperant les photos dans le repertoire $dossier_destination
  • afficher_diaporama($dossier_destination);
  • // On verifie que l'utilisateur possede les droit pour administrer le script
  • if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true)
  • {
  • // On affiche le formulaire d'envoi d'une image
  • ?> <center>
  • <br /><hr />
  • <form method="POST" action="#" enctype="multipart/form-data">
  • <fieldset style="width:340px;"><legend>&nbsp;Ajouter une image&nbsp;</legend>
  • <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo POIDS_FICHIER_MAX; ?>" />
  • <input type="file" name="fichier" size="35" /><br />
  • <input type="submit" name="envoi" value="Envoyer la photo" />
  • </fieldset>
  • </form>
  • </center><?php
  • // Fin du formulaire
  • // On affiche les photos et un lien pour les suprimer
  • afficher_suprimer_photos($dossier_destination);
  • }
  • }// Fin fonction diaporama
  • /**********************************************************************************************
  • FONCTION PERMETTANT DE REDIMENSIONER UNE PHOTO A UNE TAILLE VOULU
  • La variable $image corespond a l'image source
  • Les variable $hauteur et $largeur corespondent a la largeur-maxi et la hauteur-maxi voulu
  • La variable $masque correspond a l'image que l'on superposera a l'image de depart
  • La variable $chemin_fichier correspond au dossier de destination + / + nom de fichier original
  • **********************************************************************************************/
  • function redimensionner_image($image, $hauteur, $chemin_fichier)
  • {
  • // On recupere l'extension de l'image
  • $infosfichier = pathinfo($image);
  • $extension = strtolower($infosfichier['extension']);
  • switch($extension)
  • {
  • case "jpg" : $image_create=imagecreatefromjpeg($image); break;
  • case "jpeg" : $image_create=imagecreatefromjpeg($image); break;
  • case "gif" : $image_create=imagecreatefromgif($image); break;
  • case "png" : $image_create=imagecreatefrompng($image); break;
  • }
  • // on recupere la taille de l'image
  • $taille=getimagesize($image);
  • // echo "Hauteur originale de l'image: ".$taille[1]."<br />";
  • // echo "Largeur originale de l'image: ".$taille[0]."<br />";
  • // on calcule le ratio de redimentionement entre la hateur de l'image et la hauteur voulu
  • $ratio=$taille[1]/$hauteur;
  • // echo "ratio= ".$ratio."<br />";
  • // On calcule les nouvelles dimensions de l'image
  • $new_largeur=$taille[0]/$ratio;
  • $new_hauteur=$taille[1]/$ratio;
  • // echo "Nouvelle Hauteur de l'image: ".$new_hauteur."<br />";
  • // echo "Nouvelle Largeur de l'image: ".$new_largeur."<br /><br />";
  • // On creer l'image de destination vide avec les nouvelles dimensions
  • $new_image = imagecreatetruecolor($new_largeur, $new_hauteur);
  • // On copie l'image uploader dans l'image vide
  • $copy = imagecopyresampled($new_image, $image_create, 0, 0, 0, 0, $new_largeur, $new_hauteur, $taille[0], $taille[1]);
  • // On remplace l'extension du fichier image par png
  • $nom_du_fichier_png = str_replace($infosfichier['extension'],"png",$infosfichier['basename']);
  • // On enregistre l'image au format png
  • imagepng($new_image,$chemin_fichier."/".$nom_du_fichier_png);
  • // On detruit l'image $new_image
  • imagedestroy($new_image);
  • // On renvoie le chemin du fichier créé
  • return $chemin_fichier."/".$nom_du_fichier_png;
  • }// Fin de la fontion redimensionner_image
  • /**********************************************************************************************
  • FONCTION PERMETTANT D'AFFICHER ET DE SUPRIMER UNE PHOTO
  • On scanne le dossier afin de recuperer la liste de toutes les photos
  • On affiche la liste des photos avec un lien permettant de suprimer la photo selectionée
  • **********************************************************************************************/
  • function afficher_suprimer_photos($dossier_destination)
  • {
  • // On verifie que le dossier de destination existe
  • if(is_dir ($dossier_destination)==false)
  • {
  • echo "Dossier de destination inexistant ";
  • }
  • else
  • {
  • // On ouvre le dossier ou se trouve les photos
  • $dossier = opendir($dossier_destination) or die('Erreur');
  • // On donne la liste des extensions de fichier a afficher
  • $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
  • echo "\r\n <center>";
  • // On affiche les photos contenu dans le dossier
  • while($resultat = readdir($dossier))
  • {
  • // On teste si $resultat n'est pas un dossier ou un lien parrent
  • if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) )
  • {
  • // Encode le nom du fichier
  • $resultat = utf8_encode($resultat);
  • // On recupere l'extension du fichier
  • $infosfichier = pathinfo($resultat);
  • $extension = strtolower($infosfichier['extension']);
  • // On verifie si l'extension du fichier correspond a une extension autorisé
  • if(in_array($extension, $extensions_autorisees))
  • {
  • // Pour lisibilité du code généré:
  • echo "\r\n ";
  • // On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
  • echo "<hr /><br /><a href='?supprimerphoto=".$resultat."'>Supprimer la photo: ".$resultat."</a><br /><br />";
  • // Pour lisibilité du code généré:
  • echo "\r\n ";
  • // On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
  • echo '<img src="'.$dossier_destination.'/miniature/'.$resultat.'" ><br /><br /><img src="'.$dossier_destination.'/'.$resultat.'" ><br /><br />';
  • }
  • }
  • }// Fin du while
  • // On referme le dossier
  • closedir($dossier);
  • echo "\r\n </center>";
  • }// fin du else verification d'existance du dossier
  • }// Fin de la fonction afficher_suprimer_photos
  • /**********************************************************************************************
  • FONCTION PRINCIPALE QUI S'OCCUPE DE SCANNER LE DOSSIER ET AFFICHER LE DIAPORAMA
  • $dossier_destination: Le dossier à scanner pour afficher le diaporama
  • **********************************************************************************************/
  • function afficher_diaporama($dossier_destination)
  • {
  • // On ouvre le dossier ou se trouvent les photos
  • $dossier = opendir($dossier_destination) or die('Erreur');
  • // On donne la liste des extensions autorisées
  • $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
  • $contenu_dossier_photo = array();
  • $nom_photo = array();
  • // on affiche toutes les photos contenu dans le dossier
  • while($resultat = readdir($dossier))
  • {
  • // On teste si $resultat n'est pas un dossier ou un lien parrent
  • if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) )
  • {
  • // Encode le nom du fichier
  • $resultat = utf8_encode($resultat);
  • $fileChunks = array_reverse(explode(".", $resultat));
  • $extension_resultat = strtolower($fileChunks[0]);
  • // On verifie si l'extension du fichier correspond a une extension autorisé
  • if(in_array($extension_resultat, $extensions_autorisees))
  • {
  • // On integre toute les photos dans un array $contenu_dossier_photo
  • $contenu_dossier_photo[]=$resultat;
  • $nom_photo[]=$fileChunks[1];
  • }
  • }// Fin du test de $resultat
  • } //Fin du while
  • // On recupere l'indice du dernier enregistrement de l'array $contenu_dossier_photo
  • $nb_photos=count($contenu_dossier_photo);
  • // On genere le code javascript permettant d'afficher le diaporama
  • if($nb_photos > 0)
  • {
  • ?>
  • <script type="text/javascript">
  • $(document).ready(function(){
  • $('#diaporama').transition({
  • title: '<?php echo GALLERY_TITLE ?>', // Gallery title
  • autoRun: <?php echo GALLERY_AUTORUN ?>, // Autorun slideshow ?
  • displayTime: <?php echo GALLERY_IMAGE_DISPLAY_TIME ?>, // How long an image is displayed
  • transitionTime: <?php echo GALLERY_IMAGE_TRANSITION_TIME ?>, // Duration of the fade in/fade out effect
  • width: <?php echo GALLERY_IMAGE_MAX_WIDTH ?>, // Maximum width of the gallery images
  • height: <?php echo GALLERY_IMAGE_MAX_HEIGHT ?>, // Maximum height of the gallery images
  • thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display
  • thumbSize: {width: <?php echo GALLERY_THUMB_MAX_WIDTH ?>, height: <?php echo GALLERY_THUMB_MAX_HEIGHT ?>}, // Size of each thumbnail
  • displayTitle: <?php echo GALLERY_DISPLAY_TITLE ?>, // Display the gallery title
  • displayCaption: <?php echo GALLERY_DISPLAY_CAPTION ?>, // Display the images caption
  • images : [<?php
  • // On affiche toute les lignes correspondant aux photos
  • for($i=0; $i<$nb_photos; $i++)
  • {
  • // Pour lisibilité du code généré:
  • echo "\r\n ";
  • // Insertion de l'image:
  • echo "{image: '".$dossier_destination."/".$contenu_dossier_photo[$i]."', thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."', title: '".$nom_photo[$i]."'}";
  • // Pas de virgule après la dernière image:
  • if($i<$nb_photos-1)
  • {
  • echo",";
  • }
  • } // Fin du for
  • // Pour lisibilité du code généré:
  • echo "\r\n ";
  • ?>]
  • });
  • });
  • </script>
  • <div id="container">
  • <div id="diaporama"></div>
  • </div>
  • <?php
  • }// Fin du code generé
  • }// Fin de la fonction afficher_diaporama
  • /**********************************************************************************************
  • FONCTION PERMETTANT D'ARRONDIR LES ANGLES DE LA PHOTO $image
  • La photo doit etre au format png
  • On créer 4 images png correspondant au 4 angles
  • On superpose ces 4 images a l'image de depart
  • **********************************************************************************************/
  • function arrondir_angle($image, $rayon_arrondi)
  • {
  • // Cette partie peut etre activé si le fichier source n'est pas au format png
  • $image_create=imagecreatefrompng ($image);
  • // on recupere la taille de l'image
  • $taille=getimagesize($image);
  • // On determine la largeur et la hauteur de l'image contenant les coin
  • $largeur_coin = $rayon_arrondi/2;
  • $hauteur_coin = $rayon_arrondi/2;
  • // ********* Coin Bas Gauche ********/
  • // On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
  • $image_coin = imagecreate($largeur_coin, $hauteur_coin);
  • // On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
  • $couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
  • // On attribu une couleur transparente
  • $couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
  • // On rend la couleur blanche transparente
  • imagecolortransparent($image_coin, $couleur_transparente_coin);
  • // On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
  • imagefilledellipse($image_coin,$rayon_arrondi-$largeur_coin,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
  • // On copie l'image $image_coin sur l'image principal $image
  • imagecopy($image_create, $image_coin, 0, $taille[1]-$largeur_coin, 0, 0, $largeur_coin, $hauteur_coin);
  • // On detruit l'image du coin
  • imagedestroy($image_coin);
  • // ********* Coin Bas Droit ********/
  • // On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
  • $image_coin = imagecreate($largeur_coin, $hauteur_coin);
  • // On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
  • $couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
  • // On attribu une couleur transparente
  • $couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
  • // On rend la couleur blanche transparente
  • imagecolortransparent($image_coin, $couleur_transparente_coin);
  • // On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
  • imagefilledellipse($image_coin,0,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
  • // On copie l'image $image_coin sur l'image principal $image
  • imagecopy($image_create, $image_coin, $taille[0]-$largeur_coin, $taille[1]-$hauteur_coin, 0, 0, $largeur_coin, $hauteur_coin);
  • // On detruit l'image du coin
  • imagedestroy($image_coin);
  • // ********* Coin Haut Gauche ********/
  • // On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
  • $image_coin = imagecreate($largeur_coin, $hauteur_coin);
  • // On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
  • $couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
  • // On attribu une couleur transparente
  • $couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
  • // On rend la couleur blanche transparente
  • imagecolortransparent($image_coin, $couleur_transparente_coin);
  • // On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
  • imagefilledellipse($image_coin,$rayon_arrondi-$hauteur_coin,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
  • // On copie l'image $image_coin sur l'image principal $image
  • imagecopy($image_create, $image_coin, 0, 0, 0, 0, $largeur_coin, $hauteur_coin);
  • // On detruit l'image du coin
  • imagedestroy($image_coin);
  • // ********* Coin Haut droit ********/
  • // On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
  • $image_coin = imagecreate($largeur_coin, $hauteur_coin);
  • // On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
  • $couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
  • // On attribu une couleur transparente
  • $couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
  • // On rend la couleur blanche transparente
  • imagecolortransparent($image_coin, $couleur_transparente_coin);
  • // On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
  • imagefilledellipse($image_coin,0,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
  • // On copie l'image $image_coin sur l'image principal $image
  • imagecopymerge($image_create, $image_coin, $taille[0]-$largeur_coin, 0, 0, 0, $largeur_coin, $hauteur_coin,100 );
  • // On detruit l'image du coin
  • imagedestroy($image_coin);
  • // On rend la couleur noir transparent, transparente ...
  • $couleur_a_rendre_transparente = imagecolorallocatealpha($image_create, 0, 0, 0, 0);
  • imagecolortransparent($image_create, $couleur_a_rendre_transparente);
  • // On enregistre l'image png de la photo et des coins arrondis
  • imagepng($image_create,$image);
  • // On detruit l'image créer
  • imagedestroy($image_create);
  • } // Fin de la fonction arrondir_angle
  • ?>
  • </body>
  • </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">

<head>
<title>Diaporama</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../../css/diaporama.css" />
<style type="text/css">
body
	{
		background: white;
		font-family:Arial, Helvetica, sans-serif;
	}
div#container
	{
		text-align: left;
	}
a
	{
		color: #385898;
		font-size:14px;
		font-weight:bold;
		text-decoration:none;
	}
legend
	{
		color: #385898;
		font-size:12px;
	}
</style>
<script type="text/javascript" src="../../javascript/jquery-1.3.1.js"></script>
<script type="text/javascript" src="../../javascript/jquery.transition-0.2.1.pack.js"></script>
</head>

<body>
<?php
/*********************** PARAMETRAGE DU SCRIPT ***********************/

// Hauteur maxi des images
define("HAUTEUR_MAXI_IMAGE", "300");

// Hauteur maxi des miniatures
define("HAUTEUR_MAXI_THUMB", "50");

// Poids maxi d'un fichier
define("POIDS_FICHIER_MAX", "20000000");

// Rayon de l'arrondi d'une image
define("RAYON_ARRONDI_IMAGE", "30");

// Rayon de l'arrondi d'une miniature
define("RAYON_ARRONDI_THUMB", "10");

// Titre du diaporama
define("GALLERY_TITLE", "Diaporama");

// Démarage automatique
define("GALLERY_AUTORUN", "true");

// Temps d'affichage de chaque image
define("GALLERY_IMAGE_DISPLAY_TIME", "2000");

// Durée de la transition
define("GALLERY_IMAGE_TRANSITION_TIME", "500");

// Hauteur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_HEIGHT", "300");

// Largeur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_WIDTH", "400");

// Hauteur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_HEIGHT", "50");

// Largeur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_WIDTH", "66");

// Afficher le titre du diaporama
define("GALLERY_DISPLAY_TITLE", "true");

// Afficher le titre des images
define("GALLERY_DISPLAY_CAPTION", "true");

// Affichage en Consultation ou en Modification selon cette variable:
$_SESSION['admin']=true;

/******************* FIN DU PARAMETRAGE DU SCRIPT ********************/

// On appelle la fonction avec en paramètre le nom du dossier à scanner:
diaporama("../images_diaporama");



/***********************************************************************************************************************************************************************
SCIPT PERMETTANT DE GENERER UN DIAPORAMA EN JAVASCRIPT AFFICHANT AUTOMATIQUEMENT LES PHOTOS EXTRAITES D'UN REPERTOIRE.
APRES VERIFICATION DES DROITS D'UTILISATEURS, LE SCRIPT PERMET D'UPLOADER, D'ARRONDIR LES ANGLES, DE REDIMENSIONNER, ET DE CREER UNE MINIATURE DE LA PHOTO.
***********************************************************************************************************************************************************************/

/**********************************************************************************************
Fonction permettant l'ajout d'une photo.
$dossier_destination est le dossier de destination ou les fichiers seront enregistré, 
si le dossier n'existe pas, il sera crée automatiquement ainsi que le sous dossier contenant les mininiature.
Le chemin du dossier doit etre indiqué depuis la page ou l'on appelle la fonction.
Les extensions autorisées sont 'png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG'.
$code_couleur_fond est la couleur de fond du diaporama
**********************************************************************************************/
function diaporama($dossier_destination)
	{
		// On verifie que l'utilisateur possede les droit pour administrer le script 
		if(isset ($_SESSION['admin']) && $_SESSION['admin']==true)
			{
				
				// On verifie que le dossier ou l'on veut enregistrer existe, sinon on le creér en lui donnant les droit 755
				if(is_dir ($dossier_destination )==false)
					{
						mkdir ("$dossier_destination",0755);
					}
				
				// On verifie que le dossier ou l'on veut enregistrer les miniatures existe, sinon on le creér en lui donnant les droit 755
				$dossier_miniature = $dossier_destination."/miniature";
				if(is_dir($dossier_miniature )==false)
					{
						mkdir("$dossier_miniature",0755);
					}
				
				// Si l'utilisateur arrive sur cette page en voulant supprimer une photo
				if(isset($_GET['supprimerphoto']))
					{
						$_GET['supprimerphoto'] = utf8_decode($_GET['supprimerphoto']);
						// On teste si les fichiers existent
						if(file_exists($dossier_destination.'/'.$_GET['supprimerphoto']))
							{
								// On suprime le fichier
								unlink($dossier_destination.'/'.$_GET['supprimerphoto']);
							}
						if(file_exists($dossier_destination.'/miniature/'.$_GET['supprimerphoto']))
							{
								// On suprime le fichier
								unlink($dossier_destination.'/miniature/'.$_GET['supprimerphoto']);
							}
					} // fin du isset($_GET['supprimerphoto']) 
				
				// On teste si la variable $_FILES declare une erreur
				if(isset($_FILES['fichier']['error']))
					{
						switch ($_FILES['fichier']['error'])
							{
								case 1: // UPLOAD_ERR_INI_SIZE
								echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
								break;
								case 2: // UPLOAD_ERR_FORM_SIZE
								echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
								break;
								case 3: // UPLOAD_ERR_PARTIAL
								echo "L'envoi du fichier a été interrompu pendant le transfert !";
								break;
								case 4: // UPLOAD_ERR_NO_FILE
								echo "Le fichier que vous avez envoyé a une taille nulle !";
								break;
							}// Fin du switch
					} // Fin du isset($_FILES['fichier']['error'])
				
				// On teste si un fichier a eté envoyé	
				if(isset($_FILES['fichier']))
					{
						// On teste si le fichier n'est pas trop gros
						if($_FILES['fichier']['size'] <= POIDS_FICHIER_MAX)
							{
								// On décode le nom du fichier
								$_FILES['fichier']['name'] = utf8_decode($_FILES['fichier']['name']);
								
								// On recupere le type d'extension du fichier et on le place dans $extension_upload
								$infosfichier = pathinfo($_FILES['fichier']['name']);
								$extension_upload = strtolower($infosfichier['extension']);
								
								// On donne la liste des extensions autorisées
								$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
								
								// On verifie si l'extension du fichier correspond a une extension autorisé
								if (in_array($extension_upload, $extensions_autorisees))
									{	
										// on creer le chemin du repertoire de destination
										$chemin_fichier=$dossier_destination.'/';
										$chemin_fichier_miniature=$dossier_miniature.'/';
										
										// On copie le fichier original dans le repertoire courant
										// Copier d'abord le fichier permet d'economiser la memoire du serveur
										move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);
										
										// On fixe les droit sur le fichier a 0644
										chmod($_FILES['fichier']['name'],0644);	
										
										// On redimensione le fichier image pour créer un fichier image png de dimension reduite
										$nom_fichier_modifier = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_IMAGE, $chemin_fichier);
										
										// On arondi les angles de l'image 
										arrondir_angle($nom_fichier_modifier, RAYON_ARRONDI_IMAGE);
										
										// On redimensione le fichier reduit pour créer une miniature
										$nom_fichier_miniature = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_THUMB, $chemin_fichier_miniature);
										
										// On arondi les angles de l'image miniature
										arrondir_angle($nom_fichier_miniature, RAYON_ARRONDI_THUMB);
										
										// On suprime le fichier original
										unlink($_FILES['fichier']['name']);
										
									}// Fin du test de l'extension
								else echo "extension non autorisée";
							} // Fin du test du poid du fichier
						else echo "fichier trop lourd";
					}// Fin de l'isset $_FILES['fichier']
			}// fin du if $_SESSION['admin']==true
		
		// On affiche le diaporama recuperant les photos dans le repertoire $dossier_destination
		afficher_diaporama($dossier_destination);
		
		// On verifie que l'utilisateur possede les droit pour administrer le script 
		if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true)
			{
				// On affiche le formulaire d'envoi d'une image
				?>	<center>
				<br /><hr />
				<form method="POST" action="#" enctype="multipart/form-data">
				<fieldset style="width:340px;"><legend>&nbsp;Ajouter une image&nbsp;</legend>
				<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo POIDS_FICHIER_MAX; ?>" />	
				<input type="file" name="fichier" size="35" /><br />
				<input type="submit" name="envoi" value="Envoyer la photo" />
				</fieldset>
				</form>
				</center><?php
				// Fin du formulaire
				
				// On affiche les photos et un lien pour les suprimer	
				afficher_suprimer_photos($dossier_destination);
			}
	}// Fin fonction diaporama


/**********************************************************************************************
FONCTION PERMETTANT DE REDIMENSIONER UNE PHOTO A UNE TAILLE VOULU  
La variable $image corespond a l'image source
Les variable $hauteur et $largeur corespondent a la largeur-maxi et la hauteur-maxi voulu
La variable $masque correspond a l'image que l'on superposera a l'image de depart 
La variable $chemin_fichier correspond au dossier de destination + / + nom de fichier original
**********************************************************************************************/
function redimensionner_image($image, $hauteur, $chemin_fichier)
	{
		// On recupere l'extension de l'image
		$infosfichier = pathinfo($image);
		$extension = strtolower($infosfichier['extension']);
		switch($extension)
			{
				case "jpg"  : $image_create=imagecreatefromjpeg($image); break;
				case "jpeg" : $image_create=imagecreatefromjpeg($image); break;
				case "gif"  : $image_create=imagecreatefromgif($image); break;
				case "png"  : $image_create=imagecreatefrompng($image); break;
			}
		
		// on recupere la taille de l'image
		$taille=getimagesize($image);
		// echo "Hauteur originale de l'image: ".$taille[1]."<br />";
		// echo "Largeur originale de l'image: ".$taille[0]."<br />";
		
		// on calcule le ratio de redimentionement entre la hateur de l'image et la hauteur voulu
		$ratio=$taille[1]/$hauteur;
		// echo "ratio= ".$ratio."<br />";
		
		// On calcule les nouvelles dimensions de l'image
		$new_largeur=$taille[0]/$ratio;
		$new_hauteur=$taille[1]/$ratio;
		// echo "Nouvelle Hauteur de l'image: ".$new_hauteur."<br />";
		// echo "Nouvelle Largeur de l'image: ".$new_largeur."<br /><br />";
		
		// On creer l'image de destination vide avec les nouvelles dimensions
		$new_image = imagecreatetruecolor($new_largeur, $new_hauteur);
		
		// On copie l'image uploader dans l'image vide
		$copy = imagecopyresampled($new_image, $image_create, 0, 0, 0, 0, $new_largeur, $new_hauteur, $taille[0], $taille[1]);
		
		// On remplace l'extension du fichier image par png
		$nom_du_fichier_png = str_replace($infosfichier['extension'],"png",$infosfichier['basename']);
		
		// On enregistre l'image au format png
		imagepng($new_image,$chemin_fichier."/".$nom_du_fichier_png);
		
		// On detruit l'image $new_image
		imagedestroy($new_image);
		
		// On renvoie le chemin du fichier créé
		return $chemin_fichier."/".$nom_du_fichier_png;
	}// Fin de la fontion redimensionner_image


/**********************************************************************************************
FONCTION PERMETTANT D'AFFICHER ET DE SUPRIMER UNE PHOTO
On scanne le dossier afin de recuperer la liste de toutes les photos
On affiche la liste des photos avec un lien permettant de suprimer la photo selectionée
**********************************************************************************************/
function afficher_suprimer_photos($dossier_destination)
	{	
		// On verifie que le dossier de destination existe
		if(is_dir ($dossier_destination)==false)
			{
				echo "Dossier de destination inexistant ";
			}
		else
			{
				// On ouvre le dossier ou se trouve les photos
				$dossier = opendir($dossier_destination) or die('Erreur');
				
				// On donne la liste des extensions de fichier a afficher
				$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
				
				echo "\r\n	 <center>";
				// On affiche les photos contenu dans le dossier
				while($resultat = readdir($dossier))
					{
						// On teste si $resultat n'est pas un dossier ou un lien parrent
						if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) )
							{
								// Encode le nom du fichier
								$resultat = utf8_encode($resultat);
								// On recupere l'extension du fichier
								$infosfichier = pathinfo($resultat);
								$extension = strtolower($infosfichier['extension']);
								
								// On verifie si l'extension du fichier correspond a une extension autorisé
								if(in_array($extension, $extensions_autorisees))
									{
										// Pour lisibilité du code généré:
										echo "\r\n	 ";
										// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
										echo "<hr /><br /><a href='?supprimerphoto=".$resultat."'>Supprimer la photo: ".$resultat."</a><br /><br />";
										// Pour lisibilité du code généré:
										echo "\r\n	 ";
										// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
										echo '<img src="'.$dossier_destination.'/miniature/'.$resultat.'" ><br /><br /><img src="'.$dossier_destination.'/'.$resultat.'" ><br /><br />';
									}
							}
					}// Fin du while
				// On referme le dossier
				closedir($dossier);
				echo "\r\n	 </center>";
			}// fin du else verification d'existance du dossier 
	}// Fin de la fonction afficher_suprimer_photos


/**********************************************************************************************
FONCTION PRINCIPALE QUI S'OCCUPE DE SCANNER LE DOSSIER ET AFFICHER LE DIAPORAMA
$dossier_destination: Le dossier à scanner pour afficher le diaporama
**********************************************************************************************/
function afficher_diaporama($dossier_destination)
	{	
		// On ouvre le dossier ou se trouvent les photos
		$dossier = opendir($dossier_destination) or die('Erreur');
		
		// On donne la liste des extensions autorisées
		$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
		
		$contenu_dossier_photo = array();
		$nom_photo = array();
		// on affiche toutes les photos contenu dans le dossier
		while($resultat = readdir($dossier))
			{
				// On teste si $resultat n'est pas un dossier ou un lien parrent
				if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) )
					{
						// Encode le nom du fichier
						$resultat = utf8_encode($resultat);
						
						$fileChunks = array_reverse(explode(".", $resultat));
						$extension_resultat = strtolower($fileChunks[0]);
						
						// On verifie si l'extension du fichier correspond a une extension autorisé
						if(in_array($extension_resultat, $extensions_autorisees))
							{
								// On integre toute les photos dans un array $contenu_dossier_photo
								$contenu_dossier_photo[]=$resultat;
								$nom_photo[]=$fileChunks[1];
							}
					}// Fin du test de $resultat
				} //Fin du while
				
		// On recupere l'indice du dernier enregistrement de l'array $contenu_dossier_photo
		$nb_photos=count($contenu_dossier_photo);
				
		// On genere le code javascript permettant d'afficher le diaporama
		if($nb_photos > 0)
			{
				?>
				<script type="text/javascript">
				$(document).ready(function(){
				$('#diaporama').transition({
						title: '<?php echo GALLERY_TITLE ?>', // Gallery title
						autoRun: <?php echo GALLERY_AUTORUN ?>, // Autorun slideshow ?
						displayTime: <?php echo GALLERY_IMAGE_DISPLAY_TIME ?>, // How long an image is displayed
						transitionTime: <?php echo GALLERY_IMAGE_TRANSITION_TIME ?>, // Duration of the fade in/fade out effect
						width: <?php echo GALLERY_IMAGE_MAX_WIDTH ?>, // Maximum width of the gallery images
						height: <?php echo GALLERY_IMAGE_MAX_HEIGHT ?>, // Maximum height of the gallery images
						thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display
						thumbSize: {width: <?php echo GALLERY_THUMB_MAX_WIDTH ?>, height: <?php echo GALLERY_THUMB_MAX_HEIGHT ?>}, // Size of each thumbnail
						displayTitle: <?php echo GALLERY_DISPLAY_TITLE ?>, // Display the gallery title
						displayCaption: <?php echo GALLERY_DISPLAY_CAPTION ?>, // Display the images caption
						images : [<?php
				// On affiche toute les lignes correspondant aux photos
				for($i=0; $i<$nb_photos; $i++)
					{
						// Pour lisibilité du code généré:
						echo "\r\n	 ";
						// Insertion de l'image:
						echo "{image: '".$dossier_destination."/".$contenu_dossier_photo[$i]."', thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."', title: '".$nom_photo[$i]."'}";
						// Pas de virgule après la dernière image:
						if($i<$nb_photos-1)
							{
								echo",";
							}
					} // Fin du for
				// Pour lisibilité du code généré:
				echo "\r\n	 ";
				?>]
				});
				});
				</script>
				<div id="container">
				<div id="diaporama"></div>
				</div>
				<?php
			}// Fin du code generé
	}// Fin de la fonction afficher_diaporama


/**********************************************************************************************
FONCTION PERMETTANT D'ARRONDIR LES ANGLES DE LA PHOTO $image
La photo doit etre au format png
On créer 4 images png correspondant au 4 angles
On superpose ces 4 images a l'image de depart
**********************************************************************************************/
function arrondir_angle($image, $rayon_arrondi)
	{
		// Cette partie peut etre activé si le fichier source n'est pas au format png
		$image_create=imagecreatefrompng ($image);
		
		// on recupere la taille de l'image
		$taille=getimagesize($image);
		
		// On determine la largeur et la hauteur de l'image contenant les coin
		$largeur_coin = $rayon_arrondi/2;
		$hauteur_coin = $rayon_arrondi/2;
		
		// ********* Coin Bas Gauche ********/
		// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
		$image_coin = imagecreate($largeur_coin, $hauteur_coin);
		// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
		$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
		// On attribu une couleur transparente 
		$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
		// On rend la couleur blanche transparente
		imagecolortransparent($image_coin, $couleur_transparente_coin);
		// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
		imagefilledellipse($image_coin,$rayon_arrondi-$largeur_coin,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
		// On copie l'image $image_coin sur l'image principal $image
		imagecopy($image_create, $image_coin, 0, $taille[1]-$largeur_coin, 0, 0, $largeur_coin, $hauteur_coin);
		// On detruit l'image du coin
		imagedestroy($image_coin);
		
		// ********* Coin Bas Droit ********/
		// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
		$image_coin = imagecreate($largeur_coin, $hauteur_coin);
		// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
		$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
		// On attribu une couleur transparente 
		$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
		// On rend la couleur blanche transparente
		imagecolortransparent($image_coin, $couleur_transparente_coin);
		// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
		imagefilledellipse($image_coin,0,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
		// On copie l'image $image_coin sur l'image principal $image
		imagecopy($image_create, $image_coin, $taille[0]-$largeur_coin, $taille[1]-$hauteur_coin, 0, 0, $largeur_coin, $hauteur_coin);
		// On detruit l'image du coin
		imagedestroy($image_coin);
		
		// ********* Coin Haut Gauche ********/
		// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
		$image_coin = imagecreate($largeur_coin, $hauteur_coin);
		// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
		$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
		// On attribu une couleur transparente 
		$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
		// On rend la couleur blanche transparente
		imagecolortransparent($image_coin, $couleur_transparente_coin);
		// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
		imagefilledellipse($image_coin,$rayon_arrondi-$hauteur_coin,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
		// On copie l'image $image_coin sur l'image principal $image
		imagecopy($image_create, $image_coin, 0, 0, 0, 0, $largeur_coin, $hauteur_coin);
		// On detruit l'image du coin
		imagedestroy($image_coin);
		
		// ********* Coin Haut droit ********/
		// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
		$image_coin = imagecreate($largeur_coin, $hauteur_coin);
		// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
		$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
		// On attribu une couleur transparente 
		$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
		// On rend la couleur blanche transparente
		imagecolortransparent($image_coin, $couleur_transparente_coin);
		// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
		imagefilledellipse($image_coin,0,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
		// On copie l'image $image_coin sur l'image principal $image
		imagecopymerge($image_create, $image_coin, $taille[0]-$largeur_coin, 0, 0, 0, $largeur_coin, $hauteur_coin,100 );
		// On detruit l'image du coin
		imagedestroy($image_coin);
		
		// On rend la couleur noir transparent, transparente ...
		$couleur_a_rendre_transparente = imagecolorallocatealpha($image_create, 0, 0, 0, 0);
		imagecolortransparent($image_create, $couleur_a_rendre_transparente);
		
		// On enregistre l'image png de la photo et des coins arrondis
		imagepng($image_create,$image);
		
		// On detruit l'image créer
		imagedestroy($image_create);	
		
	} // Fin de la fonction arrondir_angle
?>
</body>
</html>

 Conclusion

Surtout n'hésitez pas a critiquer ce code afin de m'aider a l'améliorer !!!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

24 novembre 2009 17:38:22 :
Problème dans le .zip
25 novembre 2009 11:24:16 :
Encore un problème avec le zip ... dsl.
30 novembre 2009 14:20:30 :
Modification du code grace a l'aide de Crasygogo
04 décembre 2009 20:22:04 :
Ajout d'une capture d'ecran.
10 janvier 2010 18:41:02 :
Mise a jour du .zip

 Sources du même auteur

Source avec Zip VERIFIER SI UN LIEN (OU UNE CHAINE DE CARACTERES) EST PRESEN...

 Sources de la même categorie

MANIPULATION DES DONNÉES IPTC par shevabam
Source avec Zip Source avec une capture AJOUTER DES EFFETS DE PERSPECTIVE ET DES EFFETS DE REFLET SU... par zulrigh
Source avec Zip Source avec une capture METTEZ VOS IMAGES OU VOS PHOTOS EN 3D ; EN PERSPECTIVE par zulrigh
Source avec Zip FAIRE DES MINIATURE D'IMAGE, DES PHOTOS POUR LES PROFILS par zulrigh
Source avec Zip Source avec une capture CARTOGRAPHIE DYNAMIQUE DE LA FRANCE AVEC UNE BASE MYSQL ET D... par buchron

 Sources en rapport avec celle ci

Source avec Zip FAIRE DES MINIATURE D'IMAGE, DES PHOTOS POUR LES PROFILS par zulrigh
Source avec Zip AFFICHAGE ET GESTION DE DIAPORAMA EN PHP SANS BASE DE DONNÉE... par mldvb
Source avec Zip Source avec une capture SANYBEE GALLERY par sakini
Source avec Zip ALBUM PHOTOS / DIAPORAMA AVEC OU SANS MUSIQUE / PANORAMA / V... par badind
Source avec Zip CLASSE : GÉNÉRATEUR DE MINIATURE STRICTE OPTIMISÉ par GauldoMagique

Commentaires et avis

Commentaire de crazygogo le 25/11/2009 09:55:52

il manque le fichier jquery.transition-0.2.1.pack.js

Commentaire de giloum le 25/11/2009 11:26:43

Merci Crazygogo, je viens de le rajouter ...
Mais je n'arrive pas a remettre la main sur le fichier non compressé.
C'est donc la version pack.

Commentaire de crazygogo le 25/11/2009 11:52:22

Je suis en train de modifier ta source car je la trouve très intéressante, je sais pas si on peut parler d'améliorations mais en tout cas je la remet à ma sauce...

Par exemple le tableau des extensions autorisées je le met que en minuscules et lors de la récupération de l'extension je fais un strtolower... Pareil lors du switch($extension)...

Dans la fonction afficher_diaporama je teste aussi les extensions car dans mon dossier image il y'a un fichier caché thumbs.db qui me provoque une image non trouvée dans le diaporama...

Je pense que le tableau $extensions_autorisees devrait pouvoir être déclaré qu'une seule fois mais on m'a dit que les globales c'était mal alors je n'ai pas modifié ce point la !!!

Dans la légende de l'image j'affiche le nom du fichier sans l'extension...

Je modifie aussi un peu la présentation...

Je vais poster le code modifié dans un autre message celui-ci étant déjà trop long !!!

:)

Commentaire de crazygogo le 25/11/2009 11:53:17

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript" src="jquery.transition-0.2.1.pack.js"></script>
<link href="diaporama.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Diaporama</title>
</head>
<body>
<?php
// Affichage en Consultation ou en Modification selon cette variable:
$_SESSION['admin']=true;

/*
SCIPT PERMETTANT DE GENERER UN DIAPORAMA EN JAVASCRIPT AFFICHANT AUTOMATIQUEMENT LES PHOTOS EXTRAITES D'UN REPERTOIRE. APRES VERIFICATION DES DROITS D'UTILISATEURS, LE SCRIPT PERMET D'UPLOADER, D'ARRONDIR LES ANGLES, DE REDIMENSIONNER,  ET DE CREER UNE MINIATURE DE LA PHOTO.
*/

/**********************************************************************************************/
// Fonction permettant l'ajout d'une photo.
// $taille_fichier_maxi est la taille maximum autorisé du fichier a envoyé.
// $dossier_destination est le dossier de destination ou les fichiers seront enregistré, si le dossier n'existe pas, il sera crée automatiquement ainsi que le sous dossier contenant les mininiature. Le chemin du dossier doit etre indiqué depuis la page ou l'on appelle la fonction.
// Les extensions autorisées sont 'png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG'.
// $hauteur_maxi_photo est la hauteur maximum en pixels que aura la photo lors de son redimensionement
// $hauteur_maxi_miniature est la hauteur maximum en pixels que aura la photo lors de son redimensionement
// $rayon_coin_arrondi est la taille en pixels du rayon des arrondis des angles de la photo
// $code_couleur_fond est la couleur de fond du diaporama
/**********************************************************************************************/
function diaporama($taille_fichier_maxi, $dossier_destination, $hauteur_maxi_photo, $hauteur_maxi_miniature, $rayon_coin_arrondi, $rayon_coin_arrondi_miniature){
// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true){
// On verifie que le dossier ou l'on veut enregistrer existe, sinon on le creér en lui donnant les droit 755
if(is_dir ($dossier_destination )==false){
mkdir ("$dossier_destination",0755);
}

// On verifie que le dossier ou l'on veut enregistrer les miniatures existe, sinon on le creér en lui donnant les droit 755
$dossier_miniature=$dossier_destination."/miniature";
if(is_dir ($dossier_miniature )==false){
mkdir ("$dossier_miniature",0755);
}

// Si l'utilisateur arrive sur cette page en voulant supprimer une photo
// On suprime la photo
if(isset($_GET['supprimerphoto'])){
// On teste si les fichiers existent
if(file_exists($dossier_destination.'/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/'.$_GET['supprimerphoto']);
}
if(file_exists($dossier_destination.'/miniature/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/miniature/'.$_GET['supprimerphoto']);
}
//echo "tentative de supression effectué de ".$dossier_destination.'/'.$_GET['supprimerphoto'];
}

// On teste si la variable $_FILES declare une erreur
if(isset($_FILES['fichier']['error'])){
switch ($_FILES['fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
} // Fin du switch
}// Fin du test d'erreur

// On teste si un fichier a eté envoyé
if(isset($_FILES['fichier'])){
// On teste si le fichier n'est pas trop gros
if($_FILES['fichier']['size'] <= $taille_fichier_maxi){
// On recupere le type d'extension du fichier et on le place dans $extension_upload
$infosfichier = pathinfo($_FILES['fichier']['name']);
$extension_upload = strtolower($infosfichier['extension']);

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

// On verifie si l'extension du fichier correspond a une extension autorisé
if (in_array($extension_upload, $extensions_autorisees)){
// on creer le chemin du repertoire de destination
$chemin_fichier=$dossier_destination.'/';
// echo "chemin du fichier: ".$chemin_fichier."<br />";
$chemin_fichier_miniature=$dossier_miniature.'/';
// echo "chemin du fichier miniature: ".$chemin_fichier_miniature."<br />";

// On copie le fichier original dans le repertoire courant
// Copier d'abord le fichier permet d'economiser  la memoire du serveur
// Sinon probleme d'alocation memoire sur celeonet
move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);

// On fixe les droit sur le fichier a 0644
chmod($_FILES['fichier']['name'],0644);

// On redimensione le fichier image pour créer un fichier image png de dimension reduite
$nom_fichier_modifier=redimensionner_image ($_FILES['fichier']['name'], $hauteur_maxi_photo, $chemin_fichier);

// On arondi les angles de l'image
arrondir_angle ($nom_fichier_modifier, $rayon_coin_arrondi);

// On redimensione le fichier reduit pour créer une miniature
$nom_fichier_miniature=redimensionner_image ($_FILES['fichier']['name'], $hauteur_maxi_miniature, $chemin_fichier_miniature);

// On arondi les angles de l'image miniature
arrondir_angle ($nom_fichier_miniature, $rayon_coin_arrondi_miniature);

// On suprime le fichier original
unlink($_FILES['fichier']['name']);

}// Fin du test de l'extension
else echo "extension non autorisé";
} // Fin du test du poid du fichier
else echo "fichier trop lourd";
}// Fin de l'isset $_FILES['fichier']
}// fin du if $_SESSION['admin']==true

afficher_diaporama($dossier_destination);

// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true){
// On affiche le formulaire ?>
<center>
<p><br /><hr />
<form method="POST" action="diaporama.php" enctype="multipart/form-data">
<fieldset style="width:340px;"><legend>&nbsp;Ajouter une image&nbsp;</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $taille_fichier_maxi; ?>" />
<input type="file" name="fichier" size="36" /><br />
<input type="submit" name="envoi" value="Envoyer la photo" />
</fieldset>
</form>
</p>
</center><?php
// Fin du formulaire

// On affiche les photos et un lien pour les suprimer
afficher_suprimer_photos($dossier_destination);
}
}


/**********************************************************************************************/
// FONCTION PERMETTANT DE REDIMENSIONER UNE PHOTO A UNE TAILLE VOULU  
// La variable $image corespond a l'image source
// Les variable $hauteur et $largeur corespondent a la largeur-maxi et la hauteur-maxi voulu
// La variable $masque correspond a l'image que l'on superposera a l'image de depart
// La variable $chemin_fichier correspond au dossier de destination + / + nom de fichier original
/**********************************************************************************************/
function redimensionner_image($image, $hauteur, $chemin_fichier){
// On recupere l'extension de l'image
$infosfichier = pathinfo($image);
$extension = strtolower($infosfichier['extension']);
switch($extension){
case "jpg"  : $image_create=imagecreatefromjpeg($image); break;
case "jpeg" : $image_create=imagecreatefromjpeg($image); break;
case "gif"  : $image_create=imagecreatefromgif($image); break;
case "png"  : $image_create=imagecreatefrompng($image); break;
}

// on recupere la taille de l'image
$taille=getimagesize($image);
// echo "Hauteur originale de l'image: ".$taille[1]."<br />";
// echo "Largeur originale de l'image: ".$taille[0]."<br />";
// on calcule le ratio de redimentionement entre la hateur de l'image et la hauteur voulu
$ratio=$taille[1]/$hauteur;
// echo "ratio= ".$ratio."<br />";
// On calcule les nouvelles dimensions de l'image
$new_largeur=$taille[0]/$ratio;
$new_hauteur=$taille[1]/$ratio;
// echo "Nouvelle Hauteur de l'image: ".$new_hauteur."<br />";
// echo "Nouvelle Largeur de l'image: ".$new_largeur."<br /><br />";

// On creer l'image de destination vide  avec les nouvelles dimensions
$new_image=imagecreatetruecolor($new_largeur, $new_hauteur);

// On copie l'image uploader dans l'image vide
$copy=imagecopyresampled($new_image, $image_create, 0, 0, 0, 0, $new_largeur, $new_hauteur, $taille[0], $taille[1]) ;

// On remplace l'extension du fichier image par png
$nom_du_fichier_png=str_replace($infosfichier['extension'],"png",$infosfichier['basename']);
// On enregistre l'image au format png
imagepng($new_image,$chemin_fichier."/".$nom_du_fichier_png);

// On detruit l'image $new_image
imagedestroy($new_image);

// On renvoie le chemin du fichier créer
return $chemin_fichier."/".$nom_du_fichier_png;
}


/**********************************************************************************************/
// FONCTION PERMETTANT D'AFFICHER ET DE SUPRIMER UNE PHOTO
// On scanne le dossier afin de recuperer la liste de toutes les photos
// On affiche la liste des photos avec un lien permettant de suprimer la photo selectionée
// On suprime la photo
// On reafiche la page
/**********************************************************************************************/
function afficher_suprimer_photos($dossier_destination){
// On verifie que le dossier de destination existe
if(is_dir ($dossier_destination)==false){
echo "Dossier de destination inexistant ";
}
else{
// On ouvre le dossier ou se trouve les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On donne la liste des extensions de fichier a afficher
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

echo "<center>";
// On affiche les photos contenu dans le dossier
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
// $statut=is_file($resultat);
// On recupere l'extension du fichier
$infosfichier = pathinfo($resultat);
$extension = strtolower($infosfichier['extension']);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension, $extensions_autorisees)){
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo "<hr /><a href='?supprimerphoto=".$resultat."'>Supprimer la photo: ".$resultat."</a><br /><br />";
echo '<img src="'.$dossier_destination.'/miniature/'.$resultat.'" ><br /><br /><img src="'.$dossier_destination.'/'.$resultat.'" ><br /><br />';
}
}
}
// On referme le dossier
closedir($dossier);
echo "</center>";
}// fin du else verification d'existance du dossier
}


function afficher_diaporama($dossier_destination){
// On ouvre le dossier ou se trouvent les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On genere le code javascript permettant d'afficher le diaporama
?>
<script type="text/javascript" >    
$(document).ready(function() {
$('#diaporama').transition({
autoRun: true,
displayTime: 5000,
transitionTime: 1500,
title: 'Diaporama',
width: 350,
height: 265,
thumbSize: {width: 74, height: 56},
images : [<?php

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

// on affiche toutes les photos contenu dans le dossier
// avec une ligne speciale sans virgule a la fin pour le dernier element de l'array $resultat
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
$fileChunks = array_reverse(explode(".", $resultat));
$extension_resultat = strtolower($fileChunks[0]);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension_resultat, $extensions_autorisees)){
// On integre toute les photos dans un array $contenu_dossier_photo
$contenu_dossier_photo[]=$resultat;
$nom_photo[]=$fileChunks[1];
}
}
}

// On recupere l'indice du dernier enregistrement de l'array $contenu_dossier_photo
$nb_photos=count($contenu_dossier_photo);

// On affiche toute les lignes correspondant au photos sauf la derniere
for($i=0; $i<$nb_photos; $i++){
// Pour lisibilité du code généré:
echo "\r\n ";
// Insertion de l'image:
echo "{image: '".$dossier_destination."/".$contenu_dossier_photo[$i]."', thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."', title: '".$nom_photo[$i]."'}";
// Pas de virgule après la dernière image:
if($i<$nb_photos-1){
echo",";
}
}
?>
]
});
});
</script>      
<div id="diaporama"></div>  
<?php
}


/**********************************************************************************************/
// FONCTION PERMETTANT D'ARRONDIR LES ANGLES DE LA PHOTO $image
// La photo doit etre au format png
// On créer 4 images png correspondant au 4 angles
// On superpose ces 4 images a l'image de depart
/**********************************************************************************************/
function arrondir_angle($image, $rayon_arrondi){
// Cette partie peut etre activé si le fichier source n'est pas au format png
$image_create=imagecreatefrompng ($image);

// on recupere la taille de l'image
$taille=getimagesize($image);

// On determine la largeur et la hauteur de l'image contenant les coin
$largeur_coin = $rayon_arrondi/2;
$hauteur_coin = $rayon_arrondi/2;

// ********* Coin Bas Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$largeur_coin,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, $taille[1]-$largeur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Bas Droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, $taille[0]-$largeur_coin, $taille[1]-$hauteur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$hauteur_coin,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, 0, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopymerge($image_create, $image_coin, $taille[0]-$largeur_coin, 0, 0, 0, $largeur_coin, $hauteur_coin,100 );
// On detruit l'image du coin
imagedestroy($image_coin);

// On rend la couleur noir transparent, transparente ...
$couleur_a_rendre_transparente = imagecolorallocatealpha($image_create, 0, 0, 0, 0);
imagecolortransparent($image_create, $couleur_a_rendre_transparente);

// On enregistre l'image png de la photo et des coins arrondis
imagepng($image_create,$image);

// On detruit l'image créer
imagedestroy($image_create);
}

// On appelle la fonction !!!
diaporama("20000000", "images_diaporama", 263, 56, 30, 10);
?>
</body>
</html>

Commentaire de crazygogo le 25/11/2009 11:54:07

ah... il a pas pris les tabulations... dommage pour la présentation...

Commentaire de meliubaf le 30/11/2009 10:49:49

Bonjour, une petite capture écran serait la bienvenue dans la description je pense.

Commentaire de crazygogo le 30/11/2009 10:55:38

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>Diaporama</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="diaporama.css" />
<style type="text/css">
body{
background: white;
font-family:Arial, Helvetica, sans-serif;
}
div#container{
text-align: left;
}
a{
color: #385898;
font-size:14px;
font-weight:bold;
text-decoration:none;
}
legend{
color: #385898;
font-size:12px;
}
</style>
<script type="text/javascript" src="jquery-1.2.3.pack.js"></script>
<script type="text/javascript" src="jquery.transition-0.2.1.js"></script>
</head>
<body>
<?php
/*********************** PARAMETRAGE DU SCRIPT ***********************/

// Hauteur maxi des images
define("HAUTEUR_MAXI_IMAGE", "400");

// Hauteur maxi des miniatures
define("HAUTEUR_MAXI_THUMB", "53");

// Poids maxi d'un fichier
define("POIDS_FICHIER_MAX", "20000000");

// Rayon de l'arrondi d'une image
define("RAYON_ARRONDI_IMAGE", "30");

// Rayon de l'arrondi d'une miniature
define("RAYON_ARRONDI_THUMB", "10");

// Titre du diaporama
define("GALLERY_TITLE", "Diaporama");

// Démarage automatique
define("GALLERY_AUTORUN", "true");

// Temps d'affichage de chaque image
define("GALLERY_IMAGE_DISPLAY_TIME", "1000");

// Durée de la transition
define("GALLERY_IMAGE_TRANSITION_TIME", "500");

// Hauteur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_HEIGHT", "410");

// Largeur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_WIDTH", "550");

// Hauteur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_HEIGHT", "55");

// Largeur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_WIDTH", "73");

// Afficher le titre du diaporama
define("GALLERY_DISPLAY_TITLE", "true");

// Afficher le titre des images
define("GALLERY_DISPLAY_CAPTION", "true");

// Affichage en Consultation ou en Modification selon cette variable:
$_SESSION['admin']=true;

/******************* FIN DU PARAMETRAGE DU SCRIPT ********************/

// On appelle la fonction avec en paramètre le nom du dossier à scanner:
diaporama("images_diaporama");

/***********************************************************************************************************************************************************************
SCIPT PERMETTANT DE GENERER UN DIAPORAMA EN JAVASCRIPT AFFICHANT AUTOMATIQUEMENT LES PHOTOS EXTRAITES D'UN REPERTOIRE.
APRES VERIFICATION DES DROITS D'UTILISATEURS, LE SCRIPT PERMET D'UPLOADER, D'ARRONDIR LES ANGLES, DE REDIMENSIONNER, ET DE CREER UNE MINIATURE DE LA PHOTO.
***********************************************************************************************************************************************************************/

/**********************************************************************************************
Fonction permettant l'ajout d'une photo.
$dossier_destination est le dossier de destination ou les fichiers seront enregistré,
si le dossier n'existe pas, il sera crée automatiquement ainsi que le sous dossier contenant les mininiature.
Le chemin du dossier doit etre indiqué depuis la page ou l'on appelle la fonction.
Les extensions autorisées sont 'png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG'.
$code_couleur_fond est la couleur de fond du diaporama
**********************************************************************************************/
function diaporama($dossier_destination){
// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin']) && $_SESSION['admin']==true){
// On verifie que le dossier ou l'on veut enregistrer existe, sinon on le creér en lui donnant les droit 755
if(is_dir ($dossier_destination )==false){
mkdir ("$dossier_destination",0755);
}

// On verifie que le dossier ou l'on veut enregistrer les miniatures existe, sinon on le creér en lui donnant les droit 755
$dossier_miniature = $dossier_destination."/miniature";
if(is_dir($dossier_miniature )==false){
mkdir("$dossier_miniature",0755);
}

// Si l'utilisateur arrive sur cette page en voulant supprimer une photo
if(isset($_GET['supprimerphoto'])){
$_GET['supprimerphoto'] = utf8_decode($_GET['supprimerphoto']);
// On teste si les fichiers existent
if(file_exists($dossier_destination.'/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/'.$_GET['supprimerphoto']);
}
if(file_exists($dossier_destination.'/miniature/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/miniature/'.$_GET['supprimerphoto']);
}
}

// On teste si la variable $_FILES declare une erreur
if(isset($_FILES['fichier']['error'])){
switch ($_FILES['fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
}

// On teste si un fichier a eté envoyé
if(isset($_FILES['fichier'])){
// On teste si le fichier n'est pas trop gros
if($_FILES['fichier']['size'] <= POIDS_FICHIER_MAX){
// On décode le nom du fichier
$_FILES['fichier']['name'] = utf8_decode($_FILES['fichier']['name']);

// On recupere le type d'extension du fichier et on le place dans $extension_upload
$infosfichier = pathinfo($_FILES['fichier']['name']);
$extension_upload = strtolower($infosfichier['extension']);

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

// On verifie si l'extension du fichier correspond a une extension autorisé
if (in_array($extension_upload, $extensions_autorisees)){
// on creer le chemin du repertoire de destination
$chemin_fichier=$dossier_destination.'/';
$chemin_fichier_miniature=$dossier_miniature.'/';

// On copie le fichier original dans le repertoire courant
// Copier d'abord le fichier permet d'economiser la memoire du serveur
move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);

// On fixe les droit sur le fichier a 0644
chmod($_FILES['fichier']['name'],0644);

// On redimensione le fichier image pour créer un fichier image png de dimension reduite
$nom_fichier_modifier = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_IMAGE, $chemin_fichier);

// On arondi les angles de l'image
arrondir_angle($nom_fichier_modifier, RAYON_ARRONDI_IMAGE);

// On redimensione le fichier reduit pour créer une miniature
$nom_fichier_miniature = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_THUMB, $chemin_fichier_miniature);

// On arondi les angles de l'image miniature
arrondir_angle($nom_fichier_miniature, RAYON_ARRONDI_THUMB);

// On suprime le fichier original
unlink($_FILES['fichier']['name']);

}// Fin du test de l'extension
else echo "extension non autorisée";
} // Fin du test du poid du fichier
else echo "fichier trop lourd";
}// Fin de l'isset $_FILES['fichier']
}// fin du if $_SESSION['admin']==true

afficher_diaporama($dossier_destination);

// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true){
// On affiche le formulaire d'envoi d'une image
?> <center>
<br /><hr />
<form method="POST" action="diaporama.php" enctype="multipart/form-data">
<fieldset style="width:340px;"><legend>&nbsp;Ajouter une image&nbsp;</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo POIDS_FICHIER_MAX; ?>" />
<input type="file" name="fichier" size="35" /><br />
<input type="submit" name="envoi" value="Envoyer la photo" />
</fieldset>
</form>
</center><?php
// Fin du formulaire

// On affiche les photos et un lien pour les suprimer
afficher_suprimer_photos($dossier_destination);
}
}


/**********************************************************************************************
FONCTION PERMETTANT DE REDIMENSIONER UNE PHOTO A UNE TAILLE VOULU  
La variable $image corespond a l'image source
Les variable $hauteur et $largeur corespondent a la largeur-maxi et la hauteur-maxi voulu
La variable $masque correspond a l'image que l'on superposera a l'image de depart
La variable $chemin_fichier correspond au dossier de destination + / + nom de fichier original
**********************************************************************************************/
function redimensionner_image($image, $hauteur, $chemin_fichier){
// On recupere l'extension de l'image
$infosfichier = pathinfo($image);
$extension = strtolower($infosfichier['extension']);
switch($extension){
case "jpg"  : $image_create=imagecreatefromjpeg($image); break;
case "jpeg" : $image_create=imagecreatefromjpeg($image); break;
case "gif"  : $image_create=imagecreatefromgif($image); break;
case "png"  : $image_create=imagecreatefrompng($image); break;
}

// on recupere la taille de l'image
$taille=getimagesize($image);
// echo "Hauteur originale de l'image: ".$taille[1]."<br />";
// echo "Largeur originale de l'image: ".$taille[0]."<br />";

// on calcule le ratio de redimentionement entre la hateur de l'image et la hauteur voulu
$ratio=$taille[1]/$hauteur;
// echo "ratio= ".$ratio."<br />";

// On calcule les nouvelles dimensions de l'image
$new_largeur=$taille[0]/$ratio;
$new_hauteur=$taille[1]/$ratio;
// echo "Nouvelle Hauteur de l'image: ".$new_hauteur."<br />";
// echo "Nouvelle Largeur de l'image: ".$new_largeur."<br /><br />";

// On creer l'image de destination vide avec les nouvelles dimensions
$new_image = imagecreatetruecolor($new_largeur, $new_hauteur);

// On copie l'image uploader dans l'image vide
$copy = imagecopyresampled($new_image, $image_create, 0, 0, 0, 0, $new_largeur, $new_hauteur, $taille[0], $taille[1]);

// On remplace l'extension du fichier image par png
$nom_du_fichier_png = str_replace($infosfichier['extension'],"png",$infosfichier['basename']);

// On enregistre l'image au format png
imagepng($new_image,$chemin_fichier."/".$nom_du_fichier_png);

// On detruit l'image $new_image
imagedestroy($new_image);

// On renvoie le chemin du fichier créé
return $chemin_fichier."/".$nom_du_fichier_png;
}


/**********************************************************************************************
FONCTION PERMETTANT D'AFFICHER ET DE SUPRIMER UNE PHOTO
On scanne le dossier afin de recuperer la liste de toutes les photos
On affiche la liste des photos avec un lien permettant de suprimer la photo selectionée
**********************************************************************************************/
function afficher_suprimer_photos($dossier_destination){
// On verifie que le dossier de destination existe
if(is_dir ($dossier_destination)==false){
echo "Dossier de destination inexistant ";
}
else{
// On ouvre le dossier ou se trouve les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On donne la liste des extensions de fichier a afficher
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

echo "\r\n <center>";
// On affiche les photos contenu dans le dossier
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
// Encode le nom du fichier
$resultat = utf8_encode($resultat);
// On recupere l'extension du fichier
$infosfichier = pathinfo($resultat);
$extension = strtolower($infosfichier['extension']);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension, $extensions_autorisees)){
// Pour lisibilité du code généré:
echo "\r\n ";
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo "<hr /><br /><a href='?supprimerphoto=".$resultat."'>Supprimer la photo: ".$resultat."</a><br /><br />";
// Pour lisibilité du code généré:
echo "\r\n ";
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo '<img src="'.$dossier_destination.'/miniature/'.$resultat.'" ><br /><br /><img src="'.$dossier_destination.'/'.$resultat.'" ><br /><br />';
}
}
}
// On referme le dossier
closedir($dossier);
echo "\r\n </center>";
}// fin du else verification d'existance du dossier
}


/**********************************************************************************************
FONCTION PRINCIPALE QUI S'OCCUPE DE SCANNER LE DOSSIER ET AFFICHER LE DIAPORAMA
$dossier_destination: Le dossier à scanner pour afficher le diaporama
**********************************************************************************************/
function afficher_diaporama($dossier_destination){
// On ouvre le dossier ou se trouvent les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

$contenu_dossier_photo = array();
$nom_photo = array();
// on affiche toutes les photos contenu dans le dossier
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
// Encode le nom du fichier
$resultat = utf8_encode($resultat);

$fileChunks = array_reverse(explode(".", $resultat));
$extension_resultat = strtolower($fileChunks[0]);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension_resultat, $extensions_autorisees)){
// On integre toute les photos dans un array $contenu_dossier_photo
$contenu_dossier_photo[]=$resultat;
$nom_photo[]=$fileChunks[1];
}
}
}

// On recupere l'indice du dernier enregistrement de l'array $contenu_dossier_photo
$nb_photos=count($contenu_dossier_photo);

// On genere le code javascript permettant d'afficher le diaporama
if($nb_photos > 0){
?>
<script type="text/javascript">
$(document).ready(function(){
$('#diaporama').transition({
title: '<?php echo GALLERY_TITLE ?>', // Gallery title
autoRun: <?php echo GALLERY_AUTORUN ?>, // Autorun slideshow ?
displayTime: <?php echo GALLERY_IMAGE_DISPLAY_TIME ?>, // How long an image is displayed
transitionTime: <?php echo GALLERY_IMAGE_TRANSITION_TIME ?>, // Duration of the fade in/fade out effect
width: <?php echo GALLERY_IMAGE_MAX_WIDTH ?>, // Maximum width of the gallery images
height: <?php echo GALLERY_IMAGE_MAX_HEIGHT ?>, // Maximum height of the gallery images
thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display
thumbSize: {width: <?php echo GALLERY_THUMB_MAX_WIDTH ?>, height: <?php echo GALLERY_THUMB_MAX_HEIGHT ?>}, // Size of each thumbnail
displayTitle: <?php echo GALLERY_DISPLAY_TITLE ?>, // Display the gallery title
displayCaption: <?php echo GALLERY_DISPLAY_CAPTION ?>, // Display the images caption
images : [<?php
// On affiche toute les lignes correspondant aux photos
for($i=0; $i<$nb_photos; $i++){
// Pour lisibilité du code généré:
echo "\r\n ";
// Insertion de l'image:
echo "{image: '".$dossier_destination."/".$contenu_dossier_photo[$i]."', thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."', title: '".$nom_photo[$i]."'}";
// Pas de virgule après la dernière image:
if($i<$nb_photos-1){
echo",";
}
}
// Pour lisibilité du code généré:
echo "\r\n ";
?>]
});
});
</script>
<div id="container">
<div id="diaporama"></div>
</div>
<?php
}
}


/**********************************************************************************************
FONCTION PERMETTANT D'ARRONDIR LES ANGLES DE LA PHOTO $image
La photo doit etre au format png
On créer 4 images png correspondant au 4 angles
On superpose ces 4 images a l'image de depart
**********************************************************************************************/
function arrondir_angle($image, $rayon_arrondi){
// Cette partie peut etre activé si le fichier source n'est pas au format png
$image_create=imagecreatefrompng ($image);

// on recupere la taille de l'image
$taille=getimagesize($image);

// On determine la largeur et la hauteur de l'image contenant les coin
$largeur_coin = $rayon_arrondi/2;
$hauteur_coin = $rayon_arrondi/2;

// ********* Coin Bas Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$largeur_coin,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, $taille[1]-$largeur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Bas Droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, $taille[0]-$largeur_coin, $taille[1]-$hauteur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$hauteur_coin,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, 0, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopymerge($image_create, $image_coin, $taille[0]-$largeur_coin, 0, 0, 0, $largeur_coin, $hauteur_coin,100 );
// On detruit l'image du coin
imagedestroy($image_coin);

// On rend la couleur noir transparent, transparente ...
$couleur_a_rendre_transparente = imagecolorallocatealpha($image_create, 0, 0, 0, 0);
imagecolortransparent($image_create, $couleur_a_rendre_transparente);

// On enregistre l'image png de la photo et des coins arrondis
imagepng($image_create,$image);

// On detruit l'image créer
imagedestroy($image_create);
}
?>
</body>
</html>

Commentaire de crazygogo le 30/11/2009 10:57:14

j'essaye aussi de modifier le fichier jquery.transition-0.2.1.js car il aime bien que les images carrées pour la barre des miniatures.....

Commentaire de giloum le 30/11/2009 11:36:02

Salut CrasyGogo, super les améliorations que tu as faites sur le script, surtout les déclarations globales au début. Je pense jamais a faire comme ça ... Mais c'est bien plus clair a comprendre et a modifier. Je n'avais plus trop de temps ces jours derniers, mais je crois avoir trouver un diaporama en js plus sympa que celui ci (on dirait que tu as retrouvé le code original). Si ça ne te dérange pas je voudrais bien mettre le code que tu as modifier dans l'"entête" du post. Il me parait bien plus fini comme ça.
Et je posterai ensuite la modif avec la nouvelle partie en js.
J'aimerai bien pouvoir enregistrer un commentaire concernant chaque photos dans un fichier xml (plus simple dans l'utilisation q'une BDD). Mais il faut que je me documente un peu d'abord (jamais utilisé de xml encore ...)
En tout cas, beau travail de modification.
PS: Je rajouterai aussi une capture d'écran un peu plus tard.

Commentaire de crazygogo le 30/11/2009 11:42:26

oui vas-y pas de problème je poste le code ici pour que tout le monde puisse le commenter et l'améliorer...

pour la description des photos c'est vrai que pour faire simple j'ai pris le nom du fichier mais c'est pas top ! !!

:)

Commentaire de giloum le 30/11/2009 12:53:53

Je suis en train de relire et remettre en forme ton code, et il y a un truc que je comprend pas ... Pourquoi tu refait un deuxième test:  if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true){ ... avant d'afficher le formulaire d'upload.
Il ne serait pas plus simple de ne pas faire le deuxième test et d'appeler la fonction d'affichage du diapo après la fin du premier test de $_SESSION['admin']).
J'espère que tu as compris ce que j'essaye de dire ... J'ai pas trop l'habitude de communiquer avec d'autre personnes a l'écrit ...

Commentaire de crazygogo le 30/11/2009 13:39:51

désolé pour la mise en forme mais il me prend pas les tabulations !

sinon j'ai fais ça pasque je voulais que le diaporama s'affiche au dessus du formulaire

Commentaire de giloum le 30/11/2009 14:37:53

Ok, j'ai compris ...
Sinon, je viens de modifier le code d'en l'entête du post.
Et j'ai fait juste une modification a la ligne 224, en modifiant l'appel de la page diaporama.php par # (page en cour). Cela permettra d'utiliser la fonction sur n'importe quel page ...

Commentaire de banditus le 07/12/2009 16:08:30

Serait 'il possible de m'indiquer la marche à suivre pour l'intégrer.

Ps : je suis débutant, je réalise mont premier site.

Bien à vous lino

Commentaire de giloum le 07/12/2009 19:52:35

Bonjour Banditus, pour pouvoir intégrer le diaporama a une page, il faut d'abord que ta page soit au format php et que tu puisse l'exécuter sur un serveur gérant le php (en local ou en distant).
Ensuite il faut que tu enregistre les fichiers jquery-1.3.1.js et jquery.transition-0.2.1.pack.js dans un dossier situé a la racine de ton site, tu peux par exemple l'appeler js. Et le fichier  diaporama."css" dans un dossier s'appelant "css" par exemple.
Il faudra indiquer le chemin de ces fichiers dans le contenu des lignes 6,31,32.
Ensuite tu peux enregistrer le contenu des fonctions (ligne 94 a ligne 525) dans un fichier s'appelant par exemple fonction_diaporama.php que tu peux enregistrer dans un dossier "fonction" (je ne te donne que des exemples de nom, tu peux les appeler comme tu veux).
Dans la page ou tu souhaite afficher le diaporama, il va falloir inclure le fichier fonction_diaporama.php et appeler la fonction diaporama() en lui donnant des "parametres". Pour t'aider un peut copie ce code:
<?php
include ('fonction/fonction_diaporama.php'); // Tu indique le chemin vers ton fichier contenant les fonctions
/*********************** PARAMETRAGE DU SCRIPT ***********************/

// Hauteur maxi des images
define("HAUTEUR_MAXI_IMAGE", "300");

// Hauteur maxi des miniatures
define("HAUTEUR_MAXI_THUMB", "50");

// Poids maxi d'un fichier
define("POIDS_FICHIER_MAX", "20000000");

// Rayon de l'arrondi d'une image
define("RAYON_ARRONDI_IMAGE", "30");

// Rayon de l'arrondi d'une miniature
define("RAYON_ARRONDI_THUMB", "10");

// Titre du diaporama
define("GALLERY_TITLE", "Diaporama");

// Démarage automatique
define("GALLERY_AUTORUN", "true");

// Temps d'affichage de chaque image
define("GALLERY_IMAGE_DISPLAY_TIME", "2000");

// Durée de la transition
define("GALLERY_IMAGE_TRANSITION_TIME", "500");

// Hauteur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_HEIGHT", "300");

// Largeur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_WIDTH", "400");

// Hauteur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_HEIGHT", "50");

// Largeur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_WIDTH", "66");

// Afficher le titre du diaporama
define("GALLERY_DISPLAY_TITLE", "true");

// Afficher le titre des images
define("GALLERY_DISPLAY_CAPTION", "true");

// Affichage en Consultation ou en Modification selon cette variable:
$_SESSION['admin']=true; // Si tu veux pouvoir avoir accès a l'upload et a la suppression des photos tu laisse cette ligne, sinon tu la remplace par $_SESSION['admin']=false;

/******************* FIN DU PARAMETRAGE DU SCRIPT ********************/

// On appelle la fonction avec en paramètre le nom du dossier à scanner:
diaporama("images_diaporama"); // tu indique ici le nom du dossier ou tu souhaite enregistrer les photos. Ce n'est pas la peine de créer le dossier toi même, le script le créera automatiquement.


?>
Il faudra aussi que dans l'en tete de ta page ou dans le fichier css de ton site tu indique ceci:
<style type="text/css">
body
{
background: white;
font-family:Arial, Helvetica, sans-serif;
}
div#container
{
text-align: left;
}
a
{
color: #385898;
font-size:14px;
font-weight:bold;
text-decoration:none;
}
legend
{
color: #385898;
font-size:12px;
}
</style>

Je pense avoir fait le tour ...
Essaye comme ça et si cela ne fonctionne pas n'hésite pas a redemander des explications ...
Bonne chance dans la création de ton site !!!
Giloum.

Commentaire de kdoduciel le 07/01/2010 13:36:31 10/10

Bonjour et bonne année à tous!
La source est super je vous remercie tous les deux pour le merveilleux travail réalisé. C'est exactement ce que je cherchais. Bravo!
En local c'est du billard, ça marche presque tout seul ;-)
Sur le serveur c'est une autre petite chanson :-))
Si je mets tout en vrac dans un seule et unique dossier et que je désactive la création automatique des dossiers "images diaporama" et "miniature" et que je les crée manuellement en leur donnant les droits 777 ça fonctionne.
Mais je cherche à respecter la structure de toutes les pages du site.
La structure:
-une page config.php
-une page index qui inclus : require("haut_page"),require("page_menu"),require("diaporama"ou autre),require("page_bas").
- une page CSS
et en local ça marche
Sur le serveur j'obtiens ce message:
Warning: move_uploaded_file(cuisine1rdm.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/httpd/vhosts/typique.info/httpdocs/diaporama.php on line 86

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpZQoows' to 'cuisine1rdm.jpg' in /home/httpd/vhosts/typique.info/httpdocs/diaporama.php on line 86

et plein d'autres erreur

Voici la ligne 86
// On copie le fichier original dans le repertoire courant
// Copier d'abord le fichier permet d'economiser la memoire du serveur
move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);

Je précise que pour que cela fonctionne en local j'ai du ajouter dans le formulaire:
$complet_adr="fichier=diaporama";(stocké dans config.php)

<form method="POST" action="index.php?<?php echo $complet_adr;?>" enctype="multipart/form-data">

ainsi que dans le lien qui supprime les images
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo '<hr /><br /><a href="?'.$complet_adr.'&amp supprimerphoto='.$resultat.'">Supprimer la photo: '.$resultat.'</a><br /><br />';

Les droits de diaporama.php, images_diaporama et miniature sont à 777! Il me semble que c'est une histoire de chemin mais je nage,rame, pagaie dans la semoule.
Merci d'avance de l'attention que vous porterez à ce message.

Commentaire de giloum le 07/01/2010 21:16:13

Salut, et bonne année a tous aussi ...
Petite question toute bête, es tu sur que ton serveur (distant) gere la fonction move_uploaded_file() ???
Tu peux essayer d'uploader tout simplement un fichier pour voir.
Par exemple chez l'hebergeur que j'utilise (celeonet) la fonction n'est pas bloqué, mais je suis limité a 2 megas par fichier envoyé.
Bonne chance et si ce n'est pas ça tiens moi au jus ....

PS: C'est quoi httpd dans /home/httpd/vhosts/typique.info/httpdocs/ ???

Commentaire de kdoduciel le 08/01/2010 10:55:15

Merci Giloum de te pencher sur mon cas. J'ai exposé mon problème à mon hébergeur et il ne m'a pas signaler d'interdictions de certaine fonction.
Ce qui se confirme, si je fais un copier - coller de la source et que je mets tout dans un dossier le code fonctionne.
Sauf la création automatique des dossiers et attribution des droits, j'ai du le faire manuellement mais ça me va aussi.Après, tout fonctionne.
Tu peux le voir ici http://www.typique.info/version_0.08/diaporama/diaporama.php

Ici la version que j'ai mis à ma sauce, pour respecter la structure de mes pages. Elle fonctionne en local, mais qui ne fonctionne plus sur site: http://www.typique.info/index.php?fichier=diaporama

Si, dans cette version,je place manuellement des images dans les dossiers le diaporama fonctionne donc c'est surement une question de chemin lors de la création,redimensionement, des images mais je trouve pas. Comme tu peux le voir je passe déjà des infos par GET c'est peut-être là mon problème.
Si nécessaire je poste le code.
Pour répondre à ta question, j'en sais rien... Je suis assez novice en php et JS, httpdocs est le dossier du serveur où je place mes pages plus loin ça dépasse mes connaissances...
Merci

Commentaire de giloum le 08/01/2010 11:36:26

Salut, je viens de regarder ton site et effectivement cela ne fonctionne pas ... Je pense que tu as raison, c'est un problème de chemin.  Es ce que tu peux poster le code de tes pages: index, et include ou se trouve les fonctions du diaporama. Je ne pense pas que de passer des variables en GET soit le problème, car lors de l'envoie du fichier ça se fait en POST. Au pire il pourrait y avoir un problème pour la suppression uniquement.
Petite info, tu sait que lorsque tu inclus un fichier, cela revient a faire un copier coller du code que tu inclus. C'est a dire que les chemins que tu donne dans la page que tu veux inclure doivent être relatif a la page dans laquelle se fait l'"inclusion" et pas par rapport a la ou se trouve la page incluse ... (j'espère que tu me suit ...) J'ai mis un moment a piger le truc ...
Bonne chance.
Gilles.

Commentaire de kdoduciel le 08/01/2010 13:04:41

//////////////////// voici config.php

<?php
//----- pour completer l'adresse dans les liens utilisé quand on supprime ou envoie une image ligne 122 et 226 de diaporama.php
$complet_adr="fichier=diaporama";

//----- liste des contenus autorisés  "diaporama" => "Réalisations",
$liste = array(
"accueil" => "Bienvenue",
"realisation" => "Réalisations",
"contact" => "Contact"


);

/*********************** PARAMETRAGE DU SCRIPT Diaporama***********************/

// Hauteur maxi des images
define("HAUTEUR_MAXI_IMAGE", "415");

// Hauteur maxi des miniatures
define("HAUTEUR_MAXI_THUMB", "50");

// Poids maxi d'un fichier
define("POIDS_FICHIER_MAX", "20000000");

// Rayon de l'arrondi d'une image
define("RAYON_ARRONDI_IMAGE", "30");

// Rayon de l'arrondi d'une miniature
define("RAYON_ARRONDI_THUMB", "10");

// Titre du diaporama
define("GALLERY_TITLE", "Diaporama");

// Démarage automatique
define("GALLERY_AUTORUN", "true");

// Temps d'affichage de chaque image
define("GALLERY_IMAGE_DISPLAY_TIME", "2000");

// Durée de la transition
define("GALLERY_IMAGE_TRANSITION_TIME", "500");

// Hauteur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_HEIGHT", "415");

// Largeur maxi des images de la galerie
define("GALLERY_IMAGE_MAX_WIDTH", "600");

// Hauteur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_HEIGHT", "50");

// Largeur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_WIDTH", "66");

// Afficher le titre du diaporama
define("GALLERY_DISPLAY_TITLE", "true");

// Afficher le titre des images
define("GALLERY_DISPLAY_CAPTION", "true");

// Affichage en Consultation ou en Modification selon cette variable:
$_SESSION['admin']=true;

/******************* FIN DU PARAMETRAGE DU SCRIPT ********************/
?>

/////////////////////////////////////////////////////////voici: diaporama.php

<?php
// On appelle la fonction avec en paramètre le nom du dossier à scanner:
diaporama("images_diaporama");

/***********************************************************************************************************************************************************************
SCIPT PERMETTANT DE GENERER UN DIAPORAMA EN JAVASCRIPT AFFICHANT AUTOMATIQUEMENT LES PHOTOS EXTRAITES D'UN REPERTOIRE.
APRES VERIFICATION DES DROITS D'UTILISATEURS, LE SCRIPT PERMET D'UPLOADER, D'ARRONDIR LES ANGLES, DE REDIMENSIONNER, ET DE CREER UNE MINIATURE DE LA PHOTO.
***********************************************************************************************************************************************************************/

/**********************************************************************************************
Fonction permettant l'ajout d'une photo.
$dossier_destination est le dossier de destination ou les fichiers seront enregistré,
si le dossier n'existe pas, il sera crée automatiquement ainsi que le sous dossier contenant les mininiature.
Le chemin du dossier doit etre indiqué depuis la page ou l'on appelle la fonction.
Les extensions autorisées sont 'png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG'.
$code_couleur_fond est la couleur de fond du diaporama
**********************************************************************************************/
function diaporama($dossier_destination){
// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin']) && $_SESSION['admin']==true){
// On verifie que le dossier ou l'on veut enregistrer existe, sinon on le creér en lui donnant les droit 755
if(is_dir ($dossier_destination )==false){
//mkdir ("$dossier_destination",0755);
}

// On verifie que le dossier ou l'on veut enregistrer les miniatures existe, sinon on le creér en lui donnant les droit 755
$dossier_miniature = $dossier_destination."/miniature";
if(is_dir($dossier_miniature )==false){
//mkdir("$dossier_miniature",0755);
}

// Si l'utilisateur arrive sur cette page en voulant supprimer une photo
if(isset($_GET['supprimerphoto'])){
$_GET['supprimerphoto'] = utf8_decode($_GET['supprimerphoto']);
// On teste si les fichiers existent
if(file_exists($dossier_destination.'/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/'.$_GET['supprimerphoto']);
}
if(file_exists($dossier_destination.'/miniature/'.$_GET['supprimerphoto'])){
// On suprime le fichier
unlink($dossier_destination.'/miniature/'.$_GET['supprimerphoto']);
}
}

// On teste si la variable $_FILES declare une erreur
if(isset($_FILES['fichier']['error'])){
switch ($_FILES['fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
}

// On teste si un fichier a eté envoyé
if(isset($_FILES['fichier'])){
// On teste si le fichier n'est pas trop gros
if($_FILES['fichier']['size'] <= POIDS_FICHIER_MAX){
// On décode le nom du fichier
$_FILES['fichier']['name'] = utf8_decode($_FILES['fichier']['name']);

// On recupere le type d'extension du fichier et on le place dans $extension_upload
$infosfichier = pathinfo($_FILES['fichier']['name']);
$extension_upload = strtolower($infosfichier['extension']);

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

// On verifie si l'extension du fichier correspond a une extension autorisé
if (in_array($extension_upload, $extensions_autorisees)){
// on creer le chemin du repertoire de destination
$chemin_fichier=$complet_adr.$dossier_destination.'/';
$chemin_fichier_miniature=$dossier_miniature.'/';

// On copie le fichier original dans le repertoire courant
// Copier d'abord le fichier permet d'economiser la memoire du serveur
move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);

// On fixe les droit sur le fichier a 0644
chmod($_FILES['fichier']['name'],0644);

// On redimensione le fichier image pour créer un fichier image png de dimension reduite
$nom_fichier_modifier = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_IMAGE, $chemin_fichier);

// On arondi les angles de l'image
//arrondir_angle($nom_fichier_modifier, RAYON_ARRONDI_IMAGE);

// On redimensione le fichier reduit pour créer une miniature
$nom_fichier_miniature = redimensionner_image($_FILES['fichier']['name'], HAUTEUR_MAXI_THUMB, $chemin_fichier_miniature);

// On arondi les angles de l'image miniature
//arrondir_angle($nom_fichier_miniature, RAYON_ARRONDI_THUMB);

// On suprime le fichier original
unlink($_FILES['fichier']['name']);

}// Fin du test de l'extension
else echo "extension non autorisée";
} // Fin du test du poid du fichier
else echo "fichier trop lourd";
}// Fin de l'isset $_FILES['fichier']
}// fin du if $_SESSION['admin']==true

afficher_diaporama($dossier_destination);

// On verifie que l'utilisateur possede les droit pour administrer le script
if(isset ($_SESSION['admin'])&&$_SESSION['admin']==true){
//---- permet de modifier le chemin des dossier, en passant un contenu valide
global $complet_adr;
// On affiche le formulaire d'envoi d'une image
?> <center>
<br /><hr />
<form method="post" action="index.php?<?php echo $complet_adr;?>" enctype="multipart/form-data">
<fieldset style="width:340px;"><legend>&nbsp;Ajouter une image&nbsp;</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo POIDS_FICHIER_MAX; ?>" />
<input type="file" name="fichier" size="35" /><br />
<input type="submit" name="envoi" value="Envoyer la photo" />
</fieldset>
</form>
</center><?php
// echo 'vaut:'.$complet_adr;
// Fin du formulaire

// On affiche les photos et un lien pour les suprimer
afficher_suprimer_photos($dossier_destination);
}
}


/**********************************************************************************************
FONCTION PERMETTANT DE REDIMENSIONER UNE PHOTO A UNE TAILLE VOULU  
La variable $image corespond a l'image source
Les variable $hauteur et $largeur corespondent a la largeur-maxi et la hauteur-maxi voulu
La variable $masque correspond a l'image que l'on superposera a l'image de depart
La variable $chemin_fichier correspond au dossier de destination + / + nom de fichier original
**********************************************************************************************/
function redimensionner_image($image, $hauteur, $chemin_fichier){
// On recupere l'extension de l'image
$infosfichier = pathinfo($image);
$extension = strtolower($infosfichier['extension']);
switch($extension){
case "jpg"  : $image_create=imagecreatefromjpeg($image); break;
case "jpeg" : $image_create=imagecreatefromjpeg($image); break;
case "gif"  : $image_create=imagecreatefromgif($image); break;
case "png"  : $image_create=imagecreatefrompng($image); break;
}

// on recupere la taille de l'image
$taille=getimagesize($image);
// echo "Hauteur originale de l'image: ".$taille[1]."<br />";
// echo "Largeur originale de l'image: ".$taille[0]."<br />";

// on calcule le ratio de redimentionement entre la hateur de l'image et la hauteur voulu
$ratio=$taille[1]/$hauteur;
// echo "ratio= ".$ratio."<br />";

// On calcule les nouvelles dimensions de l'image
$new_largeur=$taille[0]/$ratio;
$new_hauteur=$taille[1]/$ratio;
// echo "Nouvelle Hauteur de l'image: ".$new_hauteur."<br />";
// echo "Nouvelle Largeur de l'image: ".$new_largeur."<br /><br />";

// On creer l'image de destination vide avec les nouvelles dimensions
$new_image = imagecreatetruecolor($new_largeur, $new_hauteur);

// On copie l'image uploader dans l'image vide
$copy = imagecopyresampled($new_image, $image_create, 0, 0, 0, 0, $new_largeur, $new_hauteur, $taille[0], $taille[1]);

// On remplace l'extension du fichier image par png
$nom_du_fichier_png = str_replace($infosfichier['extension'],"png",$infosfichier['basename']);

// On enregistre l'image au format png
imagepng($new_image,$chemin_fichier."/".$nom_du_fichier_png);

// On detruit l'image $new_image
imagedestroy($new_image);

// On renvoie le chemin du fichier créé
return $chemin_fichier."/".$nom_du_fichier_png;
}


/**********************************************************************************************
FONCTION PERMETTANT D'AFFICHER ET DE SUPRIMER UNE PHOTO
On scanne le dossier afin de recuperer la liste de toutes les photos
On affiche la liste des photos avec un lien permettant de suprimer la photo selectionée
**********************************************************************************************/
function afficher_suprimer_photos($dossier_destination){
global $complet_adr;
// On verifie que le dossier de destination existe
if(is_dir ($dossier_destination)==false){
echo "Dossier de destination inexistant ";
}
else{
// On ouvre le dossier ou se trouve les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On donne la liste des extensions de fichier a afficher
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

echo "\r\n <center>";
// On affiche les photos contenu dans le dossier
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
// Encode le nom du fichier
$resultat = utf8_encode($resultat);
// On recupere l'extension du fichier
$infosfichier = pathinfo($resultat);
$extension = strtolower($infosfichier['extension']);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension, $extensions_autorisees)){
// Pour lisibilité du code généré:
echo "\r\n ";
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo '<hr /><br /><a href="?'.$complet_adr.'&amp supprimerphoto='.$resultat.'">Supprimer la photo: '.$resultat.'</a><br /><br />';
// Pour lisibilité du code généré:
echo "\r\n ";
// On affiche la photo avec un lien pointant sur cette meme page avec en argument $_GET le nom de la photo
echo '<img src="'.$dossier_destination.'/miniature/'.$resultat.'" ><br /><br /><img src="'.$dossier_destination.'/'.$resultat.'" ><br /><br />';
}
}
}
// On referme le dossier
closedir($dossier);
echo "\r\n </center>";
}// fin du else verification d'existance du dossier
}


/**********************************************************************************************
FONCTION PRINCIPALE QUI S'OCCUPE DE SCANNER LE DOSSIER ET AFFICHER LE DIAPORAMA
$dossier_destination: Le dossier à scanner pour afficher le diaporama
**********************************************************************************************/
function afficher_diaporama($dossier_destination){
// On ouvre le dossier ou se trouvent les photos
$dossier = opendir($dossier_destination) or die('Erreur');

// On donne la liste des extensions autorisées
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

$contenu_dossier_photo = array();
$nom_photo = array();
// on affiche toutes les photos contenu dans le dossier
while($resultat = readdir($dossier)){
// On teste si $resultat n'est pas un dossier ou un lien parrent
if($resultat != '.' && $resultat != '..' && !is_dir($dossier_destination."/".$resultat) ){
// Encode le nom du fichier
$resultat = utf8_encode($resultat);

$fileChunks = array_reverse(explode(".", $resultat));
$extension_resultat = strtolower($fileChunks[0]);

// On verifie si l'extension du fichier correspond a une extension autorisé
if(in_array($extension_resultat, $extensions_autorisees)){
// On integre toute les photos dans un array $contenu_dossier_photo
$contenu_dossier_photo[]=$resultat;
$nom_photo[]=$fileChunks[1];
}
}
}

// On recupere l'indice du dernier enregistrement de l'array $contenu_dossier_photo
$nb_photos=count($contenu_dossier_photo);

// On genere le code javascript permettant d'afficher le diaporama
if($nb_photos > 0){
?>
<script type="text/javascript">
$(document).ready(function(){
$('#diaporama').transition({
title: '<?php echo GALLERY_TITLE ?>', // Gallery title
autoRun: <?php echo GALLERY_AUTORUN ?>, // Autorun slideshow ?
displayTime: <?php echo GALLERY_IMAGE_DISPLAY_TIME ?>, // How long an image is displayed
transitionTime: <?php echo GALLERY_IMAGE_TRANSITION_TIME ?>, // Duration of the fade in/fade out effect
width: <?php echo GALLERY_IMAGE_MAX_WIDTH ?>, // Maximum width of the gallery images
height: <?php echo GALLERY_IMAGE_MAX_HEIGHT ?>, // Maximum height of the gallery images
thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display
thumbSize: {width: <?php echo GALLERY_THUMB_MAX_WIDTH ?>, height: <?php echo GALLERY_THUMB_MAX_HEIGHT ?>}, // Size of each thumbnail
displayTitle: <?php echo GALLERY_DISPLAY_TITLE ?>, // Display the gallery title
displayCaption: <?php echo GALLERY_DISPLAY_CAPTION ?>, // Display the images caption
images : [<?php
// On affiche toute les lignes correspondant aux photos
for($i=0; $i<$nb_photos; $i++){
// Pour lisibilité du code généré:
echo "\r\n ";
// Insertion de l'image:
echo "{image: '".$dossier_destination."/".$contenu_dossier_photo[$i]."', thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."', title: '".$nom_photo[$i]."'}";
// Pas de virgule après la dernière image:
if($i<$nb_photos-1){
echo",";
}
}
// Pour lisibilité du code généré:
echo "\r\n ";
?>]
});
});
</script>
<div id="container">
<div id="diaporama"></div>
</div>
<?php
}
}


/**********************************************************************************************
FONCTION PERMETTANT D'ARRONDIR LES ANGLES DE LA PHOTO $image
La photo doit etre au format png
On créer 4 images png correspondant au 4 angles
On superpose ces 4 images a l'image de depart
**********************************************************************************************/
function arrondir_angle($image, $rayon_arrondi){
// Cette partie peut etre activé si le fichier source n'est pas au format png
$image_create=imagecreatefrompng ($image);

// on recupere la taille de l'image
$taille=getimagesize($image);

// On determine la largeur et la hauteur de l'image contenant les coin
$largeur_coin = $rayon_arrondi/2;
$hauteur_coin = $rayon_arrondi/2;

// ********* Coin Bas Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$largeur_coin,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, $taille[1]-$largeur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Bas Droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,0, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, $taille[0]-$largeur_coin, $taille[1]-$hauteur_coin, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut Gauche ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,$rayon_arrondi-$hauteur_coin,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopy($image_create, $image_coin, 0, 0, 0, 0, $largeur_coin, $hauteur_coin);
// On detruit l'image du coin
imagedestroy($image_coin);

// ********* Coin Haut droit ********/
// On créer une image vide nomé $image_coin de couleur $couleur_fond et de taille $rayon_arrondi
$image_coin = imagecreate($largeur_coin, $hauteur_coin);
// On attribu une couleur (noir transparent, normallement sa n'existe pas souvent) au fond
$couleur_fond_coin = imagecolorallocatealpha($image_coin, 0, 0, 0, 0);
// On attribu une couleur transparente
$couleur_transparente_coin = imagecolorallocate($image_coin, 255, 255, 255); // pour le moment la couleur est blanche
// On rend la couleur blanche transparente
imagecolortransparent($image_coin, $couleur_transparente_coin);
// On créer un cercle plein de rayon $rayon_arrondi, de position -2, -2 et de couleur $couleur_transparente_coin
imagefilledellipse($image_coin,0,$rayon_arrondi-$largeur_coin, $rayon_arrondi, $rayon_arrondi, $couleur_transparente_coin);
// On copie l'image $image_coin sur l'image principal $image
imagecopymerge($image_create, $image_coin, $taille[0]-$largeur_coin, 0, 0, 0, $largeur_coin, $hauteur_coin,100 );
// On detruit l'image du coin
imagedestroy($image_coin);

// On rend la couleur noir transparent, transparente ...
$couleur_a_rendre_transparente = imagecolorallocatealpha($image_create, 0, 0, 0, 0);
imagecolortransparent($image_create, $couleur_a_rendre_transparente);

// On enregistre l'image png de la photo et des coins arrondis
imagepng($image_create,$image);

// On detruit l'image créer
imagedestroy($image_create);
}
?>

//////////////////////////////////////// voici index.php

<?php
session_start();
//---- index.php atypique version 2010
require("includes/config.php");
require("includes/functions.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
<title>Ebénisterie Atypique - Au service du bois et des belles choses</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="atypique ,ébénisterie ,menuiserie,taravaux,rénovation,consturction en bois, bois,thomas achermann"/>
<meta name="description" content="Ebénisterie Atypique. Que ce soit dans le domaine du gros ½uvre, de la restauration de meubles anciens ou de la pause de cuisines, dans chaque réalisation vous retrouverez mon amour du bois et du travail soigné     "/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="icon" type="image/png" href="images/favicon.jpg" />
<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->

<link rel="stylesheet" type="text/css" href="style/style.css" />
<link href="style/diaporama.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<style type="text/css">


</style>
</style>
<script type="text/javascript" src="js/jquery-1.3.1.js"></script>
<script type="text/javascript" src="js/jquery.transition-0.2.1.pack.js"></script>
   </head>
   <body>
<div id="tout">
<div id="haut"><?php require("page_haut.php");?></div>

<div id="menu"><?php require("page_menu.php");?></div>

<div id="contenu"><?php select_contenu();?></div>

<div id="bas"><?php require("page_bas.php");?></div>
</div>

</body>
</html>

Voila dans fonction il n'y a rien qui concerne le diaporama, je n'ai pas osez le découper ;-)  c'est trop nouveau pour que je me lance.
Pour le chemin je suis toujours perdue je n'arrive pas à me souvenir d'une procédure rigoureuse et souvent quand ça ne fonctionne pas je change et j'essaie jusqu'à ce que ça marche :-))

Commentaire de kdoduciel le 08/01/2010 13:10:47

erratum:la ;-) fonction te sera peut-être utile? Je ne suis pas sure de garder: "diapocuis","diapoInt","diapoIndu","diapoMeub"
/////////// voici fonction.php
<?php
//-------------- les fonctions Atypique ------------
// Fonction selection  du contenu à afficher -----------------------------------
function select_contenu()
{
$liste= array("accueil","diaporama","contact","realisation","diapocuis","diapoInt","diapoIndu","diapoMeub");
$contenu=$_GET['fichier'];

if (in_array($contenu,$liste)) {
require($contenu.'.php');
}
else {
require('accueil.php');
}
}
?>

Commentaire de giloum le 08/01/2010 13:31:49

Es ce que ton dossier images_diaporama est bien situé au même niveau que ta page index.php ??? si ce n'est pas le cas il faut que tu donne le chemin de ton répertoire contenant les photos lors de l'appel de la fonction:
// On appelle la fonction avec en paramètre le nom du dossier à scanner:
diaporama("images_diaporama");
ou par exemple diaporama("repertoire_ou_tu_stoke_tes_images/images_diaporama_cuisine");

Par exemple sur un site ou tu souhaite afficher plusieurs diaporama contenant des photos différentes tu peux créer un dossier principal "photos_diapo" et dans ce dossier tu peux créer plusieurs dossiers comme diapo_cuisine, diapo_escalier .
Lorsque tu appelle la fonction diaporama sur la page que tu veux, il faut juste que tu donne le chemin du dossier qui contient les photos: diaporama("photos_diapo/diapo_escalier");


Commentaire de kdoduciel le 08/01/2010 14:50:39

Le chemin du dossier des images stockées est le bon puisque si je place des images avec fillezilla le diaporama fonctionne, je peux aussi suprimer une images ça fonctionne, c'est vraiment au niveau de l'enregistrement d'une nouvelle image que ça coince.

Commentaire de kdoduciel le 09/01/2010 10:34:23

Eurêka!!!!!!!!

C'est presque l'extase, bon je dis presque!!! Giloum ton message sur les includes m'a mis sur la piste. La structure du site a son importance. Cela change aussi pour la création automatique des dossiers où sont stockées les images! C'est ma page index.php qui inclus diaporama === (copié - coller du code) ;-) donc à la ligne 86:

84 // On copie le fichier original dans le repertoire courant
85 // Copier d'abord le fichier permet d'economiser la memoire du serveur
86    move_uploaded_file($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name']);

On cherche à écrire dans dans le répertoire httpdocs ( on dit 'racine' ? mais suis pas sure? ) si je lui donne les droits 777 le script fonctionne mais je ne sais pas si c'est dans les règles de donner autant de droit à un tel répertoire?

Un petit bug: Les boutons transparent sur la grande images apparaissent et fonctionne au survol mais je n'ai plus le défilement et les boutons dans la barre de miniature.
Merci pour la patience!

Commentaire de giloum le 09/01/2010 12:02:29

Salut, content que tu ai trouvé !!! J'avais oublié ce bout de code ... Sur mon hébergeur, je suis limité a 8 mega de "mémoire-vives", du coup si je garde le fichier en mémoire sans l'écrire quelque part, je dépasse cette limite lorsque je veux le redimensioner. J'ai du donc passer par cette solution ... Si tu veux tu peux la "zapper" et donc tu n'auras plus de problèmes d'autorisation d'écriture, si c'est le cas dis le moi et j'essayerai de te refaire le même code sans passer par cette étape. Après je ne pense pas qu'il y ait de gros problèmes de sécurité en donnant l'autorisation 777 a ton dossier "racine". Mais je suis loin d'être un expert en sécurité.
Pour ton problème de petite flèches, ça m'arrive aussi de temps en temps ... Je pense que c'est un bug sur le coté Javascript/css, j'ai pas trop cherché a savoir pourquoi, parce que je les ait virées de mon diaporama ...
@+, Gilles.

Commentaire de kdoduciel le 09/01/2010 12:32:41

Les boutons c'est pas grave, mais c'est le défilement qui manque c'est pas très joli, ni pratique, j'avais déjà ce problème en local...

Commentaire de lanner le 10/01/2010 14:45:18 6/10

Salut

Pourquoi la source est différente du contenu du zip ?
J'ai fait un test rapide je ne vois rien pour supprimer les photos , de même que la partie admin je ne l'ai pas compris

Commentaire de giloum le 10/01/2010 18:52:02

Salut Lanner, j'avais oublié de modifier le .zip, voila c'est fait ...
Il y a un lien pour supprimer les photos a coté de la ou elle sont affiché quand $_SESSION['admin']==true.
Il n'y a rien pour permettre a l'utilisateur de se logguer. C'est a toi de le mettre en place.
Bonne chance.

Ps: Kdoduciel, es ce que tu as réussi a régler ce problème d'affichage des flèches ??? Je n'ai pas trop de temps en ce moment, mais tu peux peut être essayer de mettre un nombre d'images moins important dans le parametrage de diapo (partie JS)
thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display => actuel
thumbs: 5, // Number of thumbnails to display => a essayé ...

Commentaire de kdoduciel le 13/01/2010 09:20:21

Merci Giloum je vais essayer ce que tu propose ça sembles tenir la route. Pour les droits j'ai posé la question à mon hébergeur et il me conseil de ne pas laisser les droits 777 au répertoire racine. C'est pas vraiment interdit mais ...
Alors je me suis battue avec les chemins, les dossier et les droits... mais c'est en place. Ouff!
J'ai du passer par des liens absoluts (comme la vodka) dans mes autres pages... Mais ça c'est mon manque de connaissance en php :-)
J'ai tout découpé. Les fonctions sont toutes dans ma page fonction. Sur la page diaporama il reste une peu de php (gestion de la session admin), du html mais que le strict minimum et l'appel de la fonction.
J'ai essayez de mettre en place plusieurs diaporama comme tu proposais, là si! je dis bien SI, j'y parviens c'est l'extase ;-) mais j'avoue qu'il y a un truc qui coince... Le script créer les dossiers comme prévu, si je place manuellement des images le diaporama se mets en marche, mais je ne parviens pas à enregistrer les images. Je reçois le message 'Erreur' ce message apparait quand la  function afficher_suprimer_photos($dossier_destination) est exécutée et que le programme ne trouve pas les dossiers de destination...Pourtant ils existent je le promet... Encore une histoire de chemin ;-)

Commentaire de kdoduciel le 13/01/2010 12:34:27

Giloum tu étais dans le vrai, c'est bien là qu'il faut changer:

thumbs: <?php echo $nb_photos ?>, // Number of thumbnails to display

ça c'est la ligne d'origine donc le script mets toutes les images comme maximum donc les boutons n'apparaissent plus.
J'ai défini une nouvelle constante dans config et la ligne devient:

thumbs: <?php echo NB_THUMB_DISPLAY ?>, // Number of thumbnails to display

J'ai choisi 5 et ça fonctionne mais attention ce n'est pas 5 images qui apparaissent dans les miniatures, c'est un rapport qui divisent le nb d'images et créer des blocs de défilement... Pas très claire?
En gros si j'ai 15 images et que je mets 1 il faut clicker 14 fois avant que le bouton disparaisse, si je mets 5 on click 2 fois et le btn disparait, si 10 aussi 2 click, mais la répartition des blocs est différentes, faite des essais vous comprendrez ;-)

Commentaire de kdoduciel le 15/01/2010 09:25:10

!!! Attention !!!
ça c'est le chemin dans le head:
# <script type="text/javascript" src="../../javascript/jquery-1.3.1.js"></script>
# <script type="text/javascript" src="../../javascript/jquery.transition-0.2.1.pack.js"></script>

Si on charge les zips des scripts JS individuellement. Ils portent le nom !!!   diaporama_jquery-1.3.1.js idem pour l'autre... J'ai cherché longtemps avant de comprendre.Pourquoi ça marchait plus...

Commentaire de giloum le 15/01/2010 18:08:25

Heu ??? J'ai pas compris de quoi tu parle ...
Peux tu développer ???
Merci.

Commentaire de kdoduciel le 18/01/2010 09:53:46

Comme membre club j'ai voulu chargé uniquement le script jquery-1.3.1.js en utilisant la liste qui est sous la source.
Le nom à gauche, en bleu, est bien le même que dans ta source, mais en cliquant sur la disquette pour enregistrer le fichier il s'enregistre avec le nom: diaporama_jquery-1.3.1.js
le mot "diaporama_" vient s'ajouter :-?
C'est le système du forum qui ajoute, transforme le nom comme ça... je viens de tester. Tous les fichiers JS,PHP,CSS,etc... chargés individuellement ont la même modification.
Il faut juste penser à renommer les fichiers comme dans la source ;-)
Je sais pas si c'est beaucoup plus claire? Mais une chose est sure Giloum t'y peux rien... C'est le forum...
Encore merci pour ton aide! Si un jour tu passe en valais je t'invite pour une raclette et un verre de Fendant.

Commentaire de giloum le 18/01/2010 16:11:35

OK, je comprenais pas du tout ce que tu voulais dire, mais maintenant c'est claire.
Merci pour l'invitation :-)
Giloum.

Commentaire de mayolphpcs le 01/02/2010 11:32:50

Bonjour.
Il y a un moment que je cherche un script comme celui-ci ET qui fonctionne (pour le moment, testé en local).
Super. Merci à GILOUM (et à CRAZYGOGO, pour les modifs).
C'est le premier que je trouve qui marche bien.
Famille et amis vont pouvoir s'en donner à c½ur joie sur mon espace web (chez celeonet).
Je ne voudrais pas abuser, mais ne serait-il pas mieux d'être averti de la taille trop importante de l'image (Largeur ou Longueur ou les 2) après avoir choisi le fichier et avant d' " envoyer " la photo ?
Cela éviterait, je suppose, ce genre d'erreur :
------------
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3264 bytes) in /Volumes/masto_intel/WEB/phpcs_DIAPORAMA-AVEC-AJOUT-REDIMENSIONEMENT-PHOTOS-CREATION-COINS-ARRONDIS___Page/diaporama/diaporama.php on line 229
-------------
Je ne suis pas assez féru de php pour le faire moi-même et le faire partager aux autres, mais si l'un d'entre vous pouvez nous concocter cette modification . ???
Ce serait super.

Commentaire de giloum le 01/02/2010 12:42:59

Salut Mayolphpcs, j'ai aussi ce genre d'erreur avec celeonet ... Ce n'est pas juste un problème de taille du fichier image (qui n'a rien a voir avec la largeur/hauteur mais le "poids" du fichier), c'est que le redimensionement de l'image demande plus de mémoire "vive" (je sais pas si on peut l'appeler comme ça) que ce qui t'es accordé par ton hebergeur. Pour que cela fonctionne avec un hebergement de "base" chez celeonet, il faut que ton fichier image fasse au maximum dans les 500 ko.
Bonne chance dans l'intégration de ton script !!!

Commentaire de fedebul le 12/03/2010 09:56:08

bonjour à tous !
il est super le diaporama, je l'ai un peu arrangé...
Mais j'ai une petite question, je voudrais que les petites vignettes ne s'affichent pas en dessous ! J'en ai pas besoin
vu que le diaporama fonctionne très bien à lui tout seul, ça fait doublon !!
Je n'y arrive pas, quand je vire à la ligne 411 : thumb: '".$dossier_destination."/miniature/".$contenu_dossier_photo[$i]."'

Il ne m'affiche plus du tout les images !
avez vous une idée ??
merci beaucoup

laurent

Commentaire de lanner le 12/03/2010 12:59:10

Resalut

Juste pour dire à premier test que l'archive doit vraiment être revu, les dossiers sont mal placés (celui de javascript n'existe pas) donc les appel des js ne sont pas bon (tout ce qui est dans le head avec ../..)
Forcement au premier test rien ne va :)
Voilou je vais faire le ménage et refaire un test :)

Commentaire de giloum le 12/03/2010 21:01:42

SALUT Fedebul, tu peux essayer de mettre les paramètres de hauteur largeur des miniatures a 0, comme ceci:

// Hauteur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_HEIGHT", "0");

// Largeur maxi des miniatures de la galerie
define("GALLERY_THUMB_MAX_WIDTH", "0");

Pour moi ça fonctionne très bien, comme sur ce site:
http://www.canyoning-gorgesdutarn.com

En espérant avoir pu t'aider.
Giloum.

PS: Lanner, je ferait la modif des includes quand j'aurais le temps ... Merci de me l'avoir signaler.

Commentaire de mypiuce le 17/03/2010 12:34:32

Bonjour Giloum !
j'admire ton boulot!!! je n'y connais rien en php mais je cherche désespérément depuis plus de 6 mois comment créer des diaporamas modifiables par n'importe qui et ton code me semble être la solution. seulement voilà, j'ai tout essayé et ca ne marche pas... j'ai lu tous les messages ci dessus échangés sur ce code et je ne comprends pas pourquoi ca ne marche pas...
Pourrais tu simplement envoyer un dossier complet, avec la page html qui appelle le diaporama en plus des fichiers php et js... Merci!!!

Commentaire de fedebul le 17/03/2010 17:26:30

bonjour et merci Giloum !
c'est fait ! tu as raison c'est le plus simple à faire...

A+
laurent

Commentaire de lanner le 17/03/2010 18:45:31

J'avais signalé que l'archive ne fonctionne pas si on l'utilise comme elle est proposée :)

Commentaire de juvaro le 24/03/2010 00:07:34

alors là je ne sais pas quoi dire =)
j'arrivais à la fin du temps imparti pour mon projet web et je n'avais pas le temps de développer une api similaire en flash et php... et là je tombe sur ce post... excellent! beau travail pour un autodidacte ;) j'y ai apporté quelques modifs pour le moment pour l'intégrer et tout à l'air de marcher. Je vous informerais dans le cas ou je rencontrerais des erreurs ou des possibilités d'améliorations éventuelles ;)
Merci beaucoup

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Galerie photos: Miniature + rognage [ par Kronikerz ] Bonjour, Je suis à la recherche de 2 scripts: le premier permettant de miniaturiser une image, tout en gardant les proportions. Le second dans le b PHP/MySQL page de miniatures et autre page d'affichage détaillé [ par pchappuis ] Bonjour. Je cherche à afficher la miniature correspondant à l'image de la page liée, en sachant que je peux avoir uniquement les images 2, 3, 5, 1 da Copyright image [ par kimengumi ] BonjourJ'ai bien aimé le script de webdesignasp pour écrire un copyright sur les images.En fait, j'enregistre l'image telle quelle sur mon serveur et Qualité miniature [ par TiotBour ] Bonjour a tous !J'ai un probleme de qualité avec mes miniatures qui sont faites automatiquement par la librairie GD2.Elle sont automatiquement redimen Diaporama Plein Ecran [ par gilles_geneve ] Sympa de trouver ce site....Qui peut me donner la commande pour affichêr une image plein ecran (diaporama),MerciGilles diaporama [ par morgandetoi06 ] bonjour, j ai voulu faire un diaporama en PHP/JSmaius il ne marche pas et je ne voit pas pksvp aidez moi: voila le code que j ai fait merci de me donn Liens PHP (appel d'un fichier PHP) [ par vincf1 ] Bonjour à tous tout d'abord Voila, j'explique mon petit soucis (je suis novice en PHP ).Mon but est d'afficher une image miniat Diaporama photos ? [ par JPR ] Bonjour,En regardant sur ce forum et d'autres, je vois qu'il y a plein de scripts pour effectuer un diaporama en PHP + MySQL. J'en cherche un de tr&#2 diaporama manuel avec image cliquable [ par fcomba ] Bonjour, Je cherche un diaporama qui permet de faire d&#233;filer manuellement des images (boutons "suivant" et "pr&#233;cedent") et qui permet de fa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales