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

图像处理控件Aspose.Imaging教程:使用 C# 将 SVG 转换为 EMF

Aspose.Imaging for .NET是一款深受 .NET 开发人员喜爱的图像处理 SDK,因为它灵活且易于开发人员使用。EMF 图像文件格式提供出色的打印质量和可扩展性。此外,这种图像文件格式还节省存储空间。Aspose.Imaging for .NET  能够使 SVG 到 EMF 的转换变得简单且经济实惠。本教程将演示如何借助Aspose.Imaging for .NET在 C# 中无缝地将SVG转换为EMF。请确保您已在计算机上安装 .NET,以便可以立即实现该功能。

Aspose.Imaging for .NET官方正版下载

图像处理 SDK - 安装

我们将安装Aspose.Imaging for .NET。请访问链接下载

Install-Package Aspose.Imaging

使用 C# 编程将 SVG 转换为 EMF

您可以按照以下步骤开发 SVG 到 EMF 转换器:

  1. 循环遍历文件数组。
  2. 通过调用Image.Load(inputFileName)方法加载源 SVG 文件。
  3. 将 SVG光栅化选项设置为与原始图像相同的页面大小。
  4. 初始化 EMF选项并分配 SVG 光栅化设置以进行矢量渲染。
  5. Save方法将把生成的 EMF 文件保存到磁盘上。

以下代码示例展示了如何以编程方式在 C# 中将 SVG 转换为 EMF:

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;namespace CSharp.ModifyingAndConvertingImages.CDR
{class CdrToPngExample{static void Main(){// The path to the documents directory.string dataDir = "files";string[] testFiles = new string[] { "Sample.svg" };License lic = new License();lic.SetLicense(dataDir+"License.lic");// Loop through the files array.foreach (string fileName in testFiles){string inputFileName = Path.Combine(dataDir, fileName);string outputFileName = Path.Combine(dataDir, fileName + ".emf");// Load the source SVG file by calling the Image.Load(inputFileName) method. using (Image image = Image.Load(inputFileName)){// Set SVG rasterization options with the same page size as the original image. VectorRasterizationOptions vectorRasterizationOptions = new SvgRasterizationOptions { PageSize = image.Size };// Initialize EMF options and assign the SVG rasterization settings for vector rendering. EmfOptions emfOptions = new EmfOptions{VectorRasterizationOptions = vectorRasterizationOptions};// The Save method will save the resultant EMF file on the disk. image.Save(outputFileName,emfOptions);}}}}}

输出:

总结

我们探索了一种可靠的方法,可以在 C# 中以编程方式将 SVG 转换为 EMF。Aspose.Imaging for .NET是 .NET 开发人员实现自动化转换的优选方案。此外,这款图像处理 SDK 赋予程序员完全控制权,使他们能够根据自身需求扩展功能。这篇博文介绍了其基本功能。

http://www.dtcms.com/a/316673.html

相关文章:

  • C++ 变量初始化方式总结 | 拷贝初始化 | 列表初始化 | 值初始化
  • 【PCB】3. 信号部分设计
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘keras’问题
  • Nginx入门:高性能Web服务器详解
  • 商用密码应用安全性评估(密评)实施指南:法律依据与核心要点解析
  • 神坛上的transformer
  • 如何测量滚珠花键的旋转方向间隙?
  • PYQT的QMessageBox使用示例
  • unity之 贴图很暗怎么办
  • Redis作为MySQL缓存的完整指南:从原理到实战
  • 《算法导论》第 4 章 - 分治策略
  • Nature Neuroscience | 如何在大规模自动化MRI分析中规避伪影陷阱?
  • 虚拟电场:能源互联网的隐形交响乐团
  • 基于SD地图增强无图车道线和拓扑推理
  • 【25-cv-23395】宠物/婴儿玩具品牌BESTSKY商标维权!
  • 面向对象编程基础:类的实例化与对象内存模型详解
  • Java基础面试题(1)—Java优势(JVM,JRE,JIT,Java类,方法)
  • RHCA04--系统模块管理与资源限制
  • 91、【OS】【Nuttx】【启动】栈溢出保护:配置项添加
  • 第13届蓝桥杯Scratch_选拔赛_初级组_真题2022年1月22日
  • GPTs和AssistantAPl和Alagent的区别联系
  • 8月5号打卡
  • 智慧社区(八)——社区人脸识别出入管理系统设计与实现
  • 1panel服务器管理工具
  • QML开发:QML的第一个程序
  • Qt Quick 之动态旋转刻度盘(无人机中指南针 Demo )
  • 400V降24V,200mA,应用领域:从生活到工业的 “全能电源管家”WD5208
  • 华清远见25072班C语言学习day2
  • Z20K118库中寄存器及其库函数封装-CLOCK库
  • Boosting 知识点整理:机制、对比与应用场景