Повернуть изображение SVG C#

Файлы SVG определяют графику в формате XML. Их можно масштабировать или печатать в любом размере без ущерба для качества изображения. В некоторых случаях вам может понадобиться повернуть изображение SVG. Соответственно, в этой статье рассказывается, как программно повернуть изображение SVG в C#.

Поворот изображения C# SVG — установка API

Aspose.SVG для .NET поддерживает работу с файлами SVG. Вы можете редактировать, обновлять или создавать изображения SVG из приложений на основе .NET Framework. Просто загрузите эталонные DLL-файлы со страницы Загрузки или выполните команду установки NuGet ниже:

PM> Install-Package Aspose.SVG

Как программно повернуть файл изображения SVG в C#

Вы можете повернуть файл изображения SVG, выполнив следующие действия:

  1. Откройте входной файл SVG и создайте графический элемент.
  2. Задайте преобразование поворота и укажите угол поворота.
  3. Добавьте графический элемент.
  4. Сохраните повернутое изображение SVG.

Программно повернуть изображение SVG в C#

Вам необходимо выполнить следующие шаги, чтобы повернуть изображение SVG в C#:

  1. Загрузите входной файл SVG с классом SVGDocument.
  2. Укажите угол поворота и установите преобразование поворота.
  3. Добавьте графический элемент.
  4. Запишите выходное повернутое изображение SVG, используя метод Сохранить.

В приведенном ниже коде объясняется, как программно с помощью C# повернуть изображение SVG со встроенным HTML-содержимым:

// Откройте документ SVG.
using var document = new SVGDocument("example.svg");

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

if (svg == null)
    return;

// Создайте графический элемент g;
var g = (SVGGElement)document.CreateElementNS("http://www.w3.org/2000/svg", "g");

// Установить преобразование поворота 
g.SetAttribute("transform", $"rotate(45,{(bbox.X + bbox.Width) / 2f}, {(bbox.Y + bbox.Height) / 2f})");

// Скопируйте дочерние элементы из элемента svg в элемент g
foreach (var childNode in svg.ChildNodes)
    g.AppendChild(childNode.CloneNode(true));
var child = svg.LastElementChild;

// Удалить детей из svg
while (child != null)
{
    svg.RemoveChild(child);
    child = svg.LastElementChild;
}

// Добавить элемент g к элементу svg
document.RootElement.AppendChild(g);

// Сохранить измененный документ
document.Save("roatedexample.svg");

Получить бесплатную лицензию API

Вы можете запросить бесплатную временную лицензию для полноценного тестирования API.

Вывод

В этой статье вы узнали, как программно повернуть изображение SVG на C#. Кроме того, вы можете посетить раздел документация, чтобы узнать о других функциях API. В случае каких-либо неясностей, пожалуйста, не стесняйтесь обращаться к нам на форуме.

Смотрите также