LOADING

加载过慢请开启缓存 浏览器默认开启

论如何截图并自动上传到图床

2025/10/16

前言

我之前给blog配图的时候一直都是用QQ截图然后手动拖进上传sm.ms 然后把他生成出来的markdown格式复制进来

这样的话我需要:

QQ截图->保存->打开浏览器->打开图床->拖进图床->点上传->复制Markdown->找到配图的地方->粘贴

这一套流程下来导致我真的懒得配图

然后在我这几天高频写blog的时候我想起来我用的图床是有api的

0EB48A240B08EA27871A38C6D5CCA226.jpg

尼玛 那我之前古法上传图片算什么

明确需求

我需要一个截图,满足以下功能:

  1. 支持区域选择 而不是全屏截图
  2. 软件截图后弹出确认
  3. 确认后自动上传
  4. 最好能有打码 屏蔽隐私信息例如token之类的
  5. 并把Markdown格式的连接复制到我的剪切板
  6. 最好能支持多图并行上传 按顺序复制到剪切板

然后的话还有一些附加功能 比如:

  • 复制Code的时候根据窗口名字自动加上代码块和代码类型

(比如xShell默认是Bash VS默认是CSharp idea默认是kotlin或者java)

那么有没有现成的轮子呢

我觉得完全满足需求的只能自己写 但是上传api应该是有的

啊没错 他就是已经躺在我steam库好几年的ShareX

ShareX的配置

我们先去看看图床的Docs

然后去ShareX 左边选Custom Uploader Settings

文档里有说上传的Hearder怎么写

我们先用Python测试下 我一时半会没看懂ShareX咋配置的

import requests
import io
from PIL import Image
URL = "https://sm.ms/api/v2/upload"

headers = {"Authorization": "你的token" }
img = Image.open("test.jpg")
buffer = io.BytesIO()
img.save(buffer, format='JPEG')
buffer.seek(0)

files = {"smfile": ("screenshot.jpg", buffer, "image/jpeg")}
response = requests.post(URL,headers=headers,files=files)
print(response.json())

传上去了

那也就是说方法要是POST Token放在header里 文件头名字得叫smfile

不管了 先把ShareX配置先

我测试了一圈 最后配置是这样的:

Discord_fMu0nuZGD5.png

URL那里填:![{json:data.filename}]({json:data.url})

然后去配置一下快捷键

ShareX_0rb24lvNjN.png

完事了 我要的需求大部分都完成了

其余的可能需要自己写了 有空再写吧 刚刚git init(