Как конвертировать файлы SVG – примеры C#

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

Aspose.SVG для .NET API может конвертировать файлы SVG в PDF, XPS, JPG, PNG, Форматы файлов BMP, TIFF и GIF. Вы можете использовать API в своем C# или любом другом приложении .NET (например, VB.NET) для разработки приложений-конвертеров, не вдаваясь в подробности базовых форматов файлов.

Онлайн-конвертер SVG

Вы можете конвертировать SVG в другие форматы с помощью API Aspose.SVG в режиме реального времени. Загрузите SVG из локальной файловой системы или из URL, выберите выходной формат и запустите пример. В этом примере параметры сохранения установлены по умолчанию. Вы сразу получите результат в виде отдельного файла.

                
            

Несколько способов конвертировать SVG в C#

Конвертировать SVG в различные популярные форматы можно любым способом – онлайн или программно. Преобразование из SVG в другие форматы можно выполнить с помощью методов ConvertSVG() класса Converter, метода RenderTo(device) класса SVGDocument. или метод Render(IDevice, TDocument) класса Renderer.

В текущем разделе описаны поддерживаемые сценарии преобразования файлов SVG в другие популярные форматы с использованием классов Converter и SVGDocument:

  1. Класс static Converter представляет собой общий фасад, который обеспечивает преобразование файлов SVG в популярные форматы и позволяет сделать эти операции удобными и простыми. Широкий спектр методов ConvertSVG() принимает в качестве аргументов исходный документ, параметры сохранения, путь к выходному файлу и конвертирует SVG в файлы PDF, XPS или изображения.
  2. Метод RenderTo() класса SVGDocument используется для рендеринга SVG в другой формат и отправки документа на устройство вывода. API Aspose.SVG предоставляет следующую реализацию устройств вывода: классы PdfDevice, XpsDevice и ImageDevice, которые выполняют рендеринг в форматы файлов PDF, XPS и Image соответственно.
  3. Метод Render(IDevice, TDocument) класса Renderer дает вам возможность отправлять несколько документов одновременно на выходное устройство рендеринга и объединять их. Дополнительную информацию см. в статье Как объединить документы SVG.

Рассмотрим оба сценария преобразования SVG-документа в другой формат файла, например, SVG в PNG:

Вы можете загрузить полные примеры и файлы данных с GitHub. О загрузке с GitHub и запуске примеров вы узнаете из раздела Как запускать примеры.

Преобразование SVG в PNG с помощью метода ConvertSVG()

Преобразование файла в другой формат методом ConvertSVG() представляет собой последовательность операций, среди которых загрузка и сохранение документа:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Saving;
4using Aspose.Svg.Converters;
 1// Convert SVG to PNG using C#
 2
 3// Initialize an SVG document from a file
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "svg-to-png.svg")))
 5{
 6    // Create an instance of the ImageSaveOptions class
 7    ImageSaveOptions pngSaveOptions = new ImageSaveOptions();
 8
 9    // Convert SVG to PNG
10    Converter.ConvertSVG(document, pngSaveOptions, Path.Combine(OutputDir, "svg-to-png.png"));
11}

В этом примере конструктор ImageSaveOptions() инициализирует экземпляр класса ImageSaveOptions, который передается в метод ConvertSVG(). Метод ConvertSVG(source, options, outputPath) принимает необходимые атрибуты и выполняет операцию преобразования.

На рисунке показан файл svg-to-png.png.

Text «файл svg-to-png.svg, преобразованный в PNG»

Преобразование SVG в PNG с помощью метода RenderTo()

Чтобы преобразовать SVG в PNG с помощью метода RenderTo(), выполните следующие шаги:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering.Image;
 1// Convert SVG to PNG in C#
 2
 3// Open a source SVG document
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "light.svg")))
 5{
 6    // Initialize an instance of the ImageRenderingOptions class 
 7    ImageRenderingOptions pngOptions = new ImageRenderingOptions();
 8
 9    // Initialize an instance of the ImageDevice class and specify an output file to render
10    using (ImageDevice device = new ImageDevice(pngOptions, Path.Combine(OutputDir, "light_out.png")))
11    {
12        // Render SVG to PNG
13        document.RenderTo(device);
14    }
15}

Конструктор ImageDevice(options, file) принимает в качестве аргументов экземпляр класса ImageRenderingOptions, имя выходного файла и инициализирует новый экземпляр класса ImageDevice. Метод RenderTo(device) преобразует и отправляет текущий документ на выходное устройство рендеринга.

На рисунке показан результат преобразования SVG в PNG – файл Light.png.

Text «Файл Light.svg, преобразованный в PNG с использованием метода RenderTo()»

Общие настройки

Вы можете настроить процесс рендеринга, указав размер страницы, поля, цвет фона и т. д. Для конвертации SVG во все упомянутые выше форматы из класса RenderingOptions наследуются следующие свойства: BackgroundColor, Css , HorizontalResolution, PageSetup и VerticalResolution.

Каждое устройство вывода PdfDevice, XpsDevice и ImageDevice имеет свой собственный уникальный набор параметров, реализованных с помощью классов PdfRenderingOptions, XpsRenderingOptions и ImageRenderingOptions соответственно.

Параметры, реализуемые с помощью классов PdfSaveOptions, XpsSaveOptions и ImageSaveOptions, наследуются от классов PdfRenderingOptions, XpsRenderingOptions и ImageRenderingOptions соответственно.

Aspose.SVG предлагает бесплатный онлайн SVG Конвертер для конвертации файлов SVG в различные популярные форматы. Вы можете легко конвертировать SVG в PDF, SVG в XPS, SVG в JPG, SVG в PNG, SVG в BMP, SVG в TIFF, SVG в GIF. Просто выберите файл, выберите формат для конвертации, и все готово. Это быстро и совершенно бесплатно!

Text “SVG Converter”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.