Giải nén SVG từ Font Awesome


89

Tôi muốn lấy dữ liệu đường dẫn SVG từ các glyph của Font Awesome để có thể sử dụng chúng ngay lập tức dưới dạng SVG trong HTML của mình. Tôi nghĩ nó sẽ dễ dàng như sao chép dữ liệu đường dẫn từ fontawesome-webfont.svg , nhưng khi tôi sử dụng nó trong HTML của mình, tất cả các biểu tượng đều hiển thị ngược. Có ai biết tại sao không?

(Xem Fiddle )

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" />

... Đã chuyển sang HTML SVG (và thu nhỏ):

<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>

Câu trả lời:


62

Tất cả theo đặc điểm kỹ thuật SVG ...

Không giống như đồ họa tiêu chuẩn trong SVG, trong đó hệ tọa độ ban đầu có trục y hướng xuống dưới, lưới thiết kế cho phông chữ SVG, cùng với hệ tọa độ ban đầu cho glyph, có trục y hướng lên trên để nhất quán với thông lệ ngành được chấp nhận cho nhiều định dạng phông chữ phổ biến.

Theo nhận xét này , Việc thay đổi trình bao bọc thành <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>có vẻ là một mẹo nhỏ, trong đó 1792 là đơn vị trên mỗi em và 1536 là phần đi lên trên mặt phông chữ


6
Cho đầy đủ các câu trả lời này, thay đổi wrapper để <svg height="179.2" width="179.2"><path transform="scale(0.1,-0.1) translate(0,-1536)" d="..." /></svg>dường như làm các trick, nơi 1792units-per-em1536ascenttrên font-facephần tử.
mckamey

Re 1792 is the units-per-em: Đánh máy? Tôi nghĩ rằng nó sẽ 179.2phù hợp với chiều cao / chiều rộng.
Nate Cook

99

Chỉ cần tải các biểu tượng svg sẵn sàng từ kho github này.
Chúng đã được lật và căn giữa khi cần thiết

nhập mô tả hình ảnh ở đây

Nhấn bất kỳ tệp nào rồi nhấn "Raw" nhập mô tả hình ảnh ở đây


10
Tôi thấy rất nhiều các biểu tượng này đã được cắt ở hai bên, ví dụ xe
Bankzilla

21

Ứng dụng IcoMoon làm cho điều này trở nên đơn giản.


2
Yea IcoMoon là tuyệt vời
Yarin

3
IcoMoon rất dễ sử dụng, nhưng tôi thấy rằng nó xuất ra các đường dẫn dài hơn SVG trong repo GitHub này . Hãy thử để so sánh với biểu tượng fa-gift. Các pathlà 837 ký tự qua IcoMoon, so với 514 trong repo .
Dan Dascalescu,

Rất vui khi thấy Dan, không có ý kiến ​​gì về điều này. Tuy nhiên, tôi yêu IcoMoon.
SISYN


7

Ngoài ra còn có một công cụ node.js sẽ tự động hóa việc này cho bạn và tạo trước và sau verify.html. https://github.com/eugene1g/font-blast

Tôi đã sử dụng nó trên các phông chữ khác, chỉ có 1 chuyển đổi biểu tượng xấu cho đến nay, nhưng phần còn lại trong phông chữ SVG là tốt.


2
Tôi sẽ phải thử cái này
John Dangerous

font-vụ nổ siêu nhanh chóng và dễ dàng
00-BBB

4

Bạn chỉ cần tải xuống phiên bản mới nhất fatại đây: https://fontawesome.com/

Và sau đó đi đến advanced-options/raw-svgthư mục. Ở đó bạn sẽ tìm thấy ba thư mục brands, regularsolidchứa tất cả các biểu tượng mới nhất hiện có.



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.