All pastes #445445 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-17 21:32 UTC
rendered paste body
<?php
error_reporting(E_ALL ^ E_NOTICE);

function miniature($file, $new_height = NULL, $new_width = NULL)
{
	// definition des dossiers de destination et de source
	$dir = 'galerie/'.$_GET['g'].'/';
	$dest = 'galerie/'.$_GET['g'].'/miniature/';

	if(!is_dir($dest))
		mkdir($dest);

	if(!file_exists($dest.$new_width.'-'.$new_height.'-'.$file))
	{
		$extension = substr($file, -3);
		
		if($extension == "png")
		{
			$source = ImageCreateFromPng($dir.$file);
			$largeurSource = imagesx($source);
			$hauteurSource = imagesy($source);
   			// Teste les dimensions tenant dans la zone
   			$test_h = round(($new_width / $largeurSource) * $hauteurSource);
   			$test_w = round(($new_height / $hauteurSource) * $largeurSource);
   			// Si Height final non précisé  
   			if(!$new_height) $new_height = $test_h;
   			// Sinon si Width final non précisé  
   			elseif(!$new_width) $new_width = $test_w;
   			// Sinon teste quel redimensionnement tient dans la zone
   			elseif($test_h>$new_height) $new_width = $test_w;
   			else $new_height = $test_h;
			$image = ImageCreateTrueColor ($new_width, $new_height) or die ("<h1>Erreur</h1><p>La création de l'image a échoué</p>");
			ImageCopyResampled($image, $source, 0, 0, 0, 0, $new_width, $new_height, $largeurSource, $hauteurSource);
			$path = $dest.$new_width.'-'.$new_height.'-'.$file;
			ImagePng ($image, $path);
				
			return $path;
		}
		elseif($extension == "jpg")
		{
			$source = ImageCreateFromJpeg($dir.$file);
			$largeurSource = imagesx($source);
			$hauteurSource = imagesy($source);
   			// Teste les dimensions tenant dans la zone
   			$test_h = round(($new_width / $largeurSource) * $hauteurSource);
   			$test_w = round(($new_height / $hauteurSource) * $largeurSource);
   			// Si Height final non précisé  
   			if(!$new_height) $new_height = $test_h;
   			// Sinon si Width final non précisé  
   			elseif(!$new_width) $new_width = $test_w;
   			// Sinon teste quel redimensionnement tient dans la zone
   			elseif($test_h>$new_height) $new_width = $test_w;
   			else $new_height = $test_h;
			$image = ImageCreateTrueColor ($new_width, $new_height) or die ("<h1>Erreur</h1><p>La création de l'image a échoué</p>");
			ImageCopyResampled($image, $source, 0, 0, 0, 0, $new_width, $new_height, $largeurSource, $hauteurSource);
			$path = $dest.$new_width.'-'.$new_height.'-'.$file;
			ImageJpeg ($image, $path);
			
			return $path;
		}
		else
			return "Erreur : seules les images png et jpeg sont accepter !!!";
	}
	else
		return $dest.$new_width.'-'.$new_height.'-'.$file;
}

	function lire_repertoire($rep, $ext)
	{
		$liste = array();
		$dir = opendir($rep);
	 
		while($file = readdir($dir))
		{
			if($file != '.' && $file != '..' && !is_dir($file))
				$liste[] = $file;
		}
	  
		$trouve = array_values(preg_grep('`\.'.$ext.'$`', $liste));
		
		closedir($dir);
		
		return $trouve;
	}

// definition du répertoire et de l'extension
$rep = 'galerie/'.$_GET['g'];
$ext = 'jpg';
foreach(lire_repertoire($rep,$ext) as $key => $val){
$i++;
	echo '<a href="moyenne.php?image='.miniature($val, 490, NULL).'"><img src="'.miniature($val, NULL, 150).'" alt=""></a>&nbsp;&nbsp;&nbsp;';
if($i % 3 == 0)

		echo '<br /><br />';
}
  
?>