將 JPG 轉換為 PNG

聯合影像專家小組 (JPG/JPEG) 和可攜式網路圖形 (PNG) 是網路上使用的兩種流行的光柵影像格式。與依賴 DCT 壓縮的 JPEG 不同,PNG 使用 LZW 壓縮,與 GIF 和 TIFF 格式使用的壓縮相同。 PNG 相對於 JPEG 的最大優點是無損壓縮,這意味著每次打開和再次保存時品質不會損失。 PNG 還可以很好地處理詳細、高對比度的影像。在本文中,我們將討論如何使用 .NET REST API 將 JPG 映像轉換為 PNG 格式的步驟。

映像處理API

Aspose.Imaging Cloud 是我們影像格式處理的領先產品之一。它使您能夠裁剪、翻轉、縮放、旋轉、搜尋、轉換現有圖像格式並將其匯出為支援的檔案格式。 REST 架構使開發人員能夠在其基於雲端的解決方案中實現各種成像功能。為了進一步方便我們的客戶,我們在 Aspose.Imaging REST API 之上開發了 Aspose.Imaging Cloud SDK for .NET,以便您在 C# .NET 應用程式中獲得所有進階映像操作。

安裝

為了使用SDK,我們需要先在系統上安裝它。它可以透過 NuGetGitHub 下載。請在終端機中執行以下命令透過NuGet安裝SDK:

nuget install Aspose.Imaging-Cloud

或在NuGet套件管理器中執行以下命令:

PM> Install-Package Aspose.Imaging-Cloud

Visual Studio 方法

另一種方法是直接在 Visual Studio 中安裝:

  1. 開啟解決方案資源管理器。
  2. 展開專案並右鍵單擊解決方案中的 Packages 資料夾。
  3. 選擇管理 NuGet 套件…選項
  4. 點擊“瀏覽”選項卡並蒐索“Aspose.Imaging-Cloud”。
  5. 按一下 Aspose.Imaging-Cloud 套件旁的複選框,在右側標籤中選擇適當的版本,然後按一下新增套件按鈕。
Aspose.成像雲

圖 1:- Aspose.Imaging-Cloud 作為 NuGet 套件。

Aspose.Cloud 訂閱

我們的所有 API 僅供授權人員訪問,以維護資料完整性和隱私。此外,儲存在雲端儲存中的檔案與透過 Aspose.Cloud 儀表板 訂閱的帳戶相關聯。因此,第一步是透過存取 Aspose.Cloud 儀表板 建立免費訂閱帳戶。如果您有 GitHub 或 Google 帳戶,只需註冊即可。否則,請按一下建立新帳戶按鈕並提供所需資訊。現在使用憑證登入儀表板,並從儀表板展開「應用程式」部分,然後向下捲動至「用戶端憑證」部分以查看用戶端 ID 和用戶端金鑰詳細資料。

客戶憑證

圖 2:- Aspose.Cloud 儀表板中的客戶端憑證。

C# 中 JPG 轉 PNG

請依照下列步驟在 C# .NET 應用程式中將 JPG 格式轉換為 PNG

  • 建立 ImagingApi 對象,同時傳遞客戶端 ID 和客戶端金鑰詳細資訊作為參數
  • 其次,從本機磁碟機讀取 JPEG 映像並將其作為參數傳遞給 UploadFileRequest 對象
  • 第三,呼叫ImagingApi的UploadFile(…)方法將檔案上傳到雲端存儲
  • 現在建立 ConvertImageRequest 類別的實例,它將映像名稱和結果輸出格式作為參數
  • 然後呼叫ImagingApi類別的ConvertImage(…)方法發起轉換操作
  • 最後,使用 File.Create 將流的輸出儲存到本機磁碟機(下方分享自訂方法)。
// 從 https://dashboard.aspose.cloud/ 取得 ClientID
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// 建立 ImagingApi 的實例
ImagingApi imagingApi= new ImagingApi( clientSecret,clientID,"https://api.aspose.cloud/");

// 輸入JPEG影像的路徑
string imageFile = "jpg-to-png.jpeg";
 
// 輸出文件格式
string format = "png";
 
// 結果檔名
string resultantFile = "converted.png";

// 從本機磁碟機載入文件
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Desktop/" + imageFile))
{
    var uploadFileRequest = new UploadFileRequest(imageFile, file);

    // 將原始文檔上傳至雲端存儲
    imagingApi.UploadFile(uploadFileRequest);
}

try
{
    // 建立圖像請求
    var request = new ConvertImageRequest(imageFile, format, null, null);
    
    // 啟動轉換操作
    Stream updatedImage = imagingApi.ConvertImage(request);

    // 如果轉換成功則列印成功訊息
    if (request != null && request.Equals("OK"))
    {
        Console.WriteLine("JPG successfully converted to PNG !");
        Console.ReadKey();
    }
    
    // 呼叫該方法透過系統驅動器保存輸出
    saveToDisk(updatedImage, "/Users/nshahbaz/Desktop/"+resultantFile);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

// 將 steam 物件儲存為檔案實例的自訂方法
public static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

用於 JPEG 到 PNG 轉換的 cURL 指令

雲端 API 的 REST 架構使我們甚至可以透過命令列終端存取它們。但由於安全限制,您需要先根據從 Aspose.Cloud 儀表板 檢索到的 ClientID 和 ClientSecret 詳細資訊產生 JSON Web 令牌 (JWT)。請在終端機中執行以下命令來產生 JWT 令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

一旦我們有了 JWT 令牌,下一步就是呼叫 ConvertImage API 來執行 JPG 到 PNG 的轉換操作。

curl -X GET "https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o  converted.png

請求網址

https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png

結論

我們探索了 Aspose.Imaging Cloud API 將 JPEG 映像轉換為 PNG 格式。我們已經學習了使用 C# .NET 程式碼轉換檔案的過程以及使用 cURL 命令的轉換。另請注意,Cloud SDK 是根據 MIT 許可證分發的,其完整原始程式碼可透過 GitHub 下載。如果您在使用API時遇到任何問題或有任何疑問,請隨時透過免費產品支援論壇聯絡。

相關文章

我們還建議訪問以下連結以了解更多信息