Re: Dérapage image_reduire
JLuc <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Le 20/02/2020 à 14:23, JLuc a écrit :
> Le ticket https://core.spip.net/issues/4430 présente le problème :
> image_reduire{200,200} produit parfois des images de 201px de haut ce qui semble bien peu de différence
> mais fait déraper grave certaines mises en page : https://core.spip.net/attachments/download/1140/screenshot.jpg
>
> Le problème se situe au niveau de image_ratio qui,
> par exemple recevant (427x427) pour un ratio de 1:1 renvoie (200 x 201) !
>
> C'est à cause d'un ceil, qui fait déraper de 1.0000000000000000 le résultat de certains calculs
> en raison des précédentes conversions binaires <-> décimal.
>
> La solution proposée est simple : remplacer le le ceil par un round :
> - le round évite ces ripages aux conséquences si disgracieuses
> - l'erreur maximale d'arrondi avec round est de 0.5 alors qu'elle est de 1 avec ceil
>
> Cette correction peut elle être intégrée ?
J'ai déposé sur https://contrib.spip.net/tester_image_ratio un programme de test
de _image_ratio avec ceil et avec round.
On passe un argument debut par l’url et on teste toutes les valeurs entre debut et debut+100.
Chacune de ces valeurs $z va être sucessivement la dimension cible de _image_ratio
pour des valeurs d’entrées allant de $z à $z+100.
On teste à la fois la fonction qui utilise ceil ET sa version lorsqu'elle utilise round.
Comme c’est un carré, le résultat doit être un carré aussi.
On compte les erreurs pour ceil et pour round : il y en a plein pour round.
Je n'en ai jamais trouvé pour round.
Ça ne teste que les images carrées mais ça suffit à mon avis.
Exemple : 29 d'erreurs pour la dimension cible 1000x1000 testée pour les dimensions d'entrées de 1000x1000 à 1100x1100
JL
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip