Подтвердить что ты не робот

Рисование SVG в .NET/С#?

Я хотел бы сгенерировать SVG файл с помощью С#. У меня уже есть код для их рисования в форматах PNG и EMF (с использованием стандартного класса framework System.Drawing.Imaging.Metafile и ZedGraph). Что вы можете порекомендовать, чтобы адаптировать этот код к SVG? Я бы хотел найти какую-нибудь библиотеку (бесплатную или нет), которая бы имитировала System.Drawing.Graphics интерфейс.

4b9b3361

Ответ 1

Просмотрите структуру SVG в проекте С# и SVG-GDI +.

Из приведенной выше веб-страницы...

Мост SvgGdi представляет собой набор классов которые используют SvgNet для перевода между SVG и GDI+. Это означает, что любой код, который использует GDI + для рисования графика может легко выводить SVG как ну, просто подключив Объект SvgGraphics. Этот объект точно так же, как обычный .NET. Графический объект, но создает SVG дерево. Даже такие вещи, как залитые заливки и линейные якоря реализованы.

Ответ 2

Мы сделали публичную ветвь библиотеки С#.NET SVG на github.

Он значительно улучшен по сравнению с тем, что вы найдете в codeplex, пожалуйста, посмотрите и раскройте его так, как вам нравится:

https://github.com/vvvv/SVG

Изменить: просто, чтобы сообщить вам, по состоянию на июнь 2019 года:

В то время как другие кажутся мертвыми с годами, это все еще активно. Но мы определенно могли бы использовать некоторую помощь от других разработчиков.

Ответ 4

Я использовал этот http://svg.codeplex.com/, и я вполне доволен этим. Все еще есть некоторые ошибки, поэтому вы должны взглянуть на патчи в http://svg.codeplex.com/SourceControl/PatchList.aspx.

Когда я обнаруживаю ошибки, я могу решить, я размещаю их прямо там. Но ребятам требуется некоторое время, чтобы их оценили. Это лучшая идея взглянуть на патчи и применить их самостоятельно.

Библиотека достаточно достаточна для большинства обычных потребностей. для действительно причудливых вещей, нужно улучшить мышление...

Ответ 5

Поскольку SVG - это в основном документ XML, вы можете реализовать "рисунок" самостоятельно. Проверьте спецификации спецификация W3C SVG. Я сделал это один раз, чтобы создать изображения подписи SVG, все, что потребовалось, было пару часов и firefox для проверки сгенерированного изображения.

Конечно, это применимо, если вы генерируете изображение с пользовательского ввода или если не возражаете потратить некоторое время на преобразование из другого формата векторного изображения.

P.S. вы можете создать свою собственную оболочку для имитации System.Drawing.Graphics, например. DrawLine() для добавления во внутренний буфер и т.д.