Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 1796

Enregistré le: 8 Nov 2004

Message le Mar Nov 29, 2005 17:10

finalement, je me suis fait ma propre fonction, je la publierai si sa interresse quelqu'un.
Haut
Messages: 506

Enregistré le: 7 Juil 2005

Message le Ven Fév 03, 2006 9:33

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
Haut
Messages: 33

Enregistré le: 9 Mai 2006

Message le Ven Aoû 25, 2006 15:03

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
Haut
Messages: 1665

Enregistré le: 21 Sep 2006

Message le Jeu Sep 21, 2006 7:40

lol

juste pour remarquer que :

faire appel à un programme externe à php pour redimentionner les images implique que php ne tourne pas en safe mode

ça peut se révéler très dangereux

source : zone-h.org

lol

rog
Haut
Messages: 776

Enregistré le: 23 Oct 2006

Message le Sam Nov 25, 2006 19:33

Bon ben moi il va falloir que je m'y mette à faire la création d'images à la volée :D , car pour l'instant j'y vais au burin :roll: , mais comme j'ai peu de photos et qu'en plus je rajoute une ombre portée ... :roll: 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+
Haut
Messages: 923

Enregistré le: 6 Avr 2004

Message le Ven Déc 22, 2006 12:32

voila une façon simple de redimensionner les images lors de l'upload

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 :P
Modifié en dernier par XenonDelee le Ven Déc 22, 2006 12:41, modifié 1 fois.
Haut
Messages: 923

Enregistré le: 6 Avr 2004

Message le Ven Déc 22, 2006 12:36

ps 2

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 :lol:
Haut
Messages: 168

Enregistré le: 2 Oct 2006

Message le Dim Mar 01, 2009 20:04

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

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
Haut
Messages: 22678

Enregistré le: 8 Aoû 2004

Message le Lun Mar 02, 2009 0:24

As-tu un message d'erreur qui s'affiche ? si non as-tu mis error_reporting(E_ALL) dans ton code ?
Haut
Messages: 168

Enregistré le: 2 Oct 2006

Message le Lun Mar 02, 2009 4:21

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);
Haut
Messages: 220

Enregistré le: 5 Aoû 2008

Message le Ven Mai 22, 2009 19:22

fandecine est toujours mon préféré. Merci beaucoup, tes tutoriels sont toujours pratiques.
Haut
Messages: 1429

Enregistré le: 28 Nov 2003

Message le Dim Mai 31, 2009 2:23

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.
Haut
Messages: 6

Enregistré le: 5 Avr 2012

Message le Ven Avr 06, 2012 0:54

Merci pour toutes ces infos grave utile !!!
Haut
Messages: 8

Enregistré le: 6 Juil 2013

Message le Sam Juil 06, 2013 23:58

Bonjour,

Merci beaucoup mais malheuresement ça ne fonctionne pas chez moi :/
Haut
Messages: 3

Enregistré le: 18 Juin 2014

Message le Mer Juin 18, 2014 18:00

domage qu'il n'y ai pas plus de fonction en php, car en aspirant les images du net, il est plaisant d'en recréer d'autres à 100% basé sur les effets.

J'ai un peu testé et c'est quand même chouette
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.