ที่จัดเก็บข้อมูลของระบบถือเป็นเรื่องสำคัญในยุคเทคโนโลยีสมัยใหม่นี้ ปริมาณข้อมูลเพิ่มขึ้นทุกวัน และการแสดงไฟล์ข้อมูลด้วยภาพได้รับความนิยมอย่างมาก อย่างไรก็ตาม มีหลายวิธีในการบีบอัดรูปแบบไฟล์ภาพ แต่คุณภาพของภาพไม่ควรลดลง ดังนั้น เราจะใช้ .NET image Compression API นี้เพื่อบีบอัดรูปภาพ PNG ในบล็อกโพสต์นี้ เราจะได้เรียนรู้วิธีลดขนาดไฟล์ PNG โดยใช้ C# โดยทางโปรแกรม
เราจะกล่าวถึงประเด็นต่อไปนี้ในบทความนี้:
การติดตั้ง API การบีบอัดรูปภาพ
ไลบรารีนี้นำเสนอวิธีการและคุณสมบัติที่หลากหลายเพื่อจัดการและประมวลผลรูปแบบไฟล์รูปภาพต่างๆ เช่น JPEG, TIFF และอื่นๆ มีสองวิธีในการติดตั้ง API นี้ลงในโปรเจ็กต์ .NET ของคุณ
ดังนั้น คุณสามารถ ดาวน์โหลดไฟล์ ไฟล์ DLL หรือเรียกใช้คำสั่งต่อไปนี้ในตัวจัดการแพ็คเกจ NuGet
Install-Package Aspose.Imaging
วิธีลดขนาดไฟล์ PNG โดยใช้ C#
คุณสามารถดูวิธีการและคุณสมบัติมากมาย ที่นี่ เพื่อบีบอัดรูปแบบไฟล์ภาพ ดังนั้นเราจะเขียนขั้นตอนและข้อมูลโค้ดเพื่อบีบอัดไฟล์ PNG โดยทางโปรแกรม
ทำตามขั้นตอนต่อไปนี้:
- โหลดรูปภาพ PNG ต้นฉบับโดยการเรียกเมธอด Load
- เรียกใช้เมธอด บันทึก เพื่อบันทึกภาพที่บีบอัดในรูปแบบ PNG
- ตั้งค่าคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่
- IndexedColor แสดงถึงประเภทสีโดยที่แต่ละพิกเซลเป็นดัชนีจานสี
- กำหนดค่าของ CompressionLevel เพื่อตั้งค่าการบีบอัดสูงสุด
- 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 โดยทางโปรแกรม
คุณสามารถทำตามขั้นตอนและข้อมูลโค้ดที่กล่าวถึงด้านล่าง:
- เริ่มต้นอินสแตนซ์ของคลาส PngImage ที่สร้างรูปภาพ PNG ขนาด 100x100 px
- วิธีการ LinearGradientBrush จะห่อหุ้มแปรงด้วยการไล่ระดับสีเชิงเส้น
- เริ่มต้นอินสแตนซ์ใหม่ของโครงสร้าง Point ด้วยพิกัดที่ระบุ
- สร้างอินสแตนซ์ของคลาส Graphics ที่แสดงกราฟิกตามเอ็นจิ้นกราฟิกที่ใช้ในแอสเซมบลีปัจจุบัน
- เติมภาพด้วยการไล่ระดับสีฟ้าโปร่งใสด้วยวิธี FillRectangle
- สร้างวัตถุของคลาส PngOptions
- ตั้งค่าคุณสมบัติ Progressive ที่ระบุว่า PngOptions นี้เป็นแบบก้าวหน้าหรือไม่
- คุณสามารถตั้งค่าความละเอียดแนวนอนและแนวตั้งเป็น 96 พิกเซลต่อนิ้วโดยการเริ่มต้นคลาส ResolutionSetting
- กำหนดประเภทของสีโดยการกำหนดค่าให้กับคุณสมบัติ ColorType
- กำหนดค่าให้กับคุณสมบัติ CompressionLevel เพื่อตั้งค่าระดับสูงสุดของการบีบอัด
- คุณสมบัติ FilterType จะกำหนดประเภทตัวกรองที่ใช้ในระหว่างกระบวนการบันทึกไฟล์ PNG
- ตั้งค่าจำนวนบิตต่อช่องโดยการกำหนดค่าให้กับคุณสมบัติ BitDepth
- บันทึกเป็นไฟล์โดยเรียกใช้เมธอด 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 โดยไม่มีข้อจำกัดในการประเมิน
สรุป
เราสามารถจบการโพสต์บล็อกนี้ได้ที่นี่ เราหวังว่าคุณจะได้เรียนรู้วิธีการลดขนาดไฟล์ 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 นี้มีประสิทธิภาพมากและมีวิธีการและคุณสมบัติที่หลากหลาย