Оптимизација рецидива слике бацх је од суштинског значаја за апликације тешке сликама (е-трговински каталози, галерије, федс). Аспозе.Имагирање за .НЕТ вам омогућава да ефикасно преузмете, ресимирате и кодирате слику док држите свој код у потпуности управљен и преко платформе.

Потпуни пример

Корак 1: Изаберите одговарајућу стратегију рецидива

Изаберите стратегију која одговара вашим ограничењима излаза:

  • Ограничене кутије (препоручује се за малине): Употреба FitInto Слике су у унутрашњости targetWidth × targetHeight *Без деформације (одржава однос аспекта).
  • Абсолютна величина (тачни пиксели): Користите апсолутну резиму ако потрошачи захтевају фиксне димензије (може бити поремећена ако се однос аспекта разликује).
  • Процентно скалирање: Хенди за јединствену скалацију од различитих величина (на пример, 50% оригинала).

** Тип:** За мреже и друштвене картице, FitInto Обично је то најсигурнији дефолт.

Корак 2: Контрола меморије и кешинг

Аппосе.Имагинг подржава конфигурисано кеширање тако да велики батови не превазилазе РАМ:

  • Prefer on-disk caching za velike poslove (SSD podržan put).
  • Поставите кеш фасциклу и величину буџета пре обраде.
// 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

Такође :

  • Na raspolaganju svaki Image Čim se spasi.
  • Избегавајте одржавање многих декодираних слика у животу одједном – процеса по датотеци.

Корак 3: Паралелно безбедно

Коришћење Parallel.ForEach (Као што је у Гисту), али тунирајте га:

  • сет MaxDegreeOfParallelism до осетљиве вредности за вашу кутију (ЦПУ корени, брзина И/О, меморијска слушалица).
  • Свака задатак треба да ради на својим Image Пример: Не делите слике објеката кроз траке.
  • Држите своје опције за кодирање непроменљиве по резерву како бисте избегли спорове.

Упутство: Почните са MaxDegreeOfParallelism = Environment.ProcessorCount Прилагођавање након профилисања.

Корак 4: Одаберите кодове и квалитет намерно

  • За излазе JPEG, тонус величине датотеке против квалитета користећи JpegOptions.Quality (типична слатка тачка: 75–90).
  • За имовине које захтевају транспарентност или износ без губитака, уместо тога користите PngOptions.
  • Држите формат излаза конзистентан по случају коришћења (на пример, ЈПЕГ за фотографије, ПНГ за УИ имовине).

Корак 5: Кратки кружни неуспјеси; Држите бацх у кретању

Уградите сваки датотеку у покушај/привлачење (као што сте урадили) и пријавите пут + изузетак.

  • Скипање не-слика датотеке (филтер проширења напред).
  • Пријављивање оригиналних и излазних величина за валидацију штедње.
  • Писање неуспеха у ЦСВ-у за поновно трчање.

Корак 6: И / О хигијена

  • Уверите се да директоријум излаза постоји и да је на брзим дисковима (ССД).
  • Избегавајте писање излаза преко уноса; пишите у одвојени директоријум.
  • Ако имате милионе датотека, поделите излазе у подложнике како бисте одржали директоријске листе брзо.

Корак 7: Проверите резултате брзим здравственим прегледом

Након рециклирања:

  • Валидирајте ширину / висину према вашим циљевима.
  • Потврдите тип датотеке / проширење одговара кодира који се користи.
  • Пот-проверите визуелну квалитет за уобичајене случајеве ивице (панораме, мале иконе, транспарентне ПНГ).

Најбоља пракса (Checklist)

    • Кацхе: * сет CacheType, CacheFolderИ разумно CacheSize.
  • ** Паралелизам: ** Употреба Parallel.ForEach са тунелом MaxDegreeOfParallelism· Није подељен Image у случајевима.
    • У располагању: * увек располаже Image одмах .
    • Инкодер: * Употреба JpegOptions.Quality за JPEG; пребацити на PngOptions Недостатак / Алфа
  • I/O: Одвојени улазни / излазни корени; пре-креирани директоријуми.
  • ** Филтрирање:** Ограничите познате проширења слике пре преузимања.
  • Logging: Регистрација неуспјеха и основне метрике (бројање, МБ у / из).
  • Ажурирања: Држите Асписе.Имитање на датум за континуиране побољшања перформанси.

More in this category