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 !

REDIMENSIONNER UNE IMAGE PHP (GD VERSION 2 REQUISE)


Information sur la source



Description

Une petit source tout simplet permettant de redimensionner des images .jpg .jpeg .gef et .png en spécifiant l'url de l'image ainsi que la largeur désirée dans les paramètres de la fonction redimensionner.
Cette fonction contraint le rééchantillonage à une largeur fixe et maintient le ratio de l'image.
 

Source

  • <?php
  • function redimensionner($img_url,$largeur)
  • {
  • // Déterminer l'extension à partir du nom de fichier
  • $extension = substr( $img_url, -3 );
  • // Afin de simplifier les comparaisons, on met tout en minuscule
  • $extension = strtolower( $extension );
  • switch ( $extension ) {
  • case "jpg":
  • case "peg": //pour le cas où l'extension est "jpeg"
  • $src_im = createimagefromjpeg( $img_url );
  • break;
  • case "gif":
  • $src_im = createimagefromgif( $img_url );
  • break;
  • case "png":
  • $src_im = createimagefrompng( $img_url );
  • break;
  • default:
  • echo "L'image n'est pas dans un format reconnu. Extensions autorisées : jpg/jpeg, gif, png";
  • break;
  • }
  • // Récupère les dimensions de l'image
  • $size = GetImageSize($img_url);
  • $src_w = $size[0];
  • $src_h = $size[1];
  • // Taille de votre image
  • $dst_w = $largeur;
  • // Contraint le rééchantillonage à une largeur fixe et maintient le ratio de l'image
  • $dst_h = round(($dst_w / $src_w) * $src_h);
  • $dst_im = ImageCreateTrueColor($dst_w,$dst_h);
  • // ImageCopyResampled copie et rééchantillonne l'image originale
  • ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
  • // ImageJpeg génère l'image dans la sortie standard (c.à.d le navigateur)
  • ImageJpeg($dst_im);
  • ImageDestroy($dst_im);
  • imageDestroy($src_im);
  • }
  • ?>
<?php

function redimensionner($img_url,$largeur)
{
	// Déterminer l'extension à partir du nom de fichier
	$extension = substr( $img_url, -3 );
	// Afin de simplifier les comparaisons, on met tout en minuscule
	$extension = strtolower( $extension );

	switch ( $extension ) {

	    case "jpg":
	    case "peg": //pour le cas où l'extension est "jpeg"
	        $src_im = createimagefromjpeg( $img_url );
	        break;

	    case "gif":
	        $src_im = createimagefromgif( $img_url );
	        break;

	    case "png":
	        $src_im = createimagefrompng( $img_url );
	        break;

	    default:
	        echo "L'image n'est pas dans un format reconnu. Extensions autorisées : jpg/jpeg, gif, png";
	        break;
	}

	// Récupère les dimensions de l'image
	$size = GetImageSize($img_url);
	$src_w = $size[0];
	$src_h = $size[1];
	
	// Taille de votre image
	$dst_w = $largeur; 
	
	// Contraint le rééchantillonage à une largeur fixe et maintient le ratio de l'image
	$dst_h = round(($dst_w / $src_w) * $src_h);
	$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
	
	// ImageCopyResampled copie et rééchantillonne l'image originale
	ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
	
	// ImageJpeg génère l'image dans la sortie standard (c.à.d le navigateur)
	ImageJpeg($dst_im);
	ImageDestroy($dst_im);
	imageDestroy($src_im);
}

?>

Conclusion

Si vous avez des suggestions pour améliorer ce source n'hésitez pas ^^
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de petifa le 27/09/2008 11:33:50

Slt CrazyShooter
Ton code est court, je ne l'ai pas testé.
Par contre je sais pas si c'est volontaire mais tu as un cas default et lorsque tu vas dedans tu as mis un message d'avertissement. Cependant tu fais quand même les traitements derrière alors que le format n'est pas "reconnu", fait directement un return à la fin du default...

PS : ton break dans le default est inutile

A+

signaler à un administrateur
Commentaire de coucou747 le 27/09/2008 13:04:11

salut

ce genre de code, on en a vu plein, et le tien ne propose pas grand chose de plus que les autres :
quand tu veux garder les dimentions proportionelles :
  tu peux tres bien fixer la largeur et calculer la longueur
  tu peux tres bien fixer la longueur et calculer la largeur
  tu peux tres bien donner une longueur max et une largeur max, et demander l'image la plus grande qui ne depasse pas
  tu peux tres bien donner une longueur max et une largeur max, et demander l'image la plus petite qui prend au moins cet espace

Bref, c'est incomplet.

Sinon, tu devrais gerer des Exceptions quand les fonctions de manipulations d'images echouent, quand l'image n'est pas du bon format, etc...

signaler à un administrateur
Commentaire de webdeb le 27/09/2008 13:49:15

On récupère l'extension d'un fichier avec la fonction pathinfo() :

http://fr.php.net/pathinfo

Exemple :

$file = '/var/www/monsite.com/www/images/image.png';
echo pathinfo($file, PATHINFO_EXTENSION);

++

signaler à un administrateur
Commentaire de mfaraday le 28/09/2008 22:46:00

Salut,

Pour compléter Coucou et Webdeb, tu pars du postulat que la personne qui se sert de ta fonction donnera une bonne url en paramètre et tu ne testes donc pas si le fichier existe ni même si les paramètres entrés lors de l'appel de ton fonction (...ou pas) sont du type attendu.

Bien entendu tu génères des exceptions :)

Bon courage

Flo

signaler à un administrateur
Commentaire de niz91 le 24/02/2009 11:01:29

bonjour tu met que l'image est contraint a largeur fixe.
peut tu modifier pour largeur +hauteur fixe pour pouvoir redimmensuionner les image en mode portrait et paysage.merci

signaler à un administrateur
Commentaire de scorpion077 le 13/05/2009 18:47:38

Bonjour,

j'ai testé cette fonction, et j'ai ce message d'erreur dans le navigateur : Fatal error: Call to undefined function createimagefromjpeg()

Cordialement.

signaler à un administrateur
Commentaire de scorpion077 le 14/05/2009 14:21:07

J'ai trouvé l'erreur. Une fonction est mal écrite : createimagefromgif. En réalité c'est imagecreatefromgif.

signaler à un administrateur
Commentaire de scorpion077 le 14/05/2009 16:44:14

J'ai collé ce code. J'ai mis 500 en largeur et mes photos sont minuscules...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

transparence sur gif ou png [ par kikistef ] Je recherche le moyen de creer un nouveau fichier image (gif ou png) à partir d'un gif ou png en utilisant la palette d'une autre image. Ca marche mai Redimensionner une image gif à l'aide de gdlib [ par el_bassir ] Bonjour,Ce que j vx c de pouvoir redimensionner des images gif &#224; l'aide de php et de la bibliotheque gd; EST CE QU'IL Y A QUELQU'UN QUI PEUT M'AI Image [ par bm67 ] Programme; &lt;?php$image=imagecreate(80,80<FONT color=#0080 redimensionner une image [ par kinooo ] Est ce que qq un pourrait m'expliquer comment faire pour redimensionner une image.et evantuellement comment afficher une image en taille reduite.merci Problème de chargement d'image dans un tableau [ par cascad ] j'ai un probl&#232;me avec ce bout de code, &lt;?php header ("Content-type: image/png"); $source[0][0] = imagecreatefrompng("herbe.PNG"); $source[0][1 Qualité horrible d'une vignette GIF transparent lors du redimentionnement [ par khoudj ] Bonjour, j'ai un petit probl&#232;me: quand je cr&#233;e en php une vignette d'une image gif avec une transparence, la vignette est bien cr&#233;e, & Fonctions de réduction et de restitution de la taille d'une image [ par amewole ] Bonjour,Je cherche deux fonctions qui permettent&nbsp; d'une part de r&#233;duire la taille d'une image (JPG,JPRG, GIF ..) et d'autre part&nbsp; de re demande de codes [ par dady3d ] tout d'abort bonsoir a tous, je suis a la recherche d'un code source pour pouvoir avoir un lien url d'une image (par ex: http://img/01.gif) pour faire Redimensionner un .gif transparent [ par D1stort1on ] Salut à tous,Je suis en train de travailler sur un site ou les utilisateurs pourront ajouter de nouveaux partenaires avec leurs logos respectifs.Mon s Problème à gérer les GIF animés via la Galerie GD [ par Fran6web ] Bonjour à tous!Je me retrouve avec un problème comme l'indique le titre du sujet.J'utilise la galerie GD et lorsque le visiteur envoi sont image GIF a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.