class miniature

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : class miniature

Re: class miniature

par x@v » 23 nov. 2010, 02:06

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

Re: class miniature

par Ryle » 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 :))

Re: class miniature

par x@v » 22 nov. 2010, 18:24

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

Re: class miniature

par stealth35 » 22 nov. 2010, 18:20

1h un topic :shock:

class miniature

par x@v » 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