惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Security Archives - TechRepublic
Security Archives - TechRepublic
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
S
Security @ Cisco Blogs
S
Security Affairs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
Lohrmann on Cybersecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
Forbes - Security
Forbes - Security
H
Heimdal Security Blog
A
Arctic Wolf
NISL@THU
NISL@THU
P
Proofpoint News Feed
W
WeLiveSecurity
S
Schneier on Security
AI
AI
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
L
LINUX DO - 最新话题
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Know Your Adversary
Know Your Adversary
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
Cyberwarzone
Cyberwarzone
I
Intezer
S
Securelist
Help Net Security
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
小众软件
小众软件
Last Week in AI
Last Week in AI
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
WordPress大学
WordPress大学
罗磊的独立博客
月光博客
月光博客
雷峰网
雷峰网
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events

静观小窗

一个有趣的项目背后的难点--MC的3D皮肤生成器 power by Qwen 博客俱乐部,最有社区氛围的中文博客联盟 文化决定语言,语言决定思想:我们赖以生存的隐喻(读后感) 寻找网络友邻 整合全网102个二次元动漫随机图片API接口,2025年十月最新 宋代的遗憾 搭建个人起始网站,便于控制浏览器使用和时间规划 Google Gemini CLI 免费安装配置指南:支持Gemini 2.5 Pro (2025最新) NixOS深度评测:一个六年Linux用户的初体验,为何惊艳的设计哲学仍让我望而却步 我的NS2使用体验记录,为什么因为马里奥派对空前盛会入坑 关于秦制的个人理解,为什么秦制在我看来是功过鲜明的必然 拜访一个人,在千年之后 Vercel/Netlify国内加速:EdgeOne免费CDN优选IP实战指南 C/C++程序员必看:JavaScript核心概念深度解析(动态类型、原型链、事件循环) C/C++程序员转向JavaScript:一份超详细的语法映射与避坑指南 从C++到JS:函数、this与闭包的核心差异与实践指南 VSCode配置JavaScript开发环境:Node.js安装与调试指南 C/C++程序员必看:JavaScript变量与作用域深度解析(从var到const) 博客迁移实战:从WordPress到Next.js的零成本高性能之路 《原则》读书笔记:如何将瑞·达利欧的智慧应用到日常 MATLAB入门教程:面向C++/OIer的数据可视化与科学计算指南 LaTeX公式与三线表教程:从入门到精通的排版指南 软路由远程访问提速:SMB压缩与50M上行优化实战 Hyprland 安装与配置超详细教程 (Arch Linux):含 Waybar 及一键脚本 Linux文件系统与磁盘分区:从入门到精通的实战指南 Guide to Installing a USB WiFi Adapter on OpenWrt (LuCI) 阿里云CentOS 9服务器从零到一:安全配置与宝塔面板安装指南 WordPress个人博客搭建指南:从服务器到主题美化全攻略 Arch/Windows双系统终极指南:无缝鼠标共享与显卡配置 NAS怎么选?黑群晖、CentOS自建与绿联NAS深度对比与选型指南 Arch Linux 安装 KDE Plasma 6:一篇来自老用户的深度评测(2025版) 我的第一份Ubuntu安装与美化笔记(新手超详细避坑指南)
我开发了一款博客图片压缩工具,支持PicGo一键压缩上传
间窗 (Vindo) · 2025-10-18 · via 静观小窗

作为一名博主,我一直依赖 PicGo 这款工具来处理博客图片。我的常规工作流是在 Typora 中完成文章写作,然后将图片上传到 PicGo,最后将生成的链接粘贴回 Typora。

这个流程看似简单,但实际操作起来却相当繁琐,尤其是当文章包含大量图片时,我需要将图片一张张拖拽到 PicGo 中。起初,鉴于我写博客的频率不算高,每次只处理一篇文章,这种方式还在可接受的范围内。

然而,当我决定将所有图片从原有的图床迁移到腾讯云 COS 时,这个问题变得异常棘手。我需要将成百上千张图片从旧图床一张张下载下来,然后再逐一上传。更关键的是,我原来的图片大多是 PNG 格式,占用了大量的存储空间和网络流量。对于个人博客而言,腾讯云 CDN 和 COS 的成本,尤其是在处理 PNG 这类大文件时,是一笔不小的开销。

也许有人会提到图床自带的压缩功能。我确实测试了这项功能,效果虽然不错,但压缩策略非常保守。单次文章访问的图片总流量仍然高达 10MB,这样算下来很可能会超出 CDN 的基础套餐额度。因此,我决定必须对图片进行手动压缩。

这样一来,整个流程变得极其复杂:首先,我需要逐一下载所有图片(由于分散在不同图床,且部分账号密码也已遗忘,只能单张操作);接着,再将这些图片一张张进行压缩,或是在线分批处理,但又会受到免费额度的限制;即便不考虑这些,批量上传到 PicGo 后,我还需要手动将新生成的链接一一回填到 Markdown 文件中。

这时我意识到,这个流程充满了大量重复性劳动,而重复恰恰意味着可以被自动化。于是,我决定开发一个脚本,首先实现自动从 Markdown 文件中下载图片的功能,从而省去手动下载的麻烦。

脚本开发完成后,我进一步思考:既然图片已经下载到本地,为何不直接在程序中完成压缩呢?于是,我为脚本增加了可控的压缩功能,用户可以根据需要选择 1% 到 50% 不等的压缩率,大大提升了可操作性。

完成了前两步之后,我又想到:为什么我还要手动将这些处理过的图片上传到 PicGo 呢?在研究 PicGo 的功能时,我发现了一个非常有用的“回写”机制。这意味着图片上传到图床后,PicGo 可以直接将返回的链接写回到 Markdown 文件中,自动替换掉原来的本地或旧链接。

就这样,一个集成式的解决方案诞生了。现在,我只需点击一个按钮,就能实现对 Markdown 文件中本地图片或网络图片的自动下载、压缩、上传和链接回写。整个过程无缝衔接,极大地简化了我的工作流程。

实际上,这个脚本彻底改变了我的写作方式。现在,我可以在写作时直接将图片拖拽到 Typora 中,文章完成后,再用我开发的脚本一键处理。我再也无需与图片一张张“搏斗”,整个体验行云流水。

为了让这个工具更加易用,作为一名“极致懒人”,我还用 AI 辅助编写了一个前端界面。虽然前端的稳定性还有待提升,但整体使用体验已经非常出色。它支持文件选择、集成了 PicGo 的大部分图床,并且可以直接设置压缩比,完整地实现了我最初的所有设想。

如果您对这个项目感兴趣,可以访问我的代码仓库:DohhhDo/Picgo.MD。欢迎阅读仓库文件了解具体使用方法。虽然可能不会有很多人使用,但只要有一个人发现它的价值,我就会继续维护下去。