Extraia SVG do site em C#

Você já esteve em uma situação em que quis salvar ou baixar imagens SVG de uma página da web ou de um URL ativo? Scalable Vector Graphics (SVG) é um formato de imagem popular usado em páginas da web. As imagens SVG são baseadas em vetores, o que significa que são compostas de objetos matemáticos que podem ser dimensionados para qualquer tamanho sem perder qualidade. Isso os torna um formato versátil e eficiente para armazenar e exibir imagens. Nesta postagem do blog, discutiremos como extrair SVG de um site em C#.

Este artigo cobre os seguintes tópicos:

  1. API C# para extrair SVG do site
  2. Extrair SVG do site
  3. Baixar imagens SVG externas do site
  4. Recursos de aprendizagem gratuitos

API C# para extrair SVG do site

Usaremos o Aspose.HTML for .NET para extrair SVG de sites. Ele permite que os desenvolvedores manipulem e processem documentos HTML. Ele pode ser usado para automatizar a manipulação, conversão ou análise de documentos HTML em um aplicativo .NET. Os desenvolvedores podem economizar tempo e esforço implementando uma solução pronta para uso para lidar programaticamente com tarefas relacionadas a HTML. Ele também permite a conversão de páginas da web e documentos HTML para formatos suportados sem qualquer software externo.

Por favor baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.Html

Extraia SVG do site em C#

Podemos extrair todas as imagens SVG incorporadas usando o <svg> elemento seguindo as etapas abaixo:

  1. Carregue uma página da web usando a classe HTMLDocument.
  2. Leia todas as imagens SVG embutidas usando o método GetElementsByTagName().
  3. Por fim, percorra todas as imagens e salve em um sistema de arquivos local.

O exemplo de código a seguir mostra como extrair SVG de um site em C#.

// O exemplo de código a seguir demonstra como extrair SVG de um site em C#.
using Aspose.Html;

string OutputDir = "C:\\Files\\Internal\\";

// Abra um documento do qual deseja extrair imagens SVG embutidas
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");

// Colete todas as imagens SVG embutidas
var images = document.GetElementsByTagName("svg");

for (var i = 0; i < images.Length; i++)
{
    // Salve todas as imagens SVG em um sistema de arquivos local
    File.WriteAllText(Path.Combine(OutputDir, $"{i}.svg"), images[i].OuterHTML);
}
Extraia SVG do site em C#

Extraia SVG do site em C#

Baixe imagens SVG externas do site em C#

Podemos extrair todas as imagens SVG armazenadas fora de um documento HTML e carregadas no documento seguindo as etapas abaixo:

  1. Carregue uma página da web usando a classe HTMLDocument.
  2. Leia todas as imagens SVG embutidas usando o método GetElementsByTagName().
  3. Por fim, percorra todas as imagens e salve em um sistema de arquivos local.

O exemplo de código a seguir mostra como extrair SVG incorporado externamente de um site em C#.

using Aspose.Html;
using Aspose.Html.Net;

// Diretório de arquivos
string OutputDir = "C:\\Files\\";

// Abra o documento do qual deseja extrair SVGs externos
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");

// Colete todos os elementos da imagem
var images = document.GetElementsByTagName("img");

// Crie uma coleção distinta de URLs de imagens relativas
var urls = images.Select(element => element.GetAttribute("src")).Distinct();

// Filtre imagens não SVG
var svgUrls = urls.Where(url => url.EndsWith(".svg"));

// Crie URLs de imagem SVG absolutos
var absUrls = svgUrls.Select(src => new Url(src, document.BaseURI));

foreach (var url in absUrls)
{
    // Crie uma solicitação de extração
    using var request = new RequestMessage(url);

    // Extrair SVG
    using var response = document.Context.Network.Send(request);

    // Verifique se a resposta foi bem-sucedida
    if (response.IsSuccess)
    {
        // Salvar imagem SVG no sistema de arquivos local
        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
    }
}

Obtenha licença gratuita

Você pode obter uma licença temporária gratuita para experimentar o Aspose.HTML for .NET sem limitações de avaliação.

Extraia SVG do site – Recursos de aprendizagem

Você pode aprender mais sobre como extrair SVG de sites e explorar vários outros recursos da biblioteca usando os recursos abaixo:

Conclusão

Neste artigo, aprendemos como extrair SVG de sites em C#. A capacidade de extrair SVGs de sites ou páginas traz uma nova dimensão à criatividade digital. Seja para arquivar gráficos inspiradores, analisar tendências de design ou aprimorar seus próprios projetos, as etapas descritas neste artigo mostram como o processo é relativamente simples e requer algumas linhas de código. Em caso de qualquer ambigüidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também