spip/images | 20 commits
Par Cerdic, le 7 janvier 2025 à 12h22min :
fix: fournir un résultat aux bonnes dimensions si |image_masque ne sait pas traiter l’image source et que l’on masque sans positionnement (ie dans ce cas on retourne le masque et pas l’image source)
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
refactor: re-ecriture propre des fonctions _image_masque_pixel_mode_xxx, fonction support _image_masque_merge_transparent_pixels() pour merger 2 pixels, qui est reutilisee presque dans tous les calculs, phpdoc
Modifié
filtres/images_lib.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
refactor: déplacer _image_masque_prepare_masque() dans filtres/images_lib
Modifié
filtres/images_lib.php
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
refactor: chaque masque est implémenté par une fonction _image_masque_pixel_mode_xxxx() qui reçoit la couleur du pixel de l’image et la couleur du pixel du masque et retourne la couleur du pixel résultat (la fonction peut renvoyer null pour indiquer que le pixel de l’image source est inchangé).
Cela permet par ailleurs de définir ses propres modes de fusion, il suffit d’implémenter la fonction de masque pixel _image_masque_pixel_mode_xxxx correspondante
Modifié
filtres/images_lib.php
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
docs: option repeat sur |image_masque
Modifié
filtres/images_transforme.php
Détails : docs: option repeat sur |image_masque (ae7706b9) · Validations · spip / images · GitLab
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
refactor: optimisation, si on est dehors du masque il n’y a rien a calculer ni a modifier sur l’image d’origine
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h22min :
feat: le filtre |image_masque prend une nouvelle option repeat qui peut prendre les valeurs repeat-x, repeat-y, repeat et no-repeat et permet de configurer un placement répété du masque.
Il est ainsi possible de texturer une grande image avec un petit masque a motif recurrent
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
feat: un filtre |image_supprime_exif qui permet de supprimer les exif d’une image (y compris exif orientation donc)
Modifié
filtres/images_transforme.php
images_fonctions.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: supprimer l’orientation imagick issue de exif quand on charge une image via intervention, pour avoir un comportement homogene gd2/imagick
Modifié
filtres/images_lib.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: optimiser |image_oriente_selon_exif en ne faisant rien egalement si il y a une info exif qui dit qu’on est dans le bon sens + declarer le filtre image
Modifié
filtres/images_transforme.php
images_fonctions.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
refactor: utiliser image intervention pour le calcul pixel a pixel de la version precise de |image_nb. C’est sensiblement plus lent que l’implémentation pure GD2, mais ça permet de respecter les profils si on utilise Imagick et d’homogénéiser le code. C’est normalement un usage de niche…
Modifié
filtres/images_lib.php
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: gerer les exceptions à la lecture de l’image via Imagick (format non supporté) ou lors de l’execution du filtre
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: catcher les exceptions à la lecture de l’image, et en cas d’echec retourner null. Sur les fonctions appelantes prevoir le cas null, et interrompre le traitement du filtre
Modifié
filtres/images_lib.php
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: output sur image_flou ne se faisait pas en cas d’image SVG
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
fix: apres une rotation avec imagick il faut reset la page sinon les crops a suivre se font par rapport à une mauvaise référence cf PHP: Imagick::rotateImage - Manual
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
refactor: utiliser image intervention pour |couleur_extraire
Modifié
filtres/images_lib.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
refactor: utiliser Image Intervention pour image_oriente_selon_exif() + desactiver l’orientation automartique par Intervention lors du chargement de l’image
Modifié
filtres/images_lib.php
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
chores: variables inutiles
Modifié
filtres/images_transforme.php
Détails : chores: variables inutiles (64ab3d0b) · Validations · spip / images · GitLab
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
refactor: simplification du decodage de la position du masque, utiliser image_passe_partout plutot que calculs+image_reduire et optimisation perf en evitant d’agrandir le masque à la taille de l’image quand on veut le positionner. Il suffit dans ce cas de faire passer le offset_x et offset_y de lecture du masque et d’avoir un pixel par defaut là ou le masque n’est pas defini
Modifié
filtres/images_transforme.php
==============================
Par Cerdic, le 7 janvier 2025 à 12h21min :
refactor: filtre |image_masque utilise image intervention et fonctionne avec GD2 et Imagick
Modifié
filtres/images_transforme.php