Как конвертировать файлы 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;
 5...
 6
 7    // Initialize an SVG document from a file
 8    using (var document = new SVGDocument(Path.Combine(DataDir, "svg-to-png.svg")))
 9    {
10        // Create an instance of the ImageSaveOptions class
11    	var pngSaveOptions = new ImageSaveOptions();
12
13        // Convert SVG to PNG
14    	Converter.ConvertSVG(document, pngSaveOptions, Path.Combine(OutputDir, "svg-to-png.png"));
15    }

В этом примере конструктор 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;
 4...
 5
 6	// Open a source SVG document 
 7	using (var document = new SVGDocument(Path.Combine(DataDir, "light.svg")))
 8	{
 9	    // Initialize an instance of the ImageRenderingOptions class 
10		var pngOptions = new ImageRenderingOptions();
11
12		// Initialize an instance of ImageDevice and specify the output file to render
13	    using (var device = new ImageDevice(pngOptions, Path.Combine(OutputDir, "light_out.png")))
14	    {
15	        // Render SVG to PNG
16			document.RenderTo(device);
17		}
18	}

Конструктор 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.