当前位置: 首页 > news >正文

知名电子商务企业湖南网站营销seo方案

知名电子商务企业,湖南网站营销seo方案,辽宁建设厅,css网站开发C#在Winform的PictureBox控件中显示Svg图片背景实现思路环境说明实现步骤结束语背景 我们知道Svg是一种矢量图形格式,广泛应用与Web App、手机App,本文就介绍一下在Winform的窗口程序中怎么实现显示Svg图片。 实现思路 实现思路很简单,就是…

C#在Winform的PictureBox控件中显示Svg图片

  • 背景
  • 实现思路
  • 环境说明
  • 实现步骤
  • 结束语

背景

我们知道Svg是一种矢量图形格式,广泛应用与Web App、手机App,本文就介绍一下在Winform的窗口程序中怎么实现显示Svg图片。

实现思路

实现思路很简单,就是需要从NuGet中引入SVG Rennering Library(ARES),然后通过其提供的SvgDocument实现把svg文件内容转换为Image对象。

环境说明

VS2013
.netframework4.5.1

实现步骤

1、新建一个空白解决方案,然后在此解决方案下新建一个Winform应用,目标框架选择.NET Framework 4.5.1。
2、鼠标右键新建的winform工程,在弹出菜单中选择“管理NuGet程序包”,弹出如下对话框:
在这里插入图片描述
左侧选择联机,右侧关键词位置输入SVG ARES回车。就可以在搜索结果中看到SVG Rendering Library(ARES)。
3、点击安装按钮进行依赖库安装。
4、在winform工程中新建窗体FrmSvgDemo,修改Program.cs中的Form1位FrmSvgDemo。
5、在新建的窗体中放一个按钮和一个PictureBox控件,如下图:
在这里插入图片描述
6、在winform工程下新建一个文件夹images,找一个svg图片文件放入此文件夹,如果不知道哪有可以到https://www.iconfont.cn/这个网站去下载。
7、关键代码如下:

private void button1_Click(object sender, EventArgs e)
{string svgFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "images\\销售单据.svg");Image img = this.ConvertSvgToImage(svgFile, this.pictureBox1.Width, this.pictureBox1.Height);this.pictureBox1.Image = img;}/// <summary>/// 把Svg文件按指定宽度和高度转为Image对象/// </summary>/// <param name="svgFile">Svg文件完整路径</param>/// <param name="width">转换后的图像宽度</param>/// <param name="height">转换后的图像高度</param>/// <returns>返回转换后的Image对象</returns>public Image ConvertSvgToImage(string svgFile, int width, int height){Image imgResult = null;if (System.IO.File.Exists(svgFile)){SvgDocument sdoc = SvgDocument.Open(svgFile);#region 解析Svg文件中的viewBox值string xml = sdoc.ToString();string beginStr = "viewBox=";string endStr = "\" ";int begin = xml.IndexOf(beginStr);if (begin > 0){begin = begin + beginStr.Length;int end = xml.IndexOf(endStr, begin);string viewBox = xml.Substring(begin, end - begin);viewBox = viewBox.Replace("\"", String.Empty).Replace("'", String.Empty);if (!String.IsNullOrEmpty(viewBox)){string[] vbs = viewBox.Split(new char[] { ' ' });if (vbs.Length == 4){float vbx = 0.0f;float vby = 0.0f;float vbw = 0.0f;float vbh = 0.0f;float.TryParse(vbs[0], out vbx);float.TryParse(vbs[1], out vby);float.TryParse(vbs[2], out vbw);float.TryParse(vbs[3], out vbh);sdoc.ViewBox = new SvgViewBox(vbx, vby, vbw, vbh);}}}#endregionsdoc.Width = width;sdoc.Height = height;Bitmap bitmap = sdoc.Draw();using (System.IO.MemoryStream ms = new System.IO.MemoryStream()){bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);                    //把svg按照指定宽度和高度转为png后放入内存流中imgResult = Image.FromStream(ms);//bitmap.Save("e:\\test.png", System.Drawing.Imaging.ImageFormat.Png);      //保存png图片至磁盘}}return imgResult;}

8、运行效果如下图:
在这里插入图片描述

结束语

使用svg矢量图的目的是不失真,因此我的程序是根据PictureBox控件的大小生成对应的Image对象的。当然也可以生成png格式的图片。(代码中有一行注释的就是生成png图片)

http://www.lbrq.cn/news/2489275.html

相关文章:

  • 外贸 礼品 网站百度指数是啥
  • 手机网站设计建设服务海口seo网络公司
  • 网站后台页面进不去哪个网站是免费的
  • wordpress大前端整站网站批量查询
  • 辽宁共青团网站建设爱站权重查询
  • 网站设计中遇到的问题最新热点新闻事件素材
  • 做网站最便宜要多少钱龙岗网络公司
  • 武汉seo网站排名优化公司营销网站建设价格
  • wordpress 编辑器设置seo站内优化
  • 物流网站建设方案网站制作过程
  • 网站帮企业做推广价格怎么算站点查询
  • 自做网站怎么搭建属于自己的网站
  • 河北响应式网站企业新闻20字摘抄大全
  • c2c网站的功能新平台怎么推广
  • 网站建设公司怎么写宣传语宁波网站seo公司
  • asp 网站 模板百度广告代运营公司
  • 桂林漓江阳朔优化设计四年级上册数学答案
  • 中国代理网官网重庆seo公司
  • wordpress适合做网页seo搜索引擎优化是通过优化答案
  • 网站对接微信接口智能网站推广优化
  • 淘宝找做网站株洲企业seo优化
  • 游戏网站怎么赚钱chinaz站长素材
  • 企业网站建设的上市公司电商运营seo
  • 互联网有多少网站济南网站推广
  • wordpress投稿者用户权限seo怎么优化步骤
  • 外贸公司起名seo优化
  • 遵义做网站哪家好哪家好seo优化推广技巧
  • 网站是否必须做认证山西seo排名厂家
  • 国家企业信用网企业查询标题关键词优化报价
  • 枣庄高端网站定制厦门关键词排名提升
  • k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
  • 沪深L2逐笔十档委托队列分时Tick历史数据分析处理
  • Flutter实现Retrofit风格的网络请求封装
  • Flutter控件归纳总结
  • [Python 基础课程]注释
  • “三十二应身”架构设计:论高扩展性度化系统的实现原理