Il caricamento di un’immagine SVG in un post (da includere) in cui l’attributo height o width nell’elemento svg principale ha una dimensione numerica inferiore a “1” (ignorando le unità associate) fallisce con il messaggio:
Spiacenti, ma non siamo riusciti a determinare le dimensioni dell’immagine. Forse l’immagine è corrotta?
Sembra che gli attributi height e width vengano controllati e il caricamento venga rifiutato prima che il codice associato a FIX - use ImageMagick to determine size of SVG images by jbrw · Pull Request #12230 · discourse/discourse · GitHub abbia la possibilità di utilizzare le informazioni sulle unità per calcolare la dimensione effettiva di visualizzazione. Una ricerca nel forum per
svg “determinare le dimensioni dell’immagine” “forse l’immagine è corrotta”
restituisce attualmente 9 risultati. Come includere icone fontawesome nei post? sembra avere la stessa causa, ma tale segnalazione è vecchia e dovrebbe essere già stata risolta.
Dopo alcune ricerche, sembra che si tratti di un problema legato alla libreria fastimage utilizzata. Ho creato una segnalazione per Immagini SVG con dimensioni piccole rilevate come zero pixel, ignorando le unità e la sto citando qui. Supponendo che la libreria fastimage venga corretta, sarà comunque probabile che sia necessaria una modifica a Discourse per aggiornare la versione.
Di seguito è riportata la sorgente XML del file SVG di esempio che genera l’errore.
<?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>
Di seguito sono riportate le immagini che dimostrano le piccole modifiche che rendono funzionante l’immagine sopra nel forum. Queste corrispondono agli allegati nella segnalazione GitHub citata.