SVG(可縮放矢量圖形)是一種基於 XML 的矢量圖像格式,用於定義具有動畫支持的二維圖形。由於像素密度高,這些圖像主要用於網絡。另一方面,與具有相同尺寸的 PNG 圖像相比,豐富的特徵也增強了 SVG 圖像的尺寸。這種差異讓開發人員考慮將圖像從一種格式轉換為另一種格式。本文討論如何在 Java 中將 SVG 矢量轉換為 PNG 圖像。

在 Java 中將 SVG 轉換為 PNG(灰度、旋轉、翻轉、明亮、水印)

用於轉換圖像的 Java API

GroupDocs.Conversion 展示文檔和面向 Java 開發人員的圖像轉換 API。它支持從一種格式轉換為另一種格式的大量圖像格式。此外,還可以使用可用的高級選項自定義轉換結果。我將使用此 API GroupDocs.Conversion for Java 將 SVG 矢量圖形轉換為 PNG 圖像格式。

下載或配置

您可以從 下載部分 下載 JAR 文件,或者只獲取基於 maven 的 Java 應用程序的 pom.xml 的存儲庫和依賴項配置。

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

在 Java 中將 SVG 轉換為 PNG 圖像

不浪費任何時間,讓我們從使用默認配置的基本轉換開始。以下步驟顯示瞭如何在 Java 中將 SVG 矢量圖形文件轉換為 PNG 圖像。

  • 使用 Converter 類加載 PNG 圖形。
  • 準備圖像轉換選項。
  • 將轉換文件類型設置為 PNG。
  • 調用 convert() 方法將加載的 SVG 文件轉換為 PNG 圖片。

以下 Java 源代碼將 SVG 轉換為 PNG 圖像。

// 如何使用默認選項在 Java 中將 SVG 文件轉換為 PNG 格式
Converter converter = new Converter("path/vector-graphics.svg");

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

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

使用 Java 中的高級選項將 SVG 轉為 PNG 圖像

在從 SVG 轉換以獲得所需結果時,可以將許多自定義選項應用於 PNG 輸出。以下是 SVG 到 PNG 轉換時可以調整的一些屬性:

定制選項 方法
亮度 設置亮度(整數值)
對比度 setContrast(int 值)
翻轉模式(水平/垂直) setFlipMode(ImageFlipModes 值)
Gamma setGamma(浮點值)
灰度 setGrayscale(布爾值)
高度 setHeight(整數值)
旋轉角度 setRotateAngle(int value)
水印 setWatermark(WatermarkTextOptions 值)
寬度 設置寬度(整數值)

以下步驟顯示如何在將 SVG 圖形轉換為 Java 中的 PNG 圖像時應用變體。

  • 使用 Converter 類加載 SVG 圖形。
  • 準備圖像轉換選項。
  • 將轉換文件類型設置為 PNG。
  • 使用各自的 setter 方法設置其他相關屬性,並相應地調整它們的值。
  • 使用帶有準備好的選項的 convert() 方法轉換為 PNG 圖像。

您可以應用這些效果中的任何一種或組合使用以獲得所需的 PNG 輸出。以下源代碼將自定義應用於 PNG 圖像,同時在 Java 中將 SVG 轉換為 PNG。

// 使用各種自定義將 SVG 文件轉換為 Java 中的 PNG 格式
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

// 從 SVG 格式轉換為 PNG 時添加水印
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。

結論

總而言之,我們學會了在 Java 應用程序中將 SVG 文件轉換為 PNG 格式。我們進一步學習瞭如何在從 SVG 格式轉換為 PNG 文件時旋轉、翻轉或添加水印。此外,我們還討論瞭如何調整亮度、伽瑪和灰度選項。

您可以嘗試構建自己的圖像轉換 Java 應用程序。您可以從 文檔 中了解更多有關文檔和圖像轉換自動化的 API。

最簡單的方法是體驗 GitHub 中的示例。如有任何疑問,請通過 論壇 聯繫我們。

也可以看看