优化集合图像重新编辑对于重型应用程序(电子商务目录、画廊、传输)至关重要。 Aspose.Imaging for .NET 允许您有效地加载、重定向和编码图片,同时保持代码完全管理和跨平台。

完整的例子

步骤1:选择合适的回收策略

选择符合您的输出限制的策略:

  • ** 限制框(推荐小型):** 使用 FitInto 图像适合内部 targetWidth × targetHeight 没有扭曲(保持视角比例)。
  • ** 绝对尺寸(准确的像素):** 如果消费者需要固定维度,则使用绝对重量(如果视角比例不同,可能会扭曲)。
  • ** 百分比尺寸:** 均匀下滑的手套(例如,原件的50%)。

提示: 对于商店前网和社交卡, FitInto 通常是最安全的故障。

步骤2:控制记忆和缓存

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 一旦被拯救了。
  • 避免同时保存许多解码图像 - 每个文件的过程。

步骤3:安全平行

使用 Parallel.ForEach 如《古兰经》中所说:

  • 设置 MaxDegreeOfParallelism 为您的盒子提供敏感值(CPU核心、I/O速度、内存主机)。
  • 每个任务都必须按照自己的“工作”来完成。 Image 例如:不要在线上共享图像对象。
  • 保持您的编码选项不变,以避免混乱。

指南: 开始与 MaxDegreeOfParallelism = Environment.ProcessorCount 并在配置后调整。

步骤4:选择密码和质量故意

  • 对于 JPEG 输出,使用 JpegOptions.Quality (典型甜点: 75–90) 的文件大小和质量。
  • 对于需要透明度或无损产量的资产,请使用 PngOptions
  • 根据使用情况保持输出格式一致(例如,照片的JPEG,UI资产的PNG)。

步骤5:短循环失败;保持包动

将每个文件插入一个尝试/捕获(如您所做)并登录路径 + 例外。

  • 滑动非图像文件(过滤扩展向前)。
  • 登录原始和输出尺寸以验证储蓄。
  • 写错误到 CSV 重新运行。

步骤6: I/O 卫生

  • 确保输出目录存在并在 ** 快速磁盘** (SSD) 上。
  • 避免写出输入;写到一个单独的目录。
  • 如果您有数以百万计的文件,将输出分成字段,以保持目录列表快速。

步骤7:通过快速健康检查检查结果

重复后:

  • 对您的目标进行宽度/高度验证。
  • 确认文件类型/扩展符合使用的编码器。
  • 点检查常见边缘案例的视觉质量(景观,小图标,透明的PNG)。

最佳实践(Checklist)

  • ** 存储:** 设置 CacheType, CacheFolder而一个合理的 CacheSize.
  • ** 平行性:** 使用 Parallel.ForEach 与Tuned MaxDegreeOfParallelism没有共享 Image 例子。
    • 可用:* 常用 Image 快速。
  • ** 编码器:** 使用 JpegOptions.Quality JPEG;转到 PngOptions 无损 / 阿尔法
  • I/O: 单独输入/输出根;预创目录。
  • ** 过滤:** 在加载之前限制已知图像扩展。
  • 登录: 记录错误和基本测量(计算,MB输入/输出)。
  • 更新: 保持 Aspose.Imaging 更新,以便不断提高性能。

More in this category