بهینه سازی بازسازی تصویر بسته برای اپلیکیشن های سنگین تصویر (کاتالوگ های تجارت الکترونیک، گالری ها، تغذیه ها) ضروری است. Aspose.Imaging برای .NET به شما اجازه می دهد تا تصاویر را به طور موثر بارگذاری، بازگرداندن و رمزنگاری کنید در حالی که کد خود را کاملا مدیریت شده و از طریق پلتفرم حفظ کنید.

نمونه کامل

مرحله اول: یک استراتژی مناسب را انتخاب کنید

یک استراتژی انتخاب کنید که با محدودیت های خروجی شما مطابقت دارد:

  • ** جعبه محدود (در مورد کوچک توصیه می شود):** استفاده از FitInto تصاویری که در داخل targetWidth × targetHeight ** بدون * اختلال (نسبی جنبه را حفظ می کند)
  • حجم مطلق (پیکسل های دقیق): اگر مصرف کنندگان نیاز به ابعاد ثابت داشته باشند، از یک رزومه کامل استفاده کنید (در صورتی که نسبت جنبه متفاوت باشد، ممکن است خراب شود).
  • در مقیاس درصد: دستی برای کاهش منحصر به فرد از اندازه های مختلف (به عنوان مثال، 50٪ از اصلی).

نکته: برای شبکه های فروشگاه و کارت های اجتماعی، FitInto به طور معمول امن ترین ضعف است.

مرحله دوم: کنترل حافظه و کچینگ

Aspose.Imaging پشتیبانی از پیکربندی قابل تنظیم به طوری که بسته های بزرگ بیش از حد RAM نیست:

  • ترجیح می دهم در دیسک کچینگ برای شغل های بزرگ (راه پشتیبانی از SSD) باشد.
  • تنظیم پوشه کیش و اندازه بودجه قبل از پردازش.
// 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 تا زمانی که نجات یافته است.
  • اجتناب از نگه داشتن بسیاری از تصاویر رمزگذاری شده زنده در یک زمان – فرآیند در هر فایل.

مرحله سوم: به راحتی در کنار هم قرار دهید

استفاده Parallel.ForEach (همانطور که در گست) اما آن را تنگ کنید:

  • تنظیمات MaxDegreeOfParallelism تا یک مقدار حساس برای جعبه شما (کره های CPU، سرعت I/O، حافظه).
  • هر وظیفه باید بر روی ** خود کار کند** Image مثال: اشیاء تصویر را در سراسر شاخه ها به اشتراک نگذارید.
  • گزینه های رمزگذاری خود را بدون تغییر در ذخیره نگه دارید تا از تردید اجتناب کنید.

** دستورالعمل:** با شروع MaxDegreeOfParallelism = Environment.ProcessorCount پس از پروفایل سازی آن را تنظیم کنید.

مرحله 4: انتخاب رمزگذاری و کیفیت عمدی

  • برای خروجی های JPEG، اندازه فایل tune در مقابل کیفیت با استفاده از JpegOptions.Quality (نقطه شیرین معمولی: 75-90).
  • برای دارایی هایی که نیاز به شفافیت یا خروجی بدون زیان دارند، به جای آن از PngOptions استفاده کنید.
  • فرمت خروجی را متناسب با هر مورد استفاده نگه دارید (به عنوان مثال، JPEG برای عکس ها، PNG برای دارایی های UI).

مرحله 5: شکست های دایره کوتاه؛ نگه داشتن چرخ در حال حرکت

هر فایل را در یک آزمایشی (همانطور که انجام دادید) قرار دهید و مسیر + استثنا را وارد کنید. ادامه پردازش بقیه مجموعه.

  • اسکریپت فایل های غیر تصویر (تمدید فیلتر به جلو).
  • ثبت نام اصلی و حجم خروجی برای تأیید پس انداز.
  • نوشتن شکست ها به یک CSV برای تکرار.

مرحله ششم: I/O بهداشت

  • اطمینان حاصل کنید که دایرکتوری خروجی وجود دارد و در یک دیسک سریع ** (SSD) قرار دارد.
  • از نوشتن خروجی از طریق ورودی اجتناب کنید؛ به یک دایرکتوری جداگانه بنویسید.
  • اگر میلیون ها فایل دارید، خروجی ها را به زیرمجموعه ها تقسیم کنید تا لیست های دایرکتوری را سریع نگه دارید.

مرحله 7: نتایج را با یک بررسی سریع سلامت بررسی کنید

پس از بازسازی :

  • پهنای باند / ارتفاع را در برابر اهداف خود تعیین کنید.
  • تایید نوع فایل / افزونه با کد مورد استفاده مطابقت دارد.
  • بررسی نقطه کیفیت بصری برای موارد لبه معمولی (پانورام ها، آیکون های کوچک، PNG های شفاف).

بهترین روش ها (Checklist)

  • تغییرمسیر : تنظیمات CacheType, CacheFolderو یک منطقی CacheSize.
  • **موازنه: ** استفاده از Parallel.ForEach با تونس MaxDegreeOfParallelismبدون به اشتراک گذاشتن Image مثال ها
  • *تصمیم گیری: همیشه در دسترس باشید Image به زودی
  • **تصویب: ** استفاده از JpegOptions.Quality برای JPEG؛ تبدیل به PngOptions برای از دست دادن / آلفا
  • I/O: ریشه های ورودی و خروجی جداگانه؛ دایرکتوری های پیش ایجاد شده.
  • ** فیلتر کردن:** محدود به افزونه های تصویر شناخته شده قبل از بارگذاری.
  • Logging: سوءاستفاده های ضبط شده و معیارهای پایه (مجموعه، MB در / خارج).
  • به روز رسانی ها: حفظ Aspose.Imaging به روز برای بهبود عملکرد در حال انجام.

More in this category