[前端]-图片的性能优化手段-阿里云裁切参数

69 阅读2分钟
  • 主要思想

按需加载:根据实际显示需求裁切适当大小和质量的图片

  • 实现手段

阿里云图片处理服务

  • 质量压缩
  • 格式转换
  • 裁剪处理

这些处理完全在CDN层完成,不需要修改原始图片,也不需要额外的服务器资源。

1 根据不同应用场景区分

例如背景图片,有背景列表、预览框、对话框、卡片,预览框、对话框呈现原图,而背景列表和卡片都是小图,就会进行裁切并压缩质量。

2 创建图片处理工具

为不同场景设置不同的处理参数

技术深度解析

1. 缩放模式的选择

阿里云OSS提供了多种缩放模式,我们选择了m_lfit,原因是:等比缩放,限制在指定尺寸内

  • 保持图片原始比例,不会变形
  • 在不知道图片原始尺寸的情况下也能安全使用

其他可选的缩放模式包括:

  • m_mfit:等比缩放,延伸到指定尺寸外
  • m_fill:等比缩放并裁剪,填满指定尺寸
  • m_pad:等比缩放,不足部分用背景色填充
  • m_fixed:强制缩放到指定尺寸,可能变形

2. 质量参数的平衡点

影响图片质量和文件大小的主要参数是quality

  • 质量 100%:几乎无损,但文件大小接近原图
  • 质量 90-95%:肉眼几乎无法分辨差异,但可减小 30-50% 文件大小
  • 质量 80-85%:轻微可见质量损失,可减小 60-70% 文件大小
  • 质量 70% 以下:明显的质量损失

3. 图片宽度的选择依据

图片宽度设置基于以下原则:基本宽度应略大于组件实际宽度

例如,对于宽度为300px的卡片组件:

  • 在标准屏幕上,提供400-500px宽图片
  • 在2倍屏上,提供800-1000px宽图片

在CDN层完成的优缺点

优点:节省存储,只需存储一份高质量原图,即时生成需要的,无需对源文件作处理

缺点: 第一次请求特定参数的图片时会有额外处理时间

解决:可以对首页图片预热加载