zoukankan      html  css  js  c++  java
  • 使用 ImgBot 自动为 Github 项目优化图片

    我在逛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 无损压缩博客中的图片

    2. 陈柏林的Blog-使用 ImgBot 自动为 Github 项目优化图片

    3. 半岛铁酱-我的 gitee 图床,自动上传、压缩、获取图片 url

  • 相关阅读:
    结构型模式上
    创建型模式下
    创建型模式中
    创建型模式上
    设计模式总述
    Java中事件机制
    UI常用控件
    UITextField和UIViewConteoller
    UIScrollView 和 UIPageControl
    分栏视图控制器
  • 原文地址:https://www.cnblogs.com/lfri/p/12257277.html
Copyright © 2011-2022 走看看