跳到主要内容

Lottie 在线压缩:优化 JSON、内嵌图片与画布尺寸

Lottie 文件大不一定是 JSON 文本本身造成的。包含 Base64 位图、超大图片或大量透明空白时,图片资源通常更值得先处理。MotionTools 可以保持 Lottie 输出,调整画布尺寸,并对可处理的内嵌图片进行压缩和空白区域优化。

先给结论​

  • 含有内嵌位图的 Lottie,通常比纯矢量 Lottie 更有压缩空间。
  • 先删除不用的素材和图层,再做图片压缩,效果通常比单纯压缩 JSON 文本更稳定。
  • 纯矢量文件如果层数、关键帧或路径本身很复杂,应回到设计源文件简化结构。
  • 压缩后必须在实际 Lottie 播放器中核对渐变、蒙版、文字、图片路径和循环点。

先判断体积来源​

现象可能来源优先处理
JSON 中有大量 data:image/...;base64内嵌图片压缩图片、裁掉透明空白
图片尺寸远大于显示尺寸过度分辨率按实际显示尺寸重新输出
几乎没有图片但 JSON 很大图层、路径、关键帧回源简化动效结构
导出后出现额外图片目录外部资源依赖保持 JSON 与图片目录对应
只在某个播放器异常兼容性差异用目标播放器复测,不继续盲目压缩

操作步骤​

  1. 打开 MotionTools 动效工作区 并上传 Lottie .json 文件。
  2. 查看画布尺寸、文件大小、时长、帧率和图片素材列表。
  3. 在格式转换中选择保持 Lottie 输出。
  4. 如果目标组件尺寸更小,设置目标宽高和内容适配方式。
  5. 调低图片质量,生成一个中等压缩版本进行对照。
  6. 在结果预览中检查渐变、遮罩、图片、颜色和首尾帧。
  7. 下载后分别在目标 Web、Android、iOS 或小程序播放器中测试。

什么情况下效果不明显​

纯矢量 Lottie、已经优化过的图片、很短的动画,或者只有少量简单图层时,压缩空间可能有限。此时应优先减少无用图层、重复关键帧、复杂路径和超出画布的内容,而不是继续降低图片质量。

自有纯矢量样本的真实压缩结果​

下面的数据来自 MotionTools 项目内置的 src/assets/pro.json,不使用设计社区或礼物服务商的作品素材。本次只运行产品实际使用的 LottieAttrCompressor 属性压缩阶段,输出使用 JSON.stringify 序列化;样本没有图片素材,因此不能把结果理解成图片质量压缩的收益。

压缩参数为:质量 80、removeNameAttributes=false、compressAssetIds=false。输出会写入 tiny=0.8 标记。

参数输入输出
文件大小62,646 字节60,774 字节
画布1024 × 10241024 × 1024
帧率60 FPS60 FPS
帧区间0 → 800 → 80
总帧数80 帧80 帧
顶层图层数1111
素材数 / 图片素材数0 / 00 / 0

结果减少 1,872 字节,压缩率为 2.99%。这个数字的价值在于说明边界:对于已经较精简、没有内嵌图片的纯矢量 Lottie,属性压缩收益可能很有限,不能把 2.99% 当作其他文件的承诺。此时更有效的方向通常是回到设计源文件减少图层、关键帧和复杂路径。

宽高、帧率、帧区间、图层数和素材数保持不变,只能证明这些文件级参数没有漂移,不代表逐像素完全一致。压缩结果仍需在目标播放器、目标设备和真实业务背景中验收。输入与输出 SHA-256、完整参数和复现命令见机器可读案例清单。

质量验收​

  • JSON 能被目标播放器正常解析,没有缺图或资源路径错误。
  • 渐变没有变色,蒙版、混合效果和透明区域没有异常。
  • 图片边缘和品牌图没有明显失真。
  • 画布比例、主体位置和裁切范围符合实际坑位。
  • 动画时长、帧率、循环点和缓动观感与源文件一致。
  • 文件变小的同时,播放器加载和首帧时间没有恶化。

限制与注意事项​

  • Lottie 播放效果取决于导出器、JSON 特性和目标播放器版本。
  • 不同端对 AE 效果、渐变、遮罩、表达式和字体的支持可能不同。
  • 将 Lottie 转成视频会保留最终画面,但不会保留可编辑矢量结构。
  • 降低图片质量可能产生色带、模糊或透明边脏边,应逐档比较。

相关内容​

能力核对日期:2026-08-16。当前压缩路径主要处理 Lottie 画布和内嵌图片;纯矢量结构优化仍应优先在设计源文件完成。