我在逛Github學生優惠包是看到 ImgBot,它說能自己優化圖像,於是嘗試了一下。
簡介
ImgBot 是一個為你節省時間優化圖片的機器人。優化圖片意味着不犧牲圖片質量和更小的文件大小。 安裝后不久,你會收到一個優化圖片的 pull request。合並這個 pull request 就行了!Imgbot 會伴隨你的工作,保持圖片的優化。 ImgBot 默認使用無損壓縮。
安裝ImgBot
因為我已經安裝了 ImgBot 了,所以文字與截圖上的可能有點出入
首先來到 GitHub Market,點擊 Set up a free trial

然后選擇 Open Source (也就是免費的那個方案),然后點擊 Install it for free
檢查一下訂單,點擊 Complete order and begin installation
確認一下 ImgBot 可以訪問的倉庫 (默認 All),以及授予給 ImgBot 的權限,點擊 Install

看到這個頁面就說明 ImgBot 服務已經成功的安裝到你的 GitHub 賬戶上了

使用ImgBot壓縮圖片
將 ImgBot 服務安裝到你的 GitHub 賬戶上后,ImgBot 就會自動遞歸尋找並壓縮 Git 倉庫中的圖片文件 (如果圖片比較多,這一步可能回花費幾天的時間),壓縮好后會向你提一個像這樣的 PR。
確保你選的倉庫有圖片,不然不會收到PR。

你可以點開 Datails 查看壓縮前后大小、壓縮率等細節,確認無誤后,點擊 Merge pull request 開始合並
再輸入 commit 信息,點擊 Confirm merge
設置ImgBot
ImgBot 默認是無損壓縮的,可以按需進行配置為有損壓縮,對文件大小進一步壓榨。配置方法是在根目錄下添加 .imgbotconfig 文件
目前有三個配置項:
- 提交 PR 的頻率:
"schedule"- 選項:
daily|weekly|monthly
- 選項:
-
排除的文件:
"ignoredFiles"- 選項:被排除文件的路徑,支持通配符
*
- 選項:被排除文件的路徑,支持通配符
-
是否使用有損壓縮方式 (壓縮率更高):
"aggressiveCompression"- 選項:
true|false
- 選項:
以下是較為完整的例子:
{
"schedule": "daily", // daily|weekly|monthly
"ignoredFiles": [
"*.jpg", // ignore by extension
"image1.png", // ignore by filename
"public/special_images/*", // ignore by folderpath
],
"aggressiveCompression": "true" // true|false
}
還有更多配置項,完整說明請見官方文檔。
Github Actions自動合並ImgBot的pr
上傳圖片后,很快 ImgBot 就會對圖片進行壓縮,並在 github 的倉庫中發起一個 pull request。手動點擊合並按鈕對我來說實在是太麻煩了,能不能自動搞呢。有了 actions 沒啥不能的,
在 github actions 配置新增一個文件 .github/workflows/merge.yml。
name: Merge Imgbot on: pull_request: types: - opened - ready_for_review pull_request_review: types: - submitted status: {} jobs: automerge: runs-on: ubuntu-latest steps: - name: automerge uses: "pascalgn/automerge-action@v0.6.1" env: GITHUB_TOKEN: "${{ secrets.GIT_MERGE_TOKEN }}" MERGE_LABELS: "" MERGE_METHOD: "squash" MERGE_COMMIT_MESSAGE: "pull-request-description" MERGE_FORKS: "false" MERGE_RETRIES: "2" MERGE_RETRY_SLEEP: "10000" UPDATE_METHOD: "rebase"
這個 actions 配置中用到了 pascalgn/automerge-action,簡化了對於 pull request 的操作。
這里用到了 secrets 保存 github access token,和上一步配置 PicGo 用到的 token 一樣,沒用過的話可在賬號設置Setting-->Developersettings-->Personal access tokens 生成(注意不是項目的Settings)。
將這個token填到項目Settings-->Secrets,名稱為GIT_MERGE_TOKEN。
參考鏈接:
1. mogeko.me-使用 ImgBot 無損壓縮博客中的圖片
