Redimensionnement d'image php

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 982 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

Messages postés
8
Date d'inscription
jeudi 15 décembre 2005
Statut
Membre
Dernière intervention
1 mars 2019

Bonjour

Je viens de découvrir ce script, et j’ai été surpris de découvrir que tu mets niveau expert pour ce code, alors que j’ai déposé quasiment le même en tant que débutant.

La fonction que j’ai écrite (et qui ressemble étrangement) est la suivante : ‘function miniature($chemin_original, $chemin_mini, $fichier_image, $fichier_image_dest, $largeur_mini) ‘, elle fait partie du code ‘diaporama_maj.php5’ déposé sur phpcs le 2/12/2009 a l’adresse suivante
http://www.phpcs.com/codes/AFFICHAGE-GESTION-DIAPORAMA-PHP-SANS-BASE-DONNEES-AVEC_50922.aspx

Ceci dit je n’interdis nullement de l’utiliser ni de le modifier, mais ne parlons pas d’un petit bout de code utilisant GD comme d’un développement d’expert.
Messages postés
81
Date d'inscription
vendredi 19 juillet 2002
Statut
Membre
Dernière intervention
3 août 2010

Tu as bien fais de virer ton dernier commentaire JSTEVENS...
Messages postés
17
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
29 avril 2013

Tnx JSTEVENS, je vais essayer cela.
Messages postés
4
Date d'inscription
dimanche 1 avril 2012
Statut
Membre
Dernière intervention
11 avril 2012

Il y a modification et modification. Prendre la source et modifier le nom d'une seule variable pour se l'approprier c'est irrespectueux (dans la même vision des choses que Gille59). Par contre l'améliorer grandement en ajoutant une fonction (ex : enregistrement de l'image originale en plus de la miniature avec une certaine norme dans les noms) là ça pose aucuns problèmes.

Pis je ne suis pas naïf, la licence est juste là pour prévenir. A moins d'avoir le code source sous les yeux, il n'existe aucun moyen de savoir s'il s'agit bien de ma class que vous utilisez ou non. Autrement dit, officieusement vous pouvez en faire ce que vous voulez. Mais si un jour je tombe sur un site qui vends cette class en la laissant intacte, il va s'en mordre les doigts.
Messages postés
9
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
10 avril 2012

@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
Afficher les 14 commentaires

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.