SVG (Scalable Vector Graphics) — это формат векторного изображения на основе XML для определения двумерной графики с поддержкой анимации. Эти изображения в основном используются в Интернете из-за высокой плотности пикселей. С другой стороны, богатые функции также увеличивают размер изображений SVG по сравнению с изображением PNG того же размера. Такие различия позволяют разработчикам задуматься о конвертации изображений из одного формата в другой. В этой статье обсуждается, как преобразовать векторы SVG в изображения PNG в Java.

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

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

GroupDocs.Conversion демонстрирует документ и API преобразования изображений для разработчиков Java. Он поддерживает большой список форматов изображений для преобразования из одного формата в другой. Кроме того, результаты преобразования также можно настроить с помощью доступных дополнительных параметров. Я буду использовать этот API GroupDocs.Conversion for Java для преобразования векторной графики SVG в формат изображения PNG.

Скачать или настроить

Вы можете загрузить JAR-файл из раздела загрузок или просто получить репозиторий и конфигурации зависимостей для pom.xml ваших Java-приложений на основе maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-conversion</artifactId>
        <version>22.3</version> 
</dependency>

Преобразование SVG в изображение PNG в Java

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

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

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

// Как преобразовать файл SVG в формат PNG в Java, используя параметры по умолчанию
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png);

converter.convert("path/svg-to-png.png", options);

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

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

Вариант настройки Метод
Яркость setBrightness(int value)
Контраст setContrast(int value)
Режим переворота (горизонтальный/вертикальный) setFlipMode(ImageFlipModes value)
Гамма setGamma(float value)
Оттенки серого setGrayscale(boolean value)
Высота setHeight(int value)
Углы поворота setRotateAngle(int value)
Водяной знак setWatermark(WatermarkTextOptions value)
Ширина setWidth(int value)

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

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

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

// Преобразуйте файл SVG в формат PNG в Java, используя различные настройки
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png); // Set output format as PNG

options.setFlipMode(ImageFlipModes.FlipY); // Flip Vertically or Horizontally
options.setBrightness(50);  // Set Brightness
options.setContrast(50);    // Set Contrast
options.setGamma(0.5F);     // Set Gamma
options.setGrayscale(true);	// Set Grayscale
options.setRotateAngle(45);	// Set Rotation

// Добавить водяной знак в PNG при преобразовании из формата SVG
WatermarkTextOptions watermark = new WatermarkTextOptions("Watermark");
watermark.setColor(Color.BLUE);
watermark.setBackground(false);
watermark.setRotationAngle(-45);
watermark.setTop(50);
watermark.setLeft(50);
watermark.setTransparency(0.2);
watermark.setWidth(450);
watermark.setHeight(450);
options.setWatermark(watermark);

converter.convert("path/svg-to-png-customized.png", options);

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

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

Вывод

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

Вы можете попробовать создать собственное Java-приложение для преобразования изображений. Вы можете узнать больше об API из документации для автоматизации преобразования документов и изображений.

Самый простой способ — изучить примеры из GitHub. Свяжитесь с нами по любому вопросу через форум.

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