Bonjour à tous
J’aimerais pouvoir générer une image "à la volée" ce qu’on doit pouvoir faire avec quelque chose comme

<img src="img-generator.php?name=toto&par1=....&par2=...">

Auriez-vous des retours d’expérience à communiquer ? En particulier sur les problèmes de performances et sur le referencement de telles images?
Merci de vos conseils
Modérateur
Et l'eau,

Si tu ne fais pas de resize, je ne vois pas de souci de perf. C'est quoi ton image ? Peut être que le front, peut te rendre service (svg / canvas)
Si l'image est au format SVG, on peut la générer en PHP côté serveur et l'insérer directement dans la page HTML générée.
J'ai fait cela récemment pour tracer des courbes
Merci de vos réponses
Les images sont des photos jpeg.
Le point c’est que selon le contexte la taille de l’image doit être très différente, allant de la plus grande taille possible (pour télécharger l’image) à une simple icône. Le design actuel consiste à avoir un jeu de plusieurs images sur le serveur et de générer le src par PHP, avec bien sûr du CSS pour rendre l’image responsive. Comme il y a un bon millier d’images en au moins 3 versions, ça fait une structure un peu complexe à gérer.
Actuellement c’est moi qui gère tout ça, mais si je veux permettre à la propriétaire du site d’ajouter ou changer elle-même des images, il faut mettre à sa disposition un outil de gestion qui fasse qu’elle ne voie qu’une seule image et qu’elle puisse choisir de mettre une icône à un endroit ou une image qui prenne tout l’écran à un autre, etc.
Je suis donc à la recherche d’un design approprié, qui "gomme" la nécessité technique d’avoir plusieurs versions de chaque photo. La "génération à la volée" est une piste parmi d’autres.
Bonjour.
bazooka07 a écrit :
...Si l'image est au format SVG, on peut la générer en PHP côté serveur et l'insérer directement dans la page HTML générée...

Pas uniquemet SVG.
Avec la bibliothèque GD (il existe apparemment GD2), on peut redimensionner les images aux formats courants...
Si je ne m'abuse...
Smiley smile
Zelena a écrit :
Bonjour.

Pas uniquemet SVG.
Avec la bibliothèque GD (il existe apparemment GD2), on peut redimensionner les images aux formats courants...
Si je ne m'abuse...
Smiley smile

Oui, c'est du reste ce que je fais quand je "génère à la volée": j'appelle la fonction de redimensionnement et j'envoie le résultat.
Mon idée c'est que quand on veut afficher une image ça se fasse par un appel à une fonction php qui fasse le job, en lui donnant le nom de l'image et un paramètre du genre "type=icon"
Techniquement ça marche, je me demande simplement s'il n'y a pas des effets de bords,du genre déréférencement de l'image.
Bonjour PapyJP,

Pour moi, cela va pas passer.
Pour que ton image soit référencée
Il faudrait que tu arrives à faire un truc comme cela
<img src="/par1/par2/name.jpg">
<img src="/par1_par2_name.jpg">
<img src="icone[small|grosbig]/par1_par2_name.jpg">

Avec un url rewriiting dans le htaccess

Coté performance : temps de latence du au traitement php
A voir aussi si, dans ce cas, le cache navigateur fonctionnera
Tu sera peux être obligé de mettre des information en plus dans le header
Modifié par aliasdmc (13 May 2018 - 13:51)
Utiliser srcset signifie que les n images existent en tant que telles dans le répertoire du serveur, justement ce que j’essaIe d'éviter.
J’ai bien entendu pensé utiliser un url rewriting, c’est effectivement une autre façon d’appeler le programme de génération si l’appel direct aboutit à un absence de référencement. De toute façon je ne comprends pas très bien comment référencer les images. J’ai l’impression que seules les pages contenant un gros texte sont prises en charge par Google & Co.
Je pense que le stockage des photos en plusieurs exemplaires n'est pas un problème aujourd'hui.
Tu peux très bien avec un dossier avec des photos de "taille normale" et créer un sous-dossier pour chaque taille différente.
Comme on te le fait remarquer il y aura un temps de latence pour redimensionner les photos à la volée.
Dans le cas d'un site à forte affluence, cela peut dégouter les visiteurs et pénaliser le site pour le référencement.
N'oublie que les temps de réponse des serveurs à une requête HTTP sont pris en compte par les moteurs de recherche.
Tu n'es pas non plus obligé de stocker les photos sur ton serveur. Je l'ai fait avec Free.fr et Flick'r:
http://jeveuxpartir.free.fr/PluXml/index.php?static22/scott-martin
Modifié par bazooka07 (13 May 2018 - 14:44)
Bonjour PapyJP,
Quand tu dis :
je ne comprends pas très bien comment [b]référencer les images[/i]
on est bien sur le fait de faire ressortir ton image pour une expression spécifique , c'est pas juste qu'elle soit présente dans l'index des images ?
Plusieurs sous dossiers avec des images de tailles différentes, c’est justement ce que j’ai aujourd’hui. Si je dois garder cette approche ET donner la main à la propriétaire du site, il faut faire un programme de gestion assez complexe.
Par exemple si elle veut renommer une image, il faut renommer toutes les occurrences.
Comme j’ai déjà dit, je suis en train d’investiguer s’il n’est pas possible de faire autrement.
S’il n’y a pas de solution simple, j’en resterai à la solution actuelle.
Modifié par PapyJP (13 May 2018 - 19:47)
Ben t'as déjà fait la moitié du boulot.
Si tu as respecté une certaine logique dans le nom des sous-dossiers et des photos redimensionnés, il ne doit pas y avoir de souci
Tu as juste à créer quelques routines en PHP pour les 3 actions de base:
* ajouter des photos dans un dossier, créer les sous-dossiers pour chaque taille s'il n'existe pas,
générer les photos redimensionnées
* supprimer un lot de photos en supprimant les photos redimensionnées associées et éventuellement les sous-dossiers s'ils sont vides
* renommer une photo et les photos redimensionnees associées.
Rien de bien compliqué.
@bazooka07:
Ce que tu décris là, c'est mon design actuel, celui auquel j'essaie de trouver une alternative.
Ce qui me gène le plus, c'est de devoir contrôler les différentes tailles d'images de façon statique.
Il faut garder cette arborescence de dossiers/photos sinon tu vas te pénaliser avec les temps de réponse du serveur.
Après cela dépend comment tu as nommé tes dossiers et photos redimensionnées.
C'est clair que si tu as fait cela "au doigt mouillé" sans trop de rigueur, cela va rajouter une difficulté supplémentaire.
bazooka07 a écrit :

C'est clair que si tu as fait cela "au doigt mouillé" sans trop de rigueur, cela va rajouter une difficulté supplémentaire.

Ne t'inquiète pas pour ça, après 40 ans de vie professionnelle, dont pas mal d'années à développer un système d'exploitation, j'ai acquis la rigueur nécessaire Smiley sweatdrop Smiley biggrin
Christele a écrit :

Donc si le client remets une photo,je lui généres la vignette au premier usage.

Oui, c'est mon design actuel, qui suppose que je connais à l'avance la taille des différentes versions de l'image.
Aujourd'hui j'ai:
- une image "HD", c'est à dire celle que l'utilisateur me fournit
- une image "standard", qui fait 400px de haut et qui convient pour la plupart des cas
- une image "thumbnail" qui fait 120px de haut
Si j'ai besoin de tailles intermédiaires, je pars de celle dont la taille est supérieure ou égale à celle qu'on désire, et un peu de CSS, avec des max-width rend tout ça cohérent et responsive.

Je regardais s'il n'y avais pas une possibilité de faire autrement, mais je pense que je vais en rester là.
PapyJP a écrit :

Aujourd'hui j'ai:
- une image "HD", c'est à dire celle que l'utilisateur me fournit
- une image "standard", qui fait 400px de haut et qui convient pour la plupart des cas
.

Franchement quand on a une des taille type 400px, alors moi je n'utiliserais que la 400px
en jouant sur le whidth .... pas d'image a remanier !
Christele a écrit :

Franchement quand on a une des taille type 400px, alors moi je n'utiliserais que la 400px
en jouant sur le whidth .... pas d'image a remanier !

Effectivement, c'est une solution TRÈS élégante (et pas chère)!
Je suis idiot de ne pas y avoir pensé.