Redimmensionner une image : créer une miniature

Contenu du snippet

Vous désirez créer une miniature, avec cette classe CImage il suffit de faire :

$mImage = new CImage('mon_image.jpg');
// lors de la création de mImage des paramètres par défaut sont pris
// vous pouvez les modifier :
$mImage->set_size(300,300);
$mImage->set_autoresize(false);
$mImage->set_dir_destination('mon_repertoire_de_destination/');
$mImage->_creerMiniature();
$mImage->supprimer_image_temp(); // suppréssion de l'image temporaire (grand format)

D'autres options de retouches d'image seront bientôt dispo ;)

N'oubliez pas les chmod de vos répertoires ;)
A bientôt

http://www.mooveon.net - Partages de vidéos

Source / Exemple :


<?php
// class developped by Adrien HADJ SALAH from mooveon.net

class CImage
{					   
	public $width;  
	public $height;
	public $dir_destination;
	public $autoresize; 
	
	public $url_image;
	public $tbl_extension_admise; 
	
	// constructeur
	public function __construct($url_image)
	{	  
	// par défaut on prend ces paramètres
	$this->width = 200;
	$this->height = 100;
	$this->dir_destination = "mes_images/";
	$this->autoresize = true; 
	$this->url_image = $url_image;
	$this->tbl_extension_admise = array('jpg', 'gif', 'png', 'jpeg');
	}

	private function supprimer_image_temp()
	{	
		if (file_exists($this->url_image))			
			unlink($this->url_image);
	}  
	// Set/Get :  autoresize : mode d'auto-redimensionnement 1, sinon 0
	public function set_autoresize($mode)
	{
		if ($mode == true) {$this->autoresize=true;}
		else {$this->autoresize=false;}
	} 
	public function get_url_image()
	{
	return $this->url_image;
	}
	// Set/Get :  url_image : url de l'image à traiter
	public function set_url_image($url_image)
	{
	$this->url_image = $url_image;
	} 
	public function get_url_image()
	{
	return $this->url_image;
	}
	// Set/Get :  widthxheight : format de l'image à redimensionner, get_size() renvoit par exemple 640x480
	public function set_size($width, $height)
	{
	$this->width = (int)$width;
	$this->height = (int)$height;
	}  
	public function get_size()
	{	   
		$size_string = $this->width."x".$this->height;
	return $size_string;
	}
	// Set/Get :  dir_ : repertoire de destination écrit de cette manière mon_repertoire/, attention à vos chmod (755)
	public function set_dir_destination($dir)
	{
	$this->dir_destination = $dir;
	}  
	public function get_dir_destination()
	{	   
	return $this->dir_destination;
	}
	
	public function add_extension_admise($new_ext)
	{
	$this->tbl_extension_admise[sizeof($this->tbl_extension_admise] = $new_ext;
	}   			
	
	public function _creerMiniature()
	{	 
	// vérification de l'extension
	$url_image_tbl = explode('.', $this->url_image);
	$extension = $url_image_tbl[sizeof($url_image_tbl)-1];
	
		if (in_array(strtolower($extension), $this->tbl_extension_admise))
		{
		    $im = ImageCreateTrueColor ($this->width, $this->height) 
		            or die ("Erreur lors de la création de l'image"); 
		
		    $source = ImageCreateFromJpeg($this->url_image);
		    
		    $largeurSource = imagesx($source);
		    $hauteurSource = imagesy($source);
		    
			if ($this->autoresize==true)
			{
			$this->height = $this->width*$hauteurSource/$largeurSource; // mode autoredimensionnement
			}	
		
		    ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
		
		    $miniature = $this->dir_directory.basename($this->url_image);
		    ImageJpeg ($im, $miniature);
			
			echo("Félicitation, voici l'adresse de la miniature :<br><br>$miniature");
		}
		else
		{
		echo("Désolé votre fichier ne possède pas une extension autorisée...");
		} 
	}	
}

?>

Conclusion :


J'ai mis à jour la source en prenant en compte vos remarques

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.