SVG-изображения с размерами меньше 1 не загружаются

Загрузка 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.

image2

image4

Спасибо за подробное описание проблемы.

Мне удалось воспроизвести проблему на моей стороне, и я думаю, что этот pull-запрос должен решить описанную вами проблему:

Редактирование: Странно… тесты у меня локально проходят, но после отправки они не проходят. Завтра разберусь с этим.

2 лайка

Это было слито на прошлой неделе.

@µMerlin Можешь обновить у себя и подтвердить, что теперь всё в порядке?

1 лайк

Эта тема была автоматически закрыта через 4 дня. Новые ответы больше не принимаются.