การเพิ่มประสิทธิภาพการรีไซเคิลภาพชุดเป็นสิ่งสําคัญสําหรับแอพที่มีน้ําหนักเบาของภาพ (คอลเลกชันการค้าอิเล็กทรอนิกส์แกลเลอรี่ฟีด) Aspose.Imaging สําหรับ .NET ช่วยให้คุณโหลดภาพและเข้ารหัสภาพได้อย่างมีประสิทธิภาพในขณะที่รักษารหัสของคุณได้รับการจัดการอย่างสมบูรณ์และผ่านแพลตฟอร์ม ด้านล่างคือขั้นตอนทางปฏิบัติเพื่อให้ท่อชุดของคุณรวดเร็วเสถียรและคาดการณ์ได้

ตัวอย่างที่สมบูรณ

ขั้นตอนที่ 1: เลือกกลยุทธ์การรีไซเคิลที่เหมาะสม

เลือกกลยุทธ์ที่ตรงกับข้อจํากัดการผลิตของคุณ:

  • กล่อง จํากัด (แนะนําสําหรับขนาดเล็ก): ใช้ FitInto รูปภาพที่เหมาะสมภายใน targetWidth × targetHeight ไม่มีการ歪曲 (รักษาความสัมพันธ์ด้านข้าง)
  • ขนาดที่สมบูรณ์ (พิกเซลที่แม่นยํา): ใช้ปริมาณที่แน่นอนหากผู้บริโภคต้องการขนาดคงที่ (อาจเกิดความผิดปกติหากอัตราส่วนด้านแตกต่างกัน)
  • การสแกนอัตราส่วน: Handy สําหรับการลดขนาดแบบเดียวจากขนาดที่แตกต่างกัน (เช่น 50% ของต้นฉบับ)

เคล็ดลับ: สําหรับเครือข่ายร้านค้าและบัตรทางสังคม FitInto เป็น default ที่ปลอดภัยที่สุด

ขั้นตอนที่ 2: การควบคุมหน่วยความจําและ caching

Aspose.Imaging สนับสนุน caching ที่กําหนดเองดังนั้นชุดขนาดใหญ่ไม่เกิน RAM:

  • ดีกว่า บนดิสก์ caching สําหรับงานขนาดใหญ่ (ทางที่รองรับ SSD)
  • การตั้งค่าโฟลเดอร์ cache และจํานวนเงินก่อนการประมวลผล
// Configure once at startup (example values)
Aspose.Imaging.Cache.CacheType   = Aspose.Imaging.Cache.CacheType.CacheOnDisk;
Aspose.Imaging.Cache.CacheFolder = @"D:\imaging-cache";
Aspose.Imaging.Cache.CacheSize   = 1L * 1024 * 1024 * 1024; // 1 GB

นอกจากนี้:

  • มีทุก Image เมื่อมันถูกบันทึก
  • หลีกเลี่ยงการบันทึกภาพที่ถอดรหัสจํานวนมากสดในเวลาเดียวกัน - กระบวนการต่อไฟล์

ขั้นตอนที่ 3: คู่มือได้อย่างปลอดภัย

ใช Parallel.ForEach (เช่นใน Gist) แต่ทันมัน:

  • ชุด MaxDegreeOfParallelism เพื่อให้มีค่าที่ไวต่อกล่องของคุณ (แกน CPU, ความเร็ว I / O, ห้องหน่วยความจํา)
  • ทุกงานต้องทํางานบน เป็นของตัวเอง Image ตัวอย่าง: อย่าแบ่งปันวัตถุภาพผ่านเส้น
  • รักษาตัวเลือกการเข้ารหัสของคุณไม่เปลี่ยนแปลงเพื่อหลีกเลี่ยงความตึงเครียด

** คู่มือ:** เริ่มต้นด้วย MaxDegreeOfParallelism = Environment.ProcessorCount และปรับแต่งหลังจากโปรไฟล์

ขั้นตอนที่ 4: เลือก Encoders & คุณภาพอย่างมุ่งมั่น

  • สําหรับการส่งออก JPEG ขนาดไฟล์สี vs. คุณภาพโดยใช้ JpegOptions.Quality (จุดหวานทั่วไป: 75–90)
  • สําหรับสินทรัพย์ที่ต้องการความโปร่งใสหรือการผลิตที่ไม่มีการสูญเสียใช้ PngOptions แทน
  • รักษารูปแบบการส่งออกที่สอดคล้องกับกรณีที่ใช้ (เช่น JPEG สําหรับรูปภาพ PNG สําหรับทรัพย์สิน UI)

ขั้นตอนที่ 5: ความล้มเหลววงจรสั้น; ปรับการเคลื่อนไหวของชุด

ใส่ไฟล์แต่ละไฟล์ในการทดลอง / การจับ (ตามที่คุณทํา) และบันทึกเส้นทาง + การประมวลผลต่อไปของชุดอื่น ๆ โปรดพิจารณา:

  • Skipping ไม่ภาพไฟล์ (กรองขยายไปด้านหน้า)
  • การเข้าสู่ระบบขนาดต้นฉบับและผลผลิตเพื่อยืนยันการประหยัดเงิน
  • การเขียนความล้มเหลวไปยัง CSV สําหรับการทํางานใหม่

ขั้นตอน 6: I / O สุขภาพ

  • ตรวจสอบให้แน่ใจว่าไดเรกทอรีการส่งออกมีอยู่และอยู่ในไดรฟ์ที่รวดเร็ว** (SSD)
  • หลีกเลี่ยงการเขียนการส่งผ่านการเข้า; เขียนไปยังไดเรกทอรีที่แยกต่างหาก
  • หากคุณมีไฟล์หลายล้านแบ่งออกเป็น subfolders เพื่อให้รายการตารางได้อย่างรวดเร็ว

ขั้นตอน 7: ตรวจสอบผลลัพธ์ด้วยการตรวจสอบสุขภาพอย่างรวดเร็ว

หลังจากรีไซเคิล:

  • ปรับความกว้าง / ความสูงกับเป้าหมายของคุณ
  • ตรวจสอบประเภทไฟล์ / การขยายตรงกับตัวเข้ารหัสที่ใช้
  • คุณภาพภาพการตรวจสอบจุดสําหรับกรณีขอบทั่วไป (Panoramas, Icon ขนาดเล็ก, PNG แบบโปร่งใส)

การปฏิบัติที่ดีที่สุด (Checklist)

  • ** Cache: * ชุด CacheType, CacheFolderและมีเหตุผล CacheSize.
  • ** คู่มือ: ** ใช้ Parallel.ForEach กับ TUNED MaxDegreeOfParallelism· ไม่แบ่งปัน Image กรณี
  • มีอยู่: มีอยู่เสมอ Image ความเร็ว
  • ** Encoder:** ใช้ JpegOptions.Quality สําหรับ JPEG; เปลี่ยนไปที่ PngOptions สําหรับการสูญเสีย / อัลฟา
  • I/O: ราก input / output ที่แยกต่างหาก; คู่มือที่สร้างขึ้นก่อน
  • กรอง: จํากัด สําหรับการขยายภาพที่รู้จักก่อนโหลด
  • **การเข้าสู่ระบบ: ** การบันทึกข้อบกพร่องและการวัดพื้นฐาน (คํานวณ MB ใน / ออก)
  • อัปเดต: Keep Aspose.Imaging up to date สําหรับการปรับปรุงประสิทธิภาพอย่างต่อเนื่อง

More in this category