开源项目教程:Calibre Image Actions
1、项目介绍
Calibre Image Actions 是一个由性能专家团队 Calibre 开发的 GitHub Action,旨在自动压缩 Pull Requests 中的 JPEG、PNG 和 WebP 图像。该项目提供快速、高效且近乎无损的图像压缩,使用最佳的图像压缩算法(如 mozjpeg 和 libvips),并支持自定义设置和按需或定时运行。此外,它还支持 GitHub Enterprise。
2、项目快速启动
创建工作流文件
在你的 GitHub 仓库中,创建一个名为 .github/workflows/calibreapp-image-actions.yml
的文件,并添加以下内容:
name: Image Compression
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Compress Images
uses: calibreapp/image-actions@main
with:
jpegQuality: '80'
jpegProgressive: false
pngQuality: '80'
webpQuality: '80'
配置选项
你可以通过 with
参数来控制压缩设置:
jpegQuality
: 数字(1-100),默认值为 80jpegProgressive
: 布尔值(true 或 false),默认值为 falsepngQuality
: 数字(1-100),默认值为 80webpQuality
: 数字(1-100),默认值为 80
忽略路径
如果你想忽略某些路径,可以添加 ignorePaths
参数:
with:
ignorePaths: 'node_modules/**, build/**'
3、应用案例和最佳实践
应用案例
- 前端项目优化:在前端项目中使用 Calibre Image Actions 自动压缩图像,减少加载时间,提升用户体验。
- 静态网站生成器:在静态网站生成器(如 Gatsby 或 Next.js)中集成该 Action,优化图像资源。
最佳实践
- 定期运行:设置定期运行该 Action,确保所有新提交的图像都得到优化。
- 自定义质量设置:根据项目需求调整图像质量设置,平衡图像质量和文件大小。
4、典型生态项目
- sharp:一个高性能的图像处理库,常用于 Node.js 项目中进行图像处理。
- mozjpeg:一个改进的 JPEG 编码器,提供更好的图像质量和更小的文件大小。
- libvips:一个快速的图像处理库,支持多种图像格式和操作。
通过集成这些生态项目,可以进一步增强图像处理的效率和质量。