Re: Dérapage image_reduire
JLuc <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Le 22/02/2020 à 09:45, JLuc a écrit :
> 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.
Ceux qui ont lu auront corrigé : c'est pour "ceil" (= le code actuel) qu'il y a plein d'erreur ;
et je n'en ai jamais trouvé pour round (= le fix).
> Ç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
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip