[PHP] albums photos

Ca j’ai bein compris. Mais le problème est le meme si ca se génère au premier affichage. Enfin, ca ne fonctionnera que si c’est par page (comme tu l’as précisé).
Mais si je fais au premier upload ce que j’ai dis plus haut:
du fichier 0 à 19 puis du fichier 20 à 39…
chaque fois en devant recliquer sur un bouton. Certe, le défaut est évident: il faut cliquer n fois sur un bouton. Mais on peut arranger le système avec un refresh dans la page après n secondes… Non?

en fait ca dépend beaucoup de la fréquence de mise à jour des images. En effet, si il y en a souvent des nouvelles c’est interessant. Mais si il y en a pas souvent, ca fait une opération en plus à chaque affichage pour rien la + gd partie du temps.

et oui tout depend de l’utilisation…

en fait j’ai opté pour ce genre d’architecture because j’ai plusieur version de miniatures…

une en 200 px par ex et l’autre en 50 px et en plus j etais pas sur de la taille definitive des miniatures donc je voulais qu’elle soient generée a la volée …

du style pour l’image 185.jpg je faisais
.185.jpg.200px et .185.jpg.50px

et si je change de taille suffit de modifier le script d’affichage et ça suit…

ensuite si je change pour 300 et 60 le script ne detecte plus de miniature coreespondante et genere
.185.jpg.300px et .185.jpg.60px

Effectivement, dans ce genre d’utilisation, ca parait pratique

est-ce que tu pourrais m’envoyer la portion de code qui génère les miniatures ou pas? (sinon je devrais chercher: fleimard inside :stuck_out_tongue: )

est-ce que ca te parait honnete comme code pour redimensionner les images?
[cpp]<?php
$fichierSource = $nomfichier; // fichier source
$largeurMaxDestination = 150; // taille maximum en largeur
$hauteurMaxDestination = 150; // taille maximum en hauteur

$srcSize = @GetImageSize($fichierSource);

// image dest size $destSize[0] = width, $destSize[1] = height
$srcRatio = $srcSize[0]/$srcSize[1];
$destRatio = $largeurMaxDestination/$hauteurMaxDestination;
if ($destRatio > $srcRatio)
{
$destSize[1] = $hauteurMaxDestination;
$destSize[0] = $hauteurMaxDestination*$srcRatio;
}
else
{
$destSize[0] = $largeurMaxDestination;
$destSize[1] = $largeurMaxDestination/$srcRatio;
}

$im = @ImageCreateTrueColor ($destSize[0], $destSize[1]);

$source = @ImageCreateFromJpeg($fichierSource);

$largeurSource = @imagesx($source);
$hauteurSource = @imagesy($source);

if(@ImageCopyResampled($im, $source, 0, 0, 0, 0, $destSize[0], $destSize[1], $largeurSource, $hauteurSource))
{
if(@ImageJpeg ($im, ‘small’. $fichierSource))
{
echo ‘ok’;
}
else
{
echo ‘error’;
}
}
else
{
echo ‘error’;
}
[/cpp]

Moi l’inquietude que j’a c’est tjs la meme: a la première execution ca va lagger comme pas possible. M’en vais faire un test de ce pat

Alors après essais, je suis bleuffé, la création de 93 miniature dure royalement 19secondes…

Est-ce que tu peux me dire l’importance en terme de ressource d’un file_exist. Pcq si ca bouffe pas gd chose, ta technique me parait excellente

c mon fichier f_img.php standar g repomper un truc et adapter


<?


function img_getNewSize($source,&$w,&$h,$thumbnail_size)
{
   if ((ImageSX($source) <= $thumbnail_size) && (ImageSY($source) <= $thumbnail_size))
   {
       $h = ImageSY($source);
       $w = ImageSX($source);
   }
   else if (ImageSX($source) > ImageSY($source))
   {
       $h = $thumbnail_size * ImageSY($source) / ImageSX($source);
       $w = $thumbnail_size;
   }
   else
   {
       $h = $thumbnail_size;
       $w = $thumbnail_size * ImageSX($source) / ImageSY($source) ;
   }
}

function img_resize_jpeg($fin,$fout,$size)
{
		$ret=FALSE;
		$img = @imagecreatefromjpeg($fin);	
			if ($img)
			{
				img_getNewSize($img,$w,$h,$size);
				$omg= imagecreatetruecolor($w,$h);
				if($omg)
				{
					imagecopyresized($omg,$img,0,0,0,0,$w,$h,ImageSX($img),ImageSY($img));
 					$ret=imagejpeg ( $omg , $fout);
					imagedestroy ($omg);
				}
				imagedestroy ($img);
			}
		return $ret;
}

?>


function img_resize_jpeg($fin,$fout,$size)

$fin : fichier entree
$fout : fichier sortie
$size : arrete du carré qui doit contenir l’image

mini.php !!! v1.0 lol

mini.php?src=album1/185.jpg&size=200


<?

function img_getNewSize($source,&$w,&$h,$thumbnail_size)
{
   if ((ImageSX($source) <= $thumbnail_size) && (ImageSY($source) <= $thumbnail_size))
   {
       $h = ImageSY($source);
       $w = ImageSX($source);
   }
   else if (ImageSX($source) > ImageSY($source))
   {
       $h = $thumbnail_size * ImageSY($source) / ImageSX($source);
       $w = $thumbnail_size;
   }
   else
   {
       $h = $thumbnail_size;
       $w = $thumbnail_size * ImageSX($source) / ImageSY($source) ;
   }
}

if(isset($_GET["size"])) $size=intval($_GET["size"]);
else $size=200;

$src=$_GET["src"];
$bn=basename($src);
$dn=dirname($src);
$minisrc="$dn/.$bn.${size}px";

header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=".basename($minisrc));

$img=@imagecreatefromjpeg("$_SERVER[DOCUMENT_ROOT]/$minisrc");
if($img)
{
	imagejpeg($img);
	imagedestroy ($img);
	die();
}


$img = @imagecreatefromjpeg("$_SERVER[DOCUMENT_ROOT]/$src");	
if ($img)
{
	img_getNewSize($img,$w,$h,$size);
	$omg= imagecreatetruecolor($w,$h);
	if($omg)
	{
		imagecopyresized($omg,$img,0,0,0,0,$w,$h,ImageSX($img),ImageSY($img));
		imagejpeg ( $omg , "$_SERVER[DOCUMENT_ROOT]/$minisrc");

		imagejpeg ( $omg );
		imagedestroy ($omg);
	}
	imagedestroy ($img);
}

?>

merci très cher :stuck_out_tongue: je vais regarder tout ca…

C’est très gentil en tk :slight_smile: