由于项目需要,需生成svg格式文字图片,网上的文档较少,在一番查阅之后成功实现。现记录下来,方便以后自己查阅,以及需要的人也可当做参考,水平不高,少喷。
主要运用到GitHub开源项目: svg.net
不墨迹直接上代码:
主方法:

        /// <summary>/// 依据参数生成svg文本,返回svg文件路径/// </summary>/// <param name="FontFamily">字体名,须和illustrator中英文字体一致,/// 否则在其中字体不会生效</param>/// <param name="FontText">文本内容</param>/// <param name="fontSize">字体大小 pt</param>/// <param name="color">英文color</param>/// <param name="isvertical">是否垂直</param>/// <returns></returns>public static string DrawText(string FontFamily, string FontText, int fontSize = 30,string color="balck",bool isvertical=false){SvgDocument svgDocument = new SvgDocument();string Name = "文本" + DateTime.Now.ToString("yyyyMMdd HHmmss");SvgDocument document = new SvgDocument();Svg.SvgText text = new Svg.SvgText(){Font = FontFamily,//字体Text = FontText,//文字内容FontSize = fontSize,ID = Name};if (isvertical)  //垂直文本处理{text.Rotate = "-90";//字符方向text.AddStyle("writing-mode", "tb", 2);//文本方向svgDocument.Width = text.Bounds.Height;//垂直文本助理后宽度互换svgDocument.Height = text.Bounds.Width;text.X.Add(-text.Bounds.Y / 2);}else{text.X.Add(-text.Bounds.X);text.Y.Add(-text.Bounds.Y);svgDocument.Width = text.Bounds.Width;//将文档大小设置为和字体一致svgDocument.Height = text.Bounds.Height;}//文本转向的另一种方法  该方法在illustrator中不起作用,但在谷歌浏览器中生效//SvgTransformCollection transforms = new SvgTransformCollection();  //transforms.Add(new SvgRotate(90));  //svgDocument.Transforms=transforms;//text.Transforms = transforms;text.AddStyle("fill", color, 1);//填充颜色svgDocument.Children.Add(text);//将文本对象放进文档中try{string path = @"C:\Users\09056722\Desktop\test.svg";svgDocument.Write(path);//保存return path;}catch (Exception e){throw new Exception("处理合成文字svg出错,错误信息:" + e.Message);}}

测试代码:

static void Main(string[] args){// SvgText.RenderRectAlignedText(new SvgGraphics(), 90, 90, new Font("微软雅黑",12));//SvgText.DrawTest();SvgText.DrawText("STHupo","你猜我在干啥你想干啥",40,"Green",true);}

效果图:

多多指导。

使用SVG.Net生成svg格式文字图片相关推荐

  1. Android Camera生成bmp格式的图片

    Android Camera拍照默认会生成jpg格式的图片,这是一种有损压缩后的图片格式.前段时间项目需要生成一张无压缩的bmp格式的图片,这就不能通过拍照来实现,而是需要通过预览时的某一帧数据来生成 ...

  2. asp.net生成缩略图、文字图片水印

    1 /// <summary> 2 /// 会产生graphics异常的PixelFormat 3 /// </summary> 4 private static PixelF ...

  3. 图片如何生成pdf格式?图片怎么生成pdf格式文件?

    图片如何生成pdf格式?平时的工作中我们在处理pdf文件的时候,难免会遇到各种各样的问题.有时候我们需要把图片生成pdf.可能还有些小伙伴不知道该怎么做,图片生成pdf其实很简单,下面给大家分享一个图 ...

  4. python生成手写文字图片_使用生成对抗网络(GAN)生成手写字

    先放结果 这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的. 实现原理 简单说下原理,生成对抗网络需要训练两个任务,一个叫生成器,一个叫判别器,如字面意思, ...

  5. canvas canvas2image 生成bmp格式的图片

    原因:canvas  生成图片,可通过toDataURL()方法. canvas.toDataURL(type, encoderOptions); 1.type:图片格式,默认为 image/png, ...

  6. php 生成bmp图片,[GD]生成bmp格式的图片(imagebmp)

    GD库里没有生成bmp图片的函数,所以自己写了一个,这个函数尚有一个压缩算法没有写,不过已经够用了.需要的同学可以看看. int imagebmp ( resource image [, string ...

  7. vue二维码生成且带文字图片下载

    (一)web页面效果: (二)执行结果: (三)vue代码实例: 1)安装qrcode-vue库:npm install --save qrcode-vue 2)安装html2canvas库:npm ...

  8. python 绘制图表生成svg文件_python用Pygal如何生成漂亮的SVG图像详解

    前言 SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensible Markup Langu ...

  9. 图像转svg,及绘制svg图像

    图像转svg 1:生成svg图 sudo apt install potrace pythonimport osdef t(img_path):"""img转svg方法: ...

最新文章

  1. 人生的意义—我们为什么活着?
  2. eclipse启动tomcat报错
  3. matlab示波器显示部分,Matlab 示波器显示设置
  4. [存储引擎基础知识]InnoDB与MyISAM的六大区别(非原创)
  5. Android子线程真的不能更新UI么
  6. 【CentOS7配置】如何设置:启动后自动获取网络连接、配置固定IP
  7. 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
  8. # CF1572B Xor of 3(构造)
  9. 支付业务与技术架构学习总结(6)——对账系统的设计
  10. c#中高效的excel导入oracle的方法
  11. 解决Centos7安装docker源问题
  12. ZedGraph例子
  13. Halcon如何创建或生成空白的,全黑或全白的8位图和24位图
  14. Error(15) 解决 sshd: no hostkeys available -- exiting.
  15. C语言 强符号与弱符号
  16. 网站推广、网站优化和SEO的区别
  17. 【可信计算】TPM核心功能
  18. 功能软件(一):以IDM对抗百度网盘!
  19. SpringCloudAlibaba微服务分布式架构
  20. android 双卡双待 发送短信

热门文章

  1. Rails图像上传:使用CarrierWave和Devise
  2. [NOIP2017普及组] 棋盘
  3. 微型计算机原理顺序程序设计,微机原理实验,顺序实验.docx
  4. 国内外Android大牛Blog
  5. CSAPP实验二——bomb lab实验
  6. 密码学-常见加密算法逆向学习
  7. ae去闪插件deflicker使用_ae去闪烁插件Flicker Free怎么用-ae去闪烁插件Flicker Free的使用教程 - 河东软件园...
  8. OSNet 论文翻译
  9. 【为您的 Android 应用添加图片】
  10. 吴军《格局》读书笔记