Конвертируйте SVG в PNG, JPG, BMP, TIFF и GIF с помощью C#.

В этой статье вы найдете информацию о том, как конвертировать SVG в такие форматы файлов изображений, как JPG, PNG, BMP, TIFF. и GIF. Конвертация файлов изображений необходима для разработки веб-сайтов, работы графических дизайнеров, фотографии и других целей. Выбор формата изображения зависит от того, распечатаете ли вы его на полиграфии, отправите по электронной почте или разместите изображение на веб-странице.

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

Онлайн Конвертер SVG

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

                
            

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

Конвертировать SVG в JPG

JPG – один из наиболее часто используемых форматов изображений. Его уникальность – контролируемая потеря качества при сжатии. Поэтому он широко используется для хранения и отправки графического цифрового контента (фотографии, сканированные копии, оцифрованные изображения). С помощью Aspose.SVG вы можете программно конвертировать SVG в формат JPG, SVG в PNG, SVG в BMP, SVG в GIF или SVG в TIFF с полным контролем над широким диапазоном параметров преобразования.

Использование метода ConvertSVG()

Использование методов ConvertSVG() – наиболее распространенный способ конвертировать SVG в различные популярные форматы. Следующий фрагмент кода показывает, как преобразовать SVG в JPG:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Saving;
 4using Aspose.Svg.Converters;
 5using Aspose.Svg.Rendering.Image;
 6...
 7
 8	// Initialize an SVG document from a file
 9    using (var document = new SVGDocument(Path.Combine(DataDir, "owl-edited.svg")))
10    {
11        // Initialize ImageSaveOptions
12        var saveOptions = new ImageSaveOptions(ImageFormat.Jpeg);
13
14        // Convert SVG to JPG
15        Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "owl-edited.jpg"));
16    }

На рисунке показан файл owl-edited.jpg.

Text «Файл owl-edited.svg, преобразованный в JPG»

В статье Навигация и проверка SVG вы можете увидеть примеры C# того, как исходный файл owl.svg был отредактирован с помощью селектора CSS.

Использование метода RenderTo()

Рассмотрим, как преобразовать документ из SVG в JPG с помощью метода RenderTo():

В следующем примере показано, как применить свойства Format и SmoothingMode для конвертации SVG в JPG:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Rendering;
 4using Aspose.Svg.Rendering.Image;
 5using System.Drawing.Drawing2D;
 6...
 7
 8    // Initialize an SVG document from a file
 9    using (var document = new SVGDocument(Path.Combine(DataDir, "owl.svg")))
10    {
11        // Set Format and SmoothingMode for jpgOptions1
12        var jpegOptions1 = new ImageRenderingOptions(ImageFormat.Jpeg);
13        jpegOptions1.SmoothingMode = SmoothingMode.AntiAlias;
14
15        // Set Format and SmoothingMode for jpgOptions2
16        var jpegOptions2 = new ImageRenderingOptions(ImageFormat.Jpeg);
17        jpegOptions2.SmoothingMode = SmoothingMode.Default;
18
19        // Initialize an instance of the ImageDevice class and specify the output file to render
20        using (IDevice device = new ImageDevice(jpegOptions1, Path.Combine(OutputDir, "owl_out1.jpg")))
21        {
22            // Render SVG to JPG
23            document.RenderTo(device);
24        }
25        using (IDevice device = new ImageDevice(jpegOptions2, Path.Combine(OutputDir, "owl_out2.jpg")))
26        {
27            document.RenderTo(device);
28        }
29    }

Конструктор ImageRenderingOptions() инициализирует экземпляр класса ImageRenderingOptions, который передается конструктору ImageDevice(). Конструктор ImageDevice(options, file) принимает options, file и создает экземпляр класса ImageDevice. Метод RenderTo(device) принимает экземпляр класса ImageDevice и преобразует SVG в JPG. Класс ImageRenderingOptions предоставляет множество свойств, которые дают вам полный контроль над широким диапазоном параметров и улучшают процесс конвертации SVG в формат JPG. Свойство Format задает формат изображения. По умолчанию формат конвертации – Png. Чтобы преобразовать SVG в JPG, вам необходимо использовать ImageFormat.Jpeg.

Text “Фрагменты полученных изображений”

В приведенном выше примере мы конвертируем файл SVG owl.svg в JPG с различными значениями SmoothingMode. На рисунке показаны фрагменты увеличенных (250%) изображений JPG: а) Значение SmoothingMode – AntiAlias; b) Значение SmoothingMode – по умолчанию.

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

Параметры сохранения

Aspose.SVG позволяет конвертировать SVG в форматы файлов изображений, используя параметры сохранения по умолчанию или пользовательские. Использование ImageSaveOptions позволяет настроить процесс рендеринга. Например, вы можете указать формат изображения, размер страницы, поля, цвет фона и т. д.

PropertyDescription
CompressionSets Tagged Image File Format (TIFF) Compression. By default, this property is LZW.
CSSGets a CssOptions object which is used for configuration of CSS properties processing.
FormatSets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG.
BackgroundColorThis property sets the color that will fill the background. By default, this property is Transparent.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
SmoothingModeThis property sets the rendering quality for this image. Available values are Invalid, Default, HighSpeed, HighQuality, None, and AntiAlias.
TextGets a TextOptions object which is used for configuration of text rendering.

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

Конвертировать SVG в PNG

Формат PNG использует алгоритм сжатия без потерь для хранения растровых изображений. Он поддерживает только цветовую модель RGB и не предназначен для печати изображений. PNG широко используется для передачи изображений по сети и отображения фотографий и графики на веб-страницах и в облачных хранилищах.

Использование метода ConvertSVG()

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

В следующем примере показано, как использовать ImageSaveOptions и преобразовать SVG в PNG с настраиваемыми параметрами сохранения:

 1using Aspose.Svg;
 2using System.IO;
 3using System.Drawing;
 4using Aspose.Svg.Saving;
 5using Aspose.Svg.Converters;
 6...
 7
 8    // Prepare SVG code and save it to a file
 9    var code = "<svg xmlns='https://www.w3.org/2000/svg'>" +
10               "<circle cx='100' cy='150' r='50' stroke='#2F4F4F' stroke-width='4' fill='#FF7F50' />" +
11               "<circle cx='180' cy='200' r='60' stroke='#2F4F4F' stroke-width='4' fill='#008B8B' />" +
12               "</svg>";
13    File.WriteAllText("example.svg", code);
14
15    // Initialize an SVG document from the file
16    using (var document = new SVGDocument("example.svg"))
17    {
18        // Initialize an instance of the ImageSaveOptions class and set the BackgroundColor property
19        var saveOptions = new ImageSaveOptions();
20        saveOptions.BackgroundColor = Color.Gainsboro;
21
22        // Convert SVG to PNG
23        Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "output.png"));
24    }

В этом примере конструктор ImageSaveOptions() инициализирует экземпляр класса ImageSaveOptions, который передается методу ConvertSVG(). Метод ConvertSVG() принимает document, saveOptions, путь к выходному файлу и выполняет преобразование SVG в PNG.

Примечание. Мы не указываем свойство Format для конвертации в PNG. Конструктор ImageSaveOptions() принимает Png в качестве формата изображения по умолчанию.

Использование метода RenderTo()

Давайте рассмотрим, как конвертировать SVG в PNG с помощью метода RenderTo():

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Rendering;
 4using Aspose.Svg.Rendering.Image;
 5...
 6
 7	// Prepare a path to a source SVG file
 8	string documentPath = Path.Combine(DataDir, "snowflake.svg");
 9
10    // Initialize an SVG document from a file
11    using (var document = new SVGDocument(documentPath))
12    {
13        // Create the ImageDevice, set image Format and specify output file to render
14        using (IDevice device = new ImageDevice(new ImageRenderingOptions(), Path.Combine(OutputDir, "snowflake_out.png")))
15        {
16            // Render SVG to PNG
17            document.RenderTo(device);
18        }
19    }

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

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

Text «Файл snowflake.svg, преобразованный в PNG»

Конвертировать SVG в BMP

Файлы изображений BMP сохраняют качество изображения и сохраняют данные о цвете для каждого пикселя без какого-либо сжатия, но большие размеры файлов делают их непригодными для использования в Интернете. Этот формат также не подходит для допечатной подготовки, поскольку он ограничен RGB.

Aspose.SVG API может конвертировать документ из формата сохранения SVG в BMP в несколько этапов:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Rendering;
 4using Aspose.Svg.Rendering.Image;
 5...
 6
 7    // Open a source SVG document
 8     using (var document = new SVGDocument(Path.Combine(DataDir, "conclusion.svg")))
 9    {
10       // Create ImageDevice, set image Format and specify the output file to render
11       using (IDevice device = new ImageDevice(new ImageRenderingOptions(ImageFormat.Bmp), Path.Combine(OutputDir, "conclusion_out.bmp")))
12       {
13           // Render SVG to BMP
14    	   document.RenderTo(device);
15       }
16    }

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

Конвертировать SVG в TIFF

TIFF – формат хранения растровых графических изображений с широкой палитрой цветов. TIFF поддерживается приложениями сканирования, отправки факсов, обработки текста, оптического распознавания символов, обработки изображений и верстки страниц. Широко используется для полиграфии и журнальной офсетной печати.

Aspose.SVG API может конвертировать документ из формата сохранения SVG в TIFF в несколько этапов:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Rendering;
 4using Aspose.Svg.Rendering.Image;
 5...
 6
 7    // Open a source SVG document
 8    using (var document = new SVGDocument(Path.Combine(DataDir, "conclusion.svg")))
 9    {
10        // Initialize an instance of the ImageRenderingOptions class and set Format and Compression properties
11        var tiffOptions = new ImageRenderingOptions(ImageFormat.Tiff);
12        tiffOptions.Compression = Compression.None;
13
14        // Initialize an instance of the ImageDevice class and specify the output file to render
15        using (IDevice device = new ImageDevice(tiffOptions, Path.Combine(OutputDir, "conclusion.tiff")))
16        {
17            // Render SVG to TIFF
18            document.RenderTo(device);
19        }
20    }

Класс ImageRenderingOptions предоставляет множество свойств, которые дают вам полный контроль над широким диапазоном параметров и улучшают процесс конвертации SVG в формат TIFF. Например, свойство Compression позволяет установить сжатие для формата файла TIFF. В приведенном выше примере мы указали Compression.None.

Конвертировать SVG в GIF

GIF – популярный формат изображений, который поддерживает анимированные изображения и часто используется при веб-публикациях. В следующем фрагменте кода показано, как преобразовать SVG в GIF с помощью Aspose.SVG для .NET API:

В следующем примере показано, как использовать ImageSaveOptions и создать выходное изображение с пользовательскими характеристиками PageSetup:

 1using Aspose.Svg;
 2using System.IO;
 3using Aspose.Svg.Drawing;
 4using Aspose.Svg.Saving;
 5using Aspose.Svg.Converters;
 6using Aspose.Svg.Rendering.Image;
 7...
 8    
 9    // Initialize an SVG document from a file
10    using (var document = new SVGDocument(Path.Combine(DataDir, "owl.svg")))
11    {
12        // Initialize an instance of the ImageSaveOptions class and set PageSetup property
13        var saveOptions = new ImageSaveOptions(ImageFormat.Gif);
14        saveOptions.PageSetup.AnyPage = new Page(new Drawing.Size(400, 600), new Margin(20, 20, 20, 20));
15        
16        // Convert SVG to GIF
17        Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "owl.gif"));
18    }

Вы можете попробовать наш бесплатный онлайн-конвертер SVG в JPG Converter, который работает качественно, легко и быстро. Просто загрузите, конвертируйте файлы и получите результаты через несколько секунд!

Text «Баннер для Конвертера SVG в JPG»

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.