การเพิ่มประสิทธิภาพการรีไซเคิลภาพชุดเป็นสิ่งสําคัญสําหรับแอพที่มีน้ําหนักเบาของภาพ (คอลเลกชันการค้าอิเล็กทรอนิกส์แกลเลอรี่ฟีด) 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
กับ TUNEDMaxDegreeOfParallelism
· ไม่แบ่งปันImage
กรณี - มีอยู่: มีอยู่เสมอ
Image
ความเร็ว - ** Encoder:** ใช้
JpegOptions.Quality
สําหรับ JPEG; เปลี่ยนไปที่PngOptions
สําหรับการสูญเสีย / อัลฟา - I/O: ราก input / output ที่แยกต่างหาก; คู่มือที่สร้างขึ้นก่อน
- กรอง: จํากัด สําหรับการขยายภาพที่รู้จักก่อนโหลด
- **การเข้าสู่ระบบ: ** การบันทึกข้อบกพร่องและการวัดพื้นฐาน (คํานวณ MB ใน / ออก)
- อัปเดต: Keep Aspose.Imaging up to date สําหรับการปรับปรุงประสิทธิภาพอย่างต่อเนื่อง
More in this category
- การเพิ่มประสิทธิภาพของ GIF ของ animated ใน .NET โดยใช้ Aspose.Imaging
- Optimize Multi-Page TIFFs for Archival in .NET ด้วย Aspose
- HEIC ไปยัง JPEG / PNG แปลงด้วย Aspose.Imaging สําหรับ .NET
- การเคลื่อนไหวที่ขับเคลื่อนข้อมูลใน .NET ด้วย Aspose.Imaging
- การบีบอัดภาพที่มีคุณภาพและไม่มีการสูญเสียใน .NET ด้วย Aspose.Imaging