Как конвертировать файлы 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:
- Класс static Converter представляет собой общий фасад, который обеспечивает преобразование файлов SVG в популярные форматы и позволяет сделать эти операции удобными и простыми. Широкий спектр методов ConvertSVG() принимает в качестве аргументов исходный документ, параметры сохранения, путь к выходному файлу и конвертирует SVG в файлы PDF, XPS или изображения.
- Метод RenderTo() класса SVGDocument используется для рендеринга SVG в другой формат и отправки документа на устройство вывода. API Aspose.SVG предоставляет следующую реализацию устройств вывода: классы PdfDevice, XpsDevice и ImageDevice, которые выполняют рендеринг в форматы файлов PDF, XPS и Image соответственно.
- Метод Render(
IDevice, TDocument
) класса Renderer дает вам возможность отправлять несколько документов одновременно на выходное устройство рендеринга и объединять их. Дополнительную информацию см. в статье Как объединить документы SVG.
Рассмотрим оба сценария преобразования SVG-документа в другой формат файла, например, SVG в PNG:
Вы можете загрузить полные примеры и файлы данных с GitHub. О загрузке с GitHub и запуске примеров вы узнаете из раздела Как запускать примеры.
Преобразование SVG в PNG с помощью метода ConvertSVG()
Преобразование файла в другой формат методом ConvertSVG() представляет собой последовательность операций, среди которых загрузка и сохранение документа:
- Загрузите документ SVG, используя один из конструкторов SVGDocument() ( svg-to-png.svg).
- Создайте экземпляр класса ImageSaveOptions.
- Используйте один из методов ConvertSVG(), чтобы сохранить SVG как файл PNG.
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.
Преобразование SVG в PNG с помощью метода RenderTo()
Чтобы преобразовать SVG в PNG с помощью метода RenderTo(), выполните следующие шаги:
- Инициализируйте документ, используя один из конструкторов SVGDocument() ( light.svg).
- Создайте экземпляр класса ImageRenderingOptions.
- Создайте новый экземпляр класса ImageDevice.
- Конвертируйте документ методом
RenderTo(
device
).
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.
Общие настройки
Вы можете настроить процесс рендеринга, указав размер страницы, поля, цвет фона и т. д. Для конвертации 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. Просто выберите файл, выберите формат для конвертации, и все готово. Это быстро и совершенно бесплатно!