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

甘肃省建设厅网站官网手机网站的好处

甘肃省建设厅网站官网,手机网站的好处,网站域名是网站架构吗,网站seo搜索引擎的原理是什么本系列第一篇文章中创建的基本框架限定了印章形状为矩形,但常用的印章有方形、圆形等多种形状,本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。   定义印章背景形状枚举类型,矩形、圆形、椭圆相关的尺寸…

  本系列第一篇文章中创建的基本框架限定了印章形状为矩形,但常用的印章有方形、圆形等多种形状,本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。
  定义印章背景形状枚举类型,矩形、圆形、椭圆相关的尺寸能够根据印章宽度、高度计算,但圆角矩形需额外增加圆角半径尺寸,因此调整印章数据结构定义如下:

public enum BgType
{Rect=0,RoundRect=1,Circle=2,Oval=3
}public class SealInfo
{/// <summary>/// 印章名称/// </summary>public string Name { get; set; }=string.Empty;/// <summary>/// 印章宽度/// </summary>public float Width { get; set; } = 0;/// <summary>/// 印章高度/// </summary>public float Height { get; set; } = 0;/// <summary>/// 尺寸单位类型,默认为毫米/// </summary>public UnitType UnitType { get; set; } = UnitType.Mm;/// <summary>/// 印章背景色,默认白色/// </summary>public SKColor BgColor {  get; set; }=SKColors.White;/// <summary>/// 背景形状类型/// </summary>public BgType BgType { get; set; } = BgType.Rect;/// <summary>/// 圆角半径/// </summary>public float CornerRadius { get; set; } = 0;/// <summary>/// 是否有边框/// </summary>public bool HasBorder { get; set; } = false;/// <summary>/// 边框宽度/// </summary>public float BorderWidth { get; set; } = 1;/// <summary>/// 边框颜色/// </summary>public SKColor BorderColor { get;set; } = SKColors.Red;
}

  虽然SKPaint的Style 属性可以设置同时绘制边框和底色(值定义为StrokeAndFill),但还没有在帮助文档或其它文档中看到边框和底色不同颜色时的设置和绘制方式,因此只能采用比较笨的方式,先绘制底色再绘制边框,同一个绘制函数调用两次,两次之间修改绘制方式和绘制颜色。采用SKPath对象保存不同类型的印章形状,最终调用canvas.DrawPath函数统一绘制底色和边框,主要代码如下:

Func<float, int, float> unitConverter = m_currSeal.UnitType == UnitType.Pixel ? CommonFunction.Pixel2Pixel : CommonFunction.MM2Pixel; ;SKCanvas canvas = e.Surface.Canvas;canvas.Clear();SKPaint skPaint = new SKPaint();
skPaint.Style = SKPaintStyle.Fill;
skPaint.Color = m_currSeal.BgColor;float borderWidth = unitConverter(m_currSeal.BorderWidth, skBoard.DeviceDpi);
SKRect rect = new SKRect(borderWidth / 2, borderWidth / 2, unitConverter(m_currSeal.Width, skBoard.DeviceDpi) - borderWidth / 2, unitConverter(m_currSeal.Height, skBoard.DeviceDpi) - borderWidth / 2);SKPath path = new SKPath();switch (m_currSeal.BgType)
{case BgType.Rect:path.AddRect(rect);break;case BgType.RoundRect:path.AddRoundRect(new SKRoundRect(rect, unitConverter(m_currSeal.CornerRadius, skBoard.DeviceDpi)));break;case BgType.Circle:path.AddCircle(rect.MidX, rect.MidY, Math.Min(rect.Height / 2, rect.Width / 2));break;case BgType.Oval:path.AddOval(rect);break;
}canvas.DrawPath(path, skPaint);if(m_currSeal.HasBorder)
{skPaint.StrokeWidth = borderWidth;skPaint.Style = SKPaintStyle.Stroke;skPaint.Color = m_currSeal.BorderColor;canvas.DrawPath(path, skPaint);
}

  最后是程序运行效果,如下图所示:
在这里插入图片描述

参考文献:
[1]https://learn.microsoft.com/zh-cn/dotnet/api/skiasharp?view=skiasharp-2.88

http://www.yayakq.cn/news/858551/

相关文章:

  • 小说网站开发实训报告安顺市哪里可以做网站
  • 自己怎么做彩票网站吗企业网站建设动图
  • 海南电子商务网站做网站需要哪些成本
  • 购物网站主页设计图ai论文生成器免费
  • 开发手机端网站模板腾云网
  • 开源免费企业网站系统个人模板建站
  • 浏览器显示不安全网站建设怎么介绍自己做的企业网站页面
  • 网站建设推广公司价格wordpress获取链接
  • 网站自适应怎么做网站建设电销话术
  • 做任务能赚钱的网站免费下载网站模板
  • dedecms做网站和thinkphp辽宁省建设厅科技中心网站
  • 福建省机关效能建设网站地方门户模板
  • 网站建设中广告图片尺寸北京软件app开发公司
  • 成品网站1688入门网app开发公司 上海
  • 后台控制网站关键词设置的详细代码工商企业查询网
  • 做电影网站服务器wordpress菜单页和文章页路径不同
  • 阿里巴巴国际网站建设网站建设优化服务价位
  • 个人在线网站推广备案核验单 网站类型
  • 一站式网站开发江西星子网
  • 专业的建设网站服务郑州企业健康码二维码怎么弄就是放在门口让人扫
  • 网站模板上传教程千旺crm客户管理系统
  • 成品免费网站源码开微信公众号流程
  • 建网站代理哪个产品如何做网站地图
  • 网站建设采购公告wordpress 整站音乐
  • 网站开发环境安装程序wordpress更改绑定域名
  • 做封面的地图网站自媒体发布平台
  • 佛山顺德容桂做网站的公司网站怎么集成支付宝
  • 北苑网站建设公司.net网站开发实训代码
  • 短故事网站模板做网站是58好还是百度好
  • 做网站的机构网上最畅销的10种商品