Redimensionnement d'image php

Contenu du snippet

Permet de redimensionner une image dans un format voulant avec respect des ratios et de la transparence, en utilisant la librarie gd de php et de l'enregistrer en choisissant son nom et le dossier.

Source / Exemple :


<?php
/* ################################################## */
//
// Auteur : Jourdain Stevens
// Date de création : 19/03/2012
// Description : Permet de redimensionner une image dans un format voulant avec respect des ratios et de la transparence,  en utilisant la librarie gd de php et de l'enregistrer en choisissant son nom et le dossier
// email : jourdain.stevens@gmail.com
//
// ---------------------------------------------------------
// Exemple d'utilisation : $redim = new Redim(); 
// $redim->generate_image(150, 180, 'Upload', 'image', 'http://www.google.fr/images/srpr/logo3w.png');
// echo '<img src="image.png" />';
// ---------------------------------------------------------
//
// Licence Creative Commons : Pas d'utilisation Commerciale (revente), pas de modification.
//
// <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img alt="Licence Creative Commons" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Dataset" property="dct:title" rel="dct:type">Class PHP de redimenssion d&#39;image</span> de <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Jourdain Stevens</span> est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/">licence Creative Commons Attribution - Pas d&#8217;Utilisation Commerciale - Pas de Modification 3.0 non transposé</a>.
//
/* ################################################## */

class Redim{
	/**

    • Permet de créer l'image dans la taille voulue
    • @params int $largeur : largeur-max voulue
    • @params int $hauteur : hauteur-max voulue
    • @params string $chemin : dossier ou php enregistrera l'image
    • @params string $name : nom de l'image une fois sauvegardée
    • @params string $src : chemin de l'image a redimensionner
  • /
public function generate_image($largeur, $hauteur, $chemin, $name, $src){ // On recence le format, la largeur et la hauteur list($largeurSRC, $hauteurSRC, $typeSRC, $attrSRC) = getimagesize($src); // On défini le chemin $save = $chemin.$name; // On crée l'image dans le bon format if($typeSRC == "1") $img_in = imagecreatefromgif($src); elseif($typeSRC == "2") $img_in = imagecreatefromjpeg($src); elseif($typeSRC == "3") $img_in = imagecreatefrompng($src); else $img_in = imagecreatefromjpeg($src); // On calcule le ratio de l'image de base et de l'image voulu $ratioLargeur = $largeur / $largeurSRC; $ratioHauteur = $hauteur / $hauteurSRC; // On définit les nouvelles mesures en respectant le ratio et la taille voulu if($ratioLargeur > $ratioHauteur){ $newlargeur = ceil($largeurSRC * $ratioHauteur); $newhauteur = ceil($hauteurSRC * $ratioHauteur); }else{ // $newlargeur = ceil($largeurSRC * $ratioLargeur); $newhauteur = ceil($hauteurSRC * $ratioLargeur); } // On modifie l'image en conservant toutes les couleurs, la couche alpha, le ratio et la position de l'image $img_out = imagecreatetruecolor($newlargeur, $newhauteur); imagealphablending($img_out,false); imagesavealpha($img_out,true); imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, $newlargeur, $newhauteur, $largeurSRC, $hauteurSRC); // On enregistre l'image dans le bon format if($typeSRC == "1") imagegif($img_out, $save.'.gif', 0); elseif($typeSRC == "2") imagejpeg($img_out, $save.'.jpg', 0); elseif($typeSRC == "3") imagepng($img_out, $save.'.png', 0); else imagejpeg($img_out, $save.'.jpg', 0); } }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.