SVG (Gráficos vectoriales escalables) es un formato de imagen vectorial basado en XML para definir gráficos bidimensionales con soporte de animación. Estas imágenes se utilizan principalmente en la web debido a la alta densidad de píxeles. Por otro lado, las características ricas también mejoran el tamaño de las imágenes SVG en comparación con la imagen PNG que tiene la misma dimensión. Tales diferencias permiten a los desarrolladores pensar en convertir imágenes de un formato a otro. Este artículo analiza cómo convertir vectores SVG a imágenes PNG en Java.

Convierta SVG a PNG en Java (escala de grises, rotar, voltear, brillante, marca de agua)

API de Java para convertir imágenes

GroupDocs.Conversion muestra documentos y API de conversión de imágenes para desarrolladores de Java. Admite una gran lista de formatos de imágenes para la conversión de un formato a otro. Además, los resultados de la conversión también se pueden personalizar utilizando las opciones avanzadas disponibles. Usaré esta API, GroupDocs.Conversion for Java para convertir los gráficos vectoriales SVG en formato de imagen PNG.

Descargar o Configurar

Puede descargar el archivo JAR de la sección de descargas, o simplemente obtener el repositorio y las configuraciones de dependencia para el pox.xml de sus aplicaciones Java basadas en 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>

Convertir imagen SVG a PNG en Java

Sin perder tiempo, comencemos con la conversión básica con la configuración predeterminada. Los siguientes pasos muestran cómo convertir el archivo de gráficos vectoriales SVG en una imagen PNG en Java.

  • Cargue el gráfico PNG usando la clase Converter.
  • Prepara las opciones de conversión de imágenes.
  • Establezca el tipo de archivo de conversión como PNG.
  • Llame al método convert() para convertir el archivo SVG cargado en una imagen PNG.

El siguiente código fuente de Java convierte el SVG en una imagen PNG.

// Cómo convertir un archivo SVG a formato PNG en Java usando las opciones predeterminadas
Converter converter = new Converter("path/vector-graphics.svg");

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

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

Imagen SVG a PNG usando Opciones Avanzadas en Java

Se pueden aplicar muchas opciones de personalización a la salida PNG durante la conversión de SVG para obtener el resultado deseado. Las siguientes son algunas de las propiedades que se pueden ajustar durante la conversión de SVG a PNG:

Opción de personalización Método
Brillo setBrightness(int value)
Contraste setContrast(int value)
Modo de volteo (Horizontal / Vertical) setFlipMode(ImageFlipModes value)
Gamma setGamma(float value)
Escala de grises setGrayscale(boolean value)
Altura setHeight(int value)
Ángulos de rotación setRotateAngle(int value)
Marca de agua setWatermark(WatermarkTextOptions value)
Ancho setWidth(int value)

Los siguientes pasos muestran cómo aplicar variaciones al convertir un gráfico SVG en una imagen PNG en Java.

  • Cargue el gráfico SVG usando la clase Converter.
  • Prepara las opciones de conversión de imágenes.
  • Establezca el tipo de archivo de conversión como PNG.
  • Establezca otras propiedades relevantes utilizando los métodos de establecimiento respectivos y ajuste sus valores en consecuencia.
  • Convierta a imagen PNG usando el método convert() con opciones preparadas.

Puede aplicar cualquiera de estos efectos o combinarlos para obtener la salida PNG requerida. El siguiente código fuente aplica la personalización a la imagen PNG durante la conversión de SVG a PNG en Java.

// Convierta un archivo SVG a formato PNG en Java usando varias personalizaciones
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

// Agregar marca de agua a PNG cuando se convierte desde formato 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);

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar la API sin las limitaciones de evaluación.

Conclusión

En resumen, aprendimos a convertir archivos SVG a formato PNG dentro de las aplicaciones Java. Más adelante aprendimos cómo podemos rotar, voltear o marcar con agua los archivos PNG cuando se convierten del formato SVG. Además, discutimos cómo ajustar las opciones de brillo, gamma y escala de grises.

Puede intentar crear su propia aplicación Java de conversión de imágenes. Puede obtener más información sobre las API en la documentación para la automatización de conversiones de documentos e imágenes.

La forma más fácil es experimentar los ejemplos de GitHub. Contacta con nosotros para cualquier consulta a través del foro.

Ver también