Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GALLERIE PHOTO, THUMBNAIL AUTOMATIQUE


Information sur la source

Catégorie :Application Niveau : Débutant Date de création : 22/09/2003 Vu / téléchargé: 21 904 / 124 537

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


Description

voici une gallerie photo basique, mais tellement utile et fiable, que je vous la propose.
je l'ai developpé pour mes besoins personnel http://pictures.allboard.net

vous avez juste a placer vos images ou repertoires d'images dans /images/ et l'arborescence, les thumbnails sont generé automatiquement a l'ecran.
si les thumbnail existes deja, il sont juste affiché, sinon, il sont créé par php et placé dans le rep mirroir /thumbs/.

tres tres basique, C facilement updatable selon les besoins.
 

Source

  • // voici le code du fichier des fonctions
  • <?php
  • function createthumb($name,$filename, $thumb_x, $thumb_y, $caption)
  • {
  • if (!file_exists($filename)){
  • $img_in = imagecreatefromjpeg($name);
  • $img_out = imagecreatetruecolor($thumb_x, $thumb_y);
  • $tc = str_replace(".//","",$img);
  • imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
  • $white = imagecolorallocate($img_out, 255, 255, 255);
  • $black = imagecolorallocate($img_out, 0, 0, 0);
  • //imagestring($img_out,1,3,3,$caption,$black);
  • //imagestring($img_out,1,2,2,$caption,$white);
  • imagejpeg($img_out, $filename, 100);
  • imagedestroy($img_out);
  • imagedestroy($img_in);
  • }
  • }
  • function createDir($from, $to) {
  • $dossier=opendir($from);
  • while ($fichier = readdir($dossier)) {
  • $l = array('.', '..');
  • if (!in_array( $fichier, $l)){
  • if (is_dir($from."/".$fichier)){
  • if (!file_exists($to."/".$fichier)){
  • mkdir($to."/".$fichier, 0777);
  • chmod($to."/".$fichier."/", 0777);
  • }
  • createDir($from."/".$fichier,$to."/".$fichier);
  • }
  • }
  • }
  • }
  • function generate($fullsized , $thumbs){
  • $thumb_x = "128"; // Horizontal size of thumbnail created in pixels
  • $thumb_y = "96"; // Vertical size of thumbnail created in pixels
  • $dossier=opendir($fullsized);
  • while ($fichier = readdir($dossier)) {
  • $l = array('.', '..','Thumbs.db');
  • if (!in_array( $fichier, $l)){
  • $tmp = $thumbs."/".$fichier;
  • $tmp2 = $fullsized."/".$fichier;
  • $tmpd = ereg_replace("images/","",$tmp2);
  • if (is_dir($fullsized."/".$fichier)){
  • print("
  • <a href=\"?d=$tmpd&id=$id\" class=\"liens\">$fichier</a><br>
  • ");
  • } else {
  • $img_nfo = getimagesize($fullsized."/".$fichier);
  • createthumb($fullsized."/".$fichier,$thumbs."/".$fichier, $thumb_x, $thumb_y, $caption);
  • $url = "javascript:showimage('big.php?show=$fullsized/$fichier','$img_nfo[0]','$img_nfo[1]')";
  • print("
  • <a href=\"$url\"><img border=0 src=\"$tmp\"></a>
  • ");
  • }
  • }
  • }
  • }
  • ?>
// voici le code du fichier des fonctions

<?php

function createthumb($name,$filename, $thumb_x, $thumb_y, $caption)
{
	if (!file_exists($filename)){
		$img_in = imagecreatefromjpeg($name);
		$img_out = imagecreatetruecolor($thumb_x, $thumb_y);
		$tc = str_replace(".//","",$img);
		imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
		$white = imagecolorallocate($img_out, 255, 255, 255);
		$black = imagecolorallocate($img_out, 0, 0, 0);
		//imagestring($img_out,1,3,3,$caption,$black);
		//imagestring($img_out,1,2,2,$caption,$white);
		imagejpeg($img_out, $filename, 100);
		imagedestroy($img_out);
		imagedestroy($img_in);
	}
}

function createDir($from, $to) {
	$dossier=opendir($from); 
		while ($fichier = readdir($dossier)) { 
		$l = array('.', '..');
			if (!in_array( $fichier, $l)){ 
				if (is_dir($from."/".$fichier)){ 
					if (!file_exists($to."/".$fichier)){
					  mkdir($to."/".$fichier, 0777);
					  chmod($to."/".$fichier."/", 0777);
					}
					createDir($from."/".$fichier,$to."/".$fichier);
				}
			}
		}
}

function generate($fullsized , $thumbs){ 
$thumb_x	= "128";		// Horizontal size of thumbnail created in pixels
$thumb_y	= "96";			// Vertical size of thumbnail created in pixels
$dossier=opendir($fullsized); 
	while ($fichier = readdir($dossier)) { 
	$l = array('.', '..','Thumbs.db'); 
		if (!in_array( $fichier, $l)){ 
		$tmp = $thumbs."/".$fichier;
		$tmp2 = $fullsized."/".$fichier;
		$tmpd = ereg_replace("images/","",$tmp2);
		
			if (is_dir($fullsized."/".$fichier)){ 
				print("
				<a href=\"?d=$tmpd&id=$id\" class=\"liens\">$fichier</a><br>
				");
			} else {
				$img_nfo = getimagesize($fullsized."/".$fichier);
				createthumb($fullsized."/".$fichier,$thumbs."/".$fichier, $thumb_x, $thumb_y, $caption);
				$url = "javascript:showimage('big.php?show=$fullsized/$fichier','$img_nfo[0]','$img_nfo[1]')";
				print("
				<a href=\"$url\"><img border=0 src=\"$tmp\"></a>
				");
			} 
		} 
	} 
}
?>

Conclusion

sur votre repertoire ftp, vous devez placer les 2 repertoires vide /images/ et /thumbs/, tous les 2 chmodés en 777.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de iubito le 23/09/2003 04:08:39

au fait, est-ce quelqu'un sait comment faire pour créer des thumbnails de gifs ou de png ? ;-)

signaler à un administrateur
Commentaire de iubito le 23/09/2003 04:12:52

et j'ai oublié de dire, mon PHPmyBrowser qui va bientôt sortir en version béta 2 fait aussi gallerie d'image, et avec plus de sécurité. Là on peut se balader sur le serveur avec d=../ par exemple !

signaler à un administrateur
Commentaire de Sipadan le 23/09/2003 07:15:07

Salut BlackWizzard,
Ta source semble très intéressante, mais des que je l'ouvre j'ai : Fatal error: imagecreatetruecolor(): requires GD 2.0 or later in h:easyphpwwwlablablaimage.php on line 7, que doit je faire?
Par ailleurs je te félicite de tes sources et tutos que l'on peut trouver sur le net en php vb flash et autres.


signaler à un administrateur
Commentaire de iubito le 23/09/2003 14:36:20

rempalce par imagecreate mais c'est beaucoup moins bô

signaler à un administrateur
Commentaire de revinc le 24/09/2003 13:29:20

ça ne marchera pas iubito car imagecopyresampled n'est dispo qu'en gd 2 aussi

signaler à un administrateur
Commentaire de vbtom le 24/09/2003 17:37:53

pas encore mort blackwizard :)

signaler à un administrateur
Commentaire de thepopolinux le 26/09/2003 19:19:05

Tien gars j'ai une remarque à te faire : si tu te fais pas défacer ton site tora de la chance : il est tout con d'aller sur http://pictures.allboard.net/?d=/../..&id= et d'afficher tes arbo et eventuellement ouvrir tes fichiers ;)

bonne boure
@++

signaler à un administrateur
Commentaire de urbanurban le 18/05/2004 16:14:00

slt g l'erreur suivante :

Warning: Unable to access thumbs//12.jpeg

Comment faire ?

signaler à un administrateur
Commentaire de leon141fr le 11/06/2004 23:11:52

je sais pas comment on cree des thumbnails qq pourait m'expliquer svp ?

signaler à un administrateur
Commentaire de Eisenfaust le 26/08/2005 06:16:47

Bon je suis maudit et j'uis vraiment qu'une bille mais rien ne fonctionne.
j'ai d'abord tenté de créer un php avec le code affiché plus haut (mais bon apparement je ne sais pas l'utiliser/y faire appel puisque ça ne donne rien...), puis de l'intégrer directement dans un html, là pareil il capte rien du tt... puis j'ai carrément downloadé le zip et mis dans un répertoire "thumbnail2" du répertoire "www" de mon easyphp 1.8.0.1 après avoir créé un sous répertoire "images" au répertoire "photoexplorer" et y avoir coller des *.jpg dedans voilà ce que j'obtient :
Notice: Undefined variable: d in c:\program files\easyphp\www\thumbnail2\photoexplorer\index.php on line 10

Notice: Undefined variable: d in c:\program files\easyphp\www\thumbnail2\photoexplorer\index.php on line 10

Notice: Undefined variable: caption in c:\program files\easyphp\www\thumbnail2\photoexplorer\image.php on line 53

Fatal error: Call to undefined function: imagecreatefromjpeg() in c:\program files\easyphp\www\thumbnail2\photoexplorer\image.php on line 6

est-ce normal ? pourquoi j'ai l'impression de ne plus arriver à rien avec le php ? j'avais par ex créé un petit php de convertion d'images et maintenant terminé plus rien ne fonctionne. certes pour des pbs de sécurité le passage de variable à changé etc, mais meme après avoir tenté de corriger ça ne fonctionne tjs plus. Mais bon chaque chose en son temps si qqun peut me dépanner sur les pbs que je recontre avec ce code peut-etre pourrai-je extrapoler et comprendre mes erreurs ensuite.
Par avance merci.

signaler à un administrateur
Commentaire de gergalp le 28/08/2005 02:10:49

Eisenfaust => c'est parceque tu as configuré PHP pour qu'il te reporte absolument toutes les erreurs.

baisse le niveau de reports d'erreur ou mets des:
if(isset($var))
{
...
}

sinon, à propos de la source, à quoi correspond cette ligne dans la fonction createthumb :

$tc = str_replace(".//","",$img);

d'ou sort la variable $img?

signaler à un administrateur
Commentaire de fanfan92150 le 17/01/2006 21:30:55

Eisenfaust, j'avais le meme message d'erreur que toi qd j'execute le script sur mon serveur local.
En revanche qd je le met chez un hebergeur, il fonctionne bien...
Si ça peux t'aider...

signaler à un administrateur
Commentaire de spycollege le 04/02/2006 12:30:56

pas mal, tout fonctionne chez moi à condition d'être sur un serveur distant. Ca n'a pas l'air de marcher avec easyphp :(
Par contre, ce que j'aimerais faire, c'est la même chose mais en conservant les proportions; j'ai donc essayé avec GetImageSize:

function generate($fullsized , $thumbs){
$thumb_x = ($taille[0]); // Horizontal size of thumbnail created in pixels
$thumb_y = ($taille[1]); // Vertical size of thumbnail created in pixels

(ici, la variable de getimagesize s'appelle $taille.)
l'ennui, c'est que je ne sais pas où placer la fonction GetImageSize, dans quel fichier (image.php ou header.php) et avec quels arguments...:
$taille = GetImageSize( 'là, je mets quoi ?' );
merci d'avance de votre aide ^^
@+

signaler à un administrateur
Commentaire de spycollege le 04/02/2006 12:33:33

oups j'ai oublié qqch ca devrait plutôt ressembler à cela:

function generate($fullsized , $thumbs){
$thumb_x = ($taille[0]/4); // Horizontal size of thumbnail created in pixels
$thumb_y = ($taille[1]/4); // Vertical size of thumbnail created in pixels

de cette facon, les proportions sont conservées, mais la vignette est simplement 4 fois plus petite que l'originale.

@+

signaler à un administrateur
Commentaire de BlackWizzard le 04/02/2006 13:38:44 administrateur CS

Vous trouverez une update de la fonction de redimentionnement ici, prenant en compte les dimentions:
http://www.flashkod.com/code.aspx?id=22971

signaler à un administrateur
Commentaire de spycollege le 05/02/2006 17:41:51

BlackWizzard pourrais-tu nous indiquer comment intégrer ton bout de code de flashkod dans celui de phpcs ? les fontions et les variables ne sont plus les mêmes... je sais je chipote ;) mais sur les photos verticales on dirait qu'elles sont passées au rouleu compresseur lol
@+

signaler à un administrateur
Commentaire de vdo84 le 21/02/2006 16:43:51

Salut,

Jai un soucis pour integrer ton code dans une boutique oscommerce.

La gallerie foto marche bien kan il est dans le repertoire racine mais si je le met dans un otre dossier il ne trouve pas les image et me met un tas de ligne derreur. Je pense que cest parcekil y a un comflit de variable ..

Quelqun orai une idee du probleme et une solution ?

Merci davamce

signaler à un administrateur
Commentaire de vdo84 le 22/02/2006 15:42:33

bonjours,

Les miniatures ne saffiche pas et jai les lignes derreur suivantes pour chaque images :
Warning: imagejpeg(): Unable to access images/concept/thumbs/DSCI0001.jpg in /home/httpd/vhosts/starttheriot.net/subdomains/viedordures/httpdocs/catalog/image.php on line 14

Warning: imagejpeg(): Invalid filename 'images/concept/thumbs/DSCI0001.jpg' in /home/httpd/vhosts/starttheriot.net/subdomains/viedordures/httpdocs/catalog/image.php on line 14

Par contre les pop ups marches bien.

Quelqu'un saurais dou ca peut venir. (pour un site oscomerce)

merci

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.