[script] Generation d'images à la volée
41 messages • Page 3 sur 3 • 1, 2, 3
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
je suis en train de une class galerie avec comme tu precise la possibilité de mettre les photos par repertoire (il cree 3 type de format) il gere automatique les page posibilite de les rajouter une par une, disposition paramettrable, url_rw et tout ca parametrable par un panneau d'admin et sans Bdd.
Je la mettrai a disposition des qu'elle sera potable (le code est encore "cradoc" et il reste des bug de portabilité
pour voir ce que ca donne c'est ici -> http://www.logitour-repdom.com/photo-re ... caine.html
Je la mettrai a disposition des qu'elle sera potable (le code est encore "cradoc" et il reste des bug de portabilité
pour voir ce que ca donne c'est ici -> http://www.logitour-repdom.com/photo-re ... caine.html
Salut a tous.
J'ai fait un petit script pour que les visiteurs de mon site puissent poster une photo, leur post s'enregister ds une bdd, et j'ai ensuite une page qui viste la bdd pour mettre en page toutes les images postées par ce script.
Dans cette page, j'ai une miniature de chaque image, une moyenne et quand on clique sur la moyenne ça affiche la grande.
Seulement je n'ai pas su comment faire pour céer trois images différentes dynamiquement quand le visiteur poste la sienne, et du coup c'est la grande image qui est affichée en petit et en moyen, et donc ça ralentit le chargement de la page...
Si vous avez quelque chose a me proposer je serai heureux, je pense par exemple au code de tex qui a l'air parfait, si tu pouvais me le filer... ou sinon celui de zimounet, je pourait peut etre en faire quelque chose.
Merci
J'ai fait un petit script pour que les visiteurs de mon site puissent poster une photo, leur post s'enregister ds une bdd, et j'ai ensuite une page qui viste la bdd pour mettre en page toutes les images postées par ce script.
Dans cette page, j'ai une miniature de chaque image, une moyenne et quand on clique sur la moyenne ça affiche la grande.
Seulement je n'ai pas su comment faire pour céer trois images différentes dynamiquement quand le visiteur poste la sienne, et du coup c'est la grande image qui est affichée en petit et en moyen, et donc ça ralentit le chargement de la page...
Si vous avez quelque chose a me proposer je serai heureux, je pense par exemple au code de tex qui a l'air parfait, si tu pouvais me le filer... ou sinon celui de zimounet, je pourait peut etre en faire quelque chose.
Merci
Bon ben moi il va falloir que je m'y mette à faire la création d'images à la volée
, car pour l'instant j'y vais au burin
, mais comme j'ai peu de photos et qu'en plus je rajoute une ombre portée ...
Fandecine, en modifiant un peu ton script, c'est possible de rajouter l'ombre portée
(je t'avoue que je ne l'ai pas lu en entier, et comme en ce moment je prépare une certif PHP
)
A+
A+
-

XenonDelee - WRInaute passionné

- Messages: 919
- Inscription: Mar Avr 06, 2004 12:09
voila une façon simple de redimensionner les images lors de l'upload
l'image est ici réduite de 40%
Vous pouvez changer le pourcentage ...
ps : le code n'est pas totalement de moi ... je me suis inspiré de ce que j'ai trouvé sur le net ... mais je me souviens plus où ... donc dsl de ne pas citer ma source ... mais comme qui disait plus haut ... vive l'open source
- Code: Tout sélectionner
function miniaturiser($file,$nom,$rep){
$size = getimagesize($file);
$largeur=$size[0];
$hauteur=$size[1];
$dest_width=round(($largeur*0.4),0);
$dest_eight=round(($hauteur*0.4),0);
$src_img = imagecreatefromjpeg($file);
$dst_img = imagecreatetruecolor($dest_width,$dest_eight);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight,$size[0], $size[1]);
$nom=$rep.$nom;
imagejpeg($dst_img,$nom, 60);
}
l'image est ici réduite de 40%
- Code: Tout sélectionner
$dest_width=round(($largeur*0.4),0);
$dest_eight=round(($hauteur*0.4),0);
Vous pouvez changer le pourcentage ...
ps : le code n'est pas totalement de moi ... je me suis inspiré de ce que j'ai trouvé sur le net ... mais je me souviens plus où ... donc dsl de ne pas citer ma source ... mais comme qui disait plus haut ... vive l'open source
Dernière édition par XenonDelee le Ven Déc 22, 2006 11:41, édité 1 fois.
-

XenonDelee - WRInaute passionné

- Messages: 919
- Inscription: Mar Avr 06, 2004 12:09
ps 2
petite amélioration du code précédent
comme ça on passe le pourcentage en paramètre ... et en plus c'est plus court ...
variables :
$file=le nom du fichier de départ avec le chemin ( ex: ../photos/monimage.jpg )
$nom = le nom de la miniature avec le chemin ( ex: ../photos/m_monimage.jpg )
$pourcentage : le chiffre doit être un 0.... ( ex : 0.5 pour 50 % )
et voilou
petite amélioration du code précédent
- Code: Tout sélectionner
function miniaturiser($file,$nom,$pourcentage){
$size = getimagesize($file);
$largeur=round(($size[0]*$pourcentage),0);
$hauteur=round(($size[1]*$pourcentage),0);
$src_img = imagecreatefromjpeg($file);
$dst_img = imagecreatetruecolor($largeur,$hauteur);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $largeur, $hauteur,$size[0], $size[1]);
imagejpeg($dst_img,$nom, 60);
}
comme ça on passe le pourcentage en paramètre ... et en plus c'est plus court ...
variables :
$file=le nom du fichier de départ avec le chemin ( ex: ../photos/monimage.jpg )
$nom = le nom de la miniature avec le chemin ( ex: ../photos/m_monimage.jpg )
$pourcentage : le chiffre doit être un 0.... ( ex : 0.5 pour 50 % )
et voilou
- extremenet
- WRInaute discret

- Messages: 89
- Inscription: Lun Oct 02, 2006 17:38
Re: [script] Generation d'images à la volée
RE
J'ai reussi à faire une fonction avec ce que j'ai pu trouver
Le probleme c'est qu'il n'arrive pas à créer la deuxiéme image.
Si quelqu'un peu m'aider sur cette fonction
Merci par avance
J'ai reussi à faire une fonction avec ce que j'ai pu trouver
Le probleme c'est qu'il n'arrive pas à créer la deuxiéme image.
Si quelqu'un peu m'aider sur cette fonction
- Code: Tout sélectionner
if(!empty($_FILES["fichierimage"]["name"])){
$racine="avatar";
$width_max = 1100; // Largeur max de l'image en pixels
$height_max = 1100;
$max_size = 500000;
$name = $_FILES["fichierimage"]["name"];
$ext = substr($name, strrpos($name, ".") + 1);
$nom_fichier=basename($name,".".$ext);
$extension = strrchr($name, ".");
$nom_fichier="avatar$_SESSION[id_membre].$ext";
$filename = "$racine/$nom_fichier";
if (@move_uploaded_file($_FILES["fichierimage"]["tmp_name"], "$racine/$nom_fichier")){
@chmod("$racine/$nom_fichier", 0777);
if ($ext=="PNG" or $ext=="png") { $src_img1 = "imagecreatefrompng"; }
if ($ext=="gif" or $ext=="GIF") { $src_img1 = "imagecreatefromgif"; }
if ($ext=="jpg" or $ext=="JPG") { $src_img1 = "imagecreatefromjpeg"; }
if ($ext=="jpeg" or $ext=="JPEG") { $src_img1 = "imagecreatefromjpeg"; }
$nom_fichier1="avatar$_SESSION[id_membre].$ext";
$nom1 = "$racine/$nom_fichier1";
$size = getimagesize($filename);
$largeur="200";
$hauteur="200";
$src_img = $src_img1($filename);
$racine = imagecreatetruecolor($largeur,$hauteur);
imagecopyresampled($racine, $src_img, 0, 0, 0, 0, $largeur, $hauteur,$size[0], $size[1]);
imagejpeg($racine,$nom1, 75);
$nom_fichier1="avatar$_SESSION[id_membre].$ext";
$nom1 = "$racine/$nom_fichier1";
$size = getimagesize($nom1);
$largeur="60";
$hauteur="60";
$src_img = $src_img1($nom1);
$racine = imagecreatetruecolor($largeur,$hauteur);
imagecopyresampled($racine, $src_img, 0, 0, 0, 0, $largeur, $hauteur,$size[0], $size[1]);
imagejpeg($racine,$nom1, 75);
}
Merci par avance
- extremenet
- WRInaute discret

- Messages: 89
- Inscription: Lun Oct 02, 2006 17:38
Re: [script] Generation d'images à la volée
oui
les 2 derniere lignes du deuxieme code à la creation sont en defaut
imagecopyresampled($racine, $src_img, 0, 0, 0, 0, $largeur, $hauteur,$size[0], $size[1]);
imagejpeg($racine,$nom1, 75);
les 2 derniere lignes du deuxieme code à la creation sont en defaut
imagecopyresampled($racine, $src_img, 0, 0, 0, 0, $largeur, $hauteur,$size[0], $size[1]);
imagejpeg($racine,$nom1, 75);
Re: [script] Generation d'images à la volée
Je ne comprends pas trop pourquoi tu utilises un fichier à part (que tu appelles via <img>) pour générer tes images et que ensuite, tu appelles une URL pour (si j'ai bien compris) générer ton image qui sera donc visible uniquement de l'admin qui ajoute l'image (donc inutile dans l'absolu).
Comme PHP n'exige pas qu'on visualise l'image pour la générer, pourquoi ne pas se contenter d'une fonction (ou mieux ... une class permettant de faire bien plus de chose qu'une simple redirection) qui la générerai sans avoir une page intermédiaire pour générer tes miniatures ? Bref inclure la génération de tes miniatures directement lors de ton traitement d'ajout de fiche de ciné.
Et du coup, je comprend la remarque qui a suivit, concernant le file_exists.
Sinon, pour le code, je ne vais pas m'amuser à dire : "tu pourrais faire ça plus proprement ..." on trouve toujours plus malin que soit.
Sinon, une petite astuce (à prendre ou pas) qui permet à la fois de générer les photos à la volée et à la fois de garder l'image en cache navigateur serait de :
1- Niveau HTML vous mettez une url avec un format fixe et identifiable. exemple : 150x120/votre-rewrite-125.jpg qui correspondrait à "largeur"x"hauteur"/"titre rewrite de l'image"-"id de l'image"."extension". Vous pourriez évidemment dire "mini" au lieu de "150x120".
2- On suppose que la photo n'existe pas (miniature non faites). Forcement, on arrive sur une erreur 404. A ce moment là, on appel un fichier PHP (via .htaccess) qui fera le contrôle de l'url et après parse, si il est identifié que c'est une image, qu'elle existe en original, et qu'on demande tel ou tel taille (qui serait contrôlé pour éviter les pb avec les petits malins), on génère l'image, on l'enregistre au bon endroit et on l'affiche via header() ensuite, histoire de ne pas avoir d'image retournant une erreur lors de la première génération. (il va de soi que si ce n'est pas une image, on renvoi sa page 404 classique)
3- Si elle existe (suite à la première création), aucun soucis, elle est affiché directement sans appel de PHP et donc il est parfaitement possible de gérer le cache navigateur, puisqu'en effet, cette image existe en dure sur votre serveur.
Donc gros avantage, vous changez de taille, c'est totalement transparent pour vous comme pour le visiteur (si votre programme de miniature est bien géré, ça se voit pas). Et c'est aussi simple que de changer un bout de code dans votre code ensuite.
Je l'ai moi-même testé sur 65 000 images suite à un changement de design où les miniatures devaient quasi doublé de taille et c'était bien pratique de ne pas se préoccuper de ça. (et sincèrement, les images pas encore miniaturisés s'affichées quasiment à la même vitesse que les autres).
Sinon, je les génère en général également dans l'admin, parce que tout est automatisé et que c'est donc tout aussi simple.
Comme PHP n'exige pas qu'on visualise l'image pour la générer, pourquoi ne pas se contenter d'une fonction (ou mieux ... une class permettant de faire bien plus de chose qu'une simple redirection) qui la générerai sans avoir une page intermédiaire pour générer tes miniatures ? Bref inclure la génération de tes miniatures directement lors de ton traitement d'ajout de fiche de ciné.
Et du coup, je comprend la remarque qui a suivit, concernant le file_exists.
Sinon, pour le code, je ne vais pas m'amuser à dire : "tu pourrais faire ça plus proprement ..." on trouve toujours plus malin que soit.
Sinon, une petite astuce (à prendre ou pas) qui permet à la fois de générer les photos à la volée et à la fois de garder l'image en cache navigateur serait de :
1- Niveau HTML vous mettez une url avec un format fixe et identifiable. exemple : 150x120/votre-rewrite-125.jpg qui correspondrait à "largeur"x"hauteur"/"titre rewrite de l'image"-"id de l'image"."extension". Vous pourriez évidemment dire "mini" au lieu de "150x120".
2- On suppose que la photo n'existe pas (miniature non faites). Forcement, on arrive sur une erreur 404. A ce moment là, on appel un fichier PHP (via .htaccess) qui fera le contrôle de l'url et après parse, si il est identifié que c'est une image, qu'elle existe en original, et qu'on demande tel ou tel taille (qui serait contrôlé pour éviter les pb avec les petits malins), on génère l'image, on l'enregistre au bon endroit et on l'affiche via header() ensuite, histoire de ne pas avoir d'image retournant une erreur lors de la première génération. (il va de soi que si ce n'est pas une image, on renvoi sa page 404 classique)
3- Si elle existe (suite à la première création), aucun soucis, elle est affiché directement sans appel de PHP et donc il est parfaitement possible de gérer le cache navigateur, puisqu'en effet, cette image existe en dure sur votre serveur.
Donc gros avantage, vous changez de taille, c'est totalement transparent pour vous comme pour le visiteur (si votre programme de miniature est bien géré, ça se voit pas). Et c'est aussi simple que de changer un bout de code dans votre code ensuite.
Je l'ai moi-même testé sur 65 000 images suite à un changement de design où les miniatures devaient quasi doublé de taille et c'était bien pratique de ne pas se préoccuper de ça. (et sincèrement, les images pas encore miniaturisés s'affichées quasiment à la même vitesse que les autres).
Sinon, je les génère en général également dans l'admin, parce que tout est automatisé et que c'est donc tout aussi simple.
41 messages • Page 3 sur 3 • 1, 2, 3
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Google signe avec Lycos Europe un accord sur la publicité ciblée
- Les albums web Picasa passent à 1 Go de stockage
- Comment éviter de se faire voler son nom de domaine...
- Photos satellite des incendies en Grèce dans Google Earth
- Ajouter un Gadget Google sur son site
- Google Desktop pour Mac OS X
- Picasa Web Albums en français
- Google Pack s'enrichit de 2 nouveaux logiciels gratuits
- Résultats des élections présidentielles du 1er tour 2007
- Script php de génération de thumb à partir d'une URL
- [script] Génération Google sitemap dynamique sans BDD
- Script maison de génération d'erreur avec envoi d'un e-mail
- script images defilantes
- Cherche script d'hebergement d images
- Script de redimensionnement photos/images
- script pour empêcher de me voler les images
- mon script de protection des images en php
- Script PHP permettant de gérer des images
- Recherche d'un script de news avec images et commentaires
- Le script PHP tant attendu : protection des images
- Script pour compresser, recadrer, redimensionner des images
- mettre les images de mon script par ordre alphabetique
- Script php qui zip des images et fait une save
- Affichage direct des images dans Google Images
Consultez la description détaillée des produits ou services de Google suivants : Google Images, Hello, Google Image Labeler
Qui est en ligne
Utilisateurs parcourant ce forum: jv2759 et 0 invités






le forum