Accueil > > > REDIMENTION D'IMAGE, LIBRAIRIE GD
REDIMENTION D'IMAGE, LIBRAIRIE GD
Information sur la source
Description
Bonjour, j'ai créé cette fonction qui permet de redimentionner une image jpg, gif, ou png, elle utilise la librairie GD de php.
liste des arguments :
$source_url est l'image source, ex : images/1.jpg
$destination_url est l'image destination, ex : images/1_mini.jpg
$taille est la taille de la miniature, appliquée soit a la largeur soit à la heuteur (voir code ci-dessous)
$type est le type de l'image, par défaut jpg, il peut être gif, GIF, png, PNG, jpg, jpeg, JPEG
$save définie si l'on veux quand même enregistrer l'image même si la miniature n'a pas été créée
TRUE si on veux quand même enregistrer
FALSE si on ne veux pas
Source
- function mini_image($source_url, $destination_url, $taille, $type='jpeg', $save=1) {
-
- /*
- $source_url est l'image source, ex : images/1.jpg
- $destination_url est l'image destination, ex : images/1_mini.jpg
- $taille est la taille de la miniature, appliquée soit a la largeur soit à la heuteur (voir code ci-dessous)
- $type est le type de l'image, par défaut jpg, il peut être gif, GIF, png, PNG, jpg, jpeg, JPEG
- $save définie si l'on veux quand même enregistrer l'image même si la miniature n'a pas été créée
- TRUE si on veux quand même enregistrer
- FALSE si on ne veux pas
-
- créé par o-thib-o */
-
- if (preg_match('#jpe?g#i', $type)) {
- $source = imagecreatefromjpeg($source_url); // si l'image est un jpg
- $ext = 1;}
-
- elseif (preg_match('#png#i', $type)) {
- $source = imagecreatefrompng($source_url); // si l'image est un png
- $ext = 2;}
-
- elseif (preg_match('#gif#i', $type)) {
- $source = imagecreatefromgif($source_url); // si l'image est un gif
- $ext = 3;}
-
- $largeur_source = imagesx($source); // on détermine les dimentions de l'image source
- $hauteur_source = imagesy($source);
-
- // On n'effectue la redimention seulement si la miniature que l'on veux faire est plus petite que la source
- if ($taille < $largeur_sourc OR $taille < $hauteur_source) {
-
- /* On regarde la plus grande des deux simentions de l'image
- * Si la largeur est plus grande que la hauteur on calculera la miniature à partir ce celle-ci
- * et inversement pour éviter que des image par example qui font 10x600 soient mal redimentionnées */
-
- if ($largeur_source > $hauteur_source) {
- $largeur_destination = $taille;
- $hauteur_destination = $largeur_destination * $hauteur_source / $largeur_source; }
- else {
- $hauteur_destination = $taille;
- $largeur_destination = $hauteur_destination * $largeur_source / $hauteur_source; }
-
- $destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
-
- // On crée la miniature
- imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
-
- //on enregistre la miniature que l'on viens de créé
- switch ($ext) {
- case 1 :
- imagejpeg($destination, $destination_url);
- break;
- case 2 :
- imagepng($destination, $destination_url); // malheuresement je n'ai pas trouver le moyen de redimentionner les png 24bits en gardant la transparence
- break;
- case 3 :
- imagegif($destination, $destination_url);
- break; }
-
- return 1; // l'image a été enregistrée on retourne TRUE
- }
-
- // si on a pas créé la miniature car elle étais plus grande que la source
- else {
- if ($save) {
- copy($source_url,$destination_url); // on copie quand même l'image
- return 1; // l'image a été enregistrée on retourne TRUE
- }
- else {
- return 0; // rien n'a été faits, on retourne FALSE
- }
- }
- }
function mini_image($source_url, $destination_url, $taille, $type='jpeg', $save=1) {
/*
$source_url est l'image source, ex : images/1.jpg
$destination_url est l'image destination, ex : images/1_mini.jpg
$taille est la taille de la miniature, appliquée soit a la largeur soit à la heuteur (voir code ci-dessous)
$type est le type de l'image, par défaut jpg, il peut être gif, GIF, png, PNG, jpg, jpeg, JPEG
$save définie si l'on veux quand même enregistrer l'image même si la miniature n'a pas été créée
TRUE si on veux quand même enregistrer
FALSE si on ne veux pas
créé par o-thib-o */
if (preg_match('#jpe?g#i', $type)) {
$source = imagecreatefromjpeg($source_url); // si l'image est un jpg
$ext = 1;}
elseif (preg_match('#png#i', $type)) {
$source = imagecreatefrompng($source_url); // si l'image est un png
$ext = 2;}
elseif (preg_match('#gif#i', $type)) {
$source = imagecreatefromgif($source_url); // si l'image est un gif
$ext = 3;}
$largeur_source = imagesx($source); // on détermine les dimentions de l'image source
$hauteur_source = imagesy($source);
// On n'effectue la redimention seulement si la miniature que l'on veux faire est plus petite que la source
if ($taille < $largeur_sourc OR $taille < $hauteur_source) {
/* On regarde la plus grande des deux simentions de l'image
* Si la largeur est plus grande que la hauteur on calculera la miniature à partir ce celle-ci
* et inversement pour éviter que des image par example qui font 10x600 soient mal redimentionnées */
if ($largeur_source > $hauteur_source) {
$largeur_destination = $taille;
$hauteur_destination = $largeur_destination * $hauteur_source / $largeur_source; }
else {
$hauteur_destination = $taille;
$largeur_destination = $hauteur_destination * $largeur_source / $hauteur_source; }
$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
//on enregistre la miniature que l'on viens de créé
switch ($ext) {
case 1 :
imagejpeg($destination, $destination_url);
break;
case 2 :
imagepng($destination, $destination_url); // malheuresement je n'ai pas trouver le moyen de redimentionner les png 24bits en gardant la transparence
break;
case 3 :
imagegif($destination, $destination_url);
break; }
return 1; // l'image a été enregistrée on retourne TRUE
}
// si on a pas créé la miniature car elle étais plus grande que la source
else {
if ($save) {
copy($source_url,$destination_url); // on copie quand même l'image
return 1; // l'image a été enregistrée on retourne TRUE
}
else {
return 0; // rien n'a été faits, on retourne FALSE
}
}
}
Conclusion
Voila j'espers que cette source vous aura été utile, si vouzs avez des remarques a faire n'hésitez pas je suis ouvert à toute critique =)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
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
Redimensionner le background d'un <table> [ par chewbacca156 ]
Hello !Je souhaiterais que l'image de fond de mon menu (généré dynamiquement) s'adapte à la longueur de ce dernier. Tout simplement car une image en d
générer des miniatures avec gd 1.6 [ par vegetaline ]
muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave
redimensionner une image [ par scoder ]
Bonjour, je suis webmaster d'un site consacré au jeu en ligne, et j'ai une rubrique qui recense d'autres équipes. Elles ont chacune une bannière mais
texte sur image... librairie GD ? [ par ozitoun ]
Bonjour bonjour,voili voilou, je cherche à mettre une texte sur une image (jpeg).j'ai essayé les imagestring, imagechar... mais à chaque fois les exem
Couper le bas d'une image (GD PHP) [ par dezeque ]
bonjour,j'aimerai savoir comment faire pour couper le bas d'une image ?elle fais 600X800 et j'aimerai enlver les 50 dernirers pixels du bas pour quell
Problème d'affichage avec la libraire GD [ par CMOIPOPO ]
Salut à tous,Je souhaite dessiner tout bêtement un rectangle en php (je travaille en local) à l'aide de la libraire GD. Pour cela,
Librairie GD, Besoin d'aide !!! [ par Astalavista ]
Bon, je post ca, car je n'arrive pas a trouver ... :( Je cherche un moyen de fair un Stretch sur une image, C'est a dir de deformer
Redimensionner une image en fonction de sa taille [ par Dexterage ]
Bonjour, J'ai un petit probleme, d'ou ma venu ici :) Je crée une gallerie d'image en php, donc la taille des images sont fixes, et losque je le
[BLOB->GD] Redimensionner un "flux image binaire"... [ par arnal69130 ]
Bonjour à tous,Je cherche à faire une page pour afficher la carte d'identité d'un "agent", pour simplifier disons juste son nom et sa p
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|