Redimensionner les images d’un article à la volée

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Ce filtre permet de redimensionner à la volée les images ajoutées par un auteur dans le texte d’un article. Il est possible de spécifier la valeur maximale pour la largeur, la hauteur, ou bien pour les deux.

Présentation

Beaucoup de squelettes attendent des images d’une certaine taille pour s’afficher correctement. Cependant, tous les auteurs ne sont pas habitués à ajuster la taille des images manuellement. L’idée est donc d’assurer la cohérence de la taille des images en redimensionnant automatiquement à l’aide d’un filtre, toutes les images illustrant un article .

Comment utiliser ce filtre ?

Ce filtre est une version modifiée du filtre reduire_image.

Le filtre recoit deux arguments :
-  La taille maximale de l’image (en pixel)
-  L’axe le long duquel il faut redimensionner (x,y,both)

La syntaxe est :
reduire_all_images{taille_max,direction}

Par exemple, pour limiter la taille des images à 500 pixels de large on utilise :

<BOUCLE_art(ARTICLES){id_article}>
[(#TEXTE|reduire_all_images{500,x})]
</BOUCLE_art>

Avec ce filtre, une image de 450x600 ne serait pas redimentionnée, mais une image de 600x600 le serait.

Image originale
L’image est plus petite que la colonne et son texte de description n’est pas entièrement visible
Image redimentionnée
L’image a été redimentionnée avec le filtre reduire_all_images{500,x}. Elle est maintenant complètement visible, ainsi que son texte de description

Comme pour tout filtre, le traitement n’est effectif que dans la partie publique. Vous ne pourrez donc pas visualiser l’effet dans la partie privée.

fonctionnement

Si la librairie GD est installée sur le serveur, un nouveau fichier image sera créé la première fois que vous appelez la page appelant le filtre. Cette image sera utilisée pour tous les appels ultérieurs des filtres.

Si la librairie GD n’est pas installée, le redimensionnement sera obtenu simplement en spécifiant les attributs de largeur (width) et de hauteur (height) sur le tag <img> généré pour le code html.

Cache

Les images redimensionnées sont sauvegardées dans un sous répertoire « resized » situé dans le sous répertoire de IMG correspondant à l’extension du fichier.
exemple : IMG/jpg/resized ou IMG/gif/resized

Elles ne sont calculées que la première fois que le filtre est appelé.

Le fichier de sauvegarde de l’image redimensionnée a un nom formé ainsi :
size-axe-imagename.extension

Par exemple, un fichier image nommé image1.jpg redimensionné à 500 pixels selon l’axe des X sera sauvegardée dans le répertoire IMG/jpg avec le nom de fichier : 500-x-image1.jpg

maintenance automatique

Une opération de maintenance automatique a lieu après un certain délai. Cette durée est indiquée dans la variable $maint_delay en début de fichier et peut être changée. C’est une semaine par défaut.

$maint_delay = 3600*24*7; 
// 7 jours de 24h de 3600 secondes

L’opération de maintenance consiste à faire le ménage et à effacer les fichiers inutilisés (un « garbage collector »).

Ainsi, si vous modifiez les squelettes et les tailles des vignettes, ou que vous changez d’images originales, des images préallablement créées deviendront inutiles. La maintenance détectera qu’elles ne sont plus utilisée et les effacera automatiquement du répertoire resized.

Note : Si jamais une image redimensionnée est effacée de manière prématurée (parcequ’elle n’est presque jamais visualisée par exemple), alors elle sera recrée au besoin, donc rien de gênant.

Installation

Pour installer ce filtre, téléchargez l’archive attachée à l’article, décompressez le fichier mes_fonctions.php3 et ajoutez son contenu dans votre propre fichier mes_fonctions.php3 à la racine de votre site Spip. Si vous n’avez pas encore de fichier appellé mes_fonctions.php3 ajoutez simplement celui-ci.

Ce filtre est expérimental, vous êtes libre de me contacter (en italien ou anglais ;o) si vous rencontrez des soucis.

téléchargement
Copiez-coller le code du fichier mes_fonctions dans votre propre fichier mes fonctions

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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