图片格式优化与压缩指南
问题描述
项目中未充分利用现代图片格式或未对图片进行有效压缩,影响页面加载性能。
优化建议
1. 使用现代图片格式
WebP格式
html
<!-- 使用<picture>标签提供降级支持 -->
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="描述">
</picture>AVIF格式
html
<picture>
<source srcset="image.avif" type="image/avif">
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="描述">
</picture>2. 图片压缩工具
使用Imagemin
bash
# 安装imagemin及相关插件
npm install --save-dev imagemin imagemin-webp imagemin-mozjpeg imagemin-pngquantWebpack配置
javascript
// webpack.config.js
const ImageminPlugin = require('imagemin-webpack-plugin').default;
module.exports = {
plugins: [
new ImageminPlugin({
webp: {
quality: 75
},
mozjpeg: {
quality: 80
},
pngquant: {
quality: [0.6, 0.8]
}
})
]
};3. Vite图片优化
安装依赖
bash
npm install --save-dev vite-plugin-imagemin配置Vite插件
javascript
// vite.config.js
import viteImagemin from 'vite-plugin-imagemin';
export default {
plugins: [
viteImagemin({
gifsicle: {
optimizationLevel: 7,
interlaced: false
},
optipng: {
optimizationLevel: 7
},
mozjpeg: {
quality: 80
},
pngquant: {
quality: [0.6, 0.8],
speed: 4
},
webp: {
quality: 80
}
})
]
};4. 响应式图片
使用srcset
html
<img
srcset="image-320w.jpg 320w,
image-480w.jpg 480w,
image-800w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="image-800w.jpg"
alt="描述">5. 实施步骤
- 识别项目中的图片资源
- 转换为现代格式(WebP/AVIF)
- 配置构建工具进行自动压缩
- 添加响应式图片支持
- 提供降级方案
6. 注意事项
- 确保提供适当的降级方案
- 考虑转换成本与收益
- 测试不同浏览器兼容性
7. 验证方法
- 检查图片文件大小
- 验证现代格式支持
- 对比优化前后的加载时间
通过图片格式优化与压缩,可以显著减小图片体积,提升页面加载性能。