ลดขนาดไฟล์ PNG โดยใช้ C#

ลดขนาดไฟล์ PNG โดยใช้ C#

ที่จัดเก็บข้อมูลของระบบถือเป็นเรื่องสำคัญในยุคเทคโนโลยีสมัยใหม่นี้ ปริมาณข้อมูลเพิ่มขึ้นทุกวัน และการแสดงไฟล์ข้อมูลด้วยภาพได้รับความนิยมอย่างมาก อย่างไรก็ตาม มีหลายวิธีในการบีบอัดรูปแบบไฟล์ภาพ แต่คุณภาพของภาพไม่ควรลดลง ดังนั้น เราจะใช้ .NET image Compression API นี้เพื่อบีบอัดรูปภาพ PNG ในบล็อกโพสต์นี้ เราจะได้เรียนรู้วิธีลดขนาดไฟล์ PNG โดยใช้ C# โดยทางโปรแกรม

เราจะกล่าวถึงประเด็นต่อไปนี้ในบทความนี้:

การติดตั้ง API การบีบอัดรูปภาพ

ไลบรารีนี้นำเสนอวิธีการและคุณสมบัติที่หลากหลายเพื่อจัดการและประมวลผลรูปแบบไฟล์รูปภาพต่างๆ เช่น JPEG, TIFF และอื่นๆ มีสองวิธีในการติดตั้ง API นี้ลงในโปรเจ็กต์ .NET ของคุณ

ดังนั้น คุณสามารถ ดาวน์โหลดไฟล์ ไฟล์ DLL หรือเรียกใช้คำสั่งต่อไปนี้ในตัวจัดการแพ็คเกจ NuGet

Install-Package Aspose.Imaging

วิธีลดขนาดไฟล์ PNG โดยใช้ C#

คุณสามารถดูวิธีการและคุณสมบัติมากมาย ที่นี่ เพื่อบีบอัดรูปแบบไฟล์ภาพ ดังนั้นเราจะเขียนขั้นตอนและข้อมูลโค้ดเพื่อบีบอัดไฟล์ PNG โดยทางโปรแกรม

ทำตามขั้นตอนต่อไปนี้:

  1. โหลดรูปภาพ PNG ต้นฉบับโดยการเรียกเมธอด Load
  2. เรียกใช้เมธอด บันทึก เพื่อบันทึกภาพที่บีบอัดในรูปแบบ PNG
  3. ตั้งค่าคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่
  4. IndexedColor แสดงถึงประเภทสีโดยที่แต่ละพิกเซลเป็นดัชนีจานสี
  5. กำหนดค่าของ CompressionLevel เพื่อตั้งค่าการบีบอัดสูงสุด
  6. GetCloseImagePalette วิธีการรับจานสีจากภาพแรสเตอร์ (จัดวางภาพบนพาเลท) ในกรณีที่ภาพไม่มี ในกรณีที่มีจานสีอยู่แล้ว ระบบจะใช้แทนการคำนวณ
// โหลดอิมเมจ PNG ต้นฉบับโดยการเรียกวิธีการโหลด 
        using (Image image = Image.Load("image.png"))
        {
        // เรียกใช้วิธีการบันทึกเพื่อบันทึกภาพที่บีบอัดในรูปแบบ PNG  
            image.Save(out.png, new ImageOptions.PngOptions()
            {
            // ตั้งค่าคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่
                Progressive = true,
            // IndexedColor แสดงถึงประเภทสีโดยที่แต่ละพิกเซลเป็นดัชนีจานสี 
                ColorType = FileFormats.Png.PngColorType.IndexedColor,
            // กำหนดค่าของ CompressionLevel เพื่อตั้งค่าการบีบอัดสูงสุด 
                CompressionLevel = 9,
            // วิธี GetCloseImagePalette จะได้รับชุดสีจากภาพแรสเตอร์ (ภาพวางบนพาเลท) ในกรณีที่ภาพไม่มี ในกรณีที่มีจานสีอยู่ ก็จะถูกนำมาใช้แทนการคำนวณ 
                Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram)
            });
        }

API การบีบอัดรูปภาพ - ตัวเลือกขั้นสูง

ในส่วนก่อนหน้านี้ เราได้เรียนรู้วิธีการลดขนาดไฟล์ PNG โดยใช้ C# ตอนนี้ เรามาสำรวจวิธีการและคุณสมบัติที่โดดเด่นอื่นๆ ของ API การบีบอัดรูปภาพนี้กัน ในส่วนนี้ เราจะทำการเรียก API แบบกำหนดเองเพื่อสร้างไฟล์ PNG โดยทางโปรแกรม

คุณสามารถทำตามขั้นตอนและข้อมูลโค้ดที่กล่าวถึงด้านล่าง:

  1. เริ่มต้นอินสแตนซ์ของคลาส PngImage ที่สร้างรูปภาพ PNG ขนาด 100x100 px
  2. วิธีการ LinearGradientBrush จะห่อหุ้มแปรงด้วยการไล่ระดับสีเชิงเส้น
  3. เริ่มต้นอินสแตนซ์ใหม่ของโครงสร้าง Point ด้วยพิกัดที่ระบุ
  4. สร้างอินสแตนซ์ของคลาส Graphics ที่แสดงกราฟิกตามเอ็นจิ้นกราฟิกที่ใช้ในแอสเซมบลีปัจจุบัน
  5. เติมภาพด้วยการไล่ระดับสีฟ้าโปร่งใสด้วยวิธี FillRectangle
  6. สร้างวัตถุของคลาส PngOptions
  7. ตั้งค่าคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่
  8. คุณสามารถตั้งค่าความละเอียดแนวนอนและแนวตั้งเป็น 96 พิกเซลต่อนิ้วโดยการเริ่มต้นคลาส ResolutionSetting
  9. กำหนดประเภทของสีโดยการกำหนดค่าให้กับคุณสมบัติ ColorType
  10. กำหนดค่าให้กับคุณสมบัติ CompressionLevel เพื่อตั้งค่าระดับสูงสุดของการบีบอัด
  11. คุณสมบัติ FilterType จะกำหนดประเภทตัวกรองที่ใช้ในระหว่างกระบวนการบันทึกไฟล์ PNG
  12. ตั้งค่าจำนวนบิตต่อช่องโดยการกำหนดค่าให้กับคุณสมบัติ BitDepth
  13. บันทึกเป็นไฟล์โดยเรียกใช้เมธอด Save

    // เริ่มต้นอินสแตนซ์ของคลาส PNGImage ที่สร้างภาพ PNG ขนาด 100x100 px 
    using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
    {
        // วิธีการ LinearGradientBrush จะห่อหุ้มแปรงด้วยการไล่ระดับสีเชิงเส้น 
        Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
                // เริ่มต้นอินสแตนซ์ใหม่ของโครงสร้างจุดด้วยพิกัดที่ระบุ 
                new Aspose.Imaging.Point(0, 0),
                new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
                Aspose.Imaging.Color.Blue,
                Aspose.Imaging.Color.Transparent);
        // สร้างอินสแตนซ์ของคลาสกราฟิกที่แสดงถึงกราฟิกตามเอ็นจิ้นกราฟิกที่ใช้ในแอสเซมบลีปัจจุบัน
        Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

        // เติมภาพด้วยการไล่ระดับสีฟ้าใสด้วยวิธี FillRectangle 
        graphics.FillRectangle(gradientBrush, pngImage.Bounds);
        // สร้างวัตถุของคลาส PngOptions 
        Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();

        // ตั้งค่าของคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่ 
        saveOptions.Progressive = true;

        // ตั้งค่าความละเอียดแนวนอนและแนวตั้งเป็น 96 พิกเซลต่อนิ้วโดยการเริ่มต้นคลาส ResolutionSetting 
        saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

        // กำหนดประเภทของสีโดยกำหนดค่าให้กับคุณสมบัติ ColorType
        saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

        // กำหนดค่าให้กับคุณสมบัติ CompressionLevel เพื่อตั้งค่าระดับสูงสุดของการบีบอัด 
        saveOptions.CompressionLevel = 9;

        // คุณสมบัติ FilterType ตั้งค่าประเภทตัวกรองที่ใช้ในระหว่างกระบวนการบันทึกไฟล์ PNG
        saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;

        // กำหนดจำนวนบิตต่อช่องโดยกำหนดค่าให้กับคุณสมบัติ BitDepth
        saveOptions.BitDepth = 8;

        // บันทึกลงในไฟล์โดยการเรียกเมธอดบันทึก 
        pngImage.Save( "output.png", saveOptions);
    }

คุณสามารถดูผลลัพธ์ได้ในภาพด้านล่าง:

API การบีบอัดรูปภาพ

รับใบอนุญาตฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อทดลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน

สรุป

เราสามารถจบการโพสต์บล็อกนี้ได้ที่นี่ เราหวังว่าคุณจะได้เรียนรู้วิธีการลดขนาดไฟล์ PNG โดยใช้ C# โดยทางโปรแกรม นอกจากนี้เรายังได้ลองใช้วิธีการขั้นสูงอื่นๆ ของ API การบีบอัดรูปภาพนี้ ซึ่งเราได้สร้างไฟล์ PNG ที่ปรับให้เหมาะสมแล้ว อย่างไรก็ตาม คุณสามารถไปที่ ลิงก์ นี้เพื่อดูวิธีการและคุณสมบัติเพิ่มเติมเกี่ยวกับรูปแบบไฟล์ PNG เหนือสิ่งอื่นใด อย่าข้าม documentation ของไลบรารี .NET นี้เพื่อทราบระบบนิเวศ เราจะเขียนหัวข้อที่เป็นประโยชน์อื่น ๆ ในโพสต์บล็อกในอนาคต ดังนั้นโปรดติดต่อ conholdate.com เพื่อรับทราบข้อมูลอัปเดต

ถามคำถาม

คุณสามารถแจ้งให้เราทราบเกี่ยวกับคำถามหรือข้อสงสัยของคุณได้ใน ฟอรั่ม

คำถามที่พบบ่อย

วิธีบีบอัดรูปภาพ PNG ใน C#?

ติดตั้ง .NET image Compression API นี้เพื่อบีบอัดและจัดการรูปแบบไฟล์ PNG โดยเสนอวิธีการและคุณสมบัติในการบีบอัดไฟล์รูปภาพยอดนิยมอื่นๆ เช่น JPEG, TIFF และอื่นๆ

วิธีย่อขนาดไฟล์ภาพสำหรับรูปแบบ PNG

[วิธีการ] นี้ 14 ช่วยให้คุณลดขนาดไฟล์ PNG โดยใช้ C# โดยทางโปรแกรม นอกจากนี้ คุณยังสามารถกำหนดค่าการเรียก API ได้ตามความต้องการของคุณ

จะปรับขนาดภาพ PNG ในตัวอย่างโค้ด C# ได้อย่างไร

ทำตาม ลิงก์ นี้เพื่อทราบเกี่ยวกับข้อมูลโค้ดที่ปรับขนาดภาพ PNG โดยทางโปรแกรม .NET API นี้มีประสิทธิภาพมากและมีวิธีการและคุณสมบัติที่หลากหลาย

ดูสิ่งนี้ด้วย