Извлечение SVG из Font Awesome


89

Я хочу получить данные пути SVG из глифов Font Awesome, чтобы я мог использовать их прямо как SVG в моем HTML. Я думал, что это будет так же просто, как скопировать данные пути из fontawesome-webfont.svg , но когда я использую его в своем HTML, все символы отображаются в перевернутом виде. Кто-нибудь знает почему?

(См. Скрипку )

Font Awesome SVG:

<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />

... Портировано в HTML SVG (и уменьшено):

<svg width="1000" height="1000" ><path transform="scale(0.1,0.1)" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z"/></svg>

Ответы:


62

Все в соответствии со спецификацией SVG ...

В отличие от стандартной графики в SVG, где исходная система координат имеет ось Y, направленную вниз, сетка дизайна для шрифтов SVG, наряду с исходной системой координат для глифов, имеет ось Y, указывающую вверх для согласования с принятой отраслевой практикой для многие популярные форматы шрифтов.

В соответствии с этим комментарием изменение оболочки на, <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>похоже, помогает, где 1792 - это единицы на каждую, а 1536 - это подъем на элемент font-face.


6
Для полноты этого ответа изменение оболочки на, <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>кажется, помогает, где 1792- units-per-emи 1536- элемент ascenton font-face.
mckamey

Re 1792 is the units-per-em: Опечатка? Я бы подумал, что будет 179.2соответствовать высоте / ширине.
Нейт Кук

99

Просто получите готовые значки svg из этого репозитория github.
Они уже перевернуты и центрированы по мере необходимости.

введите описание изображения здесь

Нажмите любой файл и затем "Raw" введите описание изображения здесь


10
Я обнаружил, что на многих из них были обрезанные по бокам значки, например, автомобиль
Bankzilla

21

Приложение IcoMoon упрощает эту задачу .


2
Да, IcoMoon потрясающий
Ярин

3
IcoMoon очень прост в использовании, но я обнаружил, что он экспортирует более длинные пути, чем SVG в этом репозитории GitHub . Попробуйте для сравнения иконку fa-gift. Это path837 символов через IcoMoon по сравнению с 514 в репо .
Дэн Даскалеску

Хорошая находка Дэн, понятия не имел об этой оговорке. Тем не менее, я люблю IcoMoon.
SISYN


7

Существует также инструмент node.js, который автоматизирует это для вас и создаст до и после verify.html. https://github.com/eugene1g/font-blast

Я использовал его для других шрифтов, пока преобразование значков было неудачным, но остальные шрифты SVG были хороши.


2
Я собираюсь попробовать это
Джон Опасный

font-blast super quick and easy
00-BBB

4

Вы можете просто скачать последнюю версию faздесь: https://fontawesome.com/

А потом зайдите в advanced-options/raw-svgпапку. Там вы найдете три папки brands, regularи solidсодержащую все последние иконки доступны.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.