Загрузка SVG-изображения в пост (для включения в него) завершается ошибкой с сообщением, если атрибуты height или width в основном элементе svg имеют числовое значение меньше «1» (игнорируя связанные единицы измерения):
К сожалению, нам не удалось определить размер изображения. Возможно, ваше изображение повреждено?
Похоже, что атрибуты height и width проверяются, и загрузка отклоняется, прежде чем код, связанный с FIX - use ImageMagick to determine size of SVG images by jbrw · Pull Request #12230 · discourse/discourse · GitHub, получает возможность использовать информацию об единицах измерения для определения фактического размера отображения. Поиск по форуму по запросу
svg «не удалось определить размер изображения» «возможно, ваше изображение повреждено»
в настоящее время возвращает 9 результатов. Как включить иконки fontawesome в посты? кажется, что проблема может быть той же, но этот отчет старый и, по утверждению, исправлен.
Проведя исследование, я выяснил, что это проблема используемой библиотеки fastimage. Я создал запрос в ней по теме SVG-изображения с малыми размерами определяются как нулевые пиксели, игнорируя единицы измерения и ссылаюсь на него здесь. Предполагая, что библиотека fastimage будет исправлена, для использования обновлённой версии, вероятно, всё равно потребуется изменение в Discourse.
Ниже приведён XML-исходный код для примера SVG-файла, вызывающего ошибку.
<?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>
Ниже представлены изображения, демонстрирующие незначительные изменения, которые позволяют вышеуказанному изображению корректно отображаться на форуме. Они соответствуют вложениям в указанном запросе на GitHub.