Adaptive Images

Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation.

Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, résolution et qualité des images utilisées dans une page web en fonction de l’utilisateur.

Les images adaptatives sont nécessaires pour les sites responsive qui vont adapter leur affichage au périphérique de consultation [1] : sur un site responsive la même page est rendue de manière différente selon la taille de l’écran.

Il y a 4 raisons d’adapter l’image envoyée à l’utilisateur :

  • la taille de l’écran (inutile d’envoyer une image de 1000px de large sur un téléphone qui affiche la page en 320px de large) ;
  • la résolution de l’écran (écrans de haute densité, capables d’afficher plus de pixels par pouce qu’un écran habituel) ;
  • la qualité de la connexion internet (notamment en mobilité) ;
  • le contenu éditorial (une image affichée en petit peut devenir illisible et il est alors préférable de la recadrer).

Adapter les images vise donc à améliorer l’expérience utilisateur, en lui délivrant l’image qui convient le mieux à son usage.

Cependant HTML 5 ne prévoit pas encore de balisage ni d’API spécifique à ce besoin, et il est compliqué d’y répondre en l’état : de nombreuses techniques existent, toutes ayant des avantages et inconvénients, plus ou moins simples à mettre en œuvre.

Ce plugin automatise la technique des 3 couches basée sur HTML/CSS/JS.
Cette technique requiert un markup un peu compliqué mais elle a quelques avantages :

  • elle préserve l’accessibilité ;
  • elle ne nécessite pas JavaScript ;
  • elle permet un rendu progressif ;
  • elle prend en compte les problèmes de performance et de cache.
L’utilisation du plugin Adaptive Images n’a de sens que si on veut servir à la fois de grandes images de haute résolution pour les tablettes et desktop, sans pénaliser pour autant les smartphones à petits écrans Si les plus grandes images dont on dispose ont des dimensions de l’ordre de 640px, il sera aussi rapide et bien plus simple de servir ces images pour tous les utilisateurs sans recourir à ce plugin.

Mise en place

Il suffit d’installer et activer le plugin pour qu’il prenne immédiatement en charge toutes les images du site.

Par défaut le plugin va intercepter toutes les pages HTML, et agir sur toutes les images plus larges que 320px et les adapter à l’utilisateur :

  • adaptation à la largeur de l’écran, en supposant une largeur maximale affichée de 640px dans tous les cas ;
  • adaptation à la résolution de l’écran en envoyant une image 1.5x ou 2x ;
  • adaptation à la qualité de la connexion : rendu progressif avec une prévisualisation de basse qualité, et pas d’image 1.5x ou 2x si mauvaise connexion ;
  • adaptation du contenu : possibilité de fournir une version recadrée de l’image pour les petits écrans mobiles.

Limitations
Le plugin ne fournit pas d’image adaptée dans Internet Explorer<10.

La qualité de connexion n’est pas détectée sur les périphériques iOS à ce jour (mais sera presque certainement automatiquement prise en charge dans une prochaine mise à jour de iOS).

Les périphériques Androïd 2.x sans JavaScript risquent de charger plusieurs versions de la même image. Mais ce devrait être un cas très rare.

Optimisation

Certains squelettes, notamment squelettes-dist/ fourni avec SPIP, appliquent automatiquement un filtre |image_reduire sur tous les contenus éditoriaux, comme par exemple :

  1. [(#TEXTE|image_reduire{500})]

Dans ce cas le plugin ne pourra pas bien faire son travail, car la taille maximale dont il dispose pour l’image est de 500px. Il est donc préférable de supprimer ces filtres.

Cependant, il est conseillé d’utiliser le filtre |adaptive_images fourni par le plugin, qui permettra la mise en cache des images adaptées (ce qui est plus écologique et permettra à votre site d’être plus rapide) :

  1. [(#TEXTE|adaptive_images{640})]

L’argument fourni est la largeur maximale dans laquelle l’image est affichée tous écrans confondus. Ici on met 640 px comme largeur maximale d’affichage, ce qui veut dire que le plugin sera susceptible d’envoyer une image en 1280px de large pour les écrans Retina (si l’image d’origine est assez grande).

Si vous ne mettez pas d’argument c’est la valeur par défaut qui est utilisée, qui est personnalisable comme indiqué ci-dessous.

Personnalisation

Il est possible de personnaliser un certain nombre de réglages du plugin via la page de configuration du plugin, si les réglages par défauts, aussi génériques que possibles, ne vous conviennent pas.

En pratique il y a très peu de choses à personnaliser : si vous avez besoin d’une largeur maximale supérieure à 640px, le mieux est d’appliquer le filtre |adaptive_images avec la bonne valeur, comme indiqué ci-dessus.
Une fois l’image adaptée à la bonne largeur, elle ne sera plus modifiée ensuite.

Couleur de fond
Si jamais votre site utilise un fond de couleur foncé (noir ou autre), il peut alors être utile de personnaliser cette couleur utilisée quand l’aperçu au format JPG est produit à partir d’une image PNG ou GIF qui utilise la transparence.

Largeur maximale affichée pour les images adaptées
Cette valeur permet de définir la largeur maximale affichée des images. Il faut éventuellement l’adapter à votre site, en fonction de la largeur maximale de la zone de contenu dans les différentes tailles d’écran.

Largeur maximale de la version mobile
Permet de définir la largeur maximale pour laquelle la version mobile —si elle existe— est utilisée. Par défaut c’est 320px : quand l’image est affichée en 320px ou moins de large, on utilise la version recadrée pour les mobiles, sinon la version complète de l’image.

Largeur minimale pour adapter
Permet de définir la largeur minimale des images qui seront adaptées à l’utilisateur. Les images plus petites seront laissées telles quelles et identiques pour tout le monde.

Poids minimal pour adapter
Permet de définir le poids minimal des images qui seront adaptées à l’utilisateur. Les images plus légères seront laissées telles quelles et identiques pour tout le monde, car générer une image adaptée augmenterait le poids total téléchargé.

Breakpoints
Permet de définir les breakpoints pour lesquels on produit des variantes d’image. Indiquez une liste de largeur en px, séparés par une virgule, dans l’ordre croissant. Les valeurs par défaut sont calées sur des multiples de 160px.

Production des images à la demande
Par défaut, le plugin fabrique toutes les variantes d’images au calcul de la page. Si vous avez beaucoup de grosses images dans vos pages, cela peut provoquer des timeout et vous obliger à recharger la page plusieurs fois.

Cette option permet de fabriquer chaque variante d’image adaptée lorsqu’elle est demandée pour la première fois par un utilisateur.
Pour l’utiliser il faut ajouter les lignes suivantes dans votre fichier .htaccess, après la partie qui vérifie l’existence du fichier, c’est-à-dire juste avant la section # URLs "propres", "propres2", "libres", "arbo" :

###
# Adaptive Images

RewriteRule \badapt-img/(\d+/\d\dx/.*)$ spip.php?action=adapt_img&arg=$1 [QSA,L]

# Fin des Adaptive Images
###

Largeur minimale pour adapter
Permet de définir la largeur minimale des images qui seront adaptées à l’utilisateur. Les images plus petites seront laissées telles quelles et identiques pour tout le monde.

Compression JPG
Vous pouvez définir la qualité de la compression des images JPG utilisées pour les différents affichages : Image d’aperçu basse qualité, image 1x, image 1.5x, image 2x.

Pour l’image d’aperçu la valeur indiquée est prise comme une valeur de base pour une image d’origine de 450Kpx, et le plugin pourra varier de +/- 50% autour de cette valeur en fonction de la taille de l’image utilisée pour produire l’aperçu (afin de garder un niveau d’information à peu près constant)

Les autres réglages (moins utiles)

Bon, si vous aimez vraiment bidouiller, vous pouvez jouer avec les quelques autres réglages via le fichier mes_options.php.

_ADAPTIVE_IMAGES_NOJS_PNGGIF_PROGRESSIVE_RENDERING permet de conserver ou non le rendu progressif des images PNG et GIF quand JavaScript est désactivé. Si le rendu progressif est conservé sans JavaScript, les images avec transparence pourront être dégradées. Par défaut on ne le conserve donc pas.

  1. define('_ADAPTIVE_IMAGES_NOJS_PNGGIF_PROGRESSIVE_RENDERING',false);

_ADAPTIVE_IMAGES_DOMAIN permet de définir un nom de domaine qui sera utilisé pour les URLs des images adaptatives. Cela peut-être utile si vous voulez placer vos images sur un domaine statique sans cookie par exemple.

  1. define('_ADAPTIVE_IMAGES_DOMAIN','http://example.org/');

Variante d’image pour petits écrans

Le plugin permet également de joindre à chaque image une variante pour mobiles. Pour cela il suffit de modifier l’image dans l’espace privé de SPIP, et de joindre la version recadrée dans le cartouche du bas intitulé Version mobile :

À noter que pour pouvoir fournir une version haute résolution aux écrans de type Retina, il convient de fournir une image dont la largeur minimale est au moins 2x la valeur de _ADAPTIVE_IMAGES_MAX_WIDTH_MOBILE_VERSION. L’interface indique la largeur minimum attendue, ici 640px donc.

Pour que le rendu soit correct dans toutes les conditions, la variante pour petits écrans doit avoir les mêmes proportions que l’image principale. Si la variante que vous ajoutez ne respecte pas ces proportions, un message d’avertissement vous le signalera accompagné d’une suggestion de dimensions :

Si vous voulez spécifier une variante mobile d’une image insérée par votre squelette ou autrement que par le contenu éditorial de SPIP, il suffit de préciser le chemin de l’image dans un attribut data-src-mobile :

<img src="..." data-src-mobile="...." alt="..." />

Le plugin repèrera automatiquement l’attribut et utilisera cette variante pour les mobiles.

Classes spécifiques au plugin

Le plugin utilise quelques classes dont vous pouvez avoir besoin dans vos feuilles CSS.

Les images adaptées ont une classe adapt-img et sont encapsulées dans un wrapper avec la classe adapt-img-wrapper. Si par exemple vous voulez mettre des coins arrondis sur vos images, il faudra aussi les appliquer sur .adapt-img-wrapper :

  1. img,.adapt-img-wrapper { border-radius:5px; }

Les images fournies à Internet Explorer < 10 ont aussi une classe spécifique adapt-img-ie.

Cas particuliers

Une image plus grande sur la home

Certaines pages peuvent contenir une image plus large que dans le reste du site. Par exemple votre contenu ne dépasse jamais 640px de large, mais sur la page d’accueil du site vous avez une image en 960px de large sur les grands écrans.

Pour traiter ce cas il suffit de lui appliquer le filtre |adaptive_images avec la largeur adaptée. Dans l’exemple ci-dessus ce serait |adaptive_images{960}

Ne pas adapter certaines images

Pour empêcher le plugin d’adapter certaines images que vous voulez conserver intactes, il suffit de leur ajouter une classe no-adapt-img.

Notes

[1on parle de device en anglais

Dernière modification de cette page le 13 février 2019

Discussion

37 discussions

  • Bonjour,
    étant dans un div englobant l’image, est-il possible de récupérer la hauteur de l’image adaptée ? je récupère toujours la hauteur de l’image d’origine

    merci

    Répondre à ce message

  • Bonjour, je met un breakpoint à 800 dans la configuration du plugins
    160,320,480,640,800,960,1440
    J’ai vidé le cache par l’admin.

    je met une image de 800/ 600 mais l’image apparait en 640/480 dans son conteneur de 800 sur l’ordinateur et il me faut cliquer dessus pour avoir l’image en 800/600 dans son conteneur
    quand je regarde avec l’inspecteur firefox, l’image adaptée fait 640/ 480
    je vois bien un cache adapt-img en 800 sur le serveur.

    <img src="local/adapt-img/fallback/a68596463d0a0e4caf5d4e3511d1c3a3.jpg" alt="" class="adapt-img " onmousedown="adaptImgFix(this)" width="800" height="600">
    Sur les petits écrans... bien sur pas de pb par exemple l’image adaptée est en 480/360.

    Que faut-il faire pour que l’image adaptée soit en 800
    merci

    Répondre à ce message

  • Bonjour,
    de plus si je met dans la configuration : taille maximale des images adaptées à 800, alors j’ai une image de 640 qui lorsque je clique dessus prend la taille désirée suivant le container( par exemple 740)

    Mes images sont recadrées par une fonction qui fonctionne bien au niveau du recadrage et qui par ex suivant le cas fait

    $img= image_recadre($img, « $largeur :$hauteur »,’-’,$position,’transparent’) ;
    $img = image_reduire($img, $largeur, $hauteur) ;
    ou
    $img = image_recadre($img, $largeur, hauteur($img),$position,’transparent’) ;
    $img = image_recadre($img, $largeur, $hauteur, ’transparent’) ;

    Répondre à ce message

  • Bonjour,
    j’affiche des grandes images pour un slider haut de page et des images dans des conteneurs de 800.
    Les rédacteurs étant un peu fantaisiste dans leur préparation des images, je remet les images a une même dimension ..hauteur , largeur
    J’utilise le plugin centrer_image, qui permet de choisir l’élément central du recadrage, avec des recadre proportions par exemple
    image_recadre800:600,-,’focus’ et des images_reduire
    adaptive_images800 j’ai essayé avec mais cela ne permet pas d’avoir une hauteur fixe . Comment faire ?

    Répondre à ce message

  • 2

    Hello,

    J’ai un souci avec la version mobile des images : quand les utilisateurs mettent une version mobile avec un format différent, sur écran large il y a le « fantôme » de la version mobile en arrière plan : https://cloud.mukt.fr/index.php/s/zor8Yq9LS7BQcFA

    Dans le code, le background-image de <span class="adapt-img-wrapper"> est correct, par contre le <img src="..."> prend la version mobile.

    <span class="adapt-img-wrapper c1070361041 jpg">
        <img src="data:image/jpeg;base64,XXX" data-src-mobile="IMG/jpg/image-mobile.jpg" class="adapt-img " onmousedown="adaptImgFix(this)" width="1600" height="300">
    </span>
    • Implicitement la version mobile attendue a les mêmes proportions que la version desktop. L’interface le suggère en proposant de retailler dans un sens ou dans l’autre pour respecter cela.

      La version mobile permet de faire un recadrage spécifique, ou un zoom sur le sujet pour prendre en compte que l’image sera affichée en plus petit, mais pas d’utiliser des proportions différentes

    • Ok, pour l’instant je contourne le problème en faisaint un adaptImgFix(this) sur toutes les images au chargement de la page (une rustine faite en urgence).

      Après, est-ce qu’il s’agit d’une limitation technique, ou d’un choix éditorial imposé par le plugin ? Parceque c’est assez courant d’avoir besoin de proportions différentes pour les images mobiles.

    Répondre à ce message

  • 5

    Bonjour,

    Est-il normal que sur un navigateur classique (non mobile) les images disparaissent lorsqu’on réduit la taille de la fenêtre en dessous de 480px ?
    D’après mon Firebug, l’appel CSS en cause est :
    html img.adapt-img
    opacity : 0.01 ;

    Par ailleurs, j’ai testé sur Android 4.2, même souci.
    Aux toutes petites résolutions (<480px), l’image est quasiment transparente (opacity : 0.01)
    Il semblerait que quelque chose contrarie le plugin Adaptative Images.
    (Hélas, pour l’instant, je ne peux vous montrer une version en ligne de ces pages.)

    Autre question : cela peut-il être dû au fait que mes images sont appelées via une balise du type #FICHIER|image_reduire600,0 ?

    • Bonjour,
      J’ai le même problème, je l’ai résolu provisoirement en désactivant les options « Produire les variantes d’images uniquement quand elles sont nécessaires » et « Ne charger les images adaptatives que lorsqu’elles sont visibles » dans la config du plugins...Je n’ai malheureusement pas les compétences pour investiguer au-delà.

    • Salut

      Même souci avec une opacity à 0.7 sur de grandes images forcées à 940pixels sur la home du site. Les autres images ne posent pas de problèmes.

      tchuus

    • Bonjour,

      je remets au goût du jour cette question car je bute également sur cette barre fatidique et mystérieuse des 480px en dessous de laquelle mes images affichent une opacité de 0.01.

      Résolu temporairement le problème en désactivant effectivement « Produire les variantes d’images uniquement quand elles sont nécessaires » et « Ne charger les images adaptatives que lorsqu’elles sont visibles », mais je ne suis pas certain que ce soit optimal (et même, je suis tenté de penser l’inverse)... Mais pourquoi donc 480px ?

      Je serais pourtant assez tenté de faire un @media (max-width : 480px) opacity : 1 en conservant coché les 2 options car elles optimisent, me semble-t-il, réellement l’affichage... ça fonctionne également.

      Quelle est votre recommandation ?

    • Hello,

      Moi aussi j’ai ajouté

      @media (max-width : 480px) opacity : 1

      Je n’y ai pas vu d’inconvénients jusqu’à présent

    • Bonsoir DD,

      Non, effectivement, vu comme ça, je ne trouve pas non plus d’inconvénient. Ca fonctionne.

      Mais étant données les discussions récurrentes des Spipien.ne.s sur l’optimisation des ressources (parfois pour quelques ms de gain), je me demande si cette solution est recommandée, et si oui, pourquoi ne pas modifier le plugin...

      Affaire à suivre ;-)

    Répondre à ce message

  • 1

    Hello Cerdic,

    Le plugin n’est malheureusement pas compatible avec la version SPIP 3.2.
    Nous restons donc sur la 3.1.17.

    Y aura-t-’il une mise à jour ou autre alternative ?

    Merci.

    • (Bis) C’est OK ! avec la Revision 106542 en changeant le fichier paquet.xml.

      Très bonne nouvelle :) Merci pour tout !

    Répondre à ce message

  • Salut,

    j’ai un souci avec colorbox : lorsque j’ouvre un article dans une boite modale avec ZPIP et

    1. #URL_ARTICLE|parametre_url{var_zajax,content}

    pour ne charger que le bloc content de l’article, les images adaptatives ne fonctionnent pas car le bloc head (qui contient les styles pour les faire fonctionner) n’est pas chargé.

    J’ai beau tourner le problème dans tous les sens, je ne trouve pas de solution.

    Quelqu’un a t’il une piste ?

    Une solution qui pourrait régler ce type problème serait d’étendre la classe no-adapt-img au parent des images pour pouvoir désactiver toutes les images du champs #TEXTE par exemple.

    Merci

    Répondre à ce message

  • 6

    Bonjour,
    Ca ne fonctionne pas sur une mutualisation car le chemin vers les images adaptées conduit à un 404

    où et comment peut on modifier le filepath ?

    • Hello formatec,

      tu as trouvé ?

    • Une bidouille qui a l’air de marcher :

      1./ Utiliser la variable _ADAPTIVE_IMAGES_DOMAIN :

      1.     define('_ADAPTIVE_IMAGES_DOMAIN','http://mondomaine.fr');

      2./ Dans adaptive_images_options.php, remplacer la ligne 35 pour ajouter :

      			$ndd = replace(_ADAPTIVE_IMAGES_DOMAIN,'http://','');
      			$filepath = replace($filepath,'/IMG','/sites/'.$ndd.'/IMG');
      			$filepath = rtrim(_ADAPTIVE_IMAGES_DOMAIN,"/")."/sites/$ndd/".$filepath;
    • A vrai dire, j’avais laissé tomber et remis un |image_reduire au lieu de |adaptive_images
      Ce matin, ta piste m’a donné envie de m’y remettre et ça marche nickel. Un grand merci yohoo !!!

      J’explique un peu plus ta bidouille pour ceux que cela intéresse.

      CONFIGURER LE PLUGIN ADAPTATIVE IMAGE POUR DES SPIPS MUTUALISES

      dans un site normal, le chemin est :
      /local/adapt-img/1000/10x/IMG/jpg/monimage.jpg
      alors que sur un site mutualisé, le chemin vers l’image devient :
      /local/adapt-img/1000/10x/ sites/mondomaine.fr/ IMG/jpg/monimage.jpg
      il va donc falloir bidouiller pour insérer sites/mondomaine.fr/ au coeur de l’url générée par le plugin.

      1/ Modifier le plugin. Penser à recommencer cette modif en cas de mise à jour du plugin
      remplacer la ligne 35 par ces trois lignes :

      $ndd = replace(_ADAPTIVE_IMAGES_DOMAIN,'http://','');
      $filepath = replace($filepath,'/IMG','/sites/'.$ndd.'/IMG');
      $filepath = rtrim(_ADAPTIVE_IMAGES_DOMAIN,"/")."/sites/$ndd/".$filepath;

      Ces trois lignes créent une variable qui sera le nom de domaine sans le http puis viennent l’insérer dans l’url existante et regénère le bon chemin

      2/ A faire pour chaque domaine mutualisé
      dans votre config, ouvrez ou crééz un fichier mes_options.php
      et insérez la ligne suivante :

      1. define('_ADAPTIVE_IMAGES_DOMAIN','http://mondomaine.fr');

      cela servira au plugin modifié lors de la première étape de retrouver votre nom de domaine et de réécrire correctement vos url.

      Une fois fait, votre plugin fonctionnera normalement et la doc de cette page reste valable.

    • il me semble que le chemin vers les images adaptées devrait être

      sites/mondomaine.fr/local/adapt-img/1000/10x/IMG/jpg/monimage.jpg

      et pas

      local/adapt-img/1000/10x/sites/mondomaine.fr/IMG/jpg/monimage.jpg

      car je crois que chaque site mutalisé a bien son dossier sites/xxx/local/
      cette histoire de mutualisation me semble définitivement bancale, tout ça est hors garantie du constructeur s’entends ^^

    • Hello,

      1./ Tout d’abord, un préalable :
      Attention, il s’agit bien d’une bidouille. Il faudrait que je me penche d’avantage sur le sujet pour, au moins, surcharger la fonction dans le squelette plutôt que de modifier le plugin à volo.

      2./ Ensuite, pour répondre à Cerdic :
      Sur un site mutualisé, le plugin crée des fichiers images dans des adresses de type :

      sites/mondomaine.fr/adapt-img/1000/10x/sites/mondomaine.fr/IMG/jpg/monimage.jpg

      La variable « sites/ » + nom de domaine apparaît donc 2 fois dans le chemin, sûrement pour différencier les cas de figure au cas où plusieurs site utiliseraient le même fond d’images.

      3./ Enfin, une petite modif concernant une situation non envisagée dans mon premier post :
      Dans certains cas de figure, les images ne sont pas situés dans ’/IMG’, mais dans ’/local/cache-gd2’. Pour que la bidouille fonctionne, il faut donc répondre à ce cas de figure. Le code à rajouter devient donc :

      $ndd = replace(_ADAPTIVE_IMAGES_DOMAIN,'http://','');
      $filepath = replace($filepath,'/IMG','/sites/'.$ndd.'/IMG');
      $filepath = replace($filepath,'/local/cache-gd2','/sites/'.$ndd.'/local/cache-gd2');
      $filepath = rtrim(_ADAPTIVE_IMAGES_DOMAIN,"/")."/sites/$ndd/".$filepath;
    • Hello,

      J’avance dans mon système de bidouillage spécial sites mutualisés :

      Il faut mettre une condition au code délivré ci-dessus car l’adaptive image peut aussi être appliqué à un élément d’ergonomie d’un squelette (amené par la balise #CHEMIN par exemple). Dans ce cas, il ne faut pas modifier le chemin de l’image :

      if (match($filepath,'/IMG') || match($filepath,'/cache-gd2') ) {
       $ndd = replace(_ADAPTIVE_IMAGES_DOMAIN,'http://','');
       $filepath = replace($filepath,'/IMG','/sites/'.$ndd.'/IMG');
       $filepath = replace($filepath,'/local/cache-gd2','/sites/'.$ndd.'/local/cache-gd2');
       $filepath = rtrim(_ADAPTIVE_IMAGES_DOMAIN,"/")."/sites/$ndd/".$filepath;
      }

    Répondre à ce message

  • 3

    Bonsoir,

    Pour les fichiers du portfolio de l’article la boucle ci-dessous m’affiche « IMG/jpg/nom_du_fichier.jpg » au lieu de l’image correspondante.

    <BOUCLE_diaporama(DOCUMENTS){id_article=3}{extension==jpg|png|gif}{mode=document}{doublons}>
    [<div>(#FICHIER|adaptive_images{655})</div>]
    </BOUCLE_diaporama>

    Une idée de ce qui cloche dans ma boucle ?

    Merci d’avance

    • Je suis allé un peu vite et j’ai oublié de saisir la boucle entre des balises <code>

      Pour les fichiers du portfolio de l’article la boucle ci-dessous m’affiche « IMG/jpg/nom_du_fichier.jpg » au lieu de l’image correspondante.

      <BOUCLE_diaporama(DOCUMENTS){id_article=3}{extension==jpg|png|gif}{mode=document}{doublons}>
      [<div>(#FICHIER|adaptive_images{655})</div>]
      </BOUCLE_diaporama>

      Une idée de ce qui cloche dans ma boucle ?

      Merci d’avance

    • une précision :
      la boucle fonctionne bien avec
      [<div>(#FICHIER|image_reduire{655,*})</div>]
      mais pas avec
      [<div>(#FICHIER|adaptive_images{655,*})</div>]

    • Bonjour,
      #FICHIER n’est pas une image mais un nom de fichier. Les filtres image_xx savent prendre un nom de fichier en entrée et le transformer en image avant de la transformer si besoin, mais le filtre adaptive_images ne fait pas ça.

      Il faut écrire :
      [<div>(#FICHIER|balise_img|adaptive_images{655})</div>]

      Attention le filtre adaptive_images ne prend qu’une seule dimension (la largeur) en argument, et pas 2.

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom