Всякий раз, когда требуется прозрачность изображений в Интернете, одним из форматов, которые приходят на ум, является PNG. Изображение SVG также является одним из наиболее часто используемых форматов изображений из-за его масштабируемости. Для отображения небольших статических изображений, логотипов и изображений с прозрачным фоном часто предпочтительны изображения PNG. Из-за совместимости или по любой другой причине часто требуется конвертировать векторную графику SVG в другие форматы. В этой статье обсуждается, как преобразовать векторную графику SVG в изображения PNG с помощью C#.

Преобразование SVG в PNG с помощью C# (оттенки серого, поворот, отражение, яркий водяной знак)

.NET API для преобразования изображений

GroupDocs позволяет разработчикам с помощью Conversion API преобразовывать форматы изображений в различные другие форматы. Преобразованное изображение также можно изменить в процессе преобразования, используя различные дополнительные параметры. В этой статье я буду использовать его GroupDocs.Conversion for .NET для преобразования векторного изображения SVG в изображения PNG.

Вы можете загрузить DLL или установщик MSI из раздела загрузок или установить API, добавив его пакет в свое приложение .NET через NuGet.

PM> Install-Package GroupDocs.Conversion

Запущенные примеры его функций также доступны на GitHub. Посетите документацию и справочник по API для получения рекомендаций.

Преобразование SVG в PNG-изображение с помощью C#

Начнем с преобразования векторной графики в формат PNG с настройками по умолчанию. Следующие шаги показывают, как преобразовать изображение SVG в PNG с помощью C#.

  • Загрузите файл SVG, используя класс Converter.
  • Подготовьте параметры преобразования изображения.
  • Установите тип файла преобразования как PNG.
  • Вызвать метод Convert() с подготовленными параметрами.

Следующий исходный код C# преобразует SVG в изображение PNG.

// Как преобразовать файл SVG в формат PNG на C# с помощью .NET Conversion API с параметрами по умолчанию
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png
    };
    converter.Convert("path/svg-to-png.png", options);
}

Изображение SVG в PNG с использованием дополнительных параметров с использованием C#

Различные настройки могут быть применены к выводу PNG при преобразовании векторной графики. Вот некоторые функции изображения PNG, которые мы можем настроить:

  • Яркость
  • Контраст
  • Гамма
  • Оттенки серого
  • Режим переворота (горизонтальный/вертикальный)
  • Углы поворота
  • Высота
  • Ширина
  • Водяной знак

Следующие шаги показывают, как преобразовать изображение SVG в PNG и применить дополнительные настройки к полученному файлу PNG.

  • Загрузите графику SVG, используя класс Converter.
  • Подготовьте параметры преобразования изображения.
  • Установите тип файла преобразования как PNG.
  • Определите выборочные настройки и настройте их значения.
  • Преобразование в изображение PNG с помощью метода Convert() с готовыми параметрами.

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

// Преобразование файла SVG в формат PNG на C# с использованием различных настроек
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png,
        FlipMode = ImageFlipModes.FlipY,
        RotateAngle = 45, 
        Grayscale = true
        /*
        Brightness = 50,
        Contrast = 50,
        Gamma = 0.5F,
        */
    };
    // Применение водяного знака на преобразованном изображении
    WatermarkOptions watermark = new WatermarkTextOptions("Watermark")
    {
        Color = Color.Blue,
        Width = 150,
        Height = 150,
        Background = false,
        Top = 50,
        Left = 50,
        RotationAngle = -45,
        Transparency = 50,
    };
    options.Watermark = watermark;
    
    converter.Convert("path/svg-to-png-customized.png", options);
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования API без ограничений пробной версии.

Вывод

Подведем итог. Мы изучили основы и немного продвинутое преобразование векторной графики SVG в формат PNG с помощью C# в приложениях .NET. Далее мы узнали, как поворачивать, переворачивать или добавлять водяной знак в файлы SVG при преобразовании в формат PNG. Кроме того, мы научились настраивать гамму и яркость, а также включать и выключать параметры оттенков серого.

Попробуйте запустить примеры из GitHub, которые помогут вам создать собственный конвертер SVG в PNG, подобный тому, который доступен на groupdocs.app. Свяжитесь с нами по любому вопросу через форум.

Смотрите также