可缩放矢量图形 (SVG) 是一种功能强大的图像格式,可用于创建高质量、可缩放的 Web 图像。 SVG 图像是使用 XML 代码创建的,这使得它们易于创建和修改。在某些情况下,我们可能需要在 SVG 中嵌入 PNG 或 JPG 图像等资源。在这篇博文中,我们将向您展示如何使用 C# 创建内部包含图像的 SVG。
本文涵盖以下主题:
C# API 创建包含图像的 SVG
我们将使用 Aspose.SVG for .NET 创建一个内部包含图像的 SVG。它允许开发人员在 .NET 应用程序中使用 SVG 文件。该 API 能够加载、解析、渲染、创建 SVG 文件并将其转换为流行格式,而无需软件依赖。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.SVG
使用 C# 在 SVG 中嵌入 PNG
我们可以使用 SVG 轻松地将位图图像嵌入到 SVG 对象中<image>
元素。 SVG<image>
元素能够渲染各种格式的图像,例如 JPEG、PNG,甚至 SVG 图形。 的属性<image>
元素定义位图的显示方式。主要属性包括:
- x 和 y:表示图像左上角的坐标。
- 宽度和高度:它们决定了显示图像的“窗口”的宽度和高度。这两个属性都是强制性的。
- href 和 xlink:href:这些属性指向图像文件的 URL。
- keepAspectRatio:此属性控制图像如何按比例缩放。
我们可以按照以下步骤轻松创建一个包含 PNG 的 SVG:
- 将 SVG 内容指定为字符串。
- 之后,从字符串内容创建 SVGDocument 类的实例。
- 最后,使用 Save() 方法保存图像。
以下代码示例演示如何使用 C# 将 PNG 图像嵌入到 SVG 中。
// 指定嵌入 PNG 图像的 SVG 内容。
string content = "<svg height=\"500\" width=\"600\" xmlns=\"http://www.w3.org/2000/svg\">\r\n " +
"<circle cx=\"120\" cy=\"100\" r=\"90\" style=\"fill:blue; stroke-width:3; stroke:rgb(0,0,0); fill-opacity:0.7\" />" +
"<image href=\"https://www.aspose.cloud/templates/aspose/App_Themes/V3/images/svg/272x272/aspose_svg-for-net.png\" x=\"70\" y=\"50\" height=\"100\" width=\"100\" />\r\n \t" +
"<text x=\"40\" y=\"250\">Embedded PNG image</text>\r\n \t" +
"</svg>";
// 使用 SVGDocument 初始化 SVG 文档。
SVGDocument document = new SVGDocument(content, ".");
// 使用 SVGSaveFormat 枚举将文档保存到文件。
document.Save("C:\\Files\\EmbedPNG.svg", SVGSaveFormat.SVG);
使用 C# 将 SVG 嵌入到 SVG 中
同样,我们可以按照前面提到的步骤创建一个内部包含 SVG 图像的 SVG。
以下代码示例演示如何使用 C# 将 SVG 图像嵌入到 SVG 中。
// 指定嵌入 PNG 图像的 SVG 内容。
string documentContent = "<svg height=\"500\" width=\"500\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t" +
"<image href=\"https://docs.aspose.com/svg/net/navigation-inspection/shapes.svg\" x=\"250\" y=\"10\" height=\"350\" width=\"350\" />\r\n \t" +
"<text x=\"300\" y=\"250\">Embedded SVG image</text> \r\n" +
"</svg>";
// 使用 SVGDocument 初始化 SVG 文档。
SVGDocument document = new SVGDocument(documentContent, ".");
// 使用 SVGSaveFormat 枚举将文档保存到文件。
document.Save("C:\\Files\\EmbedSVG.svg", SVGSaveFormat.SVG);
获取免费许可证
您可以获得免费的临时许可证来尝试 Aspose.SVG for .NET,而不受评估限制。
内部带有图像的 SVG – 免费资源
您可以使用以下资源了解有关该库的各种功能的更多信息:
结论
总之,使用 C# 创建嵌入图像的 SVG 图像是一个相对简单的过程。通过遵循本教程中的步骤,您可以创建自己的自定义 SVG 图像,以便在您的网站或应用程序中使用。通过利用 Aspose.SVG for .NET(一个强大且多功能的 SVG 库),您可以轻松创建可在任何设备上使用的嵌入图像的 SVG 图像。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。