แปลง JPG เป็น PNG

Joint Photographic Experts Group (JPG/JPEG) และ Portable Network Graphics (PNG) เป็นรูปแบบภาพแรสเตอร์ที่นิยมใช้บนอินเทอร์เน็ต ต่างจาก JPEG ซึ่งใช้การบีบอัดแบบ DCT PNG ใช้การบีบอัดแบบ LZW ซึ่งเหมือนกับที่ใช้ในรูปแบบ GIF และ TIFF ข้อได้เปรียบที่ใหญ่ที่สุดของ PNG เมื่อเทียบกับ JPEG คือการบีบอัดนั้นไม่มีการสูญเสียข้อมูล ซึ่งหมายความว่าไม่มีการสูญเสียคุณภาพทุกครั้งที่เปิดและบันทึกอีกครั้ง PNG ยังจัดการรูปภาพที่มีรายละเอียดและความคมชัดสูงได้ดีอีกด้วย ในบทความนี้ เราจะพูดถึงขั้นตอนในการแปลงรูปภาพ JPG เป็นรูปแบบ PNG โดยใช้ .NET REST API

API การประมวลผลภาพ

Aspose.Imaging Cloud เป็นหนึ่งในผลิตภัณฑ์ชั้นนำของเราสำหรับการประมวลผลรูปแบบภาพ ช่วยให้คุณสามารถครอบตัด พลิก ปรับขนาด หมุน ค้นหา แปลง และส่งออกรูปแบบภาพที่มีอยู่ไปยัง รูปแบบไฟล์ที่รองรับ สถาปัตยกรรม REST ช่วยให้นักพัฒนาสามารถนำความสามารถด้านการสร้างภาพที่หลากหลายมาใช้ในโซลูชันบนคลาวด์ได้ เพื่ออำนวยความสะดวกแก่ลูกค้าของเรามากยิ่งขึ้น เราได้พัฒนา Aspose.Imaging Cloud SDK for .NET ร่วมกับ Aspose.Imaging REST API เพื่อให้คุณสามารถจัดการภาพขั้นสูงทั้งหมดภายในแอปพลิเคชัน C# .NET ของคุณได้

การติดตั้ง

ในการใช้ SDK เราจะต้องติดตั้ง SDK ในระบบก่อน SDK สามารถดาวน์โหลดได้ที่ NuGet และ GitHub โปรดเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลเพื่อติดตั้ง SDK ผ่าน NuGet:

nuget install Aspose.Imaging-Cloud

หรือดำเนินการคำสั่งต่อไปนี้ใน NuGet Package Manager:

PM> Install-Package Aspose.Imaging-Cloud

แนวทาง Visual Studio

อีกวิธีหนึ่งคือการติดตั้งโดยตรงภายใน Visual Studio:

  1. เปิด Solution Explorer
  2. ขยายโครงการและคลิกขวาที่โฟลเดอร์แพ็คเกจภายในโซลูชันของคุณ
  3. เลือกตัวเลือกจัดการแพ็คเกจ NuGet…
  4. คลิกที่แท็บ Browse และค้นหา “Aspose.Imaging-Cloud”
  5. คลิกช่องกาเครื่องหมายข้างๆ แพ็คเกจ Aspose.Imaging-Cloud เลือกเวอร์ชันที่เหมาะสมในแท็บด้านขวา และคลิกปุ่ม เพิ่มแพ็คเกจ
แอสโพส อิมเมจจิ้ง คลาวด์

รูปภาพ 1:- Aspose.Imaging-Cloud เป็นแพ็คเกจ NuGet

สมัครสมาชิก Aspose.Cloud

API ทั้งหมดของเราสามารถเข้าถึงได้โดยผู้ที่ได้รับอนุญาตเท่านั้น เพื่อรักษาความสมบูรณ์และความเป็นส่วนตัวของข้อมูล นอกจากนี้ ไฟล์ที่จัดเก็บในที่จัดเก็บข้อมูลบนคลาวด์จะเชื่อมโยงกับบัญชีที่สมัครใช้งานผ่าน Aspose.Cloud Dashboard ดังนั้น ขั้นตอนแรกคือการสร้างบัญชีสมัครใช้งานฟรีโดยไปที่ Aspose.Cloud Dashboard หากคุณมีบัญชี GitHub หรือ Google ให้ลงทะเบียน มิฉะนั้น ให้คลิกที่ปุ่ม สร้างบัญชีใหม่ และระบุข้อมูลที่จำเป็น จากนั้นเข้าสู่ระบบแดชบอร์ดโดยใช้ข้อมูลรับรอง และขยายส่วนแอปพลิเคชันจากแดชบอร์ด จากนั้นเลื่อนลงไปที่ส่วนข้อมูลรับรองไคลเอนต์เพื่อดูรายละเอียดรหัสไคลเอนต์และความลับไคลเอนต์

ข้อมูลประจำตัวลูกค้า

ภาพที่ 2: ข้อมูลประจำตัวลูกค้าที่แดชบอร์ด Aspose.Cloud

JPG เป็น PNG ใน C#

โปรดปฏิบัติตามขั้นตอนด้านล่างเพื่อดำเนินการแปลงรูปแบบ JPG เป็น PNG ภายในแอปพลิเคชัน C# .NET

  • สร้างวัตถุ ImagingApi ในขณะที่ส่งรายละเอียด ID ไคลเอนต์และความลับไคลเอนต์เป็นอาร์กิวเมนต์
  • ประการที่สอง อ่านภาพ JPEG จากไดรฟ์ภายในเครื่องและส่งเป็นอาร์กิวเมนต์ไปยังวัตถุ UploadFileRequest
  • ประการที่สาม เรียกใช้เมธอด UploadFile(…) ของ ImagingApi เพื่ออัปโหลดไฟล์ไปยังที่เก็บข้อมูลบนคลาวด์
  • ตอนนี้สร้างอินสแตนซ์ของคลาส ConvertImageRequest ซึ่งรับชื่อภาพและรูปแบบเอาท์พุตผลลัพธ์เป็นอาร์กิวเมนต์
  • จากนั้นเรียกใช้เมธอด ConvertImage(…) ของคลาส ImagingApi เพื่อเริ่มการดำเนินการแปลง
  • สุดท้าย ให้บันทึกเอาท์พุตจากสตรีมไปยังไดรฟ์ภายในเครื่องโดยใช้ File.Create (วิธีการแบบกำหนดเองมีแชร์อยู่ด้านล่าง)
// รับ ClientID จาก https://dashboard.aspose.cloud/
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);

    // อัปโหลดเอกสารต้นฉบับไปยัง Cloud Storage
    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();
}

คำสั่ง cURL สำหรับการแปลง JPEG เป็น PNG

สถาปัตยกรรม REST ของ Cloud API ช่วยให้เราเข้าถึงได้แม้ผ่านทางเทอร์มินัลบรรทัดคำสั่ง แต่เนื่องจากข้อจำกัดด้านความปลอดภัย คุณต้องสร้าง JSON Web Token (JWT) ก่อนโดยอิงตามรายละเอียด ClientID และ ClientSecret ที่ดึงมาจาก Aspose.Cloud Dashboard โปรดดำเนินการคำสั่งต่อไปนี้ในเทอร์มินัลเพื่อสร้างโทเค็น 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 แล้ว ขั้นตอนถัดไปคือการเรียก API ConvertImage เพื่อดำเนินการแปลง 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

ขอ URL

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 โปรดติดต่อเราผ่าน ฟอรัมสนับสนุนผลิตภัณฑ์ฟรี

บทความที่เกี่ยวข้อง

เราขอแนะนำให้ไปที่ลิงค์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ