|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CLASSE DE REDIMENSION D'IMAGE.
Information sur la source
Description
Voila une premiere version d'une classe permettant de gérer une redimension d'image. La source est relativement simple car j'ai voulu enlevé tout ce qui était superflux. Mais du coup elle sera surement complétée au fur et a mesure. J'attend vos conseils / suggestions.
Source
- <?php
- /**
- * @author : Yaug - Manuel Esteban
- * @version : 0.1
- * @date : 18.04.07
- * @comment : First Version of this class that allows you to format image size.
- **/
-
- class Image{
- //caracatéristiques de l'image source
- private $source;
- private $to;
- private $width;
- private $height;
- private $type;
- private $extensions;
-
- //caractéristique de l'image destination.
- private $new_width;
- private $new_height;
-
- //Constructeur
- public function __construct($_source,$_extensions=array('jpg'=>2,'jpeg'=>2,'gif'=>1,'png'=>3)){
- $this->source=(string)$_source;
- $this->extensions=$_extensions;
-
- list($w, $h, $t, $a) = getimagesize($_source);
- $this->width=$w;
- $this->height=$h;
- $this->type=$t;
- }
-
- //Fonction de vérification de l'extension.
- private function verif_extension(){
- return(in_array($this->type,$this->extensions));
- }
-
- //Fonction de redimensionnement, $_to sera le nom de la nouvelle image, $_new_width et $_new_height sa nouvelle taille. Si $_samesize vaut 1, la photo gardera ses proportions.
- public function resize($_to,$_new_width,$_new_height,$_samesize){
- $this->to=(string)$_to;
- $this->new_width=(int)$_new_width;
- $this->new_height=(int)$_new_height;
-
- //On vérifie l'extention
- if($this->verif_extension()){
- //On vérifie le rapport
- $ratio=$this->get_ratio();
- if($ratio>1){//La nouvelle image est plus petite que l'image source, on la redimenssione.
- $new_w=($_samesize)?$this->new_width:$this->width/$ratio;
- $new_h=($_samesize)?$this->new_height:$this->height/$ratio;
- $thumb=imagecreatetruecolor($new_w,$new_h);//on prépare une image vide aux bonnes dimensions.
- switch ($this->type) // On teste l'extension du fichier pour utiliser la fonction adéquate
- {
- case 1: $source = imagecreatefromgif($this->source); break;
- case 2: $source = imagecreatefromjpeg($this->source); break;
- case 3: $source = imagecreatefrompng($this->source); break;
- }
- //On copie notre image d'origine dans la nouvelle image.
- imagecopyresampled($thumb,$source,0,0,0,0,$new_w,$new_h,$this->width,$this->height);
- imagejpeg($thumb,$_to, 100);//On sauve l'image
- //On détruit les ressources inutilisées.
- imagedestroy($thumb);
- imagedestroy($source);
- }else copy($this->source,$this->to); //L'image est plus petite que l'image source, on se contente de la copier.
- }else print_r($this->type);
- }
-
- //Fonction qui calcul le rapport entre les cotés
- private function get_ratio(){
- return max($this->width/$this->new_width,$this->height/$this->new_height);
- }
- }
- ?>
<?php
/**
* @author : Yaug - Manuel Esteban
* @version : 0.1
* @date : 18.04.07
* @comment : First Version of this class that allows you to format image size.
**/
class Image{
//caracatéristiques de l'image source
private $source;
private $to;
private $width;
private $height;
private $type;
private $extensions;
//caractéristique de l'image destination.
private $new_width;
private $new_height;
//Constructeur
public function __construct($_source,$_extensions=array('jpg'=>2,'jpeg'=>2,'gif'=>1,'png'=>3)){
$this->source=(string)$_source;
$this->extensions=$_extensions;
list($w, $h, $t, $a) = getimagesize($_source);
$this->width=$w;
$this->height=$h;
$this->type=$t;
}
//Fonction de vérification de l'extension.
private function verif_extension(){
return(in_array($this->type,$this->extensions));
}
//Fonction de redimensionnement, $_to sera le nom de la nouvelle image, $_new_width et $_new_height sa nouvelle taille. Si $_samesize vaut 1, la photo gardera ses proportions.
public function resize($_to,$_new_width,$_new_height,$_samesize){
$this->to=(string)$_to;
$this->new_width=(int)$_new_width;
$this->new_height=(int)$_new_height;
//On vérifie l'extention
if($this->verif_extension()){
//On vérifie le rapport
$ratio=$this->get_ratio();
if($ratio>1){//La nouvelle image est plus petite que l'image source, on la redimenssione.
$new_w=($_samesize)?$this->new_width:$this->width/$ratio;
$new_h=($_samesize)?$this->new_height:$this->height/$ratio;
$thumb=imagecreatetruecolor($new_w,$new_h);//on prépare une image vide aux bonnes dimensions.
switch ($this->type) // On teste l'extension du fichier pour utiliser la fonction adéquate
{
case 1: $source = imagecreatefromgif($this->source); break;
case 2: $source = imagecreatefromjpeg($this->source); break;
case 3: $source = imagecreatefrompng($this->source); break;
}
//On copie notre image d'origine dans la nouvelle image.
imagecopyresampled($thumb,$source,0,0,0,0,$new_w,$new_h,$this->width,$this->height);
imagejpeg($thumb,$_to, 100);//On sauve l'image
//On détruit les ressources inutilisées.
imagedestroy($thumb);
imagedestroy($source);
}else copy($this->source,$this->to); //L'image est plus petite que l'image source, on se contente de la copier.
}else print_r($this->type);
}
//Fonction qui calcul le rapport entre les cotés
private function get_ratio(){
return max($this->width/$this->new_width,$this->height/$this->new_height);
}
}
?>
Conclusion
Comment l'utiliser? include("class/image.php"); $Img=new Image("test/66.JPG"); $Img->resize("test/exemple.jpg",100,100,0);//Si vous vouler conserver les proportions, le dernier parametre doit etre a 1.
Historique
- 20 avril 2007 07:01:06 :
- correction d'une erreur
- 23 avril 2007 08:07:14 :
- légères corrections.
- 23 avril 2007 08:11:10 :
- corrections mineures.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Erreur de redimension [ par Tilix ]
Salut, J'ai une erreur qui apparait lorsque j'utilise une fonction qui permet de redimensionner une image : Warning: imagejpeg(): Unable to open '
Class POO retourné le nom de l'objet [ par MeTh ]
Bonjour,Comment retourné le nom de l'objet déclaré?exemple :$monobjet = new GridR();comment recuperé $monobjet dans ma class?Merci
Valeur retourné par un Objet de Type image??? [ par DJPGM ]
C quoi la valeur que retourne une image comme dans l'exemple suivant???<form name="ChoixImage" method="post" action="Images.php" > <input
Redimension d'image [ par JohnInsane ]
Bonjour à tous, J'aimerais redimensionner des images en php mais la méthode que j'utilise est vraiment très médiocre et le
Prévisualisation d'un objet personalisé [ par thedeejay ]
Salutations!Je commence un peu à bidouiller la librairie GD pour creer des images, mais malheuresement, lorsque je commence à peine à comprendre on me
Debutant en Ajax [ par TheGorgo ]
Bonjour, Je cherche de l'aide pour un script en ajax. J'ai cherché des tutoriaux un peu partout, mais je ne comprends toujours pas. Je pense que ce q
Pb avec la class de news de FhX [ par acidline ]
Bonjour à tous,Je me présente, je m'appelle Nicolas, j'ai 24ans et la POO en PHP est nouveau pour moi.Je me suis mis en tête d'utiliser la class de ne
class et controler [ par waterw72 ]
Bonjour,Est-il correct de faire une classe qui manipule des données par exemple.et une autre classe qui hérite de la première qui permettrait d'affich
:::::: URGENT !!! ENVOI D'IMAGE PAR FTP !!!! ERREUR :::::: [ par kkz_mil3k ]
j'essaie d'nevoyer un fichier image gif ou jpg sur un ftp via ce formulaire php :------------------------------------------- //**connecte au ftp sc
Comment insérer un champs image ds ma table ?? [ par inceV ]
Salut à tous et bonne année 2002 !!!Bon, je n'arrive pas à créer un champs 'image' ds ma table et je ne comprends pas tp commen ça marche, pourriez-vo
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|