Girar imagen SVG C#

Los archivos SVG definen los gráficos en formato XML. Se pueden escalar o imprimir en cualquier tamaño sin alterar la calidad de la imagen. En algunos casos, es posible que deba rotar una imagen SVG. En consecuencia, este artículo cubre cómo rotar una imagen SVG mediante programación en C#.

C# Rotación de imágenes SVG: instalación de la API

Aspose.SVG para .NET admite el trabajo con archivos SVG. Puede editar, actualizar o crear imágenes SVG desde sus aplicaciones basadas en .NET Framework. Simplemente descargue los archivos DLL de referencia de la página Descargas o ejecute el siguiente comando de instalación de NuGet:

PM> Install-Package Aspose.SVG

Cómo rotar un archivo de imagen SVG mediante programación en C#

Puede rotar un archivo de imagen SVG con los siguientes pasos:

  1. Abra el archivo SVG de entrada y cree un elemento gráfico.
  2. Establezca la transformación de rotación y especifique el grado de rotación.
  3. Añada el elemento gráfico.
  4. Guarde la imagen SVG girada.

Rotar una imagen SVG programáticamente en C#

Debe seguir los pasos a continuación para rotar una imagen SVG en C#:

  1. Cargue el archivo SVG de entrada con la clase SVGDocument.
  2. Mencione el ángulo de rotación y configure la transformación de rotación.
  3. Añada el elemento gráfico.
  4. Escriba la imagen SVG girada de salida utilizando el método Guardar.

El siguiente código explica cómo rotar una imagen SVG con contenido HTML incrustado mediante programación usando C#:

// Abra el documento SVG
using var document = new SVGDocument("example.svg");

var svg = document.RootElement as SVGElement;
var bbox = document.RootElement.GetBBox();

if (svg == null)
    return;

// Crear elemento gráfico g;
var g = (SVGGElement)document.CreateElementNS("http://www.w3.org/2000/svg", "g");

// Establecer la transformación de rotación 
g.SetAttribute("transform", $"rotate(45,{(bbox.X + bbox.Width) / 2f}, {(bbox.Y + bbox.Height) / 2f})");

// Copie los niños del elemento svg al elemento g
foreach (var childNode in svg.ChildNodes)
    g.AppendChild(childNode.CloneNode(true));
var child = svg.LastElementChild;

// Eliminar niños de svg
while (child != null)
{
    svg.RemoveChild(child);
    child = svg.LastElementChild;
}

// Agregar elemento gel a elemento svg
document.RootElement.AppendChild(g);

// Guardar documento modificado
document.Save("roatedexample.svg");

Obtenga una licencia de API gratuita

Puede solicitar una licencia temporal gratuita para probar la API en toda su capacidad.

Conclusión

En este artículo, ha aprendido a rotar una imagen SVG mediante programación en C#. Además, puede visitar la sección documentación para conocer otras características de la API. En caso de ambigüedad, no dude en comunicarse con nosotros en el foro.

Ver también