SVG (Scalable Vector Graphics) est un format d’image vectorielle basé sur XML permettant de définir des graphiques bidimensionnels avec prise en charge de l’animation. Ces images sont principalement utilisées sur le Web en raison de la forte densité de pixels. D’autre part, les fonctionnalités riches améliorent également la taille des images SVG par rapport à l’image PNG ayant la même dimension. De telles différences permettent aux développeurs de penser à convertir des images d’un format à un autre. Cet article explique comment convertir des vecteurs SVG en images PNG en Java.

Convertir SVG en PNG en Java (niveaux de gris, rotation, retournement, luminosité, filigrane)

API Java pour convertir des images

GroupDocs.Conversion présente l’API de conversion de documents et d’images pour les développeurs Java. Il prend en charge une grande liste de formats d’images pour la conversion d’un format à un autre. De plus, les résultats de la conversion peuvent également être personnalisés à l’aide des options avancées disponibles. J’utiliserai cette API, GroupDocs.Conversion for Java pour convertir les graphiques vectoriels SVG au format d’image PNG.

Télécharger ou configurer

Vous pouvez télécharger le fichier JAR à partir de la section des téléchargements, ou simplement obtenir les configurations du référentiel et des dépendances pour le pom.xml de vos applications Java basées sur 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 une image SVG en PNG en Java

Sans perdre de temps, commençons par la conversion de base avec la configuration par défaut. Les étapes suivantes montrent comment convertir le fichier graphique vectoriel SVG en image PNG en Java.

  • Chargez le graphique PNG à l’aide de la classe Converter.
  • Préparez les options de conversion d’image.
  • Définissez le type de fichier de conversion sur PNG.
  • Appelez la méthode convert() pour convertir le fichier SVG chargé en image PNG.

Le code source Java suivant convertit le SVG en une image PNG.

// Comment convertir un fichier SVG au format PNG en Java en utilisant les options par défaut
Converter converter = new Converter("path/vector-graphics.svg");

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

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

Image SVG vers PNG à l’aide des options avancées de Java

De nombreuses options de personnalisation peuvent être appliquées à la sortie PNG lors de la conversion à partir de SVG pour obtenir le résultat souhaité. Voici quelques-unes des propriétés qui peuvent être ajustées lors de la conversion SVG en PNG :

Option de personnalisation Méthode
Luminosité setBrightness(int value)
Contraste setContrast(int value)
Flip Mode (Horizontal / Vertical) setFlipMode(ImageFlipModes value)
Gamma setGamma(float value)
Grayscale setGrayscale(boolean value)
Hauteur setHeight(int value)
Angles de rotation setRotateAngle(int value)
Filigrane setWatermark(WatermarkTextOptions value)
Largeur setWidth(int value)

Les étapes suivantes montrent comment appliquer des variantes lors de la conversion d’un graphique SVG en image PNG en Java.

  • Chargez le graphique SVG à l’aide de la classe Converter.
  • Préparez les options de conversion d’image.
  • Définissez le type de fichier de conversion sur PNG.
  • Définissez d’autres propriétés pertinentes à l’aide des méthodes de configuration respectives et ajustez leurs valeurs en conséquence.
  • Convertir en image PNG en utilisant la méthode convert() avec les options préparées.

Vous pouvez appliquer n’importe lequel de ces effets ou les combiner pour obtenir la sortie PNG requise. Le code source suivant applique la personnalisation à l’image PNG lors de la conversion SVG en PNG en Java.

// Convertir le fichier SVG au format PNG en Java en utilisant diverses personnalisations
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

// Ajouter un filigrane au PNG lors de la conversion à partir du format 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);

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser l’API sans les limitations d’évaluation.

Conclusion

Pour résumer, nous avons appris à convertir des fichiers SVG au format PNG dans les applications Java. Nous avons ensuite appris comment faire pivoter, retourner ou filigraner les fichiers PNG lorsqu’ils sont convertis à partir du format SVG. De plus, nous avons discuté de la façon de régler les options de luminosité, de gamma et de niveaux de gris.

Vous pouvez essayer de créer votre propre application Java de conversion d’image. Vous pouvez en savoir plus sur les API de la documentation pour l’automatisation des conversions de documents et d’images.

Le moyen le plus simple est de découvrir les exemples de GitHub. Contactez-nous pour toute question via le forum.

Voir également