新闻详情

新闻详情

首页 / 资讯中心 / 详情

NGraphics完全指南:跨平台.NET矢量图形渲染库入门详解

发布时间:2026/9/30 4:26:01来源:尧图网络
NGraphics完全指南:跨平台.NET矢量图形渲染库入门详解
NGraphics完全指南跨平台.NET矢量图形渲染库入门详解【免费下载链接】NGraphicsNGraphics is a cross platform library for rendering vector graphics on .NET. It provides a unified API for both immediate and retained mode graphics using high quality native renderers.项目地址: https://gitcode.com/gh_mirrors/ng/NGraphicsNGraphics是一个强大的跨平台.NET矢量图形渲染库为开发者提供了统一的API来渲染高质量的矢量图形。无论您是在构建UI组件、创建交互式视图还是需要导入导出SVG和PNG文件NGraphics都能满足您的需求。这个库支持即时模式和保留模式两种渲染方式并利用原生渲染器实现高质量的图形输出。 NGraphics核心功能概览NGraphics的核心功能包括跨平台支持支持Android、iOS、macOS、Windows和.NET Core矢量图形渲染绘制矩形、椭圆、路径等基本图形SVG导入导出完整的SVG文件读写支持高质量渲染利用原生图形API实现最佳性能统一的API一套代码在所有平台上运行 快速安装与配置要开始使用NGraphics您可以通过NuGet包管理器轻松安装dotnet add package NGraphics或者直接在Visual Studio的NuGet包管理器中搜索NGraphics并安装最新版本。 基础绘图示例让我们从一个简单的例子开始绘制一个房子var canvas Platforms.Current.CreateImageCanvas(new Size(100), scale: 2); var skyBrush new LinearGradientBrush(Point.Zero, Point.OneY, Colors.Blue, Colors.White); canvas.FillRectangle(new Rect(canvas.Size), skyBrush); canvas.FillEllipse(10, 10, 30, 30, Colors.Yellow); canvas.FillRectangle(50, 60, 60, 40, Colors.LightGray); canvas.FillPath(new PathOp[] { new MoveTo(40, 60), new LineTo(120, 60), new LineTo(80, 30), new ClosePath() }, Colors.Gray); canvas.GetImage().SaveAsPng(house.png);️ 画笔与填充工具NGraphics提供了丰富的绘图工具包括各种画笔和填充选项画笔设置示例var canvas Platforms.Current.CreateImageCanvas(new Size(120*5, 120), scale: 2); canvas.Translate(20, 20); for (var i 0; i 5; i) { canvas.DrawEllipse( new Rect(new Size(80)), pen: Pens.DarkGray.WithWidth(1 i), brush: Brushes.LightGray); canvas.Translate(120, 0); } canvas.GetImage().SaveAsPng(PenWidths.png);渐变填充效果NGraphics支持线性渐变和径向渐变填充让您的图形更加生动// 线性渐变示例 var linearGradient new LinearGradientBrush( new Point(0, 0), new Point(1, 1), Colors.Red, Colors.Blue); // 径向渐变示例 var radialGradient new RadialGradientBrush( new Point(0.5, 0.5), 0.5, Colors.Yellow, Colors.Orange); 颜色系统NGraphics提供了灵活的颜色系统// RGBA构造函数 var color1 new Color(1.0, 0.0, 0.0, 1.0); // 红色 // Web十六进制表示法 var color2 Color.FromRGB(0xFF5733); // 橙色 // 预定义颜色 var red Colors.Red; var blue Colors.Blue; var green Colors.Green; 基本图形元素NGraphics支持多种基本图形元素矩形绘制var rectangle new Rectangle(new Rect(10, 10, 100, 50)); rectangle.Draw(canvas);椭圆和圆形var ellipse new Ellipse(new Rect(50, 50, 80, 40)); var circle new Ellipse(new Rect(100, 100, 50, 50));路径绘制路径是NGraphics中最强大的绘图工具var path new Path(); path.MoveTo(0, 0); path.LineTo(100, 50); path.QuadraticCurveTo(150, 0, 200, 50); path.Close(); SVG文件处理NGraphics提供了完整的SVG文件读写支持读取SVG文件using (var stream File.OpenRead(input.svg)) { var reader new SvgReader(new StreamReader(stream)); var graphic reader.Graphic; graphic.Draw(canvas); }导出为SVGvar writer new SvgWriter(); graphic.Write(writer); File.WriteAllText(output.svg, writer.ToString());上图展示了NGraphics渲染复杂SVG文件的能力 跨平台支持NGraphics支持多个平台的原生渲染Android平台使用Android.Graphics.Canvas进行渲染相关代码位于Platforms/NGraphics.Android/AndroidPlatform.csiOS/macOS平台使用CoreGraphics.CGContext进行渲染相关代码位于Platforms/NGraphics.Mac/ApplePlatform.cs.NET平台使用System.Drawing.Graphics进行渲染相关代码位于Platforms/NGraphics.Net/SystemDrawingPlatform.csWindows平台使用Direct2D进行渲染相关代码位于Platforms/NGraphics.UWP/Direct2DCanvas.cs 高级功能Mandelbrot分形渲染NGraphics可以用于复杂的数学图形渲染var w 600.0; var h w * (2 / 3.5); var image Platforms.Current.CreateImage((px, py) { var x0 px / w * (3.5) - 2.5; var y0 py / h * (2) - 1; var x 0.0; var y 0.0; var iteration 0; const int maxIterations 1000; while (x*x y*y 2*2 iteration maxIterations) { var xtemp x*x - y*y x0; y 2*x*y y0; x xtemp; iteration iteration 1; } return new Color(iteration / (double)maxIterations, 1); }, new Size(w, h), scale: 1);文本渲染NGraphics支持高质量的文本渲染var font new Font(Arial, 24); canvas.DrawText(Hello NGraphics!, new Rect(10, 10, 200, 50), font, TextAlignment.Center, pen: Pens.Black); 编辑器工具NGraphics还提供了一个代码编辑器让您可以实时预览绘图效果编辑器位于NGraphics.Editor目录支持实时编译和预览大大提高了开发效率。 性能优化技巧使用保留模式对于需要重复绘制的图形使用保留模式可以提高性能// 创建图形对象 var circle new Ellipse(new Rectangle(Point.Zero, new Size(10))); // 重复绘制 for (int i 0; i 100; i) { circle.Draw(canvas); canvas.Translate(15, 0); }批量绘制尽可能将多个绘图操作合并到一次绘制调用中// 批量绘制路径 var ops new ListPathOp(); ops.Add(new MoveTo(0, 0)); ops.Add(new LineTo(100, 0)); ops.Add(new LineTo(50, 100)); ops.Add(new ClosePath()); canvas.DrawPath(ops, pen: Pens.Black, brush: Brushes.Gray); 实际应用场景UI组件开发NGraphics非常适合用于自定义UI组件的开发public class CustomButton : View { protected override void OnDraw(ICanvas canvas) { // 绘制圆角矩形背景 canvas.FillRectangle(Bounds, Colors.Blue); // 绘制文本 canvas.DrawText(Click Me!, Bounds, new Font(Arial, 16), TextAlignment.Center, brush: Brushes.White); } }图表绘制创建自定义图表和可视化组件public void DrawBarChart(ICanvas canvas, double[] data) { var barWidth canvas.Size.Width / data.Length; for (int i 0; i data.Length; i) { var height data[i] * canvas.Size.Height; var rect new Rect(i * barWidth, canvas.Size.Height - height, barWidth - 2, height); canvas.FillRectangle(rect, Colors.Blue); } } 学习资源官方文档项目提供了详细的文档包括核心API文档NGraphics/测试示例NGraphics.Test/平台特定实现Platforms/测试用例查看测试文件是学习NGraphics的最佳方式NGraphics.Test/ColorsToImageTests.cs - 颜色和图像处理NGraphics.Test/SvgReaderTests.cs - SVG文件读写NGraphics.Test/PathTests.cs - 路径绘制 调试技巧查看渲染结果NGraphics提供了方便的图片保存功能// 保存为PNG canvas.GetImage().SaveAsPng(output.png); // 保存为JPEG canvas.GetImage().SaveAsJpeg(output.jpg, quality: 90);使用编辑器调试利用NGraphics.Editor可以实时查看绘图效果加快开发调试过程。 总结NGraphics是一个功能强大且易于使用的跨平台.NET矢量图形库。无论您是初学者还是经验丰富的开发者都可以快速上手并创建出色的图形应用。通过统一的API、高质量的原生渲染和完整的SVG支持NGraphics为.NET生态系统的图形编程提供了优秀的解决方案。开始您的矢量图形编程之旅吧【免费下载链接】NGraphicsNGraphics is a cross platform library for rendering vector graphics on .NET. It provides a unified API for both immediate and retained mode graphics using high quality native renderers.项目地址: https://gitcode.com/gh_mirrors/ng/NGraphics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Paperzz+Python:论文数据定位与清洗分析实战指南 2026/9/30 4:26:01

Paperzz+Python:论文数据定位与清洗分析实战指南

论文数据这四个字,估计每个写过论文的人听到都要深吸一口气。我读研那会儿,最怕的不是写不出文章,而是文献综述里那一堆统计结果——样本量多少、均值标准差多少、显著性水平多少,一篇篇从PDF里翻,翻到手酸。后来我在整…

阅读更多 →
数字图像处理6大真实应用:从医学增强到活体检测 2026/9/30 4:25:54

数字图像处理6大真实应用:从医学增强到活体检测

简介:本资源是一份面向高校数字图像处理课程教学与人工智能方向初学者的PPT课件,聚焦图像处理在智能交通等实际场景中的工程化应用。课件以车牌识别系统为典型案例,系统讲解从彩色图像转灰度、灰度拉伸、二值化、梯度锐化、中值滤波&#xff…

阅读更多 →
模型压缩实战:量化、剪枝与蒸馏的工程落地指南 2026/9/30 4:25:54

模型压缩实战:量化、剪枝与蒸馏的工程落地指南

1. 项目概述:这不是一个“安装包”,而是一套模型瘦身工作流“Model-Optimizer”这个名字乍一听像某个带图形界面的傻瓜式工具,点几下鼠标就能把大模型变小——但实际完全不是这么回事。它本质上是一套面向生产部署的模型压缩工程方法论集合&a…

阅读更多 →
TensorFlow工程化实战:从模型训练到边缘部署全链路 2026/9/30 4:25:54

TensorFlow工程化实战:从模型训练到边缘部署全链路

1. 这不是“又一个深度学习框架”——TensorFlow 是怎么从实验室走向产线的你搜“tensorflow”,弹出来的前三个结果里,至少有两个是安装报错截图,还有一个是“TensorFlow vs PyTorch:2024年谁更值得学?”的对比帖。这很…

阅读更多 →
从零开始构建AI工程:手写神经网络到MLOps全流程实践 2026/9/30 4:25:54

从零开始构建AI工程:手写神经网络到MLOps全流程实践

1. 项目背景与整体思路解析1.1 为什么我决定从零开始做AI工程"ai-engineering-from-scratch"这个项目标题,本质上是我给自己下的一份战书。当时我已经做了几年后端开发,写接口、调数据库、部署服务这些事早就驾轻就熟,但每次听到算…

阅读更多 →
大模型驱动的银行资产配置再平衡:从市场状态感知到风险偏好校准 2026/9/30 4:25:54

大模型驱动的银行资产配置再平衡:从市场状态感知到风险偏好校准

简介:232页的《DeepSeek银行财富管理资产配置再平衡方案》面向银行财富管理、金融科技及算法研究人员,聚焦大模型驱动的市场状态感知与客户风险偏好动态校准。方案基于DeepSeek大模型,系统覆盖市场数据预处理、特征工程、prompt工程设计、多模…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉