classe de création d'image

x@v
Mammouth du PHP | 570 Messages

22 nov. 2010, 17:42

Bonjour,
ma petite classe ne fonctionne ?
Je n'ai pas de message d'erreur.
Page appelé :
<?php header('Content-type: image/jpeg');
require_once('./class/class.miniature.php');
$miniature=new Miniature(100, 'bague.php', 'jpeg', '../photos/miniDetailsProduits/', '../photos/');
$miniature->setCreation();
?>
classe développé
<?php
class Miniature
{
	private $typeFichier; // destination final des photos
	private $nomFichier; // destination final des photos
	private $dossierDestination; // destination du dossier
	private $dossierSource; // source du dossier
	private $tailleMax; // taille maxi

	public function __construct($tailleMax, $nomFichier, $typeFichier, $dossierDestination, $dossierSource)
	{
		$this->tailleMax=$tailleMax; // 200
		$this->nomFichier=$nomFichier; // collierEmeraudeDiamant2.jpg
		$this->typeFichier=$typeFichier; // 'jpg'
		$this->dossierDestination=$dossierDestination; // '../photos/miniDetailsProduits/'
		$this->dossierSource=$dossierSource; // ex: '../photos/'
	}
	public function getCreation()
	{
		
	}
	public function setCreation()
	{
		//$img_source='collierEmeraudeDiamant2.jpg'; // nom de l'image à transformer
		$imgUrl = $this->dossierSource.$this->nomFichier;
		$img = imagecreatefromjpeg($imgUrl);
		$x = imagesx($img); // largeur
		$y = imagesy($img); // hauteur
		if($x>$this->tailleMax or $y>$this->tailleMax) // gestion des proportions de l'image
		{
			if($x>$y){
				$nx = $this->tailleMax;
				$ny = $y/($x/$this->tailleMax);
			}else{
				$ny = $this->tailleMax;
				$nx = $x/($y/$this->tailleMax);
			}
		}
		$nimg = imagecreatetruecolor($nx,$ny);
		imagecopyresampled($nimg,$img,0,0,0,0,$nx,$ny,$x,$y);

		$file = $this->dossierDestination.$this->nomFichier; // '../photos/miniDetailsProduits/img_source.jpg;
		imagejpeg($nimg, $file); //enregistre l'image dans le répertoire images à la racine du site.	
	}
}
?>
Merci

devlop78
Invité n'ayant pas de compte PHPfrance

23 nov. 2010, 01:46

imagejpeg($nimg, $file); //enregistre l'image dans le répertoire images à la racine du site.
Si au lieu de l'afficher, tu l'enregistres, c'est normal.