SVG imagens são popularmente usadas na web, especialmente onde a escalabilidade e a qualidade das imagens são importantes. Você pode inspecionar, extrair ou navegar por elementos de imagem SVG programaticamente com C#. Vamos explorar as seguintes seções para mais detalhes:
- Inspeção ou navegação SVG em C# - Instalação da API
- Inspecione o documento SVG e seus elementos
- Extrair informações sobre elementos SVG específicos
- Navegue SVG usando XPath Query
Inspeção ou navegação SVG em C# - Instalação da API
Aspose.SVG for .NET API suporta a criação, edição ou conversão de arquivos SVG. Você pode baixar o arquivo DLL como ZIP na seção Downloads. Você também pode configurá-lo por meio do NuGet Package Manager no Microsoft Visual Studio. O seguinte comando de instalação do NuGet pode ser usado para configurá-lo:
PM> Install-Package Aspose.SVG
Inspecione o documento SVG e seus elementos
Vários métodos em Aspose.SVG para .NET API são baseados em Element Traversal Specifications conforme W3C. Você pode inspecionar um arquivo SVG em detalhes com as seguintes etapas:
- Carregue o arquivo SVG de entrada.
- Carregue elementos diferentes com o objeto DocumentElement.
- Acesse o valor de qualquer imóvel.
O código abaixo explica como inspecionar documentos SVG e seus diferentes elementos programaticamente usando C#:
// Carregar um documento
string documentPath = Path.Combine(DataDir, "shapes.svg");
using (var document = new SVGDocument(documentPath))
{
var element = document.DocumentElement;
Console.WriteLine(element.TagName); // svg
element = element.LastElementChild;
Console.WriteLine(element.TagName); // g
element = element.FirstElementChild;
Console.WriteLine(element.TagName); // rect
}
Extrair informações sobre elementos SVG específicos
Um arquivo de imagem SVG consiste em vários elementos em um elemento raiz. A classe SVGDocument expõe diferentes métodos para extrair informações sobre elementos SVG específicos, por exemplo, ParentElement e GetElementsByClassName. Vamos seguir as etapas abaixo para extrair informações sobre elementos SVG específicos:
- Carregar imagem SVG de entrada.
- Acesse o atributo DocumentElement.
- Leia Qualquer Elemento Específico.
O código a seguir mostra como extrair informações sobre um elemento SVG específico programaticamente usando C#:
//Carregar um documento de um arquivo
string documentPath = Path.Combine(DataDir, "shapes.svg");
using (var document = new SVGDocument(documentPath))
{
// Obtenha o elemento svg raiz do documento
var svg = document.DocumentElement;
// Encontre o primeiro elemento filho com um determinado nome de tag
var g = svg.GetElementsByTagName("g").First() as SVGGElement;
var rect = g.FirstElementChild as SVGRectElement;
Console.WriteLine("Height: {0}", rect.Height);// 90
Console.WriteLine("Width: {0}", rect.Width); // 100
}
Para esta demonstração, consideramos trabalhar com o arquivo shapes.svg.
Navegue SVG usando XPath Query
A linguagem de consulta XPath é usada para selecionar nós de documentos baseados em XML. As etapas a seguir explicam como navegar nos nós do arquivo de imagem SVG com XPath Query:
- Carregar arquivo SVG de origem.
- Avalie XPath expression.
- Avalie e obtenha o próximo nó.
O código abaixo demonstra como essas etapas permitem navegar nos nós SVG programaticamente usando a linguagem C#:
using Aspose.Svg;
using System.IO;
using Aspose.Svg.Dom;
using Aspose.Svg.Collections;
...
using (var document = new SVGDocument(Path.Combine(DataDir, "shapes.svg")))
{
// Avaliar expressão XPath
var xpathResult = document.Evaluate("//rect[@x='120']", document, null, (Dom.XPath.XPathResultType)XPathResultType.Any, null);
// Obter o próximo nó avaliado
Console.WriteLine((xpathResult.IterateNext() as Element)?.OuterHTML);
}
Conclusão
Neste artigo, exploramos como inspecionar o arquivo SVG e seus elementos. Da mesma forma, a extração de informações de arquivos SVG e a navegação em nós SVG usando XPath Query também são discutidas. Além disso, você pode aprender mais lendo a Documentação. Sinta-se à vontade para entrar em contato no Fórum de suporte gratuito. Teremos o maior prazer em ajudá-lo e orientá-lo!