Redimensionnement d'image php

4/5 (14 avis)

Snippet vu 6 355 fois - Téléchargée 17 fois

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

Ajouter un commentaire Commentaires
nik0s Messages postés 3 Date d'inscription samedi 29 janvier 2011 Statut Membre Dernière intervention 7 avril 2012
7 avril 2012 à 14:11
Très utile merci JStevens
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012
9 avril 2012 à 12:52
Prendre un script déjà fait par d'autre et y mettre des gadjets c'est nul
acide4 Messages postés 1 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 10:08
bon script !!
darkvador59 Messages postés 9 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 23:54
@JStevens merci de ne pas parler d'évolution lorsqu'on indique "Licence Creative Commons : Pas d'utilisation Commerciale, pas de modification."

elle sert à rien ta source si on a pas le droit de la modifier.

@Gille59 +1
@carabaas +1
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
16 avril 2012 à 09:59
Tu as bien fais de virer ton dernier commentaire JSTEVENS...

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.