Redimensionnement d'image php

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 834 fois - Téléchargée 15 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
-
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
-
Prendre un script déjà fait par d'autre et y mettre des gadjets c'est nul
carabaas
Messages postés
2
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
3 décembre 2005
-
Salut,
c'est une source niveau débutant pas expert :]
JStevens
Messages postés
4
Date d'inscription
dimanche 1 avril 2012
Statut
Membre
Dernière intervention
11 avril 2012
-
J'ai mis expert car ce n'est pas du niveau d'un débutant (pour moi débutant c'est gérer un formulaire, et je parle pas des failles). Trop tard pour changer il me semble ^^

@Gille59: gné? Tout d'abord s'inspirer des autres en améliorant leur(s) source(s), c'est pas ce qu'on appelle l'Évolution? Ensuite si pour toi prendre un script c'est se renseigner sur les fonctions à utiliser sur la doc php.net, alors oui j'ai pris des fonctions déjà incluses dans php ....

De rien Nik0s ;)
Gille59
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012
-
JSTEVENS :
gné ? Non ! Disons que tu pourrais au moins spécifier d'où vient le script d'origine (pour le respect) et delà expliquer ta modification (ton savoir).

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.