C# 代码绘制SVG图形 简单示例

文中使用的Svg库,Svg 3.1.1

Nuget网址:https://www.nuget.org/packages/Svg/

github网址:https://github.com/vvvv/SVG,文档不太多,但是有遇到问题什么可以去Issues里提问,或没事看看他们的问题也行

安装:Install-Package Svg -Version 3.1.1

目录

一、Text文字

二、Line直线

三、Circle圆

四、保存


简单示例

一、Text文字

1.1、Text水平方向

  SvgDocument svgDocument = new SvgDocument();  
  Svg.SvgText text = new Svg.SvgText();
  text.Text = "Depth (mbsf)";
  text.FontSize = 12;
  text.X.Add(cd_Start_X);
  text.Y.Add(cd_Start_Y + (cd_y_len / 2) + 10 );
  svgDocument.Children.Add(topLine);

1.2、Text(垂直方向),其中,SbgRotate 90则代表旋转的角度,可以是-90、45等值。SvgTranslate中第一个值就是X的值,第二个值就是Y的值。

   SvgDocument svgDocument = new SvgDocument();
   Svg.SvgText text = new Svg.SvgText();
   text.Text = "Depth (mbsf)";
   text.FontSize = 12;
    //当需要垂直文字时,使用下面的代码,SvgTranslate中第一个值就是X的值,第二个值就是Y的值。
    text.Transforms = new Svg.Transforms.SvgTransformCollection();
    text.Transforms.Add(new Svg.Transforms.SvgTranslate(cd_Start_X, cd_Start_Y + (cd_y_len / 2) + 100));
    text.Transforms.Add(new Svg.Transforms.SvgRotate(90));
    //将文本对象放进文档中
    svgDocument.Children.Add(text);

最终显示效果

其他实例:最终生成的svg文件:

<svg width="1000" height="1000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xml="http://www.w3.org/XML/1998/namespace" version="1.1">
  <text transform="translate(50, 240) rotate(-90, 0, 0)" id="文本20201231 133305" font-family="Arial" font-size="30" font="Arial">test -90度</text>
  <text transform="translate(100, 240) rotate(90, 0, 0)" id="文本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 90度</text>
  <text transform="translate(150, 240) rotate(45, 0, 0)" id="文本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 45度</text>
  <text transform="translate(200, 240) rotate(-45, 0, 0)" id="文本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 45度</text>
</svg>

效果如下:

二、Line直线

  Svg.SvgLine topLine = new SvgLine();
  topLine.StartX = line_Start_X;
  topLine.StartY = cd_Start_Y;
  topLine.EndX = line_Start_X;
  topLine.EndY = cd_Start_Y + cd_y_len;
  topLine.StrokeWidth = 1;
  topLine.Stroke = new SvgColourServer(System.Drawing.Color.Black);
  svgDocument.Children.Add(topLine);

三、Circle圆

  SvgCircle circle = new SvgCircle();
  circle.Content = depth.ToString();
  circle.CenterX = line_Start_X + cd_x_space * count;
  circle.CenterY = decimal.ToSingle(cd_Start_Y + (cd_one * Math.Abs(depth - d_minDep)));
  circle.Stroke = new SvgColourServer(dotColor);
  circle.Radius = settings.DotSize;
  svgDocument.Children.Add(circle);

四、保存

 
  string path = @"D:\yangjiao\justtest.svg";
  svgDocument.Write(path);//保存
  return path;
  

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值