[spip-dev] image_passe_partout + image_recadre

Salut,

Dans dist/inc-head.html, je suis tombé sur cette ligne:
[<link rel="icon" type="image/png" href="(#LOGO_SITE_SPIP||image_passe_partout{32,32}|image_recadre{32,32,center}|extraire_attribut{src}|sinon{[(#CHEMIN{favicon.ico})]})" />]

D'où deux questions:

=> Que fait la fonction image_passe_partout? Si j'en crois trac, ça signifie:
«un filtre image_passe_partout :
alors que image_reduire produit la plus grande image tenant dans un rectangle,
image_passe_partout produit la plus petite image qui remplit ce rectangle

suivi d'un image_recadre avec les memes dimension il permet de produire des vignettes de dimension imposee, sans deformation»

Bref une fonction vraiment très pratique! Il faudrait ajouter l'annonce sur spip.net.

=> On ne pourrait pas lui donner un nom un poil plus explicite? Genre image_reduire_max ou un truc dans le genre.

Je ne suis pas partisan de donner des noms aux fonctions graphiques en fonction d'un usage prédéterminé. Ici, je suppose que «passe partout» signifie que c'est une réduction qui passerait partout («remplir ce rectangle»); or, dans de nombreuses situations, ça passe moins partout qu'un simple image_reduire... Le fait qu'on balance un image_recadre derrière indique bien que, d'ailleurs, image_passe_partout ne suffit pas à ce que ça passe partout... :-))

A*

Le nom est inspiré des passe-partout utilisés dans les cadres photos, sur une suggestion d'Izo
Je trouve qu'au moins une fois qu'on la rencontré on le mémorise bien du coup, mais c'est vrai que rigoureusement, il devrait faire le recadre dans la foulée dans ce cas.
Peut être pourrait avoir un image_reduire_englobe qui fait ce que fait actuellement image_passe_partout, et inclure le recadre dans le image_passe_partout qui en est l'usage le plus fréquent ?

Ca permettrait de ne pas casser les skels existants (j'en ai partout chez moi :p) et d'être plus cohérent
Cédric

Martin Arnaud wrote:

Salut,

Dans dist/inc-head.html, je suis tombé sur cette ligne:
[<link rel="icon" type="image/png" href="(#LOGO_SITE_SPIP|| image_passe_partout{32,32}|image_recadre{32,32,center}| extraire_attribut{src}|sinon{[(#CHEMIN{favicon.ico})]})" />]

Il faudrait peut etre appliquer ca aussi aux logos d'articles des pages sommaire et rubriques.

Ca fait souvent tres vilain sur les sites en spip les listes d'articles avec vignettes de tailles différentes, d'autant que le float n'arrange rien.

BoOz

Attention quand meme : image_recadre ne marche qu'avec gd2

Ah, d'ailleurs, suite à ma reponse a Booz, faire comme je le propose en dessous permettrait que image_passe_partout se termine par un simple image_reduire si GD2 n'est pas présente, ce qui serait le plus pratique :
- si GD2 on a une image reduite/recadree sans bord blanc
- si pas GD2, on a reduit comme image_reduire
Et dans tous les cas cela tient dans le rectangle demandé

Cédric

J'y ai effectivement pensé pour la dist, mais chu pas convaincue...
+++ je viens de me rendre compte que c'est une connerie de l'avoir mis en favicon vu que tout le monde ne dispose pas GD2 ! J'ai comité trop vite, sorry :frowning:
Mieux vaut plutôt retirer les petites icônes des listes d'articles.

OK, je vois. Je crois vraiment qu'on a un soucis de nommage et de logique:

– image_passe_partout s'appelle comme ça à cause de la logique du cadre photo, mais son nom ne correspond à cette définition que si on balance un image_recadre dans la foulée; donc la fonction ne fait pas ce que son nom indique; l'idée d'une fonction image_reduire_englobe confirme ce problème;

– je persiste à penser que ce nom est vraiment pas clair... j'aime bien la poésie dans les dénominations liées à SPIP, mais pour les fonctions en général on essaie de faire explicite (déjà que tout est en français).

Ce que je verrais bien:

– une nouvelle fonction: image_reduire_max, qui fait ce que fait actuellement image_passe_partout; le principe est vraiment celui d'image_reduire, il faut donc un nom très proche;

– j'ai pas bien regardé le détail du code, mais image_reduire_max n'a pas à être compliquée: il suffit de faire un petit calcul de dimensions et de demander à image_reduire de faire le boulot; comme ça on récupère exactement les mêmes fonctionnalités (réduction HTML si image trop grosse ou pas de GD2);

– une fonction image_forcer_dans_cadre, qui applique image_reduire_max et image_recadre dans la foulée. Éventuellement, si pas de reduction (image trop grosse) ou pas de GD2, on peut peut-être simuler le résultat avec un pavé ayant un overflow: hidden.

– Perso, je virerais image_passe_partout, qui n'est jamais sortie officiellement; les squelettes qui l'utilisent, il suffit d'un "replace" vite fait. Sinon on peut aussi faire que image_passe_partout reste en se contentant d'appeler image_reduire_max, mais normalement on évite ce genre de bidouille.

A*

– Perso, je virerais image_passe_partout, qui n'est jamais sortie
officiellement;

je préférerais qu'on le conserve, j'ai pas envie de devoir faire des
tas de "replace" alors que je l'utilise partout. Sur le nommage rien à
dire, en revanche : donc je me tais !

-- Fil