Réduire la résolution d'image en php
Résolu/Fermé
Gilledunord
Messages postés
49
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
27 mars 2013
-
1 août 2011 à 12:17
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 18 août 2011 à 19:00
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 18 août 2011 à 19:00
A voir également:
- Réduire la résolution d'image en php
- Comment réduire la taille d'un fichier - Guide
- Comment reduire la taille d'une image - Guide
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
- Google recherche par image - Guide
2 réponses
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
1 août 2011 à 13:30
1 août 2011 à 13:30
Si tu met juste un paramètre width="80" sur la balise img, c'est le navigateur qui va "retaillé" l'affichage de l'image.
Ce n'est pas génial car il va devoir quand même téléchargé toute l'image et si elle est grande ça va peser lourd sur la bande passante si tu fait par exemple une gallerie de 50 photos de bonne qualité.
Du coup je te conseille plutôt de retaillé l'image du côté du serveur par le biais de la librairie GD (fait un phpinfo(); pour savoir si tu l'a).
Voici un exemple de code que je te laisse adapter à tes besoins, ici moi je génère l'image miniature que si elle n'existe pas, sinon j'envoie celle qui existe déjà (afin d'éviter tout le boulot à chaque fois).
Attention aux failles (possibilité de changer le $_GET du lien et d'ainsi charger un autre fichier.
Ce n'est pas génial car il va devoir quand même téléchargé toute l'image et si elle est grande ça va peser lourd sur la bande passante si tu fait par exemple une gallerie de 50 photos de bonne qualité.
Du coup je te conseille plutôt de retaillé l'image du côté du serveur par le biais de la librairie GD (fait un phpinfo(); pour savoir si tu l'a).
Voici un exemple de code que je te laisse adapter à tes besoins, ici moi je génère l'image miniature que si elle n'existe pas, sinon j'envoie celle qui existe déjà (afin d'éviter tout le boulot à chaque fois).
Attention aux failles (possibilité de changer le $_GET du lien et d'ainsi charger un autre fichier.
<?php // The file you are resizing $file = $_GET['img']; if(file_exists("./map/".$file)) { if(!file_exists("./map/thumbs/$file")) { // This sets it to a .jpg, but you can change this to png or gif //header('Content-type: image/jpeg'); // Setting the resize parameters list($width, $height) = getimagesize("./map/".$file); $modwidth = 278; //$width * $size; $modheight = 155; //$height * $size; // Resizing the Image $tn = imagecreatetruecolor($modwidth, $modheight); $image = imagecreatefromjpeg("./map/".$file); imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height); // Outputting a .jpg, you can make this gif or png if you want //notice we set the quality (third value) to 100 //imagejpeg($tn, null, 80); imagejpeg($tn, "./map/thumbs/$file", 80); imagedestroy($tn); } header("Content-type: image/jpeg"); readfile("./map/thumbs/$file"); } else { die($_GET['img']." not found."); } ?>
Gilledunord
Messages postés
49
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
27 mars 2013
2
1 août 2011 à 18:40
1 août 2011 à 18:40
Bonsoir scriptiz
En fait mes images sont uploadés en partie "administration" et les liens pour récupérer les images sont dans une base MySQL.
Le script ce que tu donnes marche mais il réduit définitivement l'image.
Car j'utilisai la même image miniaturisée avec le width="80" comme lien vers l'image non miniaturisée.
Donc avec ton code qui me donne quand même satisfaction, je vais uploader l'image vers deux endroits différents, l'une qui doit rétrécir dans un répertoire "miniature" et l'autre dans un répertoire "originale"
Je te remercie beaucoup pour ton aide qui résolut mon problème.
En fait mes images sont uploadés en partie "administration" et les liens pour récupérer les images sont dans une base MySQL.
Le script ce que tu donnes marche mais il réduit définitivement l'image.
Car j'utilisai la même image miniaturisée avec le width="80" comme lien vers l'image non miniaturisée.
Donc avec ton code qui me donne quand même satisfaction, je vais uploader l'image vers deux endroits différents, l'une qui doit rétrécir dans un répertoire "miniature" et l'autre dans un répertoire "originale"
Je te remercie beaucoup pour ton aide qui résolut mon problème.
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
18 août 2011 à 19:00
18 août 2011 à 19:00
C'est exactement ce que je fais aussi :) un répertoire miniatures où sont générées les miniatures des grosses images, et quand on clique sur la miniature ça envoie vers l'image taille réelle.
Et hop économie de bande passante :)
Et hop économie de bande passante :)