Конвертируйте 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:
- Откройте исходный документ SVG ( owl-edited.svg).
- Создайте экземпляр класса ImageSaveOptions.
- Используйте метод ConvertSVG(), чтобы конвертировать и сохранить 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.
В статье Навигация и проверка SVG вы можете увидеть примеры C# того, как исходный файл owl.svg был отредактирован с помощью селектора CSS.
Использование метода RenderTo()
Рассмотрим, как преобразовать документ из SVG в JPG с помощью метода RenderTo():
- Откройте исходный документ SVG ( owl.svg).
- Используйте конструктор ImageRenderingOptions() и укажите параметры рендеринга документа.
- Создайте новый экземпляр класса ImageDevice – устройство вывода.
- Конвертируйте документ c помощью метода 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.
В приведенном выше примере мы конвертируем файл SVG owl.svg в JPG с различными значениями SmoothingMode. На рисунке показаны фрагменты увеличенных (250%) изображений JPG: а) Значение SmoothingMode – AntiAlias; b) Значение SmoothingMode – по умолчанию.
Вы можете загрузить полные примеры и файлы данных с GitHub. О загрузке с GitHub и запуске примеров вы узнаете из раздела Как запускать примеры.
Параметры сохранения
Aspose.SVG позволяет конвертировать SVG в форматы файлов изображений, используя параметры сохранения по умолчанию или пользовательские. Использование ImageSaveOptions позволяет настроить процесс рендеринга. Например, вы можете указать формат изображения, размер страницы, поля, цвет фона и т. д.
Property | Description |
---|---|
Compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
CSS | Gets a CssOptions object which is used for configuration of CSS properties processing. |
Format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
BackgroundColor | This property sets the color that will fill the background. By default, this property is Transparent. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
SmoothingMode | This property sets the rendering quality for this image. Available values are Invalid, Default, HighSpeed, HighQuality, None, and AntiAlias. |
Text | Gets a TextOptions object which is used for configuration of text rendering. |
Примечание. Параметры, реализуемые с помощью класса ImageSaveOptions, наследуются от класса ImageRenderingOptions.
Конвертировать SVG в PNG
Формат PNG использует алгоритм сжатия без потерь для хранения растровых изображений. Он поддерживает только цветовую модель RGB и не предназначен для печати изображений. PNG широко используется для передачи изображений по сети и отображения фотографий и графики на веб-страницах и в облачных хранилищах.
Использование метода ConvertSVG()
В следующем фрагменте кода показано, как подготовить файл SVG с нуля и преобразовать его в PNG:
- Подготовьте код SVG и сохраните его в файл.
- Создайте экземпляр класса ImageSaveOptions.
- Используйте метод 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='http://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():
- Инициализируйте документ, используя один из конструкторов SVGDocument() ( snowflake.svg).
- Создайте экземпляр класса ImageRenderingOptions.
- Создайте новый экземпляр класса ImageDevice.
- Конвертируйте SVG в PNG с помощью метода
RenderTo(
device
).
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.
Конвертировать SVG в BMP
Файлы изображений BMP сохраняют качество изображения и сохраняют данные о цвете для каждого пикселя без какого-либо сжатия, но большие размеры файлов делают их непригодными для использования в Интернете. Этот формат также не подходит для допечатной подготовки, поскольку он ограничен RGB.
Aspose.SVG API может конвертировать документ из формата сохранения SVG в BMP в несколько этапов:
- Откройте исходный документ SVG ( conclusion.svg).
- Используйте конструктор ImageRenderingOptions() и укажите свойство Format документа.
- Создайте новый экземпляр класса ImageDevice.
- Конвертируйте документ методом RenderTo().
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 в несколько этапов:
- Откройте исходный документ SVG ( conclusion.svg).
- Используйте конструктор ImageRenderingOptions() и укажите Format и другие свойства документа.
- Создайте новый экземпляр класса ImageDevice.
- Конвертируйте документ с помощью метода RenderTo().
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:
- Откройте исходный документ SVG ( owl.svg).
- Создайте экземпляр класса ImageSaveOptions и укажите Format и другие параметры сохранения.
- Используйте метод ConvertSVG(), чтобы сохранить SVG в виде файла GIF.
В следующем примере показано, как использовать 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, который работает качественно, легко и быстро. Просто загрузите, конвертируйте файлы и получите результаты через несколько секунд!