Le téléchargement d’une image SVG dans un message, où l’attribut de hauteur ou de largeur de l’élément SVG principal possède une taille numérique inférieure à « 1 » (en ignorant les unités associées), échoue avec le message :
Désolé, mais nous n’avons pas pu déterminer la taille de l’image. Votre image est peut-être corrompue ?
Il semble que les attributs de hauteur et de largeur soient vérifiés et que le téléchargement soit rejeté avant que le code associé à FIX - use ImageMagick to determine size of SVG images by jbrw · Pull Request #12230 · discourse/discourse · GitHub n’ait la possibilité d’utiliser les informations d’unité pour déterminer la taille d’affichage réelle. Une recherche sur le forum pour
svg « déterminer la taille de l’image » « votre image est peut-être corrompue »
renvoie actuellement 9 résultats. Comment inclure des icônes FontAwesome dans les messages ? semble avoir la même cause, mais ce rapport est ancien et censé avoir été corrigé.
Après quelques recherches, cela semble être un problème avec la bibliothèque fastimage utilisée. J’ai créé un ticket à ce sujet pour Images SVG avec de petites dimensions détectées comme zéro pixel, en ignorant les unités, et je le référence ici. En supposant que la bibliothèque fastimage soit corrigée, il faudra probablement toujours apporter une modification à Discourse pour intégrer la version mise à jour.
Voici le code source XML de l’exemple de fichier SVG qui échoue.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"
width="1.2in" height="0.9in"
viewBox="0 0 1200 900"
>
<line x1="1100" x2="100" y1="100" y2="800" stroke="#000000" stroke-width="50"/>
</svg>
Ci-dessous se trouvent les images qui démontrent de légères modifications permettant à l’image ci-dessus de fonctionner dans le forum. Elles correspondent aux pièces jointes du ticket GitHub référencé.