SVG 圖像很突出,因為它們可以縮放並保持相同的質量,無論大小或屏幕分辨率如何。它們可以設計為任何分辨率,並且可以放大/縮小尺寸,而不會損壞質量(或像素化)。但是,由於 SVG 圖像基於點和路徑,而不是像素,因此它們無法顯示與光柵圖像一樣多的細節。所以,如果我們將 SVG 轉換為 PNG 圖像,這些問題就可以解決。
SVG 到 PNG 轉換 API
在本文中,我們將使用 Aspose.Imaging Cloud SDK for Java,它是基於 REST 的 API,提供以編程方式編輯、操作和轉換光柵、圖元文件、photoshop 為各種支持的格式 的功能].它還支持在線將 SVG 轉換為 PNG 的功能。現在,為了開始使用 SDK,我們需要在我們的 Java 項目中添加它的引用,方法是在 pom.xml(maven 構建類型項目)中包含以下信息。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-cloud</artifactId>
<version>22.4</version>
</dependency>
</dependencies>
現在為了使用 API,我們需要我們的個性化客戶端憑證。如果您已經在 Aspose Cloud Dashboard 上註冊,則可以輕鬆獲得它們。否則,通過有效的電子郵件地址註冊一個免費帳戶並獲取您的客戶憑據。
在 Java 中將 SVG 轉換為 PNG
我們的圖像處理 API 能夠以最少的代碼行將 PNG 轉換為 SVG,將 SVG 轉換為 PNG。因此,在本節中,我們將討論使用 Java 將 SVG 轉換為 PNG 的所有細節。
- 首先,創建一個 ImagingApi 類的對象,我們在其中傳遞客戶端憑據作為參數
- 其次,使用readAllBytes(…)方法讀取SVG圖像的內容,返回給byte[]數組
- 然後在傳遞 SVG 名稱的同時創建 UploadFileRequest 的實例,並使用 uploadFile(…) 方法將其上傳到雲存儲
- 現在創建一個 ConvertImageRequest 對象,我們將輸入的 SNG 名稱和結果格式傳遞為“PNG”
- 調用 convertImage(…) 方法啟動 SVG 到 PNG 的轉換。然後將輸出作為響應流返回
- 最後,使用 FileOutputStream 對象將生成的 PNG 保存到本地驅動器
// 從 https://dashboard.aspose.cloud/ 獲取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// 創建成像對象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// 從本地系統加載 SVG 圖像
File file1 = new File("File_Extension Icons.svg");
byte[] imageStream = Files.readAllBytes(file1.toPath());
// 創建文件上傳請求對象
UploadFileRequest uploadRequest = new UploadFileRequest("input.svg",imageStream,null);
// 將 SVG 圖片上傳到雲存儲
imageApi.uploadFile(uploadRequest);
// 指定圖像的輸出格式
String format = "PNG";
// 創建圖像轉換請求對象
ConvertImageRequest convertImage = new ConvertImageRequest("input.svg", format, null, null);
// 將 SVG 轉換為 PNG 並在響應流中返回圖像
byte[] resultantImage = imageApi.convertImage(convertImage);
// 將 PNG 圖像保存到本地存儲
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Converted.png");
fos.write(resultantImage);
fos.close();
上例中使用的輸入 SVG 圖像可以從 FileExtension Icons.svg 下載。
使用 cURL 命令將 SVG 保存為 PNG
由於Aspose.Imaging Cloud是按照REST架構開發的,因此可以通過cURL命令輕鬆訪問。因此,在本節中,我們將使用 cURL 命令將 SVG 保存為 PNG。現在,第一步是使用以下命令生成 JWT 訪問令牌(基於客戶端憑據)。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
生成 JWT 令牌後,請執行以下命令將 SVG 保存為 PNG 圖片。
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.svg/convert?format=PNG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Resultant.png
結論
到本文結束時,我們了解瞭如何使用 Java 將 SVG 轉換為 PNG 的詳細信息。同時,我們還探索了使用 cURL 命令將 SVG 轉換為 PNG 的選項。此外,如果您想獲取 SDK 源代碼並根據您的要求進行修改,可以從 GitHub 下載(我們的 Cloud SDK 是在 MIT 許可下開發的)。請注意,用於測試 API 驚人功能的另一個選項是通過網絡瀏覽器中的 SwaggerUI。
然而,產品文檔 是一個很棒的文章庫,其中包含解釋 API 其他令人興奮的功能的文章。最後,如果您在使用 API 時遇到任何問題,您可以考慮通過免費的 產品支持論壇 聯繫我們。
相關文章
我們強烈建議訪問以下鏈接以了解更多信息: