SVG (Scalable Vector Graphics) ist ein XML-basiertes Vektorbildformat zum Definieren zweidimensionaler Grafiken mit Animationsunterstützung. Diese Bilder werden aufgrund der hohen Pixeldichte hauptsächlich im Web verwendet. Andererseits erhöhen die umfangreichen Funktionen auch die Größe von SVG-Bildern im Vergleich zu PNG-Bildern mit denselben Abmessungen. Solche Unterschiede lassen Entwickler darüber nachdenken, Bilder von einem Format in ein anderes zu konvertieren. Dieser Artikel beschreibt, wie man SVG-Vektoren in Java in PNG-Bilder umwandelt.

Konvertieren Sie SVG in PNG in Java (Graustufen, Drehen, Spiegeln, Hell, Wasserzeichen)

Java-API zum Konvertieren von Bildern

GroupDocs.Conversion präsentiert Dokument- und Bildkonvertierungs-API für Java-Entwickler. Es unterstützt eine große Liste von Bildformaten für die Konvertierung von einem Format in ein anderes. Darüber hinaus können die Konvertierungsergebnisse auch mithilfe der verfügbaren erweiterten Optionen angepasst werden. Ich werde diese API, GroupDocs.Conversion for Java verwenden, um die SVG-Vektorgrafiken in das PNG-Bildformat zu konvertieren.

Herunterladen oder konfigurieren

Sie können die JAR-Datei aus dem Download-Bereich herunterladen oder einfach die Repository- und Abhängigkeitskonfigurationen für die pox.xml Ihrer Maven-basierten Java-Anwendungen abrufen.

<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>

Konvertieren Sie SVG in ein PNG-Bild in Java

Beginnen wir ohne Zeitverlust mit der grundlegenden Konvertierung mit der Standardkonfiguration. Die folgenden Schritte zeigen, wie Sie die SVG-Vektorgrafikdatei in ein PNG-Bild in Java konvertieren.

  • Laden Sie die PNG-Grafik mit der Klasse Converter.
  • Bereiten Sie die Bildkonvertierungsoptionen vor.
  • Legen Sie den Konvertierungsdateityp als PNG fest.
  • Rufen Sie die Methode convert() auf, um die geladene SVG-Datei in ein PNG-Bild zu konvertieren.

Der folgende Java-Quellcode wandelt das SVG in ein PNG-Bild um.

// So konvertieren Sie eine SVG-Datei in das PNG-Format in Java mit Standardoptionen
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 zu PNG-Bild mit erweiterten Optionen in Java

Viele Anpassungsoptionen können beim Konvertieren von SVG auf die PNG-Ausgabe angewendet werden, um das gewünschte Ergebnis zu erzielen. Im Folgenden sind einige der Eigenschaften aufgeführt, die bei der Umwandlung von SVG in PNG angepasst werden können:

Anpassungsoption Methode
Helligkeit setBrightness(int value)
Kontrast setContrast(int value)
Flip-Modus (horizontal / vertikal) setFlipMode(ImageFlipModes value)
Gamma setGamma(float value)
Grayscale setGrayscale(boolean value)
Höhe setHeight(int value)
Rotationswinkel setRotateAngle(int value)
Watermark setWatermark(WatermarkTextOptions value)
Width setWidth(int value)

Die folgenden Schritte zeigen, wie Variationen beim Konvertieren einer SVG-Grafik in ein PNG-Bild in Java angewendet werden.

  • Laden Sie die SVG-Grafik mit der Klasse Converter.
  • Bereiten Sie die Bildkonvertierungsoptionen vor.
  • Legen Sie den Konvertierungsdateityp als PNG fest.
  • Legen Sie andere relevante Eigenschaften mit den entsprechenden Setter-Methoden fest und passen Sie deren Werte entsprechend an.
  • Konvertieren in ein PNG-Bild mit der convert()-Methode mit vorbereiteten Optionen.

Sie können jeden dieser Effekte oder eine Kombination davon anwenden, um die erforderliche PNG-Ausgabe zu erhalten. Der folgende Quellcode wendet die Anpassung auf das PNG-Bild an, während die SVG-zu-PNG-Konvertierung in Java erfolgt.

// Konvertieren Sie die SVG-Datei in das PNG-Format in Java mit verschiedenen Anpassungen
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

// Fügen Sie Wasserzeichen zu PNG hinzu, wenn Sie aus dem SVG-Format konvertieren
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);

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Zusammenfassend haben wir gelernt, SVG-Dateien innerhalb der Java-Anwendungen in das PNG-Format zu konvertieren. Wir haben außerdem gelernt, wie wir PNG-Dateien drehen, spiegeln oder mit Wasserzeichen versehen können, wenn sie aus dem SVG-Format konvertiert werden. Darüber hinaus haben wir besprochen, wie Sie die Helligkeits-, Gamma- und Graustufenoptionen anpassen können.

Sie können versuchen, Ihre eigene Java-Anwendung zur Bildkonvertierung zu erstellen. Weitere Informationen zu den APIs finden Sie in der Dokumentation für die Automatisierung von Dokumenten- und Bildkonvertierungen.

Am einfachsten ist es, die Beispiele von GitHub zu erleben. Kontaktieren Sie uns bei Fragen über das Forum.

Siehe auch