图像优化
概述
图像通常占页面重量的50%。优化可以显著提高性能,特别是在移动网络上。
何时使用
- 网站优化
- 响应式图像实现
- 性能提升
- 移动体验增强
- 部署前
指令
1. 图像压缩和格式
格式选择:
JPEG: 最佳用途:照片,复杂图像 压缩:有损(质量70-85) 大小:约50-70%减少 工具:ImageMagick,TinyJPEG 命令:convert image.jpg -quality 75 optimized.jpg
PNG: 最佳用途:图标,屏幕截图,透明图像 压缩:无损 大小:10-30%减少 工具:PNGQuant,OptiPNG 命令:optipng -o3 image.png
WebP: 最佳用途:现代浏览器(90%支持) 压缩:比JPEG/PNG好25-35% 回退:使用<picture>元素 工具:cwebp 命令:cwebp -q 75 image.jpg -o image.webp
SVG: 最佳用途:图标,徽标,简单图形 压缩:最小化XML 可扩展:任何大小都适用 工具:SVGO 命令:svgo image.svg --output optimized.svg
压缩级别:
保守(95%质量): JPEG:85-90质量 PNG:无损 用途:高价值图像
中等(90%质量): JPEG:75-80质量 PNG:量化到256色 用途:一般图像
积极(80%质量): JPEG:60-70质量 PNG:减少颜色 用途:缩略图,背景
2. 响应式图像
<!-- 响应式图像技术 -->
<!-- srcset:让浏览器选择 -->
<img
src="image.jpg"
srcset="
small.jpg 480w,
medium.jpg 768w,
large.jpg 1200w
"
sizes="
(max-width: 480px) 100vw,
(max-width: 768px) 90vw,
80vw
"
alt="描述"
/>
<!-- picture:格式选择 -->
<picture>
<source srcset="image.webp" type="image/webp">
<source srcset="image.jpg" type="image/jpeg">
<img src="image.jpg" alt="描述">
</picture>
<!-- 懒加载 -->
<img
src="placeholder.jpg"
loading="lazy"
alt="描述"
/>
3. 优化过程
工作流程:
1. 准备
- 以正确大小导出(不要在HTML中缩放)
- 使用适当的格式
- 批量处理相似图像
2. 压缩
- 有损:TinyJPEG/TinyPNG
- 无损:ImageMagick
- 目标:<100KB的主要图像
- 缩略图:<20KB
3. 格式转换
- WebP与JPEG回退
- 考虑PNG用于透明度
- SVG用于可扩展图形
4. 实施
- 使用srcset响应
- 懒加载以下折叠
- 首先优化关键图像
- 在CI/CD中监控文件大小
5. 验证
- 在DevTools中检查文件大小
- 在慢速网络上测试
- 验证质量可接受
- 测量性能影响
---
快速胜利:
去除EXIF数据(节省20-50KB):
identify -verbose image.jpg | grep -i exif
convert image.jpg -strip image-clean.jpg
转换为WebP(25-35%更小):
cwebp -q 75 *.jpg
使用ImageMagick批量压缩:
mogrify -quality 75 -resize 1920x1080 *.jpg
预期结果:
- 首页:850KB → 300KB图像
- 性能:3s → 1.5s加载时间
- 移动:3G上显著改进
4. 监控和最佳实践
性能目标:
英雄图像:<200KB
缩略图:<30KB
图标:<5KB
总图像:<500KB
目标gzip:<300KB
工具:
- ImageOptim(Mac)
- ImageMagick(CLI)
- TinyJPEG/TinyPNG(web)
- Squoosh(web)
- Lighthouse(审计)
清单:
[ ] 所有图像优化
[ ] WebP与回退
[ ] 响应式srcset
[ ] 实施懒加载
[ ] 每个图像的正确格式
[ ] 文件大小<100KB
[ ] 建立基准
[ ] 监控到位
[ ] 文档化流程
提示:
- 上传前优化
- 使用具有图像优化的CDN
- 考虑图像CDN(Imgix,Cloudinary)
- 在构建期间批量处理
- 监控图像添加
- 在3G上测试真实设备
关键点
- JPEG用于照片,PNG用于图形,SVG用于图标
- WebP节省25-35%与JPEG/PNG相比
- 响应式图像适应设备
- 懒加载延迟屏幕外图像
- 去除EXIF和元数据
- 部署前批量优化
- 监控图像文件大小
- 测量性能影响
- 为每种图像类型设置严格目标
- 使用图像CDN进行全球优化