使用SVG.Net生成svg格式文字图片
由于项目需要,需生成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格式文字图片相关推荐
- Android Camera生成bmp格式的图片
Android Camera拍照默认会生成jpg格式的图片,这是一种有损压缩后的图片格式.前段时间项目需要生成一张无压缩的bmp格式的图片,这就不能通过拍照来实现,而是需要通过预览时的某一帧数据来生成 ...
- asp.net生成缩略图、文字图片水印
1 /// <summary> 2 /// 会产生graphics异常的PixelFormat 3 /// </summary> 4 private static PixelF ...
- 图片如何生成pdf格式?图片怎么生成pdf格式文件?
图片如何生成pdf格式?平时的工作中我们在处理pdf文件的时候,难免会遇到各种各样的问题.有时候我们需要把图片生成pdf.可能还有些小伙伴不知道该怎么做,图片生成pdf其实很简单,下面给大家分享一个图 ...
- python生成手写文字图片_使用生成对抗网络(GAN)生成手写字
先放结果 这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的. 实现原理 简单说下原理,生成对抗网络需要训练两个任务,一个叫生成器,一个叫判别器,如字面意思, ...
- canvas canvas2image 生成bmp格式的图片
原因:canvas 生成图片,可通过toDataURL()方法. canvas.toDataURL(type, encoderOptions); 1.type:图片格式,默认为 image/png, ...
- php 生成bmp图片,[GD]生成bmp格式的图片(imagebmp)
GD库里没有生成bmp图片的函数,所以自己写了一个,这个函数尚有一个压缩算法没有写,不过已经够用了.需要的同学可以看看. int imagebmp ( resource image [, string ...
- vue二维码生成且带文字图片下载
(一)web页面效果: (二)执行结果: (三)vue代码实例: 1)安装qrcode-vue库:npm install --save qrcode-vue 2)安装html2canvas库:npm ...
- python 绘制图表生成svg文件_python用Pygal如何生成漂亮的SVG图像详解
前言 SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensible Markup Langu ...
- 图像转svg,及绘制svg图像
图像转svg 1:生成svg图 sudo apt install potrace pythonimport osdef t(img_path):"""img转svg方法: ...
最新文章
- 人生的意义—我们为什么活着?
- eclipse启动tomcat报错
- matlab示波器显示部分,Matlab 示波器显示设置
- [存储引擎基础知识]InnoDB与MyISAM的六大区别(非原创)
- Android子线程真的不能更新UI么
- 【CentOS7配置】如何设置:启动后自动获取网络连接、配置固定IP
- 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
- # CF1572B Xor of 3(构造)
- 支付业务与技术架构学习总结(6)——对账系统的设计
- c#中高效的excel导入oracle的方法
- 解决Centos7安装docker源问题
- ZedGraph例子
- Halcon如何创建或生成空白的,全黑或全白的8位图和24位图
- Error(15) 解决 sshd: no hostkeys available -- exiting.
- C语言 强符号与弱符号
- 网站推广、网站优化和SEO的区别
- 【可信计算】TPM核心功能
- 功能软件(一):以IDM对抗百度网盘!
- SpringCloudAlibaba微服务分布式架构
- android 双卡双待 发送短信
热门文章
- Rails图像上传:使用CarrierWave和Devise
- [NOIP2017普及组] 棋盘
- 微型计算机原理顺序程序设计,微机原理实验,顺序实验.docx
- 国内外Android大牛Blog
- CSAPP实验二——bomb lab实验
- 密码学-常见加密算法逆向学习
- ae去闪插件deflicker使用_ae去闪烁插件Flicker Free怎么用-ae去闪烁插件Flicker Free的使用教程 - 河东软件园...
- OSNet 论文翻译
- 【为您的 Android 应用添加图片】
- 吴军《格局》读书笔记