Hugo 网站优化(5): 穷的还剩 8 分钱, 压缩图片,还能省省

简介: Hugo 网站优化(5): 穷的还剩 8 分钱, 压缩图片,还能省省

Hugo 网站优化(5): 穷的还剩 8 分钱, 看我怎么节约成本

大家好, 我是老麦
欢迎 订阅网站 https://tangx.in/
第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。

我很穷, 穷的来只剩账户只有 8 分钱了。

所以我每天都在想怎么能继续降低成本, 毕竟我的 CDN 只有 10G 免费流量。

这次我狙击的目标是 图片。 由于 MacBook 的高分辨率, 截图的大小还真挺费流量的。 然后我用的截图工具并不支持 压缩并保存, 习惯了快捷键并不想换新的。

pngquant 压缩工具

天无绝人之路, 所幸在 google的 pagespeed tools 中提供了图片的优化建议 中找到了一个 pngquant 压缩工具。

经过测试, 图片默认参数压缩率在 50% - 70% 左右, 效果拔群。

image.png

可惜的是, 没有找到命令参数覆盖原文件。

图片引用

为了保证我的写作不被图片压缩打断, 也就是不需要单独去执行压缩操作, 同时也保留了原始图像的高分辨率。

我修改 Github Action图片地址渲染, 在编译过程中, 完成 压缩工作

  1. 压缩: 很简单, 执行简单命令即可
# 压缩
find ./ -type f -name "*.png" -not -name "*-fs8.png" |xargs pngquant -f
  1. 图片地址渲染: 在 render-image.html 中, 添加了图片是否为 .png 结尾判断, 如果是则替换为新后缀。

核心代码逻辑如下

<!-- render-image.html -->

    <!-- 4. 图片压缩后缀 -->
    {{ if $image_handler.compress_png_suffix }}
        {{ if not (hasPrefix $img_destination "http") }}
            {{ if (strings.HasSuffix $img_destination ".png") }}
                {{ $img_destination = (replace $img_destination ".png" $image_handler.compress_png_suffix) }}
            {{ end }}
        {{ end }}
    {{ end }}
  1. 当然, 为了可以自定义压缩图片的后缀, 我在 config.toml 配置文件中新增了控制变量。
# config.toml
[params.image_handler]
    # 是否替换为压缩图片
    compress_png_suffix = "-fs8.png"

运行后效果如下

image.png

效果很理想。

相关文章
字节面试官让我讲讲最小生成树,我忍不住笑了
字节面试官让我讲讲最小生成树,我忍不住笑了
|
应用服务中间件 网络安全 nginx
使用let's encrypt免费ssl证书启用网站https
网站启用https访问,首先需要一个证书机构颁发的ssl证书,目前给个人免费颁发证书的机构,比较好的是:let's encrypt。Let's Encrypt是由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起公共的免费SSL项目,免费,安装方便,配置简单,值得信赖。
9781 0
|
编解码 计算机视觉 索引
使用ffmpeg MP4转 m3u8并播放 实测!!
使用ffmpeg MP4转 m3u8并播放 实测!!
853 1
|
人工智能 JSON 计算机视觉
AI工具-标注工具labelme
Labelme是一款Python开源图像标注工具,支持图像分类、目标检测、语义分割和实例分割等任务。它提供了一个GUI界面,用户可绘制圆形、方形和多边形进行标注。安装通过`pip install labelme`和`lxml`,使用时可导入预定义标签列表。标注结果保存为json文件,包含类别、边界框信息和形状类型。Labelme还支持格式转换,如转换为VOC或COCO格式。这款工具对视频标注也兼容。5月更文挑战第9天
1098 5
|
Serverless API 文件存储
函数计算产品使用问题之上传模型有什么办法可以提速
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
127 1
阿里云地域节点测试IP(国内+海外)Ping值延迟测试
阿里云地域节点遍布全球19个地区节点(国内+海外),共有56个可用区,哪个快网分享阿里云国内及海外节点测试IP,阿里云节点Ping值延迟测试: 阿里云节点全球无缝覆盖,提供CN2高速网络,BGP接入支持。
39230 0
github pages 部署单页面
github pages 部署单页面
|
存储 设计模式 算法
【C++ 泛型编程 高级篇】 C++ 17 解析std::apply 的多种应用场景(一)
【C++ 泛型编程 高级篇】 C++ 17 解析std::apply 的多种应用场景
694 0
|
安全 网络协议 测试技术
firewalld高级配置,富语言、以及防火墙应用
firewalld高级配置,富语言、以及防火墙应用
682 0
|
NoSQL Linux 测试技术
十三、Linux(CentOS7) Redis集群模式和哨兵模式配置
一、Redis集群配置 创建集群目录 mkdir -p /usr/local/redis-cluster cd /usr/local/redis-cluster mkdir 6379 6378 修改配置文件 vi redis.conf
631 56