Fonction PHP : class miniature()

Ici, vous pouvez voir (et copier/coller) le code complet de la fonction PHP class miniature(). N'hésitez pas voter pour cette fonction si elle vous plaît ou si vous vouv en servez !

class miniature() ajouté le 2009-05-22 08:01:34 par PaHtP

# Class MINIATURE 
# By DEMANGEL Maxime alias PaHtP
# Mise à jour : 22 mai 2009

class Miniature {

	var $hauteurMin;
	var $largeurMin;
	
	var $hauteurMax;
	var $largeurMax;
	
	var $selection_largeurMin;
	var $selection_hauteurMin;
	
	var $dest;
	var $source;
	
	var $nouvelleLargeur;
	var $nouvelleHauteur;
	
	
	var $x1 = 0;
	var $y1 = 0;
	
	var $tag;
	
	function Miniature($source, $dest) {

		// On test si le fichier source existe
		@fopen($source, 'r')
			or exit ('Erreur : Le fichier source n\'existe pas');
		
		// On test si le dossier des miniature existe sinon on le creer
		if (!file_exists($dest))
			mkdir($dest)
				or exit ('Erreur : Impossible d\'acceder au dossier destination');
		
		$this->source = $source;
		$this->dest = $dest;
	}
	
	// recadrage de l'image
	function recadrer($x1, $y1, $largeur, $hauteur) {
		
		$this->x1 = $x1;
		$this->y1 = $y1;
		
		$this->tailleImage();
		
		$this->nouvelleHauteur = $hauteur;
		$this->nouvelleLargeur = $largeur;

	}
	
	// Redimensionne l'image
	function resize($largeur, $hauteur) {
		
		$this->hauteurMin = $hauteur;
		$this->largeurMin = $largeur;
		
		$this->tailleImage();
		
		$this->largeurMin = $largeur;
		$this->hauteurMin = $hauteur;
	}
	
	
	// Redimentionnement de l'image automatique
	function resizeAuto() {
	
		$this->tailleImage();
		// on cherche la plus grande longueur 
		if($this->largeurMax >= $this->hauteurMax) {
			$tmp = $this->largeurMax / 100;
			$this->largeurMin = 100;
			$this->hauteurMin = $this->hauteurMax / $tmp;
		} else {
			$tmp = $this->hauteurMax / 100;
			$this->hauteurMin = 100;
			$this->largeurMin = $this->largeurMax / $tmp;
		}
		
	}
	
	// Retourne la taille de l'image
	function tailleImage() {
		$tmp = GetImageSize($this->source);
		$this->largeurMax = $tmp[0];
		$this->hauteurMax = $tmp[1];
		return $tmp;
	}
	
	// Ajoute un tag a la miniature
	function tag($tag) {
		$this->tag = $tag;
	}
	
	// Redimensionne l'image
	function execute() {
	
		// Déterminer l'extension à partir du nom de fichier
		$extension = substr( $this->source, -3 );
		// Afin de simplifier les comparaisons, on met tout en minuscule
		$extension = strtolower( $extension );
		// Recupere le nom de l'image
		$name = explode('/', $this->source);
		$nb = count($name);
		
		$dest = $this->dest;

		switch ($extension) {

		    case "jpg":
		    case "peg": //pour le cas où l'extension est "jpeg"
		        $img_src_resource = imagecreatefromjpeg( $this->source );
		        break;

		    case "gif":
		        $img_src_resource = imagecreatefromgif( $this->source );
		        break;

		    case "png":
		        $img_src_resource = imagecreatefrompng( $this->source );
		        break;

		    // On peut également ouvrir les formats wbmp, xbm et xpm (vérifier la configuration du serveur)

		    default:
		        return ("L'image n'est pas dans un format reconnu. Extensions autorisées : jpeg, gif, png");
		        break;
		}
		
		// On creer la nouvelle image et on applique l'image
		if($this->nouvelleHauteur != '') {
			$img_dst_resource = imagecreatetruecolor($this->nouvelleLargeur, $this->nouvelleHauteur);	
			ImageCopyResampled($img_dst_resource, $img_src_resource, 0, 0, $this->x1, $this->y1, $this->largeurMax, $this->hauteurMax, $this->largeurMax, $this->hauteurMax); 			
		} else {
			$img_dst_resource = imagecreatetruecolor($this->largeurMin, $this->hauteurMin);
			ImageCopyResampled($img_dst_resource, $img_src_resource, 0, 0, $this->x1, $this->y1, $this->largeurMin, $this->hauteurMin, $this->largeurMax, $this->hauteurMax); 
		}
		
			
		switch ( $extension ) {

		    case "jpg":
		    case "peg": //pour le cas où l'extension est "jpeg"
		        imagejpeg( $img_dst_resource, $dest );
		        break;

		    case "gif":
		        imagegif( $img_dst_resource, $dest );
		        break;

		    case "png":
		        imagepng( $img_dst_resource, $dest );
		        break;
		}		
	}
	
}	

Voter pour cette fonction


Cette classe vous permet de faire des miniatures de vos images, soit en donnant la largeur et la hauteur, soit avec un redimensionnement automatique.

Commentaires sur la fonctions php

Hugo 22/05/2009 à 13:37

Pourquoi une classe PHP 4 et non PHP 5 ???

PaHtP 29/05/2009 à 20:49

quand je l'ai codé mon serveur n'acceptait pas le php 5 en même temps passer cette classe en php 5 ça prend 5min

Xbox Live 14/06/2009 à 09:36

Personnellement j'utilise ce code là :

Qu'en pensez vous? (je ne suis qu'un codeur amateur)

$url_image = $url.$alea.$nomFichier;
								
								//Création de la miniature format 135*85
								$filename = $url_image;
								list($width_1, $height_1, $image_type) = getimagesize($filename);
								echo $filename;
								// Définition de la largeur et de la hauteur maximale
								$width = 135;
								$height = 85;
								// Content type
								header('Content-type: image/jpeg');
								// Cacul des nouvelles dimensions
								list($width_orig, $height_orig) = getimagesize($filename);
								$ratio_orig = $width_orig/$height_orig;
								if ($width/$height > $ratio_orig) {
							   $width = $height*$ratio_orig;
								} else {
							   $height = $width/$ratio_orig;
								}
								// Redimensionnement
								imagealphablending($image, true);
								imagesavealpha($image, true);
								
								$image_p = imagecreatetruecolor($width, $height);
								switch ($image_type)
								{
									case 1: $image = imagecreatefromgif($filename); break;
									case 2: $image = imagecreatefromjpeg($filename);  break;
									case 3: $image = imagecreatefrompng($filename); break;
									default: return '';  break;
								}
							    //$image = imagecreatefrompng($filename);
								//$image = imagecreatefromjpeg($filename);
								imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

								// Affichage (au cas où le script diffonctionnerait
								//imagejpeg($image_p, null, 100);
								
								//exportation de l'image
								imagejpeg($image_p, 'mini-'.$alea.'.jpg');

machintruc 30/11/2009 à 22:52

Salut!
je suis débutant en php, j'aimerais bien utiliser cette classe, mais je ne vois pas trop comment faire après l'instanciation...
merci pour votre aide!