我想用C#生成一个SVG文件。我已经有了以PNG和EMF格式绘制它们的代码(使用框架的标准类System.Drawing.Imaging.Metafile和ZedGraph)。你可以推荐做些什么来使代码适应SVG?最好我想找一些能模仿System.Drawing.Graphics界面的库(免费或不可用)。在.NET/C#中绘制SVG?
回答
查看SVG framework in C# and an SVG-GDI+ bridge项目。
从上面的网页...
的SvgGdi桥是一组使用SvgNet到 SVG和GDI +之间的转换类 。这意味着使用GDI +绘制 图形的任何代码都可以很容易地将SVG输出为 ,只需插入 SvgGraphics对象即可。此对象与 图形对象完全相同,但创建了SVG 树。甚至像阴影填充 和线锚都实现。
为您的高级Google-fu +1。 – MusiGenesis 2009-10-06 13:03:10
+1,我的google-fu没有找到这个。 – liori 2009-10-06 13:04:33
这似乎是主要的项目页面:http://www.jbrowse.com/svgnet/。看起来图书馆还没有开发6年。我可能还会检查它。 – liori 2009-10-06 13:20:32
-1,问题是关于从SVG导出PNG。 SVGPad是一个编辑器,它与文章无关,应用程序和库都无法做到这一点。 (如果是这样,你应该留下的不仅仅是一个链接) – DevTheo 2012-02-07 15:17:50
@DevTheo:你可能想更仔细地阅读这个问题和链接的文章。 OP不会尝试将PNG转换为SVG; OP具有将原语绘制成PNG和EMF格式的代码,并且希望将其用于SVG格式。我链接的样本提供了完全相同的代码。 – MusiGenesis 2012-02-07 15:26:35
好的,对不起..我把我的问题推到了问题上..抱歉..我无法重新投票...我错过了那个点.. – DevTheo 2012-02-09 15:44:09
由于SVG基本上是一个XML文档 - 可以实现 “绘图” 自己。检查W3C SVG spec的规格。我曾经做过一次生成SVG签名图像,所花费的时间只有几个小时,并且使用Firefox来测试生成的图像。
当然,这适用于从用户输入生成图像或者如果您不介意花时间从其他矢量图像格式进行转换的情况。
P.S.您可以创建自己的包装来模仿System.Drawing.Graphics,例如DrawLine()附加到内部缓冲区等。
我用这个http://svg.codeplex.com/,我对它很满意。仍然有一些错误,所以你应该看看在http://svg.codeplex.com/SourceControl/PatchList.aspx补丁。
当我发现我可以解决的错误,我直接发布在那里。但是那里的人需要一些时间来评估。查看补丁并自行应用它是一个更好的主意。
该库对于大多数通常的需求来说足够合理。对于真正花哨的东西,它需要被改进以为...
我们已经在github上制作了一个C#.NET SVG库的公共叉。
它是非常在一个你在CodePlex上找到改进,请看看和叉它,只要你喜欢:
编辑: 只是为了让你知道,在12月的2014年:
虽然其他人似乎已经死了多年,这仍然是活跃的。但我们绝对可以使用其他开发人员的一些帮助。
太棒了!我使用原始的SVG组件,然后找到这篇文章,在几秒钟内运行更新的组件!谢谢! – 2013-06-19 16:53:26
- 1. 在已绘制的SVG中绘制
- 2. 绘制SVG图像在python
- 3. 在画布上绘制SVG
- 4. 在Kivy canvas上绘制SVG
- 5. 绘制的SVG弧
- 6. 从C#绘制SVG#
- 7. SVG Polyline绘制限制
- 8. 如何在HighCharts barcharts中绘制SVG线?
- 9. 在SVG中动态绘制矩形
- 10. 在WinRT中绘制一个SVG文件
- 11. 在mhtml5中绘制球体svg
- 12. 在SVG中绘制无效形状
- 13. 如何在SVG中绘制此形状?
- 14. 如何在SVG中绘制垂直线
- 15. 如何在svg中绘制滑轮?
- 16. 在wxWidgets中绘制SVG图像
- 17. 如何在HTML中绘制SVG
- 18. SVG HTML不绘制SVG图案
- 19. SVG到android矢量绘制
- 20. 怎样绘制这种SVG
- 21. Svg图像绘制速度
- 22. 用SVG和Javascript绘制windBarbs
- 23. 绘制SVG与鼠标
- 24. SVG与onclick绘制路径
- 25. SVG中的箭头绘制动画
- 26. SVG绘制不工作在铬
- 27. 在svg上绘制OpenStreetMap项目
- 28. 在svg图片上绘制一条线
- 29. 使用用户输入在SVG和HTML中绘制和绘制三角形
- 30. 使用javascript在线绘制SVG并在终端中
非常有建设性的问题!,为什么地球上这是封闭的? – 2013-12-10 11:54:40
@gyozokudor:要求推荐图书馆/工具的问题在此处关闭......这是在问题提交时尚未实施的政策。如果您想讨论这项政策,请前往meta.stackexchange.com。 – liori 2013-12-10 13:45:20
我不知道该怎么讨论这个问题,在我看来,应该允许这样的问题。 – 2013-12-10 14:47:29