J’ai confectionné cet assemblage de filtres car je devais intégrer des vignettes carrées dans la gallerie « Gallery View 3 » (gratuite) qui est en javascript et jQuery. Pour ce faire il fallait produire un chemin vers une image carrée qui représente un maximum de l’image originale.
Ce code se place dans une boucle document. Pour adapter la grandeur des vignettes il suffit de changer quatre fois la valeur 80 en la valeur désirée.
[(#FICHIER|image_passe_partout{80,80}|image_recadre{80,80,center}|extraire_attribut{src})]
-
|image_passe_partout{80,80}
: On prend le bord le plus court de l’image originale et on lui assigne la valeur 80px. Le bord le plus long sera changé pour que le rapport hauteur/largeur de l’image ainsi obtenue reste le même. Par exemple avec une image originale de 330 x 240 on obtiendra 110 x 80. Avec 280 x 350 on obtiendra 80 x 100. -
|image_recadre{80,80,center}
: On recadre l’image ainsi obtenue par 80px x 80px. -
|extraire_attribut{src}
: On obtient le « nom de chemin » de cette image.
vous pouvez voir un exemple d’une galerie faite avec ce code à :
http://aimevenel.reportages.ch
ps : merci à Teddy Payet pour m’avoir pointé dans la bonne direction avec le filtre « image_passe_partout » que je ne connaissais pas. J’avais originellement utilisé pour le même effet :
- |image_reduire_par[(#LARGEUR|<#HAUTEUR| ?[(#HAUTEUR|div80)’,’(#HAUTEUR|modulo80)],[(#LARGEUR|div80)’,’(#LARGEUR|modulo80)])]
- qui est un peu compliqué. ;)
Discussions par date d’activité
2 discussions
C’est exactement ce que je cherche à faire… mais sous SPIP 3.0, l’agrandissement passe_partout ne se fais plus je crois ? Une idée ??
du moins sur :
et même sur :
Personne n’as essayé de faire ceci sur le spip 3.0 ? Pour moi ça n’as pas marché… :/ C’est pourtant une fonction importante…
En réalité ça ne marche pas chez moi car je demande un retaillage forcé supérieur de l’image si l’image est plus petite… Mais à priori cette fonction ne permet pas à ça, donc pour moi elle n’est pas 100% utile… ça serait une bonne idée d’évolution je pense… Mais je ne sauras coder ceci en php…
Si vous avez des idées alternatives je suis preneur ;)
Répondre à ce message
Bonjour,
Est-ce que les filtres
|image_passe_partout{80,80}|image_recadre{80,80,center}
ne suffiraient pas à l’opération ?|image_passe_partout{XX,YY}
: prend le côté le plus petit pour l’inscrire dans une forme carrée (ou rectangulaire selon les valeurs transmises en XX et YY).Un exemple :
|image_passe_partout{120,80}
appliqué à une image (logo, etc.) créera une image de 120 de largeur et 80 px de hauteur. Il n’y aura pas de « bord » blanc. L’image s’inscrit entièrement dans la taille définie. Bien entendu, pour cela, l’image doit faire plus de 120 x 80 px.Pour avoir le carré désiré, on lui passe le filtre
|image_recadre{XX,XX,position}
.Si si, image_passe_partout suffit largement et c’est plus lisible !
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 :
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.
Suivre les commentaires : |