SVG(可縮放矢量圖形)是一種基於 XML 的矢量圖像格式,用於定義具有動畫支持的二維圖形。由於像素密度高,這些圖像主要用於網絡。另一方面,與具有相同尺寸的 PNG 圖像相比,豐富的特徵也增強了 SVG 圖像的尺寸。這種差異讓開發人員考慮將圖像從一種格式轉換為另一種格式。本文討論如何在 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 中的示例。如有任何疑問,請通過 論壇 聯繫我們。