class miniature

x@v
Mammouth du PHP | 570 Messages

22 nov. 2010, 18:12

Bonsoir,
dans ma classe Miniature, je n'ai pas mis de header === jpeg et ça fonctionne quand même ?
<?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 $max; // taille maxi ex : 200

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

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

	}
}
?>
Je l'utile de cette manière :
<?php
require_once('./class/class.miniature.php');
echo 'szer';?>
<form>
	<label>essai</label>
	<input type="test" value="" />
</form>
<?php
//$img_source='collierEmeraudeDiamant2.jpg'; // nom de l'image à transformer
$miniature=new Miniature('collierEmeraudeDiamant2.jpg', '../photos/miniDetailsProduits/', '../photos/');
$miniature->setMiniature(150);
?>
Merci

ViPHP
ViPHP | 5462 Messages

22 nov. 2010, 18:20

1h un topic :shock:

x@v
Mammouth du PHP | 570 Messages

22 nov. 2010, 18:24

je suis productif...
ça faisait longtemps que je n'avais pas pratiqué le php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 nov. 2010, 00:09

Le header te permet d'envoyer des informations au navigateur pour qu'il sache comment le traiter le flux de données, par exemple lui indiquer que bien que ce soit un script php qu'il a sollicité, c'est une image qui lui est retourné...

Ici tu ouvres un fichier jpeg qui se trouve sur le serveur et tu en fais une miniature que tu enregistres sur le disque. Aucun envoi au navigateur, aucun flux à transformer, donc pas de header à envoyer :) (et dans la mesure où ta vignette est déjà un fichier jpg, pas besoin de header pour le lire non plus :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

x@v
Mammouth du PHP | 570 Messages

23 nov. 2010, 02:06

Il ne reste plus qu'à sensiblement l'amélioré, en ajoutant entre autre la gestion des extensions.
Merci