Plugin fonctions d’images : les filtres de traitement des images

Cet article présente les filtres de traitement des images du plugin Fonctions d’images.
Sur votre site, la page ?page=demo/fonctions_images&filtres=images vous permet de voir ces filtres en action.

Le plugin Fonctions d’images fournit des filtres pour le traitement des images et des couleurs qui complètent les filtres natifs de Spip (couleurs automatiques, traitement automatisés des images et images typographiques)
Ceux-ci sont essentiellement extraits du site Paris-Beyrouth, où l’on retrouve une explication détaillée pour la plupart des filtres.

Voir également les filtres de couleur.

image_saturer

Modifie la saturation d’une image.

syntaxe |image_saturer{1.2}
argument nombre entre 0 et 2
exemple #CHEMIN{images/ecureuil.jpg}|image_saturer{1.2}
filtre |image_saturer

image_niveaux_gris_auto

Corrige automatiquement les niveaux de gris d’une image.
Paris-Beyrout : Correction automatique des niveaux

Les zones trop claires ou trop sombres seront réajustées, produisant une image plus équilibrée.

syntaxe |image_niveaux_gris_auto
exemple #CHEMIN{images/ecureuil.jpg}|image_niveaux_gris_auto
filtre |image_niveaux_gris_auto

image_courbe

Modifie les courbes d’une image.
Paris-Beyrouth : Modifier les courbes d’une image.

Ce filtre vous permet de manipuler les coordonnées de 2 points ’virtuels’ de la courbe d’une image.

courbes d’une image

Prenons 2 points, le premier situé dans les zones sombres de l’image : 80=80 , le second dans les zones claires : 170=170 (l’échelle va de 0 à 255). Augmenter la coordonnée Y d’un point va éclaircir la zone, baisser cette coordonnée va l’assombrir.
Ainsi 80=30 / 170=220 va augmenter le contraste, tandis que 80=100 / 170=150 va produire l’effet inverse.
On peut travailler sur toutes les couches de couleur de l’image (rouge, vert ou bleu), ou sur une couche de couleur en particulier. Combiner plusieurs filtres image_courbe d’affilé permet d’obtenir des effets très variés.

syntaxe |image_courbe{rvb, 80=30, 170=220}
argument 1 rvb/r/v/b couche(s) de couleur(s) affectée(s)
argument 2 x=y nombres de 0 à 255
argument 3 x=y (optionnel) nombres de 0 à 255
exemple #CHEMIN{images/ecureuil.jpg}|image_courbe{rvb, 80=30, 170=220}
filtre |image_courbe

image_float

Fait en sorte que le texte épouse le contour d’une image transparente.
Paris-Beyrouth : Un habillage irrégulier

syntaxe |image_float{left, 10, ffffff}
argument 1 left/center/right position de l’image
argument 2 nombre marge en px autour de l’image
argument 3 #couleur (optionnel) couleur de fond de l’image
exemple #CHEMIN{images/ecureuil_decoupe.png}|image_float{left, 5}
filtre |image_float

image_contour_alpha

Trace le contour d’une image transparente.
Paris-Beyrout : Tracer les contours de transparence

syntaxe |image_contour_alpha{000000, 1}
argument 1 #couleur couleur du contour
argument 2 nombre épaisseur du contour
exemple #CHEMIN{images/ecureuil.jpg}|image_contour_alpha{000000, 1}
filtre |image_contour_alpha

image_sincity

Effet automatique : saturation contrastée + accentuation du rouge
Paris-Beyrouth : Welcome to Spip-City

syntaxe |image_sincity
exemple #CHEMIN{images/ecureuil.jpg}|image_sincity
filtre |image_sincity

image_estampage_alpha

Réalise des estampages.
Paris-Beyrouth : Des titres en relief

L’intérêt est d’utiliser ce filtre en combinaison avec d’autres. Voir le lien précédent pour une utilisation avec |image_typo.

syntaxe |image_estampage_alpha{1,1}
argument 1 nombre épaisseur en px
argument 2 nombre netteté
exemple #CHEMIN{images/ecureuil_decoupe.png}|image_estampage_alpha{1,1}
filtre |image_estampage_alpha

image_dispersion

Réalise des dispersions, des floutages.
Paris-Beyrouth : un filtre de dispersion graphique

Ce filtre se sert d’une image repère (= masque en noir & blanc), qui va indiquer comment déplacer les pixels de l’image de base.
noir = déplacement vers la gauche / en haut
gris = pas de déplacement
blanc = déplacement vers la droite / en bas

syntaxe |image_dispersion{url_image, 8, 8}
argument 1 url du masque
argument 2 nombre déplacement en x
argument 3 nombre déplacement en y
exemple #CHEMIN{images/ecureuil.jpg}|image_dispersion{#CHEMIN{images/disp-noir.png},8,8}
filtre |image_dispersion

image_merge

Superpose une image sur une autre.
Le filtre |image_masque de Spip permet d’obtenir le même résultat, et propose plus d’options.

syntaxe |image_merge{url_image, right, top}
argument 1 url image à superposer
argument 2 left/center/right placement horizontal
argument 3 top/middle/bottom placement vertical
exemple #CHEMIN{images/quadrillage.png}|image_merge{#CHEMIN{images/cercle.png},center,middle}
filtre |image_merge

image_negatif

Passe une image en négatif.
Le filtre |image_courbe{rvb, 0=255, 255=0} produira le même résultat.

syntaxe |image_negatif
exemple #CHEMIN{images/ecureuil.jpg}|image_negatif
filtre |image_negatif

Photo originale de l’écureuil glouton par Gilles Gonthier

Discussion

8 discussions

  • La plugin est-il ok pour PHP 7.3 ? A première vue, tout marche en php 7.2, mais en 7.3 :

    Warning : imagesx() expects parameter 1 to be resource, bool given in /home/clients/5241e22xxxxxx/plugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1162

    Warning : imagesy() expects parameter 1 to be resource, bool given in /home/clients/5241e22264axxxxx/plugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1175

    Warning : imagesx() expects parameter 1 to be resource, bool given in /home/clients/5241e22264ac7xxxxx/plugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1187

    Warning : imagesy() expects parameter 1 to be resource, bool given in /home/clients/5241e22264ac7f2099xxxxxplugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1187

    Warning : imagecopy() expects parameter 2 to be resource, bool given in /home/clients/5241e222xxxxxplugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1187

    Warning : imagedestroy() expects parameter 1 to be resource, bool given in /home/clients/5241e2226xxxxx/plugins/auto/fonctions_images/v0.7.1/filtres/images_complements.php on line 1190

    Est-il prévu de le mettre à jour ou bien ce plugin n’est plus maintenu ?

    Merci de votre aide.

    Julien

    Répondre à ce message

  • Bonjour,

    À priori, problème avec les images au format png.

    Quand je fais :

    #LOGO_ARTICLE|image_niveaux_gris_auto

    sur l’image de gauche, j’obtiens l’image de droite.

    Si l’image source est en jpg, le résultat est correct. Malheureusement, je ne peux pas repasser toutes les images du site en jpg. Accessoirement, ce sont es cartes et le png est plus adapté.

    Je m’en sors avec un

    <BOUCLE_logo_type(CONDITION){si #LOGO_ARTICLE|extraire_attribut{src}|url_absolue|exif_imagetype|image_type_to_mime_type|={image/png}}>

    Dans le cas du png, je ne fais pas de |image_niveaux_gris_auto, mais il y a peut-être plus efficace que de relire les données exif et le type mime à chaque fois ? NE devrait-il pas y avoir un test en amont ou qqchose comme ca ?

    Répondre à ce message

  • Bonjour,

    À priori, problème avec les images au format png.

    Quand je fais : #LOGO_ARTICLE|image_niveaux_gris_auto sur l’image de gauche, j’obtiens l’image de droite.

    Si l’image source est au format jpg au lieu de png, le résultat est correct. Malheureusement, je ne peux pas repasser toutes les images du site en jpg. Accessoirement, ce sont es cartes et le png est plus adapté.

    Je m’en sors avec un :
    <BOUCLE_logo_type(CONDITION){si #LOGO_ARTICLE|extraire_attribut{src}|url_absolue|exif_imagetype|image_type_to_mime_type|={image/png}}>
    et dans le cas du png, je ne fais pas de |image_niveaux_gris_auto

    Est ce qu’il y a plus optimisé ? Est ce qu’il ne devrait pas y avoir un test en amont ?

    Répondre à ce message

  • 2

    Bonjour,

    Je rencontre les notice suivante :

    Notice: Undefined variable: somme_bas in /plugins/fonctions_images/filtres/images_complements.php on line 260
    Notice: Undefined variable: somme_bas in /plugins/fonctions_images/filtres/images_complements.php on line 261
    Notice: Undefined variable: somme_haut in /plugins/fonctions_images/filtres/images_complements.php on line 264
    Notice: Undefined variable: somme_haut in /plugins/fonctions_images/filtres/images_complements.php on line 265

    Mais je trouve pas comment les corrigés

    • En voilà une autre
      Notice : Undefined offset : 0 in /plugins/fonctions_images/filtres/images_complements.php on line 261

    • Bonjour,

      Une idée de correction pour ça ? Php 7.1 et SPIP 3.2.4 à jour

    Répondre à ce message

  • 4

    Bonjour, je viens de passer mon site de SPIP 3.1 à 3.2.1. Étrangement le filtre |image_contour_alpha000000, 2 ne fonctionne plus alors que les autres (test de image_saturer et image_estampage_alpha1,1) fonctionnent parfaitement… Suis-je le seul dans le cas ? Une idée du problème ? D’ailleurs les filtres de traitement d’image n’apparaissent pas sur ma page /spip.php ?page=demo/fonctions_images. Il n’y a que les filtres de couleur qui apparaissent.
    Merci d’avance.

    • Hello,

      Peux-tu activer l’affichage des erreurs pour voir ce qu’il en est dans  ?page=demo/fonctions_images ?

      Dans mes_options.php, cf. https://www.spip.net/fr_article4453.html :

      error_reporting(E_ALL^E_NOTICE);
      ini_set ("display_errors", "On");
      define('SPIP_ERREUR_REPORT',E_ALL);

      En cas d’erreur php, donne aussi ta version de php (visible dans ?exec=info)

    • Merci de ta réponse rapide. Je crois avoir bien suivi tes instructions.

      PHP Version 5.6.24-0+deb8u1

      La page ?page=demo/fonctions_images ? réponds toujours de la même façon en affichant seulement les filtres de couleur. Par contre en cliquant sur les filtres images spécifiques dans le menu de gauche, on obtient invariablement le même message d’erreur :

      Fatal error : Call to undefined function couleur_hex_to_dec() in […]/plugins/auto/fonctions_images/v0.6.13/filtres/images_complements.php on line 544

      Cela aide-t-il ?

    • Il restait effectivement des appels à des fonctions devenues obsolètes suite à r102496.

      C’est corrigé dans la dernière version (+ ménage dans la page de démo).

    • Nickel, tout semble refonctionner comme avant ! Quelle rapidité ! Merci.

    Répondre à ce message

  • 3

    J’ai une boucle DATA qui va chercher l’url d’une image
    #VALEURchemin/images/large

    Comment lui appliquer les filtres ?
    [(#LOGO_ARTICLE|image_negatif|image_saturer2)] => OK

    [(#VALEURchemin/images/large|image_negatif|image_saturer2)] => RIEN

    Répondre à ce message

  • 1

    ce qui serait bien utile c’est une fonction de watermark

    ou on indiquerais le nom du fichier que l’on souhaite sur-imprimer au document original et comme ca on pourrait ajouter des watermark automatic sur toutes nos images, comme des pros :)

    j’ai un petit filtre comme ca mais c’est une usine a gaz pour le moment. je suppose que tu es assez proche de pouvoir faire un truc sympa

    le point chiant c’est decider de la taille du watermark en fonction de la taille de l’image d’origine.

    • Ce doit déjà être possible avec |image_masque. Par exemple |image_masque{chemin/vers/watermark.png, mode=normal, bottom=5, right=5}.

    Répondre à ce message

  • 1

    Pourquoi « image_niveaux_gris_auto » alors que ça fait « image_niveaux_auto » ?

    • « image_niveaux_gris_auto » n’ajuste que la luminosité, « image_niveaux_auto » ajuste indépendamment chaque couche de couleur (cf. Paris-Beyrouth).
      Par contre ce dernier filtre n’est pas implémenté dans le plugin, j’ai essayé de la rajouter mais sans succès pour l’instant (je ne suis l’auteur ni des filtres, ni de leur mise en plugin).
      C’était bien ça la question ?

    Répondre à ce message

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